SlideShare ist ein Scribd-Unternehmen logo
1 von 78
Microcontrôleurs
Informatique Embarquée
Semestre 2
www.geii.eu 2
Microcontrôleurs
Microprocesseur  Microcontrôleur
 Microprocesseur
 Utilisé dans des systèmes capables d’exécuter de nombreuses
tâches différentes
 Ne peut fonctionner seul et s’insère dans une structure matérielle
complexe intégrant :
– de la mémoire vive et de la mémoire de masse,
– un superviseur d’alimentation,
– des périphériques variés (souris, clavier, carte vidéo, unité de stockage
de masse)
 Microcontrôleur
 Dédié à une application spécifique
 Intègre pratiquement tous les éléments nécessaires au traitement
de cette application unique : System On Chip (ram, flash, timer,
convertisseur, bus de communication …)
2
www.geii.eu 3
Exemples d’application
Produits de grande consommation
 Matériels audio et vidéo
 Interface avec l’utilisateur
 Configuration de composants électroniques
 Électroménager (four micro-ondes, machine à laver …)
 Périphériques informatiques (souris, claviers, manette de jeu …)
Domotique
 Contrôle de température
 Systèmes de surveillance, alarme
 Systèmes d’éclairage
Automobile
 Fermeture centralisée
 Réglages des sièges et rétroviseurs
 Clignotants
 Gestion des vitres électriques
 …
3
www.geii.eu 4
Choix d’un microcontrôleur
Offre vaste avec des leaders
 En 8 bits
 PIC10, 12, 16 et PIC18 de Microchip (leader mondial)
 Famille 8051 Intel
 les AVR et ATMega d’Atmel (Arduino)
 HC11 et HC08 de Freescale Semiconductor
 En 16 et 32 bits
 PIC32 de Microchip
 ST7 (coeur ARM) ST Microelectronics
 Tendance net à utiliser des cœurs ARM
 DSP
 microcontrôleur dédié au calcul numérique pour les
applications audio et vidéo, asservissements de processus
industriels
4
www.geii.eu 5
Choix d’un microcontrôleur
Critères de choix
 Caractéristiques techniques du microcontrôleur
 Besoin en puissance de calcul : famille 8, 16 ou 32 bits
 Type de boîtier et caractéristiques de consommation
 Périphériques embarqués
 Disponibilités et prix
 Outils de développement
 Chaîne de développement (gestion de projet)
 Compilateur C dédié et optimisé
Par essence, les cross compilateurs sont rarement optimisés.
 Outils de mise au point disponibles
– Simulateur,
– Debugger en circuit,
– Émulateurs.
5
www.geii.eu 6
Langages de développement
Assembleur
 Avantage
 Code moins coûteux en mémoire (si on sait programmer) et donc
potentiellement plus rapide.
 Outil gratuit fourni par le fabricant du microcontrôleur.
 Inconvénient
 Plus difficile à maintenir et moins lisible.
C
 Avantage
 Portabilité de certains algorithmes.
 Pas d’apprentissage spécifique quant au langage du
microcontrôleur choisi (les périphériques sont toujours à connaître).
 Vitesse de développement accrue.
 Inconvénient
 Code parfois mal optimisé  surcoût par surclassement de la cible.
 Coût de l’outil de développement pour une version optimisée.
6
www.geii.eu 7
Que trouve-t-on à l’intérieur ?
7
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu
ATmega48 à ATmega328P PIC18F2455 à PIC18F4550
Première page d’une datasheet de uC
www.geii.eu 9
Périphériques de liaison avec l’extérieur
Liaison avec le monde analogique
 Convertisseur analogique/digital (CAN ou ADC).
 Circuit PWM.
 Comparateur de tension programmable.
Bus de communication
 Vers des composants électroniques
 bus I2C et SPI.
 Vers des modules électroniques distants
 bus LIN et CAN (automobile).
 Vers un terminal, un PC ou certains capteurs
 USB et RS232C, RS485.
 Vers l’internet
 bus Ethernet, WIFI.
9
www.geii.eu 10
Périphériques de liaison avec l’extérieur
Liaison avec le monde digital
 Port tout ou rien TTL/CMOS
 entrées/sorties 5v ou 3,3v nécessitant une adaptation pour
travailler avec d’autres niveaux de tension.
 Compteur d’évènements
 Périphériques de Comparaison/Capture.
Intégration de capteurs
 Température, champ magnétique, accélération.
10
www.geii.eu 11
Périphériques internes
Timers
 Compteurs programmables indispensables à la gestion du
temps
 Pour la mesure de la durée d’un évènement.
 Pour générer avec précision des signaux en sorties.
 Pour imposer l’exécution périodique de certaines fonctions du
programme.
Contrôleur d’interruption
 Prise en charge logiciel rapide d’évènements matériels internes
ou externes.
11
www.geii.eu 12
Vu de l’extérieur
Différents boitiers
Note : les broches d’entrées/sorties sont regroupées (ici 5 ports
notés A, B, C, D et E) et sont souvent utilisées de plusieurs
façons différentes :
- comme simple entrée/sortie logique (Ex : I/O RC7)
- affectée à un périphérique spécifique (Ex : RX)
12
www.geii.eu 13
Le CPU : Core Processor Unit
Généralement de type RISC
 Reduced Instruction Set Computer
 131 instructions pour la famille AVR d’Atmel.
 35 instructions seulement pour les PIC16 Microchip.
 Processeur RISC moins gourmand en surface de Silicium.
Architectures internes variées
 Cas des AVR Atmel
 32 registres de travail internes R0 à R31.
 Gestion continue de la mémoire.
 Cas des PIC16 Microchip
 1 registre de travail W.
 Mémoire organisée en banques.
13
www.geii.eu 14
Architecture mémoire
Architecture de Harvard
 Mémoires de programme et de données séparées
 Application figée  mémoire de programme non volatile
– technologie FLASH la plupart du temps pour les petites séries ou le développement.
– technologie PROM (programmable une seule fois) pour les très grandes séries.
– technologie EPROM pour de vieilles versions de uC.
– Exemples :
» ATmega328p (Arduino Uno) : 32K octets.
» ATmega2560 (Arduino Mega) : 256K octets.
» PIC18F4550 : 32K octets.
 Données évoluant rapidement  mémoire vive, volatile
– technologie SRAM (ram statique) pour les petites capacités (<64 ko) ; généralement
le cas de uC 8 bits.
– technologie SDRAM (ram synchrone dynamique) pour les grandes capacités : dans
le cas des DSP et uC 16 ou 32 bits.
– Exemples :
» Atmega328p (Arduino Uno) : 2K octets.
» ATmega2560 (Arduino Mega) : 8K octets.
» PIC18F4550 : 2K octets.
14
www.geii.eu 15
Architecture de Harvard
15
CPU
Mémoire
Flash, EPROM
ou PROM

Programme
Mémoire
SRAM (uC 8 ou 16 bits)
SDRAM (uC 32 bits)

Données (variables)
Mémoire
EEPROM

Paramètres de
configuration
www.geii.eu 16
Mémoire EEPROM
Quelques points clés
 Non volatile  conserve les données en cas de coupure de
l’alimentation.
 Présente dans de nombreux uC.
 D’une capacité de 64 octets à quelques ko.
 Exemples :
 ATmega328p (Arduino Uno) : 1K octets.
 ATmega2560 (Arduino Mega) : 4K octets.
 PIC18F4550 : 256 octets.
Utilisation
 Importante pour la conservation de paramètres de configuration.
 Mémorisation à l’abris des ruptures d’alimentation de certaines
variables indispensables au fonctionnement du système.
16
www.geii.eu 17
Cartographie mémoire de programme
Mémoire de programme organisée en pages
 4 premiers mots réservés au démarrage et
vecteur d’interruption
 Le uC exploite un registre d’état pour
connaître la page en cours d’utilisation
 les fonctions CALL et GOTO fournissent
11 bits d’adresse (au niveau du code
machine)
 le registre de page fourni 2 bits
on obtient les 13 bits de PC
Pile limitée à 8 niveaux
 Utilisée uniquement pour les adresses de
retour de fonctions
www.geii.eu 18
Cartographie de la mémoire de données PIC16
4 banques mémoires mélangeant
 Registres d’état du uC : présents dans
toutes les banques
 STATUS
 PCLATH (page mémoire de
programme)
 Registres de périphériques
 TMR0, PORTA, PORTB …
 Variables utilisateurs
 Zones nommées General Purpose
