Académique Documents
Professionnel Documents
Culture Documents
MICROCONTROLEURS
GENERALITES
RESSOURCES
F. COLAMARTINO
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
I- GENERALITES
Qu'est ce qu'un microcontrôleur?
Un MICROCONTROLEUR est un COMPOSANT, ("Circuit Intégré" = C.I. ou "Integrated Circuit"
= I.C.), rassemblant en un même boîtier (SINGLE-CHIP ou MONO-CHIP) des fonctionnalités
diverses, autour d'un « COEUR » constituant l'unité centrale du micro.
Ce COEUR caractérise la FAMILLE (PIC 16F/18F/24F… de MICROCHIP, 68HC11/68HC05 de
MOTOROLA, ST6 de STMICROELECTRONICS, etc ...)
Types de boîtier ("package"):
+5V D +5V E
H +5V
R2 R3
U1 10k 10k
R6
POT 2 15
3 RA0/AN0 RC0/T1OSO/T1CKI 16
RA1/AN1 RC1/T1OSI/CCP2
connecteur RJ12 4
5 RA2/AN2/VREF- RC2/CCP1
RA3/AN3/VREF+ RC3/SCK/SCL
17
18 SW1
6 23 PUSHB UTTON
RA4/T0CKI RC4/SDI/SDA
J4 C 7
RA5/AN4/SS RC5/SDO
RC6/TX/CK
24
25 TX
SW2
SWITCH
33 26 RX
6 RB6/PGC 34 RB0/INT RC7/RX/DT
5 RB7/PGD 35 RB1 19
4 36 RB2 RD0/PSP0 20
3 37 RB3/PGM RD1/PSP1 21
2 +5V RB4 RD2/PSP2
38 22
1 R1 39 RB5 RD3/PSP3 27 +5V
10K 40 RB6/PGC RD4/PSP4 28
RJ12 RB7/PGD RD5/PSP5 29
/MCLR 1 RD6/PSP6 30 220V
C1 MCLR/VPP RD7/PSP7 R4 LS1
13 8 R
14
OSC1/CLKIN RE0/RD/AN5
RE1/WR/AN6
9
10
F +5V
3
5
22p Y1 OSC2/CLKOUT RE2/CS/AN7 4
VDD
VDD
VSS
VSS
20MHz 1
C2
2 MG1
1
D1 D2
11
32
12
31
1k
2N2222
G
2
MOTOR AC
CONNECTOR DB9
U3
1
RX 13 12 6
8 R1IN R1OUT 9 2
R2IN R2OUT 7
TX 11 14 3
10 T1IN T1OUT 7 8
T2IN T2OUT C5
4
+
+ C3 1 2 9
CP C1+ V+ 5
3
4 C1- CP
C2+ C6 P1
GND
VCC
+ C4 5 6
CP C2- V-
+
15
16
MA X232A/SO CP
I +5V
F. COLAMARTINO 1 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
Exemples d'entrée:
- partie D : lecture de l'état d'un bouton-poussoir.
- partie E : lecture de l'état d'un interrupteur.
- Autres possibilités: lecture de l'état d'un capteur (proximité, présence, fin de course, …).
Exemples de sortie:
- partie F :: commande d'une LED.
- partie G : commande d'un relais déclenchant un moteur (ou autre).
- Autres possibilités: commande de TRIAC (système de puissance, chauffage, électrovanne, …),
commande d'afficheurs (7 segments, LCD,…), commande de validation, …
Toutes ces E/S sont des E/S NUMERIQUES (DIGITALES) ou "TOUT OU RIEN" (TOR).
C'est-à-dire qu'on lit (entrée) ou que l'on impose (sortie) des niveaux logiques 0 (0V) ou 1 (VCC).
RESET ou MCLR
F. COLAMARTINO 2 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
ATTENTION : la plupart des E/S peuvent être associées à des modules internes (voir ressources
internes). Généralement ces modules sont désactivés au RESET (à la mise sous tension) mais
certaines E/S peuvent être par défaut associées à une autre fonction.
Exemple : certaines entrées des PIC sont souvent configurées par défaut en entrée analogique
(associées au module ADC) ou en entrée de comparateurs analogiques (module comparateur).
Fonction 1 Fonction 2
On devra préciser dans les bits de configuration du microcontrôleur le type de Quartz utilisé (LP,XT,HS).
L'oscillateur de type LP est à utiliser pour optimiser la consommation de certains systèmes embarqués
qui ne nécessitent pas un fonctionnement rapide.
Oscillateur RC externe:
Ce type d'oscillateur permet d'économiser sur le coût du système mais ne peut être utilisé que pour des
systèmes ne nécessitant pas une grande fréquence et une grande précision (incertitudes des composants)
et tolérant une dispersion et une dérive de la fréquence (dérive selon la tension ou la température).
Oscillateur RC interne:
Le PIC18F4520 possède un oscillateur RC interne à 31kHz
F. COLAMARTINO 4 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
Oscillateur externe:
L'oscillateur peut également provenir d'un système externe (oscillateur forcé).
F. COLAMARTINO 5 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
Quelle est la différence avec un microprocesseur?
Dans un MICROPROCESSEUR (comme le 6809 par ex.), les connexions aux broches (pins ou
"pattes") du composant sont majoritairement réservées aux BUS (Adresses, Données, Contrôles).
Elles sont dans un MICROCONTROLEUR réservées aux ENTREES/SORTIES (E/S), ports
parallèles, liaisons séries (USART/SCI, SPI, I2C,…), ADC (Analog-to-Digital Converter), etc...
Le MICROPROCESSEUR est l'élément indispensable d'une configuration que le
concepteur/développeur va adapter à son besoin, en lui adjoignant des fonctions externes (circuits
intégrés, cartes, etc...) à la manière d'un MECANO.
Le MICROCONTROLEUR (au moins en mode MONO-CHIP) est figé dans sa configuration.
Le concepteur/développeur doit donc CHOISIR le composant dans l'offre faite par les constructeurs.
Ce choix technique est un élément déterminant dans la gestion de projet d'un développement, qui doit
intégrer d'autres paramètres: la connaissance d'une famille, la disponibilité d'outils de développement,
les coûts des composants, l'intérêt d'un investissement éventuel vers une famille ou un micro récent, la
pérennité, etc ...
Remarque: Certain microcontrôleur peuvent être configuré pour fonctionner comme un microprocesseur.
Le MODE ETENDU MULTIPLEXE (Extended Multiplexed Mode), permettant une extension des
ressources externes par la génération d'un BUS ADRESSE et d'un BUS DONNEES assimilant le
microcontrôleur à un microprocesseur (ex: le 68HC11 de MOTOROLA).
Avantages d'un microcontrôleur:
BUS ADRESSES
BUS DONNEES
CONTROLES
Décodages
Reset
Watch dog
…
TIMER
PORTS
SCI
UC
OU
RAM PROM
F. COLAMARTINO 6 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
II-STRUCTURE/ARCHITECTURE D'UN PROCESSEUR/CONTROLEUR
Le terme "architecture" est improprement utilisé pour 2 caractéristiques différentes des P/C.
II-1- STRUCTURE D'UN PROCESSEUR/CONTROLEUR
On parle d' "architecture" ou de "structure" d'un P/C pour le mode de dialogue de l'UAL avec
la(les) mémoire(s). Il existe 2 types de "structure" d'un C:
structure de Von Neuman
structure de Harvard
F. COLAMARTINO 7 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
De plus, les "cross-assembleur C" permettant de traduire du code C en code assembleur sont plus
simples à développer avec l'architecture RISC.
F. COLAMARTINO 8 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
II- RESSOURCES D'UN CONTROLEUR
II-1- GENERALITES
Les FONCTIONS ou RESSOURCES caractérisent le microcontrôleur dans la famille (PIC 16F877A,
PIC 18F4520, 68HC11A1, 68HC705C8, 16C65A, etc...)
Les ressources basiques sont:
- la PROM = "Programmable Read Only Memory" = "mémoire morte"
qui va contenir le programme, suite d'instructions qui seront exécutées séquentiellement par
l'unité centrale du microcontrôleur. Cette mémoire est non volatile (reste si coupure d'alim).
Cette zone programme peut être:
- en ROM (masquage constructeur)
Production en grande série (frais fixes importants, délais)
- en OTP ( One Time Programmable, zone programmable par l'utilisateur, une seule fois).
Production, petites séries.
- en EPROM (zone programmable par l'utilisateur et effaçable par UV)
Phase de développement, prototypes, remise à niveau produit coûteux.
- en EEPROM (idem effaçable électriquement) possibilité de mise à jour.
Utilisée pour sauvegarder des données (paramètres, code secret, calibration, …)
- en FLASH (idem EEPROM). Possibilité mise à jour in situ.
Une fois programmée, la PROM n'est plus accessible qu'en lecture ("Read Only Memory"
= mémoire à lecture seule) sauf pour l'EEPROM et la FLASH où on peut initialiser ou
modifier certaines données en suivant une procédure ce qui implique un temps d'écriture
beaucoup plus long que dans une RAM (mémoire à accès direct en écriture) : à éviter.
- la RAM = "Random Access Memory" = "mémoire vive"
qui va contenir les variables de l'application, être utilisée pour la pile, les tables de données,
etc... Cette mémoire est volatile (s'efface si coupure d'alimentation).
- les PORTS d'entrées/sorties. Bits rassemblés ou non en octets disponibles comme entrée, sortie
ou bidirectionnels (c'est-à-dire programmable en entrée ou en sortie).
- le TIMER, élémentaire ou sophistiqué, pratiquement tous les microcontrôleurs disposent au
moins d'un TIMER utilisable pour fixer des intervalles de temps (base de temps) ou pour
générer un signal périodique en sortie (mode Compare) ou mesurer des intervalles de temps ou
la fréquence d'un signal en entrée.
- Le WATCH DOG ("chien de garde") ou COP "Computer Operating Properly"( COP=
"policier") est également fréquemment A BORD des microcontrôleurs, activé il permet un
"AUTO-RESET" du circuit en cas de "PLANTAGE" si on ne le "réarme" pas régulièrement.
D'autres fonctions sont quelques fois disponibles:
- ADC ("Analog to Digital Convertor") = entrées analogiques, convertisseurs généralement
sur 8, 10 ou 12 Bits. Plus rarement on trouve des DAC = sorties analogiques.
- PWM (Pulse Width Modutator), utilisé pour commander des systèmes de puissance tel des
hacheurs en pont pour la commande de moteurs.
- Des bus de communication (voir 2ème partie MICROCONTROLEURS 2)
- la SCI (Serial Communication Interface) ou UART (Universal Asynchronous Receiver
Transmitter), permet d'exploiter une liaison ASYNCHRONE adaptable en RS232.
Autre appellation: SIO, Serial Input Output.
- la SPI (Serial Peripheral Interface), permettant la connexion de composants de
ressources externes selon le protocole SPI de type liaison synchrone (EEPROM, ADC,
HORODATEURS, …).
- des interfaces de BUS (I2C, CAN, LIN, USB, Ethernet, …)
- autres: SUPERVISEUR de tension d'alimentation, JTAG entrée sortie série utilisable pour
le test et le développement, DTMF gestion des tonalités bifréquences téléphoniques, etc...
F. COLAMARTINO 9 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
II-2- RESSOURCES DU PIC 18F4520
Les caractéristiques et les ressources du PIC18F4520 de MICROCHIP sont indiqués dans la
dernière colonne de ce tableau :
F. COLAMARTINO 10 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
Architecture interne du microcontrôleur PIC 18F4520 de MICROCHIP :
F. COLAMARTINO 11 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
On y trouve :
- l'UAL = Unité Arithmétique et Logique (ALU=Arithmetic and Logic Unit) ainsi que le
multiplicateur 8*8bits travaillant avec le registre/accumulateur de travail W (ou WREG).
C'est le cœur du micro qui décode les instructions du programme à exécuter. Ces instructions
sont décodées de façon séquentielle (un programme s'exécute toujours séquentiellement).
Le PIC18F4520 possède un multiplicateur 8*8bits intégré.
Le tableau ci-dessous donne les différences de temps de calcul pour des micros n'ayant pas de
multiplicateur intégré (routine de multiplication logicielle).
La pile sert à stocker l'adresse de retour lors d'appel à sous-programme et à la récupérer lors de
retour de sous-programmes.
On peut donc théoriquement appeler jusqu'à 31 sous-programmes (hors interruptions).
F. COLAMARTINO 12 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
- la mémoire de données de1536 octets (octets libres + les registres internes du micro).
1536 = 6 "banks" de 256 (FFh) octets
GPRs = General Purprose Registers = registres ou cases mémoire "vides". C'est là où seront
stockées les données.
F. COLAMARTINO 13 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
- les ports d'E/S (PORTA, PORTB, PORTC, PORTD, PORTE) reliés aux broches.
- Les autres périphériques (TIMERS, ADC, MODULES CCP, USART, MSSP,…)
Il y a aussi une mémoire de donnée EEPROM permettant de sauvegarder certaines données
(données d'étalonnage, code secret, …) non volatiles.
F. COLAMARTINO 14 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
III- OUTILS DE DEVELOPPEMENT
Pour développer une application à base de microcontrôleur, il faut:
un logiciel de programmation
un système programmateur/debugger (matériel)
III-1- LOGICIEL DE PROGRAMMATION
Le logiciel de programmation est en général une "plate-forme" informatique ou IDE (integrated
development environment = Environnement de Développement Intégré) où l'on peut définir:
- Le matériel programmateur/debugger que l'on utilise.
- La configuration de l'environnement (C utilisé, bits de configuration, mode de
programmation…)
- Le fichier programme (.c ou .asm)
- Les fichiers liés au fichier programme (linker)
Rq: Les logiciels utilisés en TP sont MPLAB X associé au compilateur XC8 de MICROCHIP.
Autre possibilité: MPLAB IDE associé au compilateur C18 de MICROCHIP.
Langage C:
C'est un langage de haut niveau.
Il faut disposer d'un cross – assembleur C.
On développe le programme en C. Le logiciel permet alors de générer directement un code
exécutable. Certains logiciels permettent de générer le programme assembleur correspondant (en
général il désassemble le programme exécutable).
On peut éventuellement insérer des lignes de programme assembleur dans un programme C.
L'inconvénient est que le code n'est pas nécessairement optimisé.
De plus le fonctionnement pas à pas est délicat (une ligne C correspond souvent à plusieurs lignes
assembleur).
L'avantage est la souplesse et l'universalité du langage.
Rq: MICROCHIP met à disposition un cross-compilateur XC8 pour les PIC 8 bits tel que la série
18F, un cross-compilateur XC16 pour les PIC 24F et les DSPIC 30F et 33F et un cross-compilateur
C32 pour les DSPIC 32M. Tous fonctionnant sur MPLAB X.
Ces logiciels sont téléchargeables sur le site de www.microchip.com en version non optimisée
(l'optimisation du code fonctionne pendant 60 jours).
F. COLAMARTINO 15 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
III-2- MATERIEL de DEVELOPPEMENT
Le matériel de développement se compose d'un ordinateur, d'une interface (pour nous ICD3 de
MICROCHIP) et de la carte cible comportant le C.
Chaque constructeur (ou d'autres partenaires ou indépendants) développe des kits d'évaluation pour
certain de leur C. Ces kits disposent d'éléments pour communiquer avec le PC mais il faudra de
toute façon passer à l'application en développant votre propre carte.
Sauf dans le dernier cas, une fois le programme développé, il faudra programmer le composant avec
un programmateur puis le placer sur la carte cible qui deviendra indépendante.
F. COLAMARTINO 16 / 17
INSA Centre Val de Loire – Département GSI - 3ème année – microcontrôleurs 1 (MIC1)
cours – microcontrôleur – généralités/ressources
En résumé :
La difficulté principale dans le développement des microcontrôleurs est qu'il faut faire le lien entre
les différentes parties (hardware, software, ressources internes du microcontrôleur/Datasheet) et
savoir utiliser les documentations techniques et les outils de développement (debugger).
Doc/cours
Langage C
Schéma
de la carte
Doc outils
Datasheet de
du µC dévelop-
pement
MPLABX
/XC8
Programme
µC Interface
CARTE CIBLE ICD3
F. COLAMARTINO 17 / 17