Register
www.geii.eu 19
Cartographie de la mémoire de programme (PIC18)
Organisation linéaire
 Le pointeur d’instruction PC est constitué de :
 PCU : bits 20 à 16.
 PCH : bits 15 à 8.
 PCL : bits 7 à 0.
 PCU et PCH sont accessibles indirectement via des
registres spécifiques PCLATU et PCLATH.
 PC est fixé par les instructions de branchement
(GOTO, CALL).
Vecteurs d’interruptions
 Reset.
 2 sources avec des niveaux de priorités différents.
Pile
 Elle dispose de 31 niveaux et est utile uniquement
pour les adresses de retours de fonction.
19
www.geii.eu 20
Cartographie de la mémoire de données (PIC18)
Mémoire de données divisée en 16 banques
 15 (au maximum) pour les variables utilisateurs.
 1 (le haut de la banque 15) pour les registres de périphériques.
Mode d’accès à une donnée
 BSR indique la banque ciblée.
 l’adresse de la donnée dans la banque est fournie par le code machine.
www.geii.eu 21
Cartographie mémoire de données ATmega2560
La mémoire possède une organisation linéaire
www.geii.eu 22
Debug – port JTAG
Objectif de ces modules ?
 Permettre la mise au point d’un programme avec le uC placé dans les
conditions réelles d’utilisation, sur sa cible définitive
 en plaçant des points d’arrêt.
 en autorisant une exécution pas à pas.
 en consultant et en modifiant les données en mémoire RAM ou en
EEPROM.
 en chargeant une mise à jour du programme.
Alternative
 Emulateur
 Structure matérielle complexe remplaçant le uC sur sa cible définitive.
 Plus souple que le debug en circuit.
 Trace importante.
 Points d’arrêt multiples.
 Temps réel (grâce à l’utilisation de la trace).
 Structure coûteuse.
22
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
Configuration Initiale
Sécurité de fonctionnement
RESET
Chien de garde
www.geii.eu 24
A la mise sous tension
Grande diversité de fonctionnement d’un uC
 Différentes horloges sont possibles.
 Une surveillance du système peut être mise en place
 Pour l’alimentation.
 Pour le bon déroulement d’un programme.
 Existence d’un registre de configuration initiale inscrit dans la
mémoire FLASH de programme et lu à la mise sous tension (ou
lors d’un RESET).
24
www.geii.eu 25
Registre de configuration initiale
Il donne la configuration de certains éléments du uC à
la mise sous tension
 Définition du type d’oscillateur utilisé.
 Protection contre la lecture de certaines zones mémoires.
 Protection en écriture de la mémoire de programme.
 Activation du mode Debug.
 Protection de la mémoire EEPROM.
 Mise en place d’un chien de garde (Watch Dog Timer).
 Mise en fonction d’un superviseur d’alimentation simplifié
(Brown Out Reset).
 Exploitation d’une temporisation de démarrage (Power Up
Timer).
25
www.geii.eu 26
Registre de configuration initiale
Il donne la configuration de certaines caractéristiques du uC à la
mise sous tension
 Définition du type d’oscillateur utilisé.
 Protection contre la lecture de certaines zones mémoires.
 Protection en écriture de la mémoire de programme.
 Activation du mode Debug.
 Protection de la mémoire EEPROM.
 Mise en place d’un chien de garde (Watch Dog Timer).
 Mise en fonction d’un superviseur d’alimentation simplifié
(Brown Out Reset).
 Exploitation d’une temporisation de démarrage (Power Up
Timer).
www.geii.eu 27
Circuit d’horloge
Une circuiterie offrant des possibilités variées
 Horloge sans composant externe à partir d’un réseau RC interne
 Peu stable et peu précis.
 Très bon marché.
 Horloge à base de Quartz externe
 Accès à des fréquences élevées.
 Excellente stabilité et précision.
 Horloge exploitant un réseau RC externe
 Plus précis que le modèle interne.
 Meilleur marché qu’un quartz.
Boucle à verrouillage de phase (PLL)
 Permet d’obtenir une fréquence élevée en interne par la multiplication de
la fréquence issue d’un oscillateur à quartz basse fréquence en externe
 Intérêt : manipuler des basses fréquences à l’extérieur du uC et disposer
d’une horloge haute fréquence en interne (facilité de mise en œuvre;
rayonnement électromagnétique plus faible)
Configuration par un registre dédié lu au moment du reset
27
www.geii.eu 28
Exemple : Horloge des PIC16
4 modes possibles
 Configuration par le registre Configuration Word placé à l’adresse
2007h de la mémoire programme
 FOSC1:FSCO0 = 00  Low Power Crystal (LP) de 32kHz à 200kHz
 FOSC1:FOSC0 = 01  Quartz standard (XT) de 200kHz à 4MHz
 FOSC1:FOSC0 = 10  High Speed Crystal (HS) au-delà de 4MHz
 FOSC1:FOSC0 = 11  Circuit RC (RC)
28
www.geii.eu 29
Exemple : Horloge des ATmega2560
www.geii.eu 30
Dispositifs de RESET
Power Up Timer
 Qu’est-ce que c’est ?
 Système de temporisation imposant un délai d’attente avant la mise en
fonction du CPU lors d’un RESET.
 Intérêt ?
 Laisser le temps à l’alimentation de se stabiliser (ce qui évite la mise en place
d’une succession de RESET).
Brown Out Reset
 Qu’est-ce que c’est ?
 Dispositif imposant un reset automatique lorsque la tension d’alimentation
tombe sous un certain seuil pendant une durée minimale définie.
 Intérêt ?
 Eviter un disfonctionnement du CPU (plantage, saut aléatoire …).
30
www.geii.eu 31
Dispositifs de RESET
Chien de garde (Watch Dog Timer)
 Qu’est-ce que c’est ?
 Dispositif effectuant automatiquement un RESET s’il n’a pas été
réinitialisé avant une durée précise (fixé par le programmeur ou
structurellement par les concepteurs du uC).
 Intérêt ?
 Remettre en sécurité le système lors d’un plantage.
 Comment fonctionne-t-il ?
 En fonctionnement normal, le programme remet à 0 le chien de garde de
façon périodique ce qui évite qu’il se déclenche
 cela implique une programmation particulière.
 En cas de plantage, de boucle infinie, d’erreur de programmation
empêchant de repasser par le point (ou les points) de remise à 0 du chien
de garde, celui-ci finit par se déclencher et réalise un RESET du système.
31
Les Interruptions
Généralités
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 33
Interruptions
Utilité
 Traiter aussi vite que possible un évènement au moment de
son apparition.
Quels sont les types d’évènements traités ?
 Sollicitation externe directe
 Un front montant ou descendant sur une broche d’entrée digitale.
 Arrivée d’une information sur un bus de communication.
 Détection par un comparateur programmable d’un seuil de tension par
un signal externe.
 Toutes sortes en provenance de périphériques internes
 Dépassement de capacité du compteur d’un timer.
 Atteinte du seuil programmé du compteur d’un timer.
 Fin d’une conversion analogique/digitale.
33
www.geii.eu 34
Interruptions
Comment ça marche ?
 L’interruption provoque l’arrêt temporaire du programme
principal en cours d’exécution.
 A la fin de l’exécution de l’instruction en cours, le CPU oriente
l’exécution vers le vecteur d’interruption adapté à l’évènement à
traiter
 Certains uC lancent directement un sous-programme spécifique pour
chaque source d’interruption.
 Sur d’autres uC, il faut rechercher la source et orienter l’exécution en
conséquence.
 Un sous programme spécifique à l’interruption est alors lancé
par le uC.
Note : l’adresse de l’instruction qui devait être exécutée avant la requête
d’interruption est enregistrée dans la pile (idem CALL)
 Fin de l’exécution du sous-programme d’interruption
 La main est rendue au programme principal qui poursuit son exécution.
34
www.geii.eu 35
Interruptions
Différences entre les microcontrôleurs
 PIC16F :
 Sources d’interruptions multiples réunies sur un seul vecteur
d’interruption  on détecte l’origine de l’interruption dans
l’unique sous-programme en regardant l’état d’indicateurs.
 PIC18F :
 Sources d’interruptions multiples pouvant cibler deux
vecteurs d’interruptions différents en fonction du niveau de
priorité qu’on leur attribue.
 2 sous-programmes d’IT
 Utilisation des indicateurs pour connaître la source.
 ATmega2560 :
 Autant de vecteurs d’interruptions que de sources
d’interruptions.
Les Interruptions
Cas des PIC16F
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 37
Interruptions du PIC16F87x
Elaboration du signal d’interruption
 11 sources d’interruption provenant de périphériques.
 3 sources d’interruptions globales
 T0IF : indicateur de dépassement de capacité du timer 0.
 INTF : indicateur de demande d’interruption par un signal externe.
 RBIF : indicateur d’interruption par changement d’état sur le port B.
37
www.geii.eu 38
Interruptions du PIC16F87x
Elaboration du signal d’interruption
 Suffixe F des signaux : indicateur d’interruption provenant d’un
périphérique.
 Suffixe E des signaux : bit d’autorisation de prise en charge de
l’interruption du périphérique associé.
 PEIE : contrôle la prise en charge des interruptions en
provenance des périphériques internes.
 GIE : autorisation
globale des interruptions.
38
www.geii.eu 39
Interruptions du PIC16F87x
Registres associés au contrôleur d’interruptions
 INTCON contient les indicateurs d’interruptions généraux et les
autorisations associées.
 PIR1 et PIR2 contiennent les indicateurs d’interruptions des
périphériques.
 PIE1 et PIE2 sont les pendants de PIR1 et PIR2. Ils contiennent
les autorisations d’interruptions des périphériques.
39
www.geii.eu 40
Interruptions du PIC16F87x
Point de vue logiciel
 Initialisation des interruptions
 Autorisation globale GIE = 1
 Mise à 1 des autorisations nécessaires pour l’interruption à traiter
– PIE = 1 si c’est un périphérique.
– mise à 1 de l’autorisation de l’interruption choisie.
 Programmation de la fonction d’interruption à l’adresse
0004
 Sauvegarde des registres et indicateurs importants.
 Recherche de l’indicateur d’interruption mis à 1.
 Orientation vers le traitement adapté.
 Remise à 0 de l’indicateur de l’interruption qui vient d’être traitée.
 Restitution des registres et indicateurs importants.
40
Les Interruptions
Cas des ATmega2560
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 42
Interruptions de l’ATmega2560
Extrait
www.geii.eu 43
Interruptions de l’ATmega2560
Traitement
 A chaque adresse de vecteur d’interruption, on effectue un saut
vers un sous-programme
www.geii.eu 44
Interruptions de l’ATmega2560
Emplacement des Vecteurs d’interruptions variable en fonction de
la configuration initiale du microcontrôleur
Usage des interruptions
 Chaque périphérique possède des registres permettant de
configurer son comportement en matière d’interruption
 Pour une fonctionnalité de périphérique, il existe au moins 1
bit pour spécifier si l’interruption est autorisée ou non  bit
Enable
www.geii.eu 45
Interruptions de l’ATmega2560
Exemple : registre d’autorisation des interruptions associé au
Timer 0 des ATmega2560 3 fonctionnalités différentes
Entrées/Sorties tout ou rien
Généralités
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 47
Entrées/Sorties tout ou rien
Entrées/Sorties tout ou rien
 entrées/sorties logiques, digitales ou numériques.
 Un registre permet de préciser la direction de la broche : soit entrée,
soit sortie.
Sorties
 Niveau de tension fixé : généralement à Vcc, la tension d’alimentation
du uC.
 Courant maximum limité : très souvent entre 5mA et 40mA (et encore,
pas toutes les sorties actives en même temps).
Entrées
 Sur trigger de Schmitt (petit cycle d’hystérésis autour de Vcc/2)
 Entrée < Vcc/2 : niveau logique 0.
 Entrée > Vcc/2 : niveau logique 1.
 Possibilité assez souvent d’utiliser une résistance de pull-up (voire pull-
down) programmable.
Entrées/Sorties tout ou rien
Cas des ATmega Atmel
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 49
Entrées/Sorties sur les ATmega Atmel
Structure interne schématisée d’une entrée/sortie
Broche
Résistance
de Pull-Up
Direction
Buffer de
sortie
Mémoire de
sortie
Mémoire
d’entrée
www.geii.eu 50
Entrées/Sorties sur les ATmega Atmel
Registre de configuration générale
 PUD = 0 pour autoriser l’usage des résistances de pull-up.
Registre de sortie
 Ecriture du PORTx pour écrire en sortie si la broche est
configurée en sortie.
www.geii.eu 51
Entrées/Sorties sur les ATmega Atmel
Registre de direction
 DDxn = 1 pour une sortie ; 0 pour une entrée.
Registre d’entrée
 Permet de connaître l’état d’une entrée si la broche est
configurée en entrée.
Conversion Analogique/Digitale
Généralités
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 53
Conversion Analogique/Numérique
Le convertisseur Analogique/Numérique (CAN) permet de
connecter des éléments analogiques
 Il fournit en sortie une image sur N bits de la tension d’entrée.
 sont les tensions de référence du convertisseur.
 si alors
 si alors
 Tension la plus petite pouvant être convertie, le LSB :
 Exemple de conversion avec et
 si , on aura
ADC
Sortie S
sur N bits
LSB : Least Significant Bit
www.geii.eu 54
Technologie des CNA en bref
Technologie Flash
 Conversion reposant sur la comparaison du signal d’entrée avec
des niveaux de tension répartis linéairement entre 0 et Vref et
fixés par un vaste réseaux de ponts diviseurs.
 Pour N bits en sortie, il faut 2N comparateurs.
 Conversion rapide mais coûteuse (grande surface de Silicium
requise).
Source de l’image (Analog Device. Document : MT-020.pdf)
www.geii.eu 55
Technologie des CNA en bref
Technologie à Approximations successives (type SAR)
 Méthode reposant sur l’algorithme
consistant à trouver un nombre entre
0 et 100 = méthode dichotomique.
 Il faut un cycle d’horloge par bits
de résolution :
 Au lancement de la conversion, le bloc SHA mémorise la tension à
l’entrée (stockage dans une capacité).
 A chaque cycle d’horloge, le système de contrôle estime la
grandeur de sortie par dichotomie en comparant le signal d’entrée à
la conversion en analogique de la sortie estimée.
 Méthode assez lente mais peu coûteuse, raison pour laquelle on la
trouve dans les microcontrôleurs.
Source de l’image (Analog Device. Document : MT-021.pdf)
www.geii.eu 56
CAN dans un microcontrôleur
Partie CAN seule (hors multiplexage éventuel des entrées)
 CAN de type SAR en général  il possède donc une horloge
rythmant le processus d’approximations successives ( ici).
 Différentes tensions de référence possibles :
 issues d’une référence de tension interne ou externe,
 issues des tensions d’alimentation du uC ( N < 10 bits).
 Présence d’une sortie indiquant la fin de la conversion.
ADC
Sortie S
sur N bits
Fin conversion
Configuration
www.geii.eu 57
CAN dans un microcontrôleur
Qualité de la conversion très dépendante :
 de la nature des références de tension :
 bonne avec une référence interne ou externe,
 résolution limitée à 10 bits si les références découlent de
l’alimentation du uC (amélioration possible avec certaines
précautions).
 du design du PCB à cause du report du bruit numérique sur les étages
de conversion.
 Avoir à l’esprit le niveau du LSB :
Temps de conversion dépendant :
 de la résolution souhaitée (technologie SAR  N bits  N cycles),
 de la fréquence maximale admissible pour
Temps entre 2 conversions successives/multiplexées :
 dépend de l’impédance de la source.
www.geii.eu 58
CAN dans un microcontrôleur
Fonctionnalités spécifiques à certains microcontrôleurs
 Prise en compte du résultat au moment d’une interruption :
 la fin de la conversion déclenche une interruption  possibilité de
lancer une conversion sans attendre le résultat.
 Auto-conversions (mode auto trigger) :
 la conversion est déclenchée périodiquement par un timer  la
prise en compte du résultat se fait par interruption,
 plus généralement, une condition spécifique sur un périphérique
peut lancer une conversion
 le programme principal se limite à prendre en charge les
résultats de conversion lorsqu’ils apparaissent (par interruption).
 Couplage de deux entrées simples pour former une entrée
différentielle.
 Mise en veille du uC durant le processus de conversion pour minimiser
le bruit induit par son fonctionnement.
Conversion Analogique/Digitale
Cas des ATmega48 à 328
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 60
Synoptique du CAN des ATmega328
Multiplexeur permettant de choisir une
entrée parmi plusieurs.
Plusieurs références
possibles
CAN SAR 10 bits
Signal d’interruption
www.geii.eu 61
Registres associés au CAN des ATmega328
Choix du signal
de référence
Choix du signal
d’entrée
Entrées
externes
Capteur de
température
interne
Référence de
tension interne
ADLAR : Justification de la sortie
(voir description des registres de sortie)
www.geii.eu 62
Registres associés au CAN des ATmega328
Diviseur de fréquence pour fixer
l’horloge du CAN entre 50kHz et
200kHz pour la résolution maximale.
1 pour mettre en
fonction de le CAN.
Mettre à 1 pour lancer une
conversion.
Reste à 1 tant que la
conversion est en cours.
1 pour des conversions avec auto-
déclenchements (voir suite).
Mis à 1 à la fin d’une conversion. Retourne à
0 après traitement de l’interruption du CAN.
A mettre à 1 pour autoriser les interruptions à
l’issue d’une conversion. Carte avec un
quartz à 16MHz
www.geii.eu 63
Registres associés au CAN des ATmega328
Le convertisseur fournit un résultat sur 10 bits : ADC0 à ADC9.
ADC0 est le bit de poids faible (LSB) – ADC9 le bit de poids fort (MSB).
Ces 10 bits sont stockés dans ADCH (poids fort) et ADCL (registre de poids
faible). En C, on peut utiliser ADC sur 16 bits qui regroupe ADCH:ADCL.
Pour utiliser les 10 bits : mettre ADLAR à 0 et utiliser ADC (0 à 1023).
Pour se limiter à 8 bits, on élimine ADC1 et ADC0, les bits de poids faibles
de la conversion : il faut mettre ADLAR à 1 et utiliser ADCH (0 à 255).
www.geii.eu 64
Registres associés au CAN des ATmega328
Fonctionnalité d’auto-déclenchement
Choix de la source d’auto-déclenchement.
Bit associé à un autre
périphérique (Comparateur
Analogique) et pris en
compte seulement si l’ADC
est éteint.
Lorsque le bit ADATE (Auto Trigger Enable; registre ADCSRA) est à 1, la
source sélectionnée par ADTS2:ADTS1 déclenche les conversions on
récupère le résultat en gérant l’interruption associée au CAN.
www.geii.eu 65
Utilisation du CAN de l’ATmega328
Détermination du prescaler (bits ADPS) pour espérer une
résolution de 10 bits lorsqu’on utilise un quartz à 16MHz :
 il faut
 une seule possibilité puisqu’il faut prendre la valeur maximale
pour le prescaler.
Exemple de configuration des autres registres de l’ADC
 Cahier des charges
 Entrée sur ADC2.
 Référence 1.1v
 Résultat sur 10 bits.
 Traitement du résultat par interruption.
Timers
Généralités
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 67
Timers
Qu’est ce que c’est ?
 Un compteur programmable pouvant être associé à
 Un comparateur.
 Un circuit d’horloge interne ou externe.
 Un prescaler (diviseur de fréquence placé en amont).
 Un postscaler (diviseur de fréquence placé en aval).
Utilité
 Permet l’exécution à intervalle de temps régulier d’une
interruption.
 Utilisable pour le comptage d’évènements externe.
 Outil de mesure temporelle.
 Autorise la génération d’un signal dont le rapport cyclique peut
être programmé (PWM = Pulse Width Modulation).
67
Timers
Cas des ATmega48 à 328
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 69
Timers
Les Timers des ATmega328
 1 timer 8 bits (Timer0) avec PWM
 1 timer 16 bits (Timer1) avec PWM
 1 timer 8 bits (Timer2) avec PWM et entrée asynchrone
Timers des ATmega2560
 Ajout de 3 timers 16 bits (Timer 3, 4, 5) avec PWM
69
www.geii.eu 70
Synoptique du Timer0 des AVR Atmel
Signaux
PWM
Horloge de comptage :
interne ou externe
Comparaison
Imposer une
butée au compteur.
Générer un
signal PWM.
Générer une
interruption.
Interruptions sur
comparaison
Interruption sur Overflow
Compteur du timer
Bus de communication
Inter composants
I2C et SPI
CPU
Mémoire
Flash

Programme
Mémoire
SRAM

variables
Mémoire
EEPROM

config
Circuit
de RESET
Horloge
Bus
SPI
Bus
I2C
USART
JTAG
ADC
10bits
8 entrées
Contrôleur d’interruptions
Timers
2 de 8 bits
1 de 16 bits
Compare
/capture
PWM
I/O
Ports
Debug
www.geii.eu 72
Bus SPI et I2C
Bus inter-composants
 SPI : bus Motorola.
 I2C : bus introduit par Philips.
Spécificités
 SPI : nécessite la sélection préalable du composant ciblé par un
signal Chip Enable.
 I2C : bus série avec adressage  la première information qui
circule sur le bus est l’adresse du composant ciblée.
Au niveau du uC
 Sur le bus SPI comme sur le bus I2C, le uC peut être maître ou
esclave.
72
www.geii.eu 73
Bus I2C
Utilisé par de très nombreux fabricants de composants pour s’interfacer avec
 D’autres microcontrôleurs.
 Des expandeurs de bus (entrée/sortie 8 bits).
 Des convertisseurs A/N et N/A.
 Des mémoires (RAM, EPROM, EEPROM, etc.).
 Des récepteurs infra-rouge (télécommande RC5).
 Des capteurs de température.
 Des circuits audio (égaliseur, contrôle de volume, etc.).
 Des drivers d'affichage LCD ou à LEDs.
 Des décodeurs télétexte.
 Des chargeurs de batterie.
 Des contrôleurs d’alimentations.
 Des PLL pour tuner HF Bus 2 signaux.
 Des horloges temps réels (Real Time Clock).
Il exploite 2 signaux
 SCL : le signal d’horloge du bus.
 SDA : le signal de données bidirectionnel.
73
www.geii.eu 74
Bus I2C
Eléments de base de la communication I2C
 Démarrage de la communication (START Condition)
 Arrêt de la communication (STOP Condition)
www.geii.eu 75
Bus I2C
Interrogation d’un périphérique I2C
 Envoi d’un bit de START.
 Envoi de l’adresse du périphérique sur 7 bits.
 Spécification d’une lecture (bit R/W à 1).
 Le périphérique se signale par un accusé réception (Acknowledge).
 Envoi d’un premier octet par le périphérique.
 Accusé réception par le uC.
 Envoi d’un octet par le périphérique.
 Pas d’accusé réception par le uC.
 Envoi d’un bit de STOP par le uC
www.geii.eu 76
Bus I2C
Ecriture sur un périphérique I2C
 Initiation de la communication par l’uC.
 Envoi de l’adresse sur 7 bits du périphérique ciblé par l’uC. Un 8ième bit
indique un ordre d’écriture.
 Accusé réception du périphérique.
 Ecriture d’un octet par l’uC.
 Accusé réception par le périphérique.
 Nouvelle écriture …avec accusé réception …
 Fin de la communication signifiée par une condition STOP.
www.geii.eu 77
Bus I2C
Ce qui donne les signaux suivants
www.geii.eu 78
Bus I2C
… au niveau matériel
 Les résistances Rp, indispensables, sont des résistances de
tirage au VCC
 Cela permet d’exploiter des périphériques fonctionnant sous une tension
différente de celle du uC.
 Les résistances Rs sont des résistances de protection
 Protègent les périphériques entre eux contre les surtensions issues de
l’un d’eux.

Weitere ähnliche Inhalte

Was ist angesagt?

Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
TheCrazyMan
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
Sana Aroussi
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoires
Sana Aroussi
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
Sana Aroussi
 

Was ist angesagt? (20)

Formation stm32
Formation stm32Formation stm32
Formation stm32
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
présentation STM32
présentation STM32présentation STM32
présentation STM32
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseur
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
Presentation arduino
Presentation arduinoPresentation arduino
Presentation arduino
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
 
Intro arduino
Intro arduinoIntro arduino
Intro arduino
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de cours
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoires
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
 
Processeur FPGA
Processeur FPGAProcesseur FPGA
Processeur FPGA
 

Ähnlich wie Microcontrôleur

FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
mohamedsaidi212001
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdf
DAPcreat
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
Wassim Smati
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
Wassim Smati
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
NasriMohsen2
 

Ähnlich wie Microcontrôleur (20)

FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.ppt
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdf
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
chapitre222 (1).pptx
chapitre222 (1).pptxchapitre222 (1).pptx
chapitre222 (1).pptx
 
Architecture des ordinateurs
Architecture des ordinateursArchitecture des ordinateurs
Architecture des ordinateurs
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurables
 
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
Dictionnaire informatique
Dictionnaire informatiqueDictionnaire informatique
Dictionnaire informatique
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
Architecture et programmation des circuits CPLD et des FPGA
Architecture et programmation des circuits CPLD et des FPGAArchitecture et programmation des circuits CPLD et des FPGA
Architecture et programmation des circuits CPLD et des FPGA
 

Mehr von Peronnin Eric

Mehr von Peronnin Eric (15)

Carte multifonction 2017
Carte multifonction 2017Carte multifonction 2017
Carte multifonction 2017
 
Relais bluetooth - Balance connectée
Relais bluetooth - Balance connectéeRelais bluetooth - Balance connectée
Relais bluetooth - Balance connectée
 
Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016
 
Transistors
TransistorsTransistors
Transistors
 
Diodes
DiodesDiodes
Diodes
 
Notions de semi conducteur
Notions de semi conducteurNotions de semi conducteur
Notions de semi conducteur
 
Quadripôles
QuadripôlesQuadripôles
Quadripôles
 
Transmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfertTransmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfert
 
Dipôles
DipôlesDipôles
Dipôles
 
Conception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCMConception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCM
 
Réalisation d'un Thermomètre électronique - Présentation enfants
Réalisation d'un Thermomètre électronique -  Présentation enfantsRéalisation d'un Thermomètre électronique -  Présentation enfants
Réalisation d'un Thermomètre électronique - Présentation enfants
 
Conception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulteConception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulte
 
Langage vhdl
Langage vhdlLangage vhdl
Langage vhdl
 
Opérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentielsOpérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentiels
 
Codage de l'information
Codage de l'informationCodage de l'information
Codage de l'information
 

Kürzlich hochgeladen

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Kürzlich hochgeladen (16)

CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 

Microcontrôleur

  • 2. www.geii.eu 2 Microcontrôleurs Microprocesseur  Microcontrôleur  Microprocesseur  Utilisé dans des systèmes capables d’exécuter de nombreuses tâches différentes  Ne peut fonctionner seul et s’insère dans une structure matérielle complexe intégrant : – de la mémoire vive et de la mémoire de masse, – un superviseur d’alimentation, – des périphériques variés (souris, clavier, carte vidéo, unité de stockage de masse)  Microcontrôleur  Dédié à une application spécifique  Intègre pratiquement tous les éléments nécessaires au traitement de cette application unique : System On Chip (ram, flash, timer, convertisseur, bus de communication …) 2
  • 3. www.geii.eu 3 Exemples d’application Produits de grande consommation  Matériels audio et vidéo  Interface avec l’utilisateur  Configuration de composants électroniques  Électroménager (four micro-ondes, machine à laver …)  Périphériques informatiques (souris, claviers, manette de jeu …) Domotique  Contrôle de température  Systèmes de surveillance, alarme  Systèmes d’éclairage Automobile  Fermeture centralisée  Réglages des sièges et rétroviseurs  Clignotants  Gestion des vitres électriques  … 3
  • 4. www.geii.eu 4 Choix d’un microcontrôleur Offre vaste avec des leaders  En 8 bits  PIC10, 12, 16 et PIC18 de Microchip (leader mondial)  Famille 8051 Intel  les AVR et ATMega d’Atmel (Arduino)  HC11 et HC08 de Freescale Semiconductor  En 16 et 32 bits  PIC32 de Microchip  ST7 (coeur ARM) ST Microelectronics  Tendance net à utiliser des cœurs ARM  DSP  microcontrôleur dédié au calcul numérique pour les applications audio et vidéo, asservissements de processus industriels 4
  • 5. www.geii.eu 5 Choix d’un microcontrôleur Critères de choix  Caractéristiques techniques du microcontrôleur  Besoin en puissance de calcul : famille 8, 16 ou 32 bits  Type de boîtier et caractéristiques de consommation  Périphériques embarqués  Disponibilités et prix  Outils de développement  Chaîne de développement (gestion de projet)  Compilateur C dédié et optimisé Par essence, les cross compilateurs sont rarement optimisés.  Outils de mise au point disponibles – Simulateur, – Debugger en circuit, – Émulateurs. 5
  • 6. www.geii.eu 6 Langages de développement Assembleur  Avantage  Code moins coûteux en mémoire (si on sait programmer) et donc potentiellement plus rapide.  Outil gratuit fourni par le fabricant du microcontrôleur.  Inconvénient  Plus difficile à maintenir et moins lisible. C  Avantage  Portabilité de certains algorithmes.  Pas d’apprentissage spécifique quant au langage du microcontrôleur choisi (les périphériques sont toujours à connaître).  Vitesse de développement accrue.  Inconvénient  Code parfois mal optimisé  surcoût par surclassement de la cible.  Coût de l’outil de développement pour une version optimisée. 6
  • 7. www.geii.eu 7 Que trouve-t-on à l’intérieur ? 7 CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 8. www.geii.eu ATmega48 à ATmega328P PIC18F2455 à PIC18F4550 Première page d’une datasheet de uC
  • 9. www.geii.eu 9 Périphériques de liaison avec l’extérieur Liaison avec le monde analogique  Convertisseur analogique/digital (CAN ou ADC).  Circuit PWM.  Comparateur de tension programmable. Bus de communication  Vers des composants électroniques  bus I2C et SPI.  Vers des modules électroniques distants  bus LIN et CAN (automobile).  Vers un terminal, un PC ou certains capteurs  USB et RS232C, RS485.  Vers l’internet  bus Ethernet, WIFI. 9
  • 10. www.geii.eu 10 Périphériques de liaison avec l’extérieur Liaison avec le monde digital  Port tout ou rien TTL/CMOS  entrées/sorties 5v ou 3,3v nécessitant une adaptation pour travailler avec d’autres niveaux de tension.  Compteur d’évènements  Périphériques de Comparaison/Capture. Intégration de capteurs  Température, champ magnétique, accélération. 10
  • 11. www.geii.eu 11 Périphériques internes Timers  Compteurs programmables indispensables à la gestion du temps  Pour la mesure de la durée d’un évènement.  Pour générer avec précision des signaux en sorties.  Pour imposer l’exécution périodique de certaines fonctions du programme. Contrôleur d’interruption  Prise en charge logiciel rapide d’évènements matériels internes ou externes. 11
  • 12. www.geii.eu 12 Vu de l’extérieur Différents boitiers Note : les broches d’entrées/sorties sont regroupées (ici 5 ports notés A, B, C, D et E) et sont souvent utilisées de plusieurs façons différentes : - comme simple entrée/sortie logique (Ex : I/O RC7) - affectée à un périphérique spécifique (Ex : RX) 12
  • 13. www.geii.eu 13 Le CPU : Core Processor Unit Généralement de type RISC  Reduced Instruction Set Computer  131 instructions pour la famille AVR d’Atmel.  35 instructions seulement pour les PIC16 Microchip.  Processeur RISC moins gourmand en surface de Silicium. Architectures internes variées  Cas des AVR Atmel  32 registres de travail internes R0 à R31.  Gestion continue de la mémoire.  Cas des PIC16 Microchip  1 registre de travail W.  Mémoire organisée en banques. 13
  • 14. www.geii.eu 14 Architecture mémoire Architecture de Harvard  Mémoires de programme et de données séparées  Application figée  mémoire de programme non volatile – technologie FLASH la plupart du temps pour les petites séries ou le développement. – technologie PROM (programmable une seule fois) pour les très grandes séries. – technologie EPROM pour de vieilles versions de uC. – Exemples : » ATmega328p (Arduino Uno) : 32K octets. » ATmega2560 (Arduino Mega) : 256K octets. » PIC18F4550 : 32K octets.  Données évoluant rapidement  mémoire vive, volatile – technologie SRAM (ram statique) pour les petites capacités (<64 ko) ; généralement le cas de uC 8 bits. – technologie SDRAM (ram synchrone dynamique) pour les grandes capacités : dans le cas des DSP et uC 16 ou 32 bits. – Exemples : » Atmega328p (Arduino Uno) : 2K octets. » ATmega2560 (Arduino Mega) : 8K octets. » PIC18F4550 : 2K octets. 14
  • 15. www.geii.eu 15 Architecture de Harvard 15 CPU Mémoire Flash, EPROM ou PROM  Programme Mémoire SRAM (uC 8 ou 16 bits) SDRAM (uC 32 bits)  Données (variables) Mémoire EEPROM  Paramètres de configuration
  • 16. www.geii.eu 16 Mémoire EEPROM Quelques points clés  Non volatile  conserve les données en cas de coupure de l’alimentation.  Présente dans de nombreux uC.  D’une capacité de 64 octets à quelques ko.  Exemples :  ATmega328p (Arduino Uno) : 1K octets.  ATmega2560 (Arduino Mega) : 4K octets.  PIC18F4550 : 256 octets. Utilisation  Importante pour la conservation de paramètres de configuration.  Mémorisation à l’abris des ruptures d’alimentation de certaines variables indispensables au fonctionnement du système. 16
  • 17. www.geii.eu 17 Cartographie mémoire de programme Mémoire de programme organisée en pages  4 premiers mots réservés au démarrage et vecteur d’interruption  Le uC exploite un registre d’état pour connaître la page en cours d’utilisation  les fonctions CALL et GOTO fournissent 11 bits d’adresse (au niveau du code machine)  le registre de page fourni 2 bits on obtient les 13 bits de PC Pile limitée à 8 niveaux  Utilisée uniquement pour les adresses de retour de fonctions
  • 18. www.geii.eu 18 Cartographie de la mémoire de données PIC16 4 banques mémoires mélangeant  Registres d’état du uC : présents dans toutes les banques  STATUS  PCLATH (page mémoire de programme)  Registres de périphériques  TMR0, PORTA, PORTB …  Variables utilisateurs  Zones nommées General Purpose Register
  • 19. www.geii.eu 19 Cartographie de la mémoire de programme (PIC18) Organisation linéaire  Le pointeur d’instruction PC est constitué de :  PCU : bits 20 à 16.  PCH : bits 15 à 8.  PCL : bits 7 à 0.  PCU et PCH sont accessibles indirectement via des registres spécifiques PCLATU et PCLATH.  PC est fixé par les instructions de branchement (GOTO, CALL). Vecteurs d’interruptions  Reset.  2 sources avec des niveaux de priorités différents. Pile  Elle dispose de 31 niveaux et est utile uniquement pour les adresses de retours de fonction. 19
  • 20. www.geii.eu 20 Cartographie de la mémoire de données (PIC18) Mémoire de données divisée en 16 banques  15 (au maximum) pour les variables utilisateurs.  1 (le haut de la banque 15) pour les registres de périphériques. Mode d’accès à une donnée  BSR indique la banque ciblée.  l’adresse de la donnée dans la banque est fournie par le code machine.
  • 21. www.geii.eu 21 Cartographie mémoire de données ATmega2560 La mémoire possède une organisation linéaire
  • 22. www.geii.eu 22 Debug – port JTAG Objectif de ces modules ?  Permettre la mise au point d’un programme avec le uC placé dans les conditions réelles d’utilisation, sur sa cible définitive  en plaçant des points d’arrêt.  en autorisant une exécution pas à pas.  en consultant et en modifiant les données en mémoire RAM ou en EEPROM.  en chargeant une mise à jour du programme. Alternative  Emulateur  Structure matérielle complexe remplaçant le uC sur sa cible définitive.  Plus souple que le debug en circuit.  Trace importante.  Points d’arrêt multiples.  Temps réel (grâce à l’utilisation de la trace).  Structure coûteuse. 22
  • 23. CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug Configuration Initiale Sécurité de fonctionnement RESET Chien de garde
  • 24. www.geii.eu 24 A la mise sous tension Grande diversité de fonctionnement d’un uC  Différentes horloges sont possibles.  Une surveillance du système peut être mise en place  Pour l’alimentation.  Pour le bon déroulement d’un programme.  Existence d’un registre de configuration initiale inscrit dans la mémoire FLASH de programme et lu à la mise sous tension (ou lors d’un RESET). 24
  • 25. www.geii.eu 25 Registre de configuration initiale Il donne la configuration de certains éléments du uC à la mise sous tension  Définition du type d’oscillateur utilisé.  Protection contre la lecture de certaines zones mémoires.  Protection en écriture de la mémoire de programme.  Activation du mode Debug.  Protection de la mémoire EEPROM.  Mise en place d’un chien de garde (Watch Dog Timer).  Mise en fonction d’un superviseur d’alimentation simplifié (Brown Out Reset).  Exploitation d’une temporisation de démarrage (Power Up Timer). 25
  • 26. www.geii.eu 26 Registre de configuration initiale Il donne la configuration de certaines caractéristiques du uC à la mise sous tension  Définition du type d’oscillateur utilisé.  Protection contre la lecture de certaines zones mémoires.  Protection en écriture de la mémoire de programme.  Activation du mode Debug.  Protection de la mémoire EEPROM.  Mise en place d’un chien de garde (Watch Dog Timer).  Mise en fonction d’un superviseur d’alimentation simplifié (Brown Out Reset).  Exploitation d’une temporisation de démarrage (Power Up Timer).
  • 27. www.geii.eu 27 Circuit d’horloge Une circuiterie offrant des possibilités variées  Horloge sans composant externe à partir d’un réseau RC interne  Peu stable et peu précis.  Très bon marché.  Horloge à base de Quartz externe  Accès à des fréquences élevées.  Excellente stabilité et précision.  Horloge exploitant un réseau RC externe  Plus précis que le modèle interne.  Meilleur marché qu’un quartz. Boucle à verrouillage de phase (PLL)  Permet d’obtenir une fréquence élevée en interne par la multiplication de la fréquence issue d’un oscillateur à quartz basse fréquence en externe  Intérêt : manipuler des basses fréquences à l’extérieur du uC et disposer d’une horloge haute fréquence en interne (facilité de mise en œuvre; rayonnement électromagnétique plus faible) Configuration par un registre dédié lu au moment du reset 27
  • 28. www.geii.eu 28 Exemple : Horloge des PIC16 4 modes possibles  Configuration par le registre Configuration Word placé à l’adresse 2007h de la mémoire programme  FOSC1:FSCO0 = 00  Low Power Crystal (LP) de 32kHz à 200kHz  FOSC1:FOSC0 = 01  Quartz standard (XT) de 200kHz à 4MHz  FOSC1:FOSC0 = 10  High Speed Crystal (HS) au-delà de 4MHz  FOSC1:FOSC0 = 11  Circuit RC (RC) 28
  • 29. www.geii.eu 29 Exemple : Horloge des ATmega2560
  • 30. www.geii.eu 30 Dispositifs de RESET Power Up Timer  Qu’est-ce que c’est ?  Système de temporisation imposant un délai d’attente avant la mise en fonction du CPU lors d’un RESET.  Intérêt ?  Laisser le temps à l’alimentation de se stabiliser (ce qui évite la mise en place d’une succession de RESET). Brown Out Reset  Qu’est-ce que c’est ?  Dispositif imposant un reset automatique lorsque la tension d’alimentation tombe sous un certain seuil pendant une durée minimale définie.  Intérêt ?  Eviter un disfonctionnement du CPU (plantage, saut aléatoire …). 30
  • 31. www.geii.eu 31 Dispositifs de RESET Chien de garde (Watch Dog Timer)  Qu’est-ce que c’est ?  Dispositif effectuant automatiquement un RESET s’il n’a pas été réinitialisé avant une durée précise (fixé par le programmeur ou structurellement par les concepteurs du uC).  Intérêt ?  Remettre en sécurité le système lors d’un plantage.  Comment fonctionne-t-il ?  En fonctionnement normal, le programme remet à 0 le chien de garde de façon périodique ce qui évite qu’il se déclenche  cela implique une programmation particulière.  En cas de plantage, de boucle infinie, d’erreur de programmation empêchant de repasser par le point (ou les points) de remise à 0 du chien de garde, celui-ci finit par se déclencher et réalise un RESET du système. 31
  • 33. www.geii.eu 33 Interruptions Utilité  Traiter aussi vite que possible un évènement au moment de son apparition. Quels sont les types d’évènements traités ?  Sollicitation externe directe  Un front montant ou descendant sur une broche d’entrée digitale.  Arrivée d’une information sur un bus de communication.  Détection par un comparateur programmable d’un seuil de tension par un signal externe.  Toutes sortes en provenance de périphériques internes  Dépassement de capacité du compteur d’un timer.  Atteinte du seuil programmé du compteur d’un timer.  Fin d’une conversion analogique/digitale. 33
  • 34. www.geii.eu 34 Interruptions Comment ça marche ?  L’interruption provoque l’arrêt temporaire du programme principal en cours d’exécution.  A la fin de l’exécution de l’instruction en cours, le CPU oriente l’exécution vers le vecteur d’interruption adapté à l’évènement à traiter  Certains uC lancent directement un sous-programme spécifique pour chaque source d’interruption.  Sur d’autres uC, il faut rechercher la source et orienter l’exécution en conséquence.  Un sous programme spécifique à l’interruption est alors lancé par le uC. Note : l’adresse de l’instruction qui devait être exécutée avant la requête d’interruption est enregistrée dans la pile (idem CALL)  Fin de l’exécution du sous-programme d’interruption  La main est rendue au programme principal qui poursuit son exécution. 34
  • 35. www.geii.eu 35 Interruptions Différences entre les microcontrôleurs  PIC16F :  Sources d’interruptions multiples réunies sur un seul vecteur d’interruption  on détecte l’origine de l’interruption dans l’unique sous-programme en regardant l’état d’indicateurs.  PIC18F :  Sources d’interruptions multiples pouvant cibler deux vecteurs d’interruptions différents en fonction du niveau de priorité qu’on leur attribue.  2 sous-programmes d’IT  Utilisation des indicateurs pour connaître la source.  ATmega2560 :  Autant de vecteurs d’interruptions que de sources d’interruptions.
  • 36. Les Interruptions Cas des PIC16F CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 37. www.geii.eu 37 Interruptions du PIC16F87x Elaboration du signal d’interruption  11 sources d’interruption provenant de périphériques.  3 sources d’interruptions globales  T0IF : indicateur de dépassement de capacité du timer 0.  INTF : indicateur de demande d’interruption par un signal externe.  RBIF : indicateur d’interruption par changement d’état sur le port B. 37
  • 38. www.geii.eu 38 Interruptions du PIC16F87x Elaboration du signal d’interruption  Suffixe F des signaux : indicateur d’interruption provenant d’un périphérique.  Suffixe E des signaux : bit d’autorisation de prise en charge de l’interruption du périphérique associé.  PEIE : contrôle la prise en charge des interruptions en provenance des périphériques internes.  GIE : autorisation globale des interruptions. 38
  • 39. www.geii.eu 39 Interruptions du PIC16F87x Registres associés au contrôleur d’interruptions  INTCON contient les indicateurs d’interruptions généraux et les autorisations associées.  PIR1 et PIR2 contiennent les indicateurs d’interruptions des périphériques.  PIE1 et PIE2 sont les pendants de PIR1 et PIR2. Ils contiennent les autorisations d’interruptions des périphériques. 39
  • 40. www.geii.eu 40 Interruptions du PIC16F87x Point de vue logiciel  Initialisation des interruptions  Autorisation globale GIE = 1  Mise à 1 des autorisations nécessaires pour l’interruption à traiter – PIE = 1 si c’est un périphérique. – mise à 1 de l’autorisation de l’interruption choisie.  Programmation de la fonction d’interruption à l’adresse 0004  Sauvegarde des registres et indicateurs importants.  Recherche de l’indicateur d’interruption mis à 1.  Orientation vers le traitement adapté.  Remise à 0 de l’indicateur de l’interruption qui vient d’être traitée.  Restitution des registres et indicateurs importants. 40
  • 41. Les Interruptions Cas des ATmega2560 CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 42. www.geii.eu 42 Interruptions de l’ATmega2560 Extrait
  • 43. www.geii.eu 43 Interruptions de l’ATmega2560 Traitement  A chaque adresse de vecteur d’interruption, on effectue un saut vers un sous-programme
  • 44. www.geii.eu 44 Interruptions de l’ATmega2560 Emplacement des Vecteurs d’interruptions variable en fonction de la configuration initiale du microcontrôleur Usage des interruptions  Chaque périphérique possède des registres permettant de configurer son comportement en matière d’interruption  Pour une fonctionnalité de périphérique, il existe au moins 1 bit pour spécifier si l’interruption est autorisée ou non  bit Enable
  • 45. www.geii.eu 45 Interruptions de l’ATmega2560 Exemple : registre d’autorisation des interruptions associé au Timer 0 des ATmega2560 3 fonctionnalités différentes
  • 46. Entrées/Sorties tout ou rien Généralités CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 47. www.geii.eu 47 Entrées/Sorties tout ou rien Entrées/Sorties tout ou rien  entrées/sorties logiques, digitales ou numériques.  Un registre permet de préciser la direction de la broche : soit entrée, soit sortie. Sorties  Niveau de tension fixé : généralement à Vcc, la tension d’alimentation du uC.  Courant maximum limité : très souvent entre 5mA et 40mA (et encore, pas toutes les sorties actives en même temps). Entrées  Sur trigger de Schmitt (petit cycle d’hystérésis autour de Vcc/2)  Entrée < Vcc/2 : niveau logique 0.  Entrée > Vcc/2 : niveau logique 1.  Possibilité assez souvent d’utiliser une résistance de pull-up (voire pull- down) programmable.
  • 48. Entrées/Sorties tout ou rien Cas des ATmega Atmel CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 49. www.geii.eu 49 Entrées/Sorties sur les ATmega Atmel Structure interne schématisée d’une entrée/sortie Broche Résistance de Pull-Up Direction Buffer de sortie Mémoire de sortie Mémoire d’entrée
  • 50. www.geii.eu 50 Entrées/Sorties sur les ATmega Atmel Registre de configuration générale  PUD = 0 pour autoriser l’usage des résistances de pull-up. Registre de sortie  Ecriture du PORTx pour écrire en sortie si la broche est configurée en sortie.
  • 51. www.geii.eu 51 Entrées/Sorties sur les ATmega Atmel Registre de direction  DDxn = 1 pour une sortie ; 0 pour une entrée. Registre d’entrée  Permet de connaître l’état d’une entrée si la broche est configurée en entrée.
  • 53. www.geii.eu 53 Conversion Analogique/Numérique Le convertisseur Analogique/Numérique (CAN) permet de connecter des éléments analogiques  Il fournit en sortie une image sur N bits de la tension d’entrée.  sont les tensions de référence du convertisseur.  si alors  si alors  Tension la plus petite pouvant être convertie, le LSB :  Exemple de conversion avec et  si , on aura ADC Sortie S sur N bits LSB : Least Significant Bit
  • 54. www.geii.eu 54 Technologie des CNA en bref Technologie Flash  Conversion reposant sur la comparaison du signal d’entrée avec des niveaux de tension répartis linéairement entre 0 et Vref et fixés par un vaste réseaux de ponts diviseurs.  Pour N bits en sortie, il faut 2N comparateurs.  Conversion rapide mais coûteuse (grande surface de Silicium requise). Source de l’image (Analog Device. Document : MT-020.pdf)
  • 55. www.geii.eu 55 Technologie des CNA en bref Technologie à Approximations successives (type SAR)  Méthode reposant sur l’algorithme consistant à trouver un nombre entre 0 et 100 = méthode dichotomique.  Il faut un cycle d’horloge par bits de résolution :  Au lancement de la conversion, le bloc SHA mémorise la tension à l’entrée (stockage dans une capacité).  A chaque cycle d’horloge, le système de contrôle estime la grandeur de sortie par dichotomie en comparant le signal d’entrée à la conversion en analogique de la sortie estimée.  Méthode assez lente mais peu coûteuse, raison pour laquelle on la trouve dans les microcontrôleurs. Source de l’image (Analog Device. Document : MT-021.pdf)
  • 56. www.geii.eu 56 CAN dans un microcontrôleur Partie CAN seule (hors multiplexage éventuel des entrées)  CAN de type SAR en général  il possède donc une horloge rythmant le processus d’approximations successives ( ici).  Différentes tensions de référence possibles :  issues d’une référence de tension interne ou externe,  issues des tensions d’alimentation du uC ( N < 10 bits).  Présence d’une sortie indiquant la fin de la conversion. ADC Sortie S sur N bits Fin conversion Configuration
  • 57. www.geii.eu 57 CAN dans un microcontrôleur Qualité de la conversion très dépendante :  de la nature des références de tension :  bonne avec une référence interne ou externe,  résolution limitée à 10 bits si les références découlent de l’alimentation du uC (amélioration possible avec certaines précautions).  du design du PCB à cause du report du bruit numérique sur les étages de conversion.  Avoir à l’esprit le niveau du LSB : Temps de conversion dépendant :  de la résolution souhaitée (technologie SAR  N bits  N cycles),  de la fréquence maximale admissible pour Temps entre 2 conversions successives/multiplexées :  dépend de l’impédance de la source.
  • 58. www.geii.eu 58 CAN dans un microcontrôleur Fonctionnalités spécifiques à certains microcontrôleurs  Prise en compte du résultat au moment d’une interruption :  la fin de la conversion déclenche une interruption  possibilité de lancer une conversion sans attendre le résultat.  Auto-conversions (mode auto trigger) :  la conversion est déclenchée périodiquement par un timer  la prise en compte du résultat se fait par interruption,  plus généralement, une condition spécifique sur un périphérique peut lancer une conversion  le programme principal se limite à prendre en charge les résultats de conversion lorsqu’ils apparaissent (par interruption).  Couplage de deux entrées simples pour former une entrée différentielle.  Mise en veille du uC durant le processus de conversion pour minimiser le bruit induit par son fonctionnement.
  • 59. Conversion Analogique/Digitale Cas des ATmega48 à 328 CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 60. www.geii.eu 60 Synoptique du CAN des ATmega328 Multiplexeur permettant de choisir une entrée parmi plusieurs. Plusieurs références possibles CAN SAR 10 bits Signal d’interruption
  • 61. www.geii.eu 61 Registres associés au CAN des ATmega328 Choix du signal de référence Choix du signal d’entrée Entrées externes Capteur de température interne Référence de tension interne ADLAR : Justification de la sortie (voir description des registres de sortie)
  • 62. www.geii.eu 62 Registres associés au CAN des ATmega328 Diviseur de fréquence pour fixer l’horloge du CAN entre 50kHz et 200kHz pour la résolution maximale. 1 pour mettre en fonction de le CAN. Mettre à 1 pour lancer une conversion. Reste à 1 tant que la conversion est en cours. 1 pour des conversions avec auto- déclenchements (voir suite). Mis à 1 à la fin d’une conversion. Retourne à 0 après traitement de l’interruption du CAN. A mettre à 1 pour autoriser les interruptions à l’issue d’une conversion. Carte avec un quartz à 16MHz
  • 63. www.geii.eu 63 Registres associés au CAN des ATmega328 Le convertisseur fournit un résultat sur 10 bits : ADC0 à ADC9. ADC0 est le bit de poids faible (LSB) – ADC9 le bit de poids fort (MSB). Ces 10 bits sont stockés dans ADCH (poids fort) et ADCL (registre de poids faible). En C, on peut utiliser ADC sur 16 bits qui regroupe ADCH:ADCL. Pour utiliser les 10 bits : mettre ADLAR à 0 et utiliser ADC (0 à 1023). Pour se limiter à 8 bits, on élimine ADC1 et ADC0, les bits de poids faibles de la conversion : il faut mettre ADLAR à 1 et utiliser ADCH (0 à 255).
  • 64. www.geii.eu 64 Registres associés au CAN des ATmega328 Fonctionnalité d’auto-déclenchement Choix de la source d’auto-déclenchement. Bit associé à un autre périphérique (Comparateur Analogique) et pris en compte seulement si l’ADC est éteint. Lorsque le bit ADATE (Auto Trigger Enable; registre ADCSRA) est à 1, la source sélectionnée par ADTS2:ADTS1 déclenche les conversions on récupère le résultat en gérant l’interruption associée au CAN.
  • 65. www.geii.eu 65 Utilisation du CAN de l’ATmega328 Détermination du prescaler (bits ADPS) pour espérer une résolution de 10 bits lorsqu’on utilise un quartz à 16MHz :  il faut  une seule possibilité puisqu’il faut prendre la valeur maximale pour le prescaler. Exemple de configuration des autres registres de l’ADC  Cahier des charges  Entrée sur ADC2.  Référence 1.1v  Résultat sur 10 bits.  Traitement du résultat par interruption.
  • 67. www.geii.eu 67 Timers Qu’est ce que c’est ?  Un compteur programmable pouvant être associé à  Un comparateur.  Un circuit d’horloge interne ou externe.  Un prescaler (diviseur de fréquence placé en amont).  Un postscaler (diviseur de fréquence placé en aval). Utilité  Permet l’exécution à intervalle de temps régulier d’une interruption.  Utilisable pour le comptage d’évènements externe.  Outil de mesure temporelle.  Autorise la génération d’un signal dont le rapport cyclique peut être programmé (PWM = Pulse Width Modulation). 67
  • 68. Timers Cas des ATmega48 à 328 CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 69. www.geii.eu 69 Timers Les Timers des ATmega328  1 timer 8 bits (Timer0) avec PWM  1 timer 16 bits (Timer1) avec PWM  1 timer 8 bits (Timer2) avec PWM et entrée asynchrone Timers des ATmega2560  Ajout de 3 timers 16 bits (Timer 3, 4, 5) avec PWM 69
  • 70. www.geii.eu 70 Synoptique du Timer0 des AVR Atmel Signaux PWM Horloge de comptage : interne ou externe Comparaison Imposer une butée au compteur. Générer un signal PWM. Générer une interruption. Interruptions sur comparaison Interruption sur Overflow Compteur du timer
  • 71. Bus de communication Inter composants I2C et SPI CPU Mémoire Flash  Programme Mémoire SRAM  variables Mémoire EEPROM  config Circuit de RESET Horloge Bus SPI Bus I2C USART JTAG ADC 10bits 8 entrées Contrôleur d’interruptions Timers 2 de 8 bits 1 de 16 bits Compare /capture PWM I/O Ports Debug
  • 72. www.geii.eu 72 Bus SPI et I2C Bus inter-composants  SPI : bus Motorola.  I2C : bus introduit par Philips. Spécificités  SPI : nécessite la sélection préalable du composant ciblé par un signal Chip Enable.  I2C : bus série avec adressage  la première information qui circule sur le bus est l’adresse du composant ciblée. Au niveau du uC  Sur le bus SPI comme sur le bus I2C, le uC peut être maître ou esclave. 72
  • 73. www.geii.eu 73 Bus I2C Utilisé par de très nombreux fabricants de composants pour s’interfacer avec  D’autres microcontrôleurs.  Des expandeurs de bus (entrée/sortie 8 bits).  Des convertisseurs A/N et N/A.  Des mémoires (RAM, EPROM, EEPROM, etc.).  Des récepteurs infra-rouge (télécommande RC5).  Des capteurs de température.  Des circuits audio (égaliseur, contrôle de volume, etc.).  Des drivers d'affichage LCD ou à LEDs.  Des décodeurs télétexte.  Des chargeurs de batterie.  Des contrôleurs d’alimentations.  Des PLL pour tuner HF Bus 2 signaux.  Des horloges temps réels (Real Time Clock). Il exploite 2 signaux  SCL : le signal d’horloge du bus.  SDA : le signal de données bidirectionnel. 73
  • 74. www.geii.eu 74 Bus I2C Eléments de base de la communication I2C  Démarrage de la communication (START Condition)  Arrêt de la communication (STOP Condition)
  • 75. www.geii.eu 75 Bus I2C Interrogation d’un périphérique I2C  Envoi d’un bit de START.  Envoi de l’adresse du périphérique sur 7 bits.  Spécification d’une lecture (bit R/W à 1).  Le périphérique se signale par un accusé réception (Acknowledge).  Envoi d’un premier octet par le périphérique.  Accusé réception par le uC.  Envoi d’un octet par le périphérique.  Pas d’accusé réception par le uC.  Envoi d’un bit de STOP par le uC
  • 76. www.geii.eu 76 Bus I2C Ecriture sur un périphérique I2C  Initiation de la communication par l’uC.  Envoi de l’adresse sur 7 bits du périphérique ciblé par l’uC. Un 8ième bit indique un ordre d’écriture.  Accusé réception du périphérique.  Ecriture d’un octet par l’uC.  Accusé réception par le périphérique.  Nouvelle écriture …avec accusé réception …  Fin de la communication signifiée par une condition STOP.
  • 77. www.geii.eu 77 Bus I2C Ce qui donne les signaux suivants
  • 78. www.geii.eu 78 Bus I2C … au niveau matériel  Les résistances Rp, indispensables, sont des résistances de tirage au VCC  Cela permet d’exploiter des périphériques fonctionnant sous une tension différente de celle du uC.  Les résistances Rs sont des résistances de protection  Protègent les périphériques entre eux contre les surtensions issues de l’un d’eux.