Vous êtes sur la page 1sur 82

Rpublique Algrienne Dmocratique et Populaire

Ministre de lEnseignement Suprieur et de la Recherche Scientifique

Universit Mohamed Khider Biskra


Facult des Sciences et de la Technologie

Dpartement de Gnie Electrique
Filire dAutomatique :
:

Support de cours du module :

Microcontrleurs
Prsente par : MEGHERBI Hassina

Prparer par : Dr. Hassina MEGHERBI

Pour les tudiants de1er anne Master,


Option : - Automatique avance;
- Gnie des systmes industriels.

Anne universitaire : 2013-2014


Table des matires
Chapitre 1 : Gnralit sur les mmoires.................................................................................... 1
1 Terminologie et Fonctionnement Gnrale des Mmoires:............................................ 1
1.1 Dfinition : .............................................................................................................. 1
1.2 Structure gnrale dune mmoire : ........................................................................ 1
1.3 Caractristiques :..................................................................................................... 2
1.4 Organisation interne de la mmoire:....................................................................... 2
2 Les Diffrentes Types de Mmoires ............................................................................... 3
2.1 Les Mmoires Volatiles : ........................................................................................ 3
2.2 Les Mmoires Non-Volatiles :................................................................................ 4
3 Application des mmoires ROM .................................................................................... 7
Chapitre 2 : Prsentation Gnrale dun Microordinateur.......................................................... 9
1 Dfinition d'un micro-ordinateur .................................................................................... 9
2 Architecture d'un micro-ordinateur................................................................................. 9
2.1 Le MicroProcesseur ................................................................................................ 9
2.2 L'horloge ................................................................................................................. 9
2.3 La mmoire ........................................................................................................... 10
2.4 Lunit dentre/de sortie ...................................................................................... 10
2.5 Le bus dadresse.................................................................................................... 10
2.6 Le bus de donne .................................................................................................. 10
2.7 Le bus de commande ............................................................................................ 11
3 Mots machines et leurs formats : .................................................................................. 11
3.1 Dfinition .............................................................................................................. 11
3.2 Format dun mot de donne .................................................................................. 11
3.3 Format dun mot dinstruction :............................................................................ 11
4 Les processeurs spcialiss ........................................................................................... 13
4.1 Micro-contrleurs ................................................................................................. 13
4.2 Digital Signal Processor (DSP)............................................................................. 13
4.3 Processeurs de traitement dimage........................................................................ 14
4.4 Processeurs spcialiss dentres/sorties .............................................................. 14

i
Chapitre 3 : Les Microprocesseurs ........................................................................................... 15
1 Architecture et constituants d'un microprocesseur ....................................................... 15
1.1 L'Unit Arithmtique et Logique (UAL) .............................................................. 15
1.2 Lunit de commande ........................................................................................... 15
1.3 Registres du microprocesseur ............................................................................... 16
2 Squencement interne pour l'excution d'instructions .................................................. 20
2.1 Phase 1 : Recherche de l'instruction traiter (cycle fetch) ................................... 20
2.2 Phase 2 : Dcodage de linstruction et recherche de l'oprande ........................... 20
2.3 Phase 3 : Excution de l'instruction (cycle dexcution) ..................................... 20
3 Le jeu d'instruction: ...................................................................................................... 21
3.1 Instructions de transfert......................................................................................... 21
3.2 Instructions arithmtiques..................................................................................... 22
3.3 Instructions logiques ............................................................................................. 22
3.4 Instructions de dcalage et de rotation.................................................................. 22
3.5 Instructions de comparaison ................................................................................. 22
3.6 Instructions de branchement ................................................................................. 22
3.7 Autres instructions spcifiques au microprocesseur ............................................. 23
4 Mode d'adressage .......................................................................................................... 23
4.1 Adressage implicite :............................................................................................. 23
4.2 Adressage immdiat (de niveau 0) :...................................................................... 23
4.3 Adressage registre :............................................................................................... 23
4.4 Adressage direct absolu (de niveau 1) : ................................................................ 23
4.5 Adressage indirect :............................................................................................... 24
4.6 Adressage index : ................................................................................................ 24
4.7 Adressage bas :.................................................................................................... 24
4.8 Adressage relatif : ................................................................................................. 24
5 Langage de programmation .......................................................................................... 27
5.1 Le langage machine (non-symbolique)................................................................. 27
5.2 Le langage d'assemblage (langage symbolique bas niveau) ................................. 27
5.3 Le langage volu (langage symbolique haut niveau).......................................... 27
6 Notion des Technologies RISC et CISC....................................................................... 28
ii
6.1 Les microprocesseurs CISC.................................................................................. 28
6.2 Les microprocesseurs RISC.................................................................................. 28
6.3 La technologie RISC contre celle de CISC........................................................... 29
Chapitre 4 : Gnralit sur les microcontrleurs ...................................................................... 31
1 Dfinition dun microcontrleur :................................................................................. 31
2 Les avantages du microcontrleur : .............................................................................. 31
3 Les inconvnients du microcontrleur :........................................................................ 32
1 Les familles des microcontrleurs ................................................................................ 32
4 Le choix du microcontrleur :....................................................................................... 33
5 Applications des microcontrleurs : ............................................................................. 33
6 Architecture dun microcontrleur : ............................................................................. 34
7 Modes de fonctionnement lectrique du microcontrleur : .......................................... 36
Chapitre 5 : Micro-Contrleur ATtiny 2313............................................................................. 37
1 Description du Microcontrleur ATtiny 2313 .............................................................. 37
2 Description des broches du C ATtiny 2313 : ............................................................. 41
3 ALU-Arithmetic Logic Unit (Unit Arithmtique et Logique): ................................... 42
4 Registre d'tat (SREG):................................................................................................. 44
5 Registres gnraux (General Purpose Working Registers).......................................... 45
6 Excution des instructions: ........................................................................................... 46
7 Les ports d'entres/sorties (Input/Output port): ............................................................ 46
7.1 Configuration des pins: ......................................................................................... 47
7.2 Utilisation des interrupteurs et boutons poussoirs ................................................ 48
8 Les modes de basse consommation (de sauvegarde de puissance)............................... 49
9 Mmoire de programme................................................................................................ 50
10 Mmoire de donne....................................................................................................... 50
10.1 La mmoire de donne interne SARM ................................................................. 50
10.2 La mmoire EEPROM.......................................................................................... 51
Chapitre 6 : Timers dans le microcontrleur ATtiny2313........................................................ 55
1 Gnralits sur le Timer/counter................................................................................... 55
2 Les timer/counter dans le C ATtiny 2313 .................................................................. 55
3 Circuit de slection du signal horloge........................................................................... 55
iii
4 Timer/counter0 8 bits: ................................................................................................ 56
5 Les registres du timer/counter0..................................................................................... 56
5.1 Le registre TCNT0 ................................................................................................ 56
5.2 Les registres OCR0A et OCR0B .......................................................................... 57
5.3 Les registres TCCR0A, TCCR0B......................................................................... 57
5.4 Le registre TIFR.................................................................................................... 58
5.5 Le registre TIMSK................................................................................................ 58
5.6 Unit de sortie de comparaison............................................................................. 59
6 Le fonctionnement du Timer/Compteur0 ..................................................................... 59
6.1 Les modes dopration du timer/counter0 ............................................................ 59
7 Programmation du timer/counter0 en mode normal ..................................................... 60
8 Programmation du timer/counter0 en mode CTC (Clear Timer on Compare match) . 60
9 La modulation de largeur dimpulsion (Pulse Width Modulation -PWM)................... 61
10 Programmation du timer/counter0 en mode fast PWM ............................................ 62
10.1 Fast PWM Mode avec TOP= MAX=0xFF (WGM02=0)..................................... 63
10.2 Fast PWM Mode avec TOP=OCR0x (WGM02=1) ............................................. 64
11 Programmation du timer/counter0 en mode Phase Correct PWM: .............................. 66
Bibliographie............................................................................................................................. 77

iv
Chapitre 1 : Gnralit sur les mmoires

1 Terminologie et Fonctionnement Gnrale des Mmoires:

1.1 Dfinition :
Une mmoire est un dispositif (circuit intgr, support magntique, etc.) qui
emmagasine les informations et les restitue la demande.
Les informations peuvent tre des instructions d'un programme, des donnes associes
ou des rsultats intermdiaires. Chaque mot est identifie par une adresse.
On ce limite dans ce cours par l'tude des mmoires semi-conducteurs.

1.2 Structure gnrale dune mmoire :


Un bloc mmoire peut tre reprsent comme sur la figure 1. Pour pouvoir identifier
individuellement chaque mot (donne) on utilise n lignes d'adresse. Une ligne de
commande (R/W) indique si la mmoire est accde en criture (l'information doit tre
mmorise) ou en lecture (l'information doit tre restitue). La ligne de validation ou
de slection du bloc (CS) permet de valider le bloc mmoire (l'information mmorise
se retrouve sur la ligne de sortie et permet de inhiber ce bloc (les lignes des donnes

Ligne de slection Command R/W


(Chip select) (criture ou/et lecture)

Adresses
(n bits)
Mmoire

Donnes (m bits)

Figure 1: Structure gnrale dune mmoire

1
sont isoles). Les lignes de donnes vhiculent aussi bien les donnes stocker que les
donnes lus.

1.3 Caractristiques :
Format : reprsente le nombre de bits de la donne (m).
Nombre de cases mmoires : Nombre de donnes pouvant tre stockes (N).
N=2n (o n est le nombre de bits d adresse)
Capacit : reprsente le nombre total de bits peuvent tre stocks C=N x m.
Exemple : Calcul de la capacit dune mmoire.
Soit une mmoire de 8 bits de donnes et de 16 bits dadresse.
Format : m=8; Nombre de cases mmoires : N = 216 = 65536
Capacit : C = m N = 8 65536 = 524288 bits
Pour des raisons de simplification, on exprime la capacit :
en kilo-octets (Ko) 1 octet = 8 bits
1 Ko = 210 = 1024 octets
en mga-octets (Mo) 1 Mo = 220 octets = 1048576 octets
en giga-octets (Go) 1 Go = 230 octets = 1073741824 octets
en tera-octets (To) 1 To = 240 octets = 1099511627776 octets
Pour lexemple prcdent C = 524288 bits
C = 524288/8 = 65536octets = 65536/1024 = 64 Ko
Temps daccs : temps d'obtention d'une information contenue dans la mmoire

1.4 Organisation interne de la mmoire:


Une mmoire est constitue d'un ensemble de cellules organises sous une forme
matricielle, figure 2. Chacune de ces cellules peut stocke un seul bit et chaque ligne
de la matrice correspond un mot (une donne) de m bits.

octet (francais) = byte (englais)


Attention : bit byte (=8bits)

2
2 Les Diffrentes Types de Mmoires
On distingue deux grandes catgories de mmoires: les mmoires volatiles et le
mmoires non-volatiles.

2.1 Les Mmoires Volatiles :


Ds que l'alimentation lectrique est coupe, on perd le contenu de ce genre de
mmoire. Il s'agit donc d'une mmoire temporaire. En revanche, tant que l'alimentation
lectrique est maintenue, on peut accder leur contenu, le lire ou le modifier
volont. Dans cette catgorie on trouve les mmoires dites "vives" ou RAM (Random
Access Memory, mmoire accs alatoire).
Le processus de mmorisation s'effectue:
soit l'aide d'une bascule de type D. Il s'agit dans ce cas d'une mmoire
SRAM, ou RAM statique. Les figures 5 et 6 donnent deux structures de base
diffrentes pour une cellule mmoire de type SRAM.

Din Dout
CS
D
Q
R/W

Figure 5: Structure de base d'une cellule mmoire SRAM avec entres/sorties spares

Din/out
D Q

R/W CS
Figure 6: Structure de base d'une cellule mmoire SRAM avec entres/sorties non spares

3
soit l'aide d'un micro-condensateur (condensateur grille-substrat d'un
transistor MOS). La mmoire est dite DRAM, ou RAM dynamique.
Le transistor MOS fondamental comporte une srie de condensateurs parasites
figure 7.a, qui se rduise la plus importante, figure 7.b, celle du grille-substrat
qu'on l'appelle la condensateur de structure.
La DRAM possde une plus grande densit d'intgration, car un cellule mmoire
ncessite environ quatre fois moins de transistors que dans une mmoire SRAM. Sa
consommation sen retrouve donc aussi trs rduite. En contrepartie, la prsence de
courants de fuite dans le condensateur travers l'impdance d'entre contribue sa
dcharge. Ainsi, linformation est perdue si on ne la rafrachie pas priodiquement. Le
rafrachissement consiste en la lecture de l'information puis le rechargement du
condensateur de structure. Ce rafrachissement indispensable plusieurs consquences:
il complique la gestion des mmoires dynamiques car il faut tenir compte des
actions de rafrachissement qui sont prioritaires.
la dure de ces actions augmente le temps d'accs aux informations.
Dautre part, la lecture de linformation est destructive. En effet, elle se fait par
dcharge de la condensateur du cellule mmoire lorsque celle-ci est charge.
Donc toute lecture doit tre suivie dune rcriture.
En conclusion, les mmoires DRAMs, qui offrent une plus grande densit
d'information et un cot plus faible, sont utilises pour la mmoire centrale, alors que
les mmoires SRAMs, plus rapides, sont utilises lorsque le facteur vitesse est critique,
notamment pour des mmoires de petite taille comme les caches et les registres.

2.2 Les Mmoires Non-Volatiles :


Ce type de mmoires conservent leurs contenus lorsqu'elles ne sont plus alimentes.
On distingue dans cette catgorie plusieurs types (figure 11) :

2.2.1 Mmoires Mortes (ROM : Read-Only Memory, mmoire lecture seule)

2.2.1.1 Mask ROM

4
La ligne de La ligne de La ligne de
slection slection slection
du mot du mot du mot

La ligne de La ligne de La ligne de


donne donne donne

a) base de diode b) base de transistor c) base de transistor


CMOS
Figure 9: Cellule mmoire ROM
Mask ROM est une mmoire dont le contenu, programm lors de sa fabrication, ne
peut tre ni modifi, ni effac par l'utilisateur.
Le principe utilis par ce type de mmoire pour stoker l'information diffre d'une
technologie une autre. Mais dans la plus part des mmoires ROM, les lignes de
slection des mots et les lignes de donnes forment une grille. A chaque intersection de
deux lignes de la grille, l'absence ou la prsence d'un lment (diode ou transistor,
figure 9) diffrencie entre un 1 ou un 0. La figure 10 illustre une mmoire ROM
diode de capacit 4x3, son contenu des adresse 0 3 sont 010,111,101 et 100.

2.2.1.2 FPROM( Fuse Programmable ROM ) :


Ces mmoires sont livres non enregistres par le fabricant. Une fois programmes, on
ne peut plus modifier leur contenu.

2.2.1.3 OTP (One Time PROM) :


C'est une mmoire programmable par l'utilisateur mais une seule fois.

2.2.1.4 EPROM (Erasable PROM) :

5
Ces mmoires possdent les avantages de la PROM avec un plus qui est leffacement des
donnes par lutilisateur et la possibilit de la reprogrammer.

2.2.1.5 UVPROM (ou UVEPROM) :


C'est une mmoire effaable aux UV aprs 10 20 minutes d exposition, ce type de mmoire
est place dans un botier avec fentre. L'effacement est total de la mmoire; et la
programmation se fait par une tension de 25V.

2.2.1.6 EEPROM (Electricaly EPROM) :


Elle est effaable et programmable lectriquement. L'effacement se fait adresse par adresse.
Son cot de fabrication est lev.

2.2.1.7 FLASH EPROM:


Elle est effaable lectriquement. Et l'effacement est total de la mmoire. Elle est plus rapide
(d'o le nom FLASH)et moins cher que l EEPROM.

2.2.2 NOVRAM :
NOVRAM est l'association dans le mme botier :
dune EPROM et dune RAM de mme capacit. L'EEPROM permet de
raliser en moins de 10 ms une sauvegarde globale de la RAM. Cela permet
une sauvegarde du contenu de la mmoire en cas de coupure d'alimentation

A0
Decodeur

2
A1
3

D2 D1 D0

Figure 10: Une mmoire ROM diode

6
lectrique.
dune SRAM et dune pile lithium.

Figure 11: Les diffrents types de mmoires non-volatiles

3 Application des mmoires ROM


Les mmoires ROM sont utilises
1) Comme mmoire permanente (pour le stockage de microprogrammes ou les
programmes de dmarrage des micro-ordinateurs).
2) Pour la ralisation des fonctions logiques ou mathmatiques ou encore comme table de
donnes qui ne change pas, figure 12. Par exemple, les tables trigonomtriques (sinus,
cosinus) et les tables de transcodage.
Une mmoire ROM avec n entres d'adresse et m sorties de donnes peut raliser au
maximum m fonctions logiques n variables.

7
Les mots emmagasins
Les adresses du mmoire
dans la mmoire

An . A1 S1 . Sm
0 . 0 1 . 0
0 . 1 0 ... 0

1 . 1 0 ... 1

Les entres des Les fonctions ralises


fonctions ralises

Figure 12: Le principe de l'utilisation d'une ROM pour raliser les fonctions logiques

3) Comme gnrateur de forme d'onde, figure 13, en l'associant un convertisseur


numrique-analogique la sortie, et un compteur aux entres adresses. Le
compteur est command sans cesse par un signal horloge. Il parcourt ainsi
squentiellement tout les adresses de la mmoire qui communique -via les lignes de
donnes- les valeurs stockes (reprsentant les points de l'onde gnre) au CNA.
Ce dernier donne sa sortie une onde prsentant des transitions entres les tensions
reprsentant les points stokes. Le filtre passe-bas adoucit ces transitions et produit
une forme d'onde lisse.

Qi, i=1,n Ai, i=1,n Di, i=1,m L'onde gnre

Compteur ROM CNA Filtre


passe-

Figure 13: Le principe d'un gnrateur d'onde base d'une ROM

8
Chapitre 2 : Prsentation Gnrale dun
Microordinateur

1 Dfinition d'un micro-ordinateur


En grosso modo un micro-ordinateur est une machine ultra rapide qui traite les
donnes, rsout les problmes et prend des dcisions, tout cela sous la gouverne (ou la
commande) dun programme (qui est une squence doprations programme
ncessitant le minimum dintervention humaine). Du point de vue lectronique, un
micro-ordinateur est une combinaison dlments et de circuits numriques qui se
concertent pour excuter un programme. Ce dernier est un ensemble dinstructions
codes et conserves dans la mmoire avec les donnes associes (les donnes sur
lesquelles ce programme travaille).

2 Architecture d'un micro-ordinateur


Tout les micro-ordinateurs contiennent au moins les lments de base suivants:
Le micro-processeur (-p) encore dnomme l'unit centrale de traitement
(CPU: Central processing Unit); la mmoire; l'horloge; lunit dentre/sortie.
La figure 1 illustre ces lments et les interconnexions de base entre eux. Les
interconnexions se classifient selon se quelles transportent (donnes, adresses ou
commandes) et elles sont appeles bus.

2.1 Le MicroProcesseur
Le microprocesseur est un circuit intgr (puce ou chip) charg d'interprter et
d'excuter les instructions d'un programme, de lire les donnes ou de sauvegarder les
rsultats dans la mmoire et de communiquer avec les units d'entres/sorties.

2.2 L'horloge
Une horloge est un systme logique, pilot par un oscillateur, qui met priodiquement
une srie d'impulsions calibres permettant la synchronisation du travail de tous les

9
lments du microprocesseur. Ces signaux priodiques dfinissent le cycle de base ou
cycle machine.

2.3 La mmoire
La mmoire a pour rle de stoker et restituer les instructions codes qui forment le
programme excuter et les donnes associes. Elle peut tre utilise pour stoker
temporairement les rsultats intermdiaires des oprations arithmtiques ou logiques.

2.4 Lunit dentre/de sortie


1) Priphrique dentre est constitue de tous dispositifs (organes) servant
introduire des informations et des donnes dans la mmoires ou dans le CPU.
On peut mentionner comme exemples : le clavier, souris, mmoires de masse
et.
2) Priphrique de sortie regroupe les dispositifs qui traduisent ou convertissent
les donnes stockes dans la mmoire ou les rsultats calculs par le CPU en
une forme utilisable lextrieur. Parmi ces dispositifs de sorties, citons : Les
crans de visualisation, les imprimantes, les units de disques et de bande et les
convertisseurs numriques-analogiques.
3) Interface d'entre/de sortie : Comme les priphriques et les composants du
microordinateur sont des systmes diffrents physiquement et lectriquement,
un circuit d'interface savre ncessaire pour assurer la compatibilit entre eux.

2.5 Le bus dadresse


C'est un bus unidirectionnel qui vhicule les adresses qui correspondent soit des
emplacements en mmoire ou un organe dentre/sortie. Si le bus contient 16 lignes
le microprocesseur (-p) peut adresser jusqu 216=65536 adresses diffrentes.

2.6 Le bus de donne


Le bus de donne est un bus bidirectionnel sur lequel transitent, dans les deux sens, les
donnes entre la mmoire, le -p et les units entre/sortie. La largeur du bus de

10
donne est la longueur du mot vhicul (qui peut tre une donne ou une instruction).
Elle est gnralement utilis pour caractriser un micro-ordinateur.

2.7 Le bus de commande


C'est un groupe de lignes vhiculant soit des signaux servant la synchronisation des
divers actions menes par les lments du micro-ordinateur ; soit des signaux de
commande.

3 Mots machines et leurs formats :

3.1 Dfinition
Un mot machine est un groupe de bits traites et manipules par un -ordinateur de
largeur gale au largeur de bus de donne. Il peut tre une instruction d'un programme
ou une donne associe.
Un mot machine = Mot de donne ou mot dinstruction

3.2 Format dun mot de donne


Les donnes se reprsentent sous diverses formes : binaires signes, non-signes, DBC,
virgule flottante, code ASCII (pour les caractres alphabtiques). Mais le -
ordinateur ne sait pas faire la diffrence entre eux. Cest le programmeur qui doit
assurer la bonne traduction travers son programme.

3.3 Format dun mot dinstruction :


Les mots dinstruction contiennent tout ce qui est ncessaire un -ordinateur pour
raliser ses diverses oprations. Le format et les codes employs varient grandement
dun -ordinateur un autre. Mais dans la plus part des -ordinateurs les mots
dinstruction prcisent deux lments dinformations de base:
1) Le code opration : qui indique au microprocesseur quelle opration effectuer
2) La spcification de l'oprande : l'oprande peut tre spcifi soit par sa valeur ou
son adresse mmoire ou encore un numro du registre.

11
Pour une opration ncessitant un seul oprande retirer de la mmoire on a le
format suivant :
Code op. adresse de loprande
Exemple : mot dinstruction 20bits
adresse de loprande (16bits)

0011 1000011010110001
code op. (4bits)
Le nombre de bits rserv pour le code opration dtermine le nombre dopration
possible quun ordinateur peut effectuer, dans cet exemple, on a 24=16 oprations
possibles diffrentes.
Dans le cas o lopration utilise plus dune seul oprande stocke dans la mmoire, le
format du mot dinstruction est :
Code op. Adresse de loprande 1 Adresse de loprande 2

Gnralement, la longueur du mot dans les -ordinateurs ne permet pas davoir le code
op. et ladresse de loprande dans un seul mot la fois.
Par exemple, pour un -ordinateur 8bits (largeur de bus de donne=longueur de mot
machine = 8bits) et de largeur de bus dadresse= 8bits, on va dcrire le format du mot
dinstruction en fonction du nombre doprande, se trouvant dans la mmoire,
ncessaire pour faire lopration en question.

Octet 1 Code op.


Octet 2 Adresse de loprande
Un seul oprande rcuprer de la mmoire

Octet 1 Code op.


Octet 2 Adresse de loprande1
Octet 3 Adresse de loprande2
Deux oprandes rcuprer de la mmoire

12
Sur certaines microordinateurs les instructions sont toutes de mme longueur, sur
d'autre cette longueur peut varier avec le code opration.

4 Les processeurs spcialiss

4.1 Micro-contrleurs
Un microcontrleur se prsente sous la forme d'un circuit intgrs runissant tous les
lments d'une structure base de microprocesseur. Gnralement, ils contiennent:
- Un microprocesseur (CPU);
- De la mmoire de donnes (RAM ou EEPROM);
- De la mmoire programme (ROM, OTPROM, UVPROM ou EEPROM);
- Des Interfaces d'entres/sorties parallles;
- Des Interfaces sries (synchrone et asynchrone) pour le dialogue d'autre unit;
- Des compteurs programmables (timers) pour gnrer ou mesurer des signaux
avec une grande prcision temporelle;
- des CAN/CNA pour le traitement des signaux analogiques.
Ils sont en gnral utiliss pour contrler de simples machines (appareils
lectromnagers, lecteurs de carte puce...)
Exemple de circuits :
80C186XX (80186, 16 bits, Intel)
68HC11, 68HC12 (6809, 8 bits, Motorola)
68HC16 (68000, 16 bits, Mototrola)
C167XX (Infineon, ex Siemens)

4.2 Digital Signal Processor (DSP)


Ce sont des processeurs ddis aux traitements des signaux numriques. Une
architecture particulire leur permet un traitement efficace des fonctions complexes
telles que FFT, convolution, filtrage numrique ...
Exemples :
TMS320 (Texas Instrument)
2100 et 21000 (Analog Device)

13
56000 (Motorola)

4.3 Processeurs de traitement dimage

4.4 Processeurs spcialiss dentres/sorties

14
Chapitre 3 : Les Microprocesseurs

1 Architecture et constituants d'un microprocesseur


Le microprocesseur se compose essentiellement de lunit de commande, de lunit
arithmtique et logique (UAL) et dun ensemble de registres pour stocker les
oprandes, les rsultats intermdiaires ou les informations de commande, figure 1.

1.1 L'Unit Arithmtique et Logique (UAL)


Comme son nom l'indique, c'est lunit responsable sur lexcution des oprations
arithmtiques tel que laddition, la soustraction, lincrmentation et la dcrementation ;
et les oprations logiques comme l'opration AND, OR, XOR et le dcalage.

1.2 Lunit de commande


L'unit de commande contient une unit charge du dcodage des instructions pour
dterminer l'opration effectuer, une unit pour le calcul des adresses des oprandes
(les donnes traiter). On y trouve galement le squenceur qui contrle le
fonctionnement des autres composants en leur envoyant des signaux de commande
(adresse mmoire valide, adresse E/S valide, lecture/criture, attente, interruption,
etc.). Il peut tre cbl ou microprogramm.

1.2.1 Squenceur cbl :


Un squenceur cbl est un circuit squentiel complexe comprenant un sous-circuit
pour chacune des instructions commander. Ce sous-circuit est activ par le dcodeur
d'adresse.

1.2.2 Squenceur micro-programm :


L'ide de la microprogrammation a t introduite par Maurice Wilkes en 1951. Il est en
effet toujours possible de remplacer un circuit logique par une ROM. De mme pour
reproduire une squence d'oprations lmentaires il suffit d'un mot par "tranche" de
temps. Cette srie de mots constitue un microprogramme. Le code opration de

15
l'instruction excuter peut tre utilis pour dfinir le pointeur sur la premire micro-
instruction du microprogramme, figure 2. En fonction du code opration le contenu
d'un compteur est initialis, puis celui-ci s'incrmente ensuite chaque cycle d'horloge.

Code opration L'instruction


Signal horloge
Ai
ROM ROM
H (microprogrammes)
(pointeurs) Li Compteur Ai
Di Qi

Micro-commandes
vers les diverses units
participant l'excution de
Figure 2 : Principe du squenceur micro-programm

1.3 Registres du microprocesseur


Le nombre et le type des registres implants dans le microprocesseur font partie de son
architecture et ont une influence importante sur la programmation et les performances
du microprocesseur. On voudrait ici passer en revue les registres fondamentaux, que
l'on retrouve sur tous les microprocesseurs ou presque.

1.3.1 Compteur Ordinal (CO)


Ce registre -appel aussi (Program Counter : PC)- contient l'adresse de la prochaine
instruction excuter. Aprs chaque utilisation il est automatiquement incrment du
nombre de mots correspondant la longueur de l'instruction traite : le programme est
excut en squence. En cas de rupture de squence (branchement conditionnel ou non,
appel une routine, etc.) il est charg avec la nouvelle adresse. Le compteur ordinal,
dont la taille dpend de l'espace adressable, n'est gnralement pas accessible
directement au programmeur.

1.3.2 Registre Instruction (RI)


C'est le registre de destination dans lequel le CPU transfert l'instruction suivante
partir de la mmoire. Sa taille dpend du format des instructions machines. Le

16
dcodeur utilise le registre instruction pour identifier l'action (ou le microprogramme)
entreprendre ainsi que les adresses des oprandes, de destination ou de saut. Le
programmeur n'a pas accs au registre instruction.
I.3.3 Accumulateur (Acc) :
L'accumulateur est un registre de l'unit arithmtique et logique. Il a de nombreuses
fonctions. Il peut contenir un des deux oprandes avant l'excution et recevoir le
rsultat aprs. Cela permet d'enchaner des oprations. Il peut servir de registre tampon
pour les oprations d'entres/sorties : dans certaines microprocesseurs c'est le seul
registre par lequel on peut changer des donnes directement avec la mmoire. Sa taille
est gale la longueur des mots en mmoire. Il possde souvent une extension (Q),
pour les multiplications, dcalages, divisions, etc. Le registre Acc est accessible au
programmeur et trs sollicit. Certains microprocesseurs possdent plusieurs
accumulateurs, par exemple, le 6800 et le 6502 possdent deux accumulateurs.

1.3.3 Registres gnraux ou banaliss :


Ils permettent de limiter les accs la mmoire, ce qui acclre l'excution d'un
programme. Ils peuvent conserver des informations utilises frquemment, des
rsultats intermdiaires, etc. Ils sont accessibles au programmeur.

1.3.4 Registres d'indice ou d'index (XR) :


Ils peuvent tre utiliss comme des registres gnraux mais ils ont une fonction
spciale utilise pour l'adressage index. Dans ce cas l'adresse effective d'un oprande
est obtenue en ajoutant le contenu du registre d'index l'adresse contenue dans
l'instruction. Ce type d'adressage et de registre est trs utile pour manipuler des
tableaux. Le programmeur dispose alors d'instructions permettant l'incrmentation ou
la dcrmentation du registre d'index. En particulier les registres d'index peuvent tre
incrments ou dcrments automatiquement aprs chaque utilisation. Dans certaines
microprocesseurs ces instructions sont applicables tous les registres gnraux, il n'y a
alors pas de registre d'index spcifique.

1.3.5 Registre de base :

17
A de trs rares exceptions l'intrieur d'un programme on ne fait rfrence qu' des
adresses relatives ou virtuelles. Par contre l'unit centrale a besoin de connatre les
adresses physiques o se situent rellement instructions et donnes. Celles-ci
dpendent de l'endroit o a t charg le programme en mmoire, l'espace physique
occup par un programme pouvant ne pas tre contigu. Le rle des registres de base est
de permettre le calcul des adresses effectives. Un registre de base contient une adresse
de rfrence, par exemple l'adresse physique correspondant l'adresse virtuelle 0.
L'adresse physique est obtenue en ajoutant au champ adresse de l'instruction le contenu
du registre de base. Le registre de base est encore utilis quand le nombre de bits du
champ adresse ne permet pas d'accder toute la mmoire.

1.3.6 Registre d'tat (Program Status Word : PSW) :


Une partie des bits de ce registre, aussi appel registre condition, constitue des
indicateurs ou des drapeaux (flags) qui indiquent certains tats particuliers. Par
exemple la fin de chaque opration on peut y trouver le signe du rsultat (Ngatif,
Zro ou Positif), ainsi qu'une ventuelle retenue (Carry) ou un dpassement de capacit
(Overflow). Ces bits indicateurs peuvent tre tests pour dterminer la suite du
droulement du programme : branchements conditionnels. On trouve galement le
mode de fonctionnement de l'unit centrale. Deux modes sont possibles le mode
utilisateur et le mode systme ou superviseur. Dans le mode utilisateur certaines
instructions sont interdites : elles provoquent un droutement vers le systme
d'exploitation. Un bit peut galement indiquer un droulement pas pas : demande de
trace (T). Le registre peut aussi contenir le niveau de l'interruption en cours de
traitement ou un masque des niveaux d'interruptions autoriss.

1.3.7 Registre Pointeur de Pile (PP) :


Une pile est une zone mmoire dans laquelle les informations sont ranges de faon
contigu. Le pointeur de pile (ou bien Stack Pointer : SP) indique le sommet de la pile :
la position de la dernire information enregistre. Dans certaines machines le pointeur
de pile indique la position o sera mmorise la prochaine donne. Le fonctionnement
d'une pile est du type Dernier Entr Premier Sorti (LIFO : Last In First Out). Les deux

18
principales oprations lies la pile concernent l'ajout d'un lment dans la pile ou le
retrait, souvent nommes respectivement PUSH et PULL. Lorsqu'une donne est
enregistre dans la pile elle est place l'adresse qui suit celle du dernier mot stock.
Aprs l'opration le pointeur de pile est incrment. Lorsqu'un mot est retir de la pile
il correspond la dernire information qui y a t entre. Aprs l'opration le pointeur
est dcrment. Une pile est rserve l'usage de l'unit centrale, en particulier pour
sauvegarder les registres et l'adresse de retour en cas d'interruption ou lors de l'appel
d'une procdure. Le pointeur de pile est accessible au programmeur, ce qui est souvent
source d'erreur. Certaines machines sont dotes de plusieurs pointeurs de piles.

Vers le bus de
donnes externe

Registre tampon
de donnes

Le bus de donnes interne

C Accumulateur Registre d'instructions Registre d'index


Z Code opra. adresse Pointeur de pile
N Compteur ordinal
.
. Dcodeur d'instruction
.
. UAL Le bus
Les Registres Squenceur
Gnraux Registre d'adresses
d'tat interne
Registre tampon
Les signaux de d'adresse
commande interne

Vers le bus
Vers le bus de Signal d'adresses externe
commande horloge

Figure 1. Architecture standard d'un microprocesseur

19
2 Squencement interne pour l'excution d'instructions
Quel que soit le format de l'instruction et par consquent le nombre de champs adresse,
son traitement peut tre dcompos en trois phases.

2.1 Phase 1 : Recherche de l'instruction traiter (cycle fetch)


1) Le CO contient l'adresse de l'instruction suivante du programme. Cette valeur
est place sur le bus d'adresses par l'unit de commande qui met un ordre de
lecture la mmoire.
2) Au bout d'un certain temps (temps d'accs la mmoire), le contenu de la case
mmoire slectionne est disponible sur le bus des donnes travers le registre
tampon de donnes.
3) L'instruction est stocke dans le registre instruction du microprocesseur.

2.2 Phase 2 : Dcodage de linstruction et recherche de l'oprande


Le registre d'instruction contient maintenant le premier mot de l'instruction qui peut
tre code sur plusieurs mots. Ce premier mot contient le code opration qui dfinit la
nature de l'opration effectuer (addition, rotation,...) et le nombre de mots de
l'instruction.
1) L'unit de commande dcode le code opration et transforme l'instruction en
une suite de commandes lmentaires ncessaires l'excution de l'instruction.
2) Si l'instruction ncessite un oprande en provenance de la mmoire ou de
l'unit d'entre, l'unit de commande rcupre sa valeur sur le bus de donnes.
3) Loprande est stock dans un registre.

2.3 Phase 3 : Excution de l'instruction (cycle dexcution)


1) Le microprogramme ou le sous-circuit ralisant l'instruction est excut.
2) Les drapeaux sont positionns dans le registre d'tat.
3) Le rsultat est rang dans la mmoire s'il faut.
4) L'unit de commande incrmente le compteur ordinal, ainsi il contiendra
l'adresse de l'instruction suivante. Notons cependant que cette opration est

20
inutile si l'instruction est un branchement. En effet, l'adresse de la prochaine
instruction se trouve dans le champ spcification adresse de l'instruction.

3 Le jeu d'instruction:
Il caractrise le microprocesseur. Mais les types fonctionnels sont identiques :
1) Instructions de transfert
2) Instructions arithmtiques
3) Instructions logiques
4) Instructions de dcalages, de rotations
5) Instructions de test et de comparaison
6) Instruction de branchement
7) Autres instructions spcifiques au microprocesseur

3.1 Instructions de transfert


Ces instructions dclenchent un transfert de mots ou demi-mots.
1) entre lun des registres du microprocesseur et la mmoire.
a) Instructions de lecture : elles transfrent les mots ou demi-mots du CPU vers la
mmoire.
b) Instructions dcriture : elles transfrent les mots ou demi-mots de la mmoire
vers le CPU
c) entre la pile et un registre
d) Instructions d'empilement : elles crivent le contenu d'un registre dans la
mmoire de pile
e) Instructions de dpilement : elles tirent le contenu d'un emplacement
dans la pile vers un registre.
2) entre une unit d'entre /sortie et le microprocesseur (Accumulateur)
3) entre registres
a) Instructions de transfert registres
b) Instructions d'change registres

21
3.2 Instructions arithmtiques
Elles excutent les oprations arithmtiques (addition, soustraction et complmentation
2) sur le contenu de laccumulateur et/ou un oprande. Le rsultat est plac dans
laccumulateur. L'oprande peut tre une constante ou une valeur contenue dans un
emplacement mmoire.

3.3 Instructions logiques


Ces instructions font les oprations logiques (le et logique, le ou logique, le ou
exclusive et la complmentation 1 ) bit bit du contenu de l'accumulateur et/ou un
oprande, puis mettent le rsultat dans l'accumulateur.

3.4 Instructions de dcalage et de rotation


Ce type d'instruction dcale le contenu du registre de 1 bit droite ou gauche en
conservant ou non le bit de signe et sur une boucle (rotation) ou non.

3.5 Instructions de comparaison


Elles comparent le contenu d'un registre un oprande ou la valeur 0 puis
positionnent les indicateurs du registre d'tat. Aucune sauvegarde du rsultat n'est
effectue. Les instructions ne sont pas l pour calculer un rsultat mais pour tester un
oprande.

3.6 Instructions de branchement


Les instructions de branchement permettent de modifier la valeur de registre
d'instruction pour effectuer des sauts dans l'excution des instructions successives. On
distingue deux types d'instructions de branchement :
Instructions de branchement inconditionnelles : le registre d'instruction est
charg par l'adresse de l'instruction.
Instructions de branchement conditionnelles : Si une condition est satisfaite,
alors chargement du registre d'instruction par l'adresse de l'instruction, sinon
incrmentation du registre d'instruction. La condition peut tre sur l'tat des
indicateurs du registre d'tat ou sur le rsultat de comparaison

22
3.7 Autres instructions spcifiques au microprocesseur
Par exemple, les instructions de transfert du contenu du registre d'tat dans
l'accumulateur, et inversement, ne rien faire et passer le temps, masquer quelques bits
du contenu de l'accumulateur.

4 Mode d'adressage
Le mode d'adressage indique comment le microprocesseur accde aux oprandes
ncessaires pour excuter une instruction.
Le mode est dfini soit par le code opration lorsque celui-ci impose un type
dtermin, soit par un code faisant partie du champ adresse.
Pour faciliter la programmation, il existe de nombreux modes d'adressage. On peut
distinguer 8 modes d'adressage fondamentaux, tableau 1.

4.1 Adressage implicite :


Aucun champ adresse n'est ncessaire. Le code opration identifie automatiquement
l'oprande, l'instruction ne peut porter que sur un registre particulier (par exemple test
sur le signe du rsultat d'une opration arithmtique : concerne le registre d'tat PSW).

4.2 Adressage immdiat (de niveau 0) :


La valeur de l'oprande est contenue dans le champ adresse si le nombre de bits dans
ce champ est suffisant, sinon dans le mot suivant l'instruction.

4.3 Adressage registre :


Le champ adresse contient le numro du registre oprande.

4.4 Adressage direct absolu (de niveau 1) :


Le champ adresse de l'instruction (ou le mot suivant si le nombre de bits n'est pas
suffisant) contient l'adresse effective de l'oprande.

23
4.5 Adressage indirect :
Le champ adresse (ou le mot suivant) contient l'adresse d'un pointeur : mot en mmoire
qui contient l'adresse effective de l'oprande.

4.6 Adressage index :


Ce mode d'adressage est trs utile lorsqu'on travaille, par exemple, sur des tableaux.
Considrons un bloc de n mots conscutifs dbutant l'adresse A. Le k ime mot se
trouve l'adresse A + (k-1). Pour rfrencer ce mot il est possible d'utiliser un registre
d'index.
L'adresse effective est calcule en additionnant le contenu de ce registre d'index
l'adresse qui se trouve dans le champ adresse de l'instruction. Sur certaines machines
tous les registres gnraux peuvent tre utiliss comme registres d'index. La prsence
d'un registre d'index s'accompagne gnralement de la possibilit d'incrmentation et
dcrmentation automatiques.

4.7 Adressage bas :


L'adressage bas est comparable l'adressage index mais cette fois l'adresse effective
est obtenue en additionnant le contenu du registre de base au contenu du champ
adresse de l'instruction. Ce mode d'adressage est utilis par exemple en cas d'allocation
dynamique de la mmoire : la position du programme en mmoire peut changer en
fonction de la charge du systme et il n'occupe pas toujours un espace contigu. Cette
technique permet galement de rduire le nombre de bits dans le champ adresse : le
registre de base contient la premire adresse d'un bloc de 2 k mots et l'adresse (sur k
bits) contenue dans l'instruction reprsente le dplacement l'intrieur du bloc.

4.8 Adressage relatif :


Le champ adresse contient un dplacement (offset) par rapport une adresse de
rfrence. L'adresse de rfrence est normalement celle contenu dans le compteur
ordinal. Ainsi, une instruction avec adressage relatif va permettre un adressage en
avant ou en arrire dans la mmoire par rapport au contenu du compteur ordinal.

24
L'adresse effective est donc obtenue en additionnant le contenu du compteur ordinal au
contenu du champ adresse de l'instruction. Ce type d'adressage est utilis par exemple
dans des instructions de branchement.
L'avantage principal de ce mode d'adressage est qu'il permet des branchements
efficaces, en minimisant le nombre d'octets utiliss.
Remarque:
Le calcul de l'adresse effective de l'oprande peut ncessiter quelques oprations
(addition par exemple). L'utilisation de certains modes d'adressage sophistiqus (le
68020 de Motorola dispose par exemple d'une cinquantaine de modes d'adressage) peut
donc augmenter le temps de traitement d'une instruction.

25
Type
Format de l'instruction Calcule de l'adresse effective de l'oprande
d'adressage

Implicite Code opration -------------------------------------

Immdiat Code opration oprande -------------------------------------

Direct Code opration adresse de l'oprande -------------------------------------

Registre Code opration n du registre oprande -------------------------------------

Indirect Code opration pointeur d'adresse -------------------------------------

Index Contenu du registre d'index + dplacement

Code opration dplacement (offset)


Bas Contenu du registre de base + dplacement

Relatif Contenu du CO + dplacement

Tableau 1 : Les modes d'adressage.

26
5 Langage de programmation
Un programme est constitu d'une suite organise d'instructions. Il peut tre crit dans
des langages divers, symboliques ou non, et de diffrents niveaux

5.1 Le langage machine (non-symbolique)


Le langage machine est le langage compris par le microprocesseur. Chacune de ses
instructions correspond une opration lmentaire du microprocesseur considr. Ce
langage est difficile matriser puisque chaque instruction est code par une squence
propre de bits. Afin de faciliter la tche du programmeur, on a cr diffrents langages
plus ou moins volus.

5.2 Le langage d'assemblage (langage symbolique bas niveau)


Le langage dassemblage est le langage symbolique le plus proche du langage
machine. Il est compos par des instructions en gnral assez rudimentaires que lon
appelle des mnmoniques. Ce sont essentiellement des oprations de transfert de
donnes entre les registres et l'extrieur du microprocesseur (mmoire ou
priphrique), ou des oprations arithmtiques ou logiques. Chaque microprocesseur
peut possder un langage d'assemblage diffrent.
Pour quun programme crit en langage dassemblage devienne excutable, il faut le
traduire dans le langage machine du microprocesseur utilis pour son excution en
utilisant un logiciel dit assembleur.
A chaque instruction en langage dassemblage correspond une instruction en langage
machine (c--d opration lmentaire du microprocesseur). Il en rsulte que
lassembleur nest jamais un logiciel trs encombrant

5.3 Le langage volu (langage symbolique haut niveau)


La difficult de mise en uvre du langage d'assemblage et leur forte dpendance avec
la machine a ncessit la conception de langages volus, plus adapts l'homme, et
aux applications qu'il cherchait dvelopper. Faisant abstraction de toute architecture
de machine, ces langages permettent l'expression d'algorithmes sous une forme plus

27
facile apprendre, et dominer (C, Pascal, Fortran, Java,... etc.). Une fois dvelopp,
le programme en langage volu nest donc pas comprhensible par le
microprocesseur. Il faut le compiler pour le convertir en code machine comprhensible
par le microprocesseur. Cette opration est ralise par un logiciel spcialis appel le
compilateur.
Une instruction en langage volu sera traduite par le compilateur en une succession
d'instructions du langage machine donc un compilateur est un logiciel de taille plus
importante quun assembleur.

6 Notion des Technologies RISC et CISC


Actuellement les microprocesseurs se composent en deux grandes familles :
-Microprocesseurs jeu d'instructions complexe (CISC: Complex Instruction Set
Computer)
-Microprocesseurs jeu d'instructions rduit (RISC: Reduced Instruction Set
Computer)

6.1 Les microprocesseurs CISC


Les microprocesseurs jeu d'instructions complexe (CISC) disposent d'un jeu tendu
d'instructions avec de nombreux modes d'adressage. La plupart ne sert que dans des
cas relativement rares. Ces instructions complexes ncessitent d'tre microcodes et
s'excutent donc en plusieurs cycles. Cette technologie est base sur un jeu de plus de
400 instructions

6.2 Les microprocesseurs RISC


Les microprocesseurs jeu d'instructions rduit (RISC) sont constitus dinstructions
simples qui permettent de gagner une rapidit dexcution mais au dtriment dune
programmation plus complexe. En effet, celui-ci n'offre que 128 instructions - dites de
base- qui peuvent tre cbls (donc sans microcode) ce qui permet une excution des
instructions en un seul cycle horloge. De plus, cette technologie a permis la cration de
nouveaux procds comme la multiplication des units spcialises.

28
Un processeur RISC peut atteindre une vitesse d'excution jusqu' 70% plus rapide
qu'un CISC de mme frquence.
Depuis le P5 (pentium), les microprocesseurs utilisent des technologies empruntes de
la famille RISC.

6.3 La technologie RISC contre celle de CISC


Le choix entre les deux technologies dpendra des applications vises. En effet, si on
diminue le nombre d'instructions, on cre des instructions complexes (CISC) qui
ncessitent plus de cycles pour tre dcodes et si on diminue le nombre de cycles par
instruction, on cre des instructions simples (RISC) mais on augmente alors le nombre
d'instructions ncessaires pour raliser le mme traitement.

Technologie CISC Technologie RISC

Traitement X : Traitement X :
Instruction complexe
Instructions simples

Cycle
horloge

Figure 3. Comparaison entre la technologie CISC et RISC pour un mme traitement.

Une comparaison objective entre les deux technologies est prsente dans le tableau 2.

29
Technologie RISC Technologie CISC

Instructions simples ne prenant quun seul Instructions complexes prenant plusieurs


cycle. cycles.
Instructions au format fixe Instructions au format variable

Dcodeur d'instruction simple (cbl) Dcodeur d'instruction complexe(microcod)

Beaucoup de registres Peu de registres


Seules les instructions LOAD et STORE ont Toutes les instructions sont susceptibles
accs la mmoire daccder la mmoire
Peu de modes dadressage Beaucoup de modes dadressage
Compilateur complexe Compilateur simple

Tableau 2 Comparaison entre les technologies CISC et RISC

30
Chapitre 4 : Gnralit sur les microcontrleurs

1 Dfinition dun microcontrleur :


Un microcontrleur est un circuit intgr regroupant tous les lments dune structure
base de microprocesseur c--d dun ordinateur :
o Un microprocesseur(CPU) ;
o Mmoire de donnes ;
o Mmoire de programmes
o Une horloge ;
o Des priphriques qui vont dpondre, en gnrale du type de
microcontrleur choisi :
- Temporisateurs/Compteurs,
- Convertisseur analogique numrique (CAN),
- Chien de garde (Watch dog),
- Des interfaces dentre/sortie srie (synchrone ou asynchrone),
- Un contrleur dinterruptions,
- Un contrleur de bus spciaux.
- .. etc.
Il est gnralement moins puissant quun ordinateur en terme de rapidit et de taille
mmoire, il se contente le plus souvent dun bus de donnes de 8 ou 16 bits. Ceci en
fait un composant trs bon march parfaitement adapt pour piloter les applications
embarques dans de nombreux domaines dapplication.

2 Les avantages du microcontrleur :


- Encombrement de matriel rduit,
- Circuits imprim peu complexe,
- Faible consommation cause de lintgration en technologie MOS, CMOS, ou
HCMOS,
- Cot rduit de conception et montage

31
- Environnement de programmation et de simulation volus.

3 Les inconvnients du microcontrleur :


- Ne convient pas ncessairement tous les problmes car il noffre pas une
grande puissance de calcul.
- On ne peut pas toujours utiliser tous les priphriques simultanment : pour
rduire les cots, certaines broches sont multiplexes.
- Il faut disposer dun outil du dveloppement spcifique, compilateur, ou
simulateur.

1 Les familles des microcontrleurs


Plusieurs fabricants se partage le march des microcontrleurs, citons INTEL,
MOTOROLA, ATMEL, ZILOG, HITACHI, DALLAS SEMI, PHILIPS et enfin
MICROCHIP. Chaque fabricant ne propose pas un seul microcontrleur, mais des
familles de microcontrleurs. On peut citer titre dexemple :
La famille MCS51 (8x31,8x51) de INTEL, la famille AVR (ATtiny 28, ATMEGA161,
AT90S8535) de ATMEL, la famille 68HCxxx de MOTOROLA (68HC11, 68HC811),
la famille PIC 16Cxx (16C84,16F84) de MICROCHIP.
Au sein de mme famille les microcontrleurs possdent le mme microprocesseur et
donc le mme langage, seul les priphriques changent. Ainsi, la connaissance de la
structure matrielle et logicielle dun produit dune famille permet une adaptation
rapide tout microcontrleur de mme famille.
Les microcontrleurs du march se distinguent principalement par la structure de leurs
processeurs (4,8,16 ou 32 bits, CISC ou RISC), la taille des espaces mmoires, la
nature et le nombre des priphriques. Certains contrleurs seront spcialiss dans la
gestion des entres/sorties, dautres auront la possibilit de grer des grandeurs
analogiques ou possderont des ports I2C ou de CAN.
Sur le plan logiciel, outre le fait que le jeu dinstructions des Cs 8bits est
gnralement restreint (autant plus sil est architecture RISC), on dispose pour

32
certains microcontrleurs des environnements de dveloppement intgrs contenant un
assembleur, un cross compilateur C et mme parfois un simulateur.

4 Le choix du microcontrleur :
Lorsquon dcide de dvelopper un nouveau produit base de C, puisque loffre est
trs vaste, plusieurs paramtres vont orienter notre choix vers un produit plutt quun
autre :
1) Le prix : il y a de grand cart de prix entre les produits, lis par exemple la
taille et au type de mmoire, ainsi qu la nature et le nombre de priphriques.
2) Les priphriques : on peut se demander si toutes les fonctions dcrites dans le
cahier des charges seront ralises par le C ou sil faut ajouter des
priphriques externes.
3) La taille des espaces mmoire : Lespace mmoire programme sera-t-il
suffisant pour lapplication ?
4) La consommation lectrique : dterminant pour de produits destins
fonctionner sur batterie.
5) Les outils de dveloppement de programmes : peut-on dvelopper en langage
volu ? Existe-t-il un environnement de dveloppement intgr (diteur,
assembleur, compilateur, simulateur/debugger) ?
6) Exprience/savoir faire.

5 Applications des microcontrleurs :


1) Informatique (souri, modem,),
2) Vido (appareil photos numrique, camra numrique, ),
3) Contrle des processus industriels (rgulation, pilotage, supervision, ),
4) Appareil de mesure (affichage, calcul statistique, mmorisation, ),
5) Automobile (ABS, injection, GPS, airbag, ),
6) Multimdia (tlviseur, carte audio, carte vido, MP3, magntoscope, )
7) Tlphone (fax, tlphone portable, modem, ),
8) Electromnager (Lave-vaisselle, lave-linge, four micro-onde, ),

33
6 Architecture dun microcontrleur :
On peut envisager le schma bloc gnral dun microcontrleur de la figure 1, en
sachant que certaines fonctions peuvent tre absentes dun type lautre.

Figure 1. Architecture gnrale dun microcontrleur.

1) La mmoire programme ROM est de plus en plus souvent reprogrammable


par diffrentes techniques : ultra-violet
violet (UVPROM), une seule fois (OTP), par
block mmoire (FLASH) et mme si le contrleur est soud sur lle circuit
imprim en utilise la fonctionnalit de la programmation in-situ
in (In-System
Programming ou ISP). Des lignes dE/S sont spcifiquement ddies cette
fonction.
2) Les mmoires de donnes RAM et EEPROM permettent de mmoriser
temporairement les donnes
donnes gnres par le microprocesseur pendant les
diffrentes phases du traitement numrique (rsultats des oprations, tats de
capteurs, etc.).

34
3) Lhorloge est souvent un quartz entour de deux condensateurs, mais il peut
aussi tre ralis en interne par un circuit RC que lon peut calibrer lors de la
premire utilisation du microcontrleur.
4) Le chien de garde watchdog est un temporisateur particulier qui gnre,
dans un dlai prfix ou programm, une impulsion sur le reset du
microcontrleur. Son utilit est de permettre le redmarrage du microcontrleur
en cas de problme (exemple, la prsence dune boucle sans fin accidentelle).
5) Les Timers sont des temporisateurs ou compteurs programmables. Ils
permettent la gnration des impulsions calibrs ou des signaux PWM, et la
mesure du temps ou dvnements. Ils peuvent gnrer des interruptions et
saccompagner de pr-diviseur (prescaler).
6) Les interfaces spcifiques : Certain microcontrleurs possdent des entres
comparateur, ou encore des convertisseurs A/D et D/A trs utiles dans la
gestion des processus automatiss.
7) Les ports srie dentres/sorties permettent lchange de donnes entre le
microcontrleur et un priphrique bit par bit sur un fil unique, dune manire
squentielle et suivant un ordre prcis. Il y a deux types de liaison srie :
synchrone et asynchrone.
8) Les contrleurs de bus spciaux de communication sont parfois prsents par
exemple : UART, I2C, SSP, CAN, FlexRay, USB, Ethernet, ...etc. Ils rendent
le microcontrleur plus onreux mais ncessaires si lapplication est bas sur
un de ces bus.
9) Le contrleur dinterruptions est indispensable dans un microcontrleur.
Exceptionnels sont les cas o il ne faut pas envisager au moins un cas
durgence ou tenir compte dvnement asynchrones lexcution du
programme. Linterruption est un programme qui permet linterruption de
lexcution dun programme (mais pas dune instruction), pour raliser une
tche prioritaire gnralement de courte dure.
10) Les ports parallles dentres/sorties permettent lchange de donnes entre
le microcontrleur et un priphrique gnralement en 8 bits. Ils permettent de
recueillir des informations en entre (tats de capteurs) ou denvoyer des
35
signaux binaires en sortie pour commander des actionneurs et piloter des
modules de lenvironnement extrieur.
Les broches de ces ports (Les lignes dE/S ou encore le Pins) sont configurable
individuellement en entre ou en sortie.
La configuration ainsi que ltat logique de ces pins est effectue par des
oprations dcriture et de lecture dans diffrents registres associs chaque
port. On trouve gnralement :
- Un registre de direction pour une configuration en entre ou en sortie,
- Un registre de donne recopiant les tats logique de chaque pin de port
configur en entre,
- Un registre de donne contrlant le niveau logique de chaque pin de port
configur en sortie.

7 Modes de fonctionnement lectrique du microcontrleur :


Un microcontrleur possde plusieurs modes ou tats de fonctionnement. On distingue
principalement le mode normal, le sleep mode le idel mode et le power down
mode.
Les spcificits de chaque mode doivent tre examines dans la fiche technique du
microcontrleur, mais le principe est de rduire la consommation tout en prservant les
donnes acquises.

36
Chapitre 5 : Micro-Contrleur ATtiny 2313

1 Description du Microcontrleur ATtiny 2313


ATtiny 2313 est un microcontrleur conu par la firme ATMEL. Cest un
microcontrleur 8-bits CMOS basse puissance et de haute performance bas sur
l'architecture RISC renforce d'AVR, figure 1. Il possde les caractristiques gnrales
suivantes:
120 instructions puissante- La plus part s'excute en un seul cycle de base (sauf
les instructions de saut ou d'accs mmoire).
Architecture Harvard est utilise
32x8 (General Purpose working Registers ) registres de travail usage gnral
Une vitesse dexcution de 20 MIPS (Million Instruction Per Second) une
frquence de 20MHz.
Il se prsente dans de diffrents botiers, figure 2:
20-pin PDIP(Plastic Dual In-Line Package),
20-pin SOIC (Small Outline Integrated Circuit),
20-pad QFN/MLF(Quad Flat No Leads/ Micro Lead Frame).
Son architecture est donne sur la figure 3, illustrant les composantes suivantes :
Mmoires:
2K Octets (In-System Self Programmable Flash) mmoires Flash auto-
programmable
128 Octets (In-System Programmable EEPROM) mmoire programmable
dans le systme
128 Octets SRAM Interne
Verrou de programmation pour la scurit des programmes dans Flash et
les donnes dans L'EEPROM
Les priphriques:
- Timer/compteur 8-bit avec un diviseur de frquence et mode de
comparaison spars

37
- Timer/compteur 16-bit avec un diviseur de frquence et mode de
comparaison et d'acquisition spars
- 4 canaux PWM
- Comparateur analogique sur puce
- Un timer chien de garde programmable avec oscillateur interne
- USI-Universal Serial Interface
- USART en duplex Integral
- 3 ports parallles dentre/sortie (port A :3bit, port B : 8bits, et port D :
7bits) fournissant 18 Lignes d'E/S programmable.
Les caractristiques spciales de ce microcontrleur sont :
- debugWIRE On-Chip Debugging permet laccs en lecture ou criture de
toutes les mmoires et un contrle complet des tapes dexcution. Cela inclus
lexcution par tape (single step), run-to-cursor, setp-out et software break
instructions. Elle permet aux programmeurs de tester leur travail.
- programmation in-situ (In-System Programmable ou ISP) est une fonctionnalit
qui permet au microcontrleur dtre programmer ou reprogrammer alors quil
est plac en systme via un Port SPI (Serial Peripherical Interface)
- Sources d'interruptions externes et internes
- Low-power Idle, Power-down, and Standby Modes
- Circuit de dtection de chute de tension programmable (Programmable Brown-
out Detection Circuit)
- Oscillateur interne calibr
Les tensions de travail sont: 1.8 - 5.5V (ATtiny2313V)
2.7 - 5.5V (ATtiny2313)
La vitesse de fonctionnement est :
ATtiny2313V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
ATtiny2313: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
Sa consommation lectrique typique est :
Mode Actif 1 MHz, 1.8V: 230 A
32 kHz, 1.8V: 20 A (including oscillator)
Mode de Power-down < 0.1 A at 1.8V
38
Le c ATtiny 2313 peut tre support par un bon nombre de programme et d'outils de
dveloppent de systmes comme : Compilateur C, Macro Assemblers, Program
Debugger/Simulators, In-Circuit Emulators, et des Kits d'Evaluation.

Figure 1 Larchitecture RISC AVR.

39
Figure 2. Les diffrents types de botiers du microcontrleur ATtiny 2313

40
2 Description des broches du C ATtiny 2313 :
Alimentation :
VCC : suivant les versions quand elles existent : Soit une alimentation variant de 4.5V
5.5V, soit une alimentation variant de 2.7V 5.5V. Et mme 1.8V pour certain
(suffixe V ou aucun suffixe).
GND : la masse : 0Volt.

: La broche de reset est une entr qui rinitialise le C. Elle est active par un

niveau logique bas qui doit avoir une dure opportune. Habituellement, le temps de
tourne autour de 50 ns. Des temps plus courts nassurent pas la gnration du



Comparateur analogique :
AIN0, AIN1 : Permet de comparer deux tensions et peut fonctionner simultanment
avec un Timer/compteur et dclencher une interruption.
Timer/compteur
OC0A , OC0B, OC1A, OC1B, OCP, T0, T1 : Permet de contrler, de comparer ou de
compter des temps.
Horloge
XTAL1 XTAL2 : Broche utilise par le quartz ou le rsonateur. Les circuits ATMEL
sont fournis avec les fusibles dhorloge rgls sur un oscillateur RC interne de
frquence 1MHz. Si lutilisateur veut utiliser ces broches (quand elles sont a usage
multiples) pour connecter un quartz ils doit configurer les fuses-bits. Ces broches ne
sont plut utilisables pour dautres fonctions, sauf changement des fusibles.
Transmission Srie USART
RXD, TXD, XCK, USCK, DO, DI, SCL : Dans le cas dune utilisation en port srie,
Les broches RXD et TXD ne sont plut utilisables pour dautre fonctions. XCK est une
clock pour les transmissions synchrones. DI (Data Input) entre de donne srie, DO
(Data Output) Sortie de donne srie. USCK : Three_wire mode Universal Serial
Interface Clock. SCL : Two-wire mode Serial Clock for USI Two-wire mode.
SERIAL PERIPHERICAL INTERFACE (SPI)

41
SCL(USCK), SCK : Permet de programmer les C ou dtablir des liaisons rapides
entre diffrents priphriques.
TWO-WIRE INTERFACE(I2C)
SCL(USCK), SDA : permet dtablir des liaisons courtes sur 2 fils entre diffrents C.
Equivalent au protocole I2C.
Interruptions
PCINT07 : interruptions extrieures permet de dclencher un sous-programme
quand la broche change dtat.
DebugWire On-Chip Debugging
Dw :Reset ou break pour le dbugage.
Les ports dentre/sortie :
Port A (PA2PA0), port B (PB7PB0), port D (PD6PD0) se sont des ports de E/S
bidirectionnel. Toutes les pattes du port ont des rsistances internes de rappelle pull-
up . Le buffer de sortie est en mesure de fournir jusqu 20 mA de courant, suffisant
pour piloter un afficheur LED. Les pattes sont en haute impdances quand une
condition de reset devient active, ou bien lorsque lhorloge nest pas active.

3 ALU-Arithmetic Logic Unit (Unit Arithmtique et Logique):


L'ALU fonctionne en directe avec les 32 registres usage gnrales. Dans un seul
cycle de base, des oprations arithmtiques entre ces registres ou entre un registre et
une valeur immdiate sont excuts. Les oprations de l'ALU sont classes dans trois
catgories : arithmtique, logique et fonctions sur bit. Quelques implmentations de
cette architecture offrent des multiplicateurs puissants supportant des multiplications
signes/non-signes et le format fractionnel.

42
Figure 3. Les schma bloc du microcontrleur ATtiny 2313

43
4 Registre d'tat (SREG):
Il est dfinie par:

Bit 7- I : Global Interrupt Enable


Les interruptions sont permises si ce bit est mis 1. Si une interruption est en cours ce
bit est automatiquement mis zro. L'instruction RETI le remet 1 pour permettre
une nouvelle interruption. Le bit I peut tre mis 1 ou 0 par les instructions SEI et
CLI respectivement.
Bit 6 T : Bit Copy Storage
Ce bit est utilis par les instruction BLD (Bit LoaD) et BST (Bit STore ) comme bit de
source et de destination, respectivement pour le bit oprande.
Bit 5 H : Half Carry Flag
Le bit H indique la retenue partielle dans quelques oprations arithmtiques. Il est trs
utile dans les oprations BCD arithmtique.
Bit 4 S : Sign bit, S = N V
Le bit de signe S est toujours le ou exclusive du drapeau N et celui dpassement du
complment 2 V.
Bit 3 V : Twos Complement Overflow Flag drapeau de dpassement du
complement 2
Bit 2 N : Negative Flag
Le drapeau ngatif N indique que le rsultat de l'opration arithmtique ou logique est
ngatif.
Bit 1 Z: Zero Flag
Le drapeau zro Z indique que le rsultat de l'opration arithmtique ou logique est nul
Bit 0 C: Carry Flag
Le drapeau de la retenu C indique la retenu du rsultat de l'opration arithmtique ou
logique.

44
Notez bien :
Le registre d'tat change aprs chaque opration de l'ALU, voir la liste du jeu
d'instructions.
Lors de l'excution d'une routine d'interruption le contenu du registre d'tat ne
se sauvegarde pas et ne se restaure pas automatiquement, il faut les faire par
programme.

5 Registres gnraux (General Purpose Working Registers)


Les 32x8-bit registres gnraux forment la file de registres accs rapide avec un
temps d'accs gale un seul cycle machine.
Six des 32 registres (R26-R31) peuvent tre utiliss comme trois registres d'adressage
indirect de 16-bit utiliss dans l'adressage de l'espace de donnes. Un de ces registres
pointeurs d'adresse peut tre utilis pour pointer sur des tableaux dans la mmoire des
programmes Flash. On les appels les registres X, Y, et Z.

Figure 4: Les registres gnraux

45
Figure 5: Les Registres X, Y et Z

6 Excution des instructions:


L'excution de chaque instruction passe par deux cycles : le cycle Fetch o l'instruction
est obtenue de la mmoire des programmes et le cycle d'excution o cette instruction
est excute.
Dans le c ATtiny 2313, les deux types de cycles s'effectuent sim
simultanment, figure 5.
Pendant qu'une instruction est entrain d'tre excuter, les octets composants la
prochaine instruction sont en cours de recherche en mmoire de programme. Ce mode
de fonctionnement, dit pipeline (chane de montage) un seul niveau, permet
p aux
instructions d'tre excuter en un seul cycle de base.

Figure 6: Digramme temporelle des cycles dexcution dune instruction

7 Les ports d'entres/sorties (Input/Output port):


Un port est un point d'accs aux interfaces d'entres/sorties.

46
Il ya trois ports dans le c ATtiny 2313: Port A (PA2..PA0) 3bits, Port B (PA7..PA0)
8bits, Port D (PD6..PD0) 7 bits, se sont des ports bidirectionnel
Pour la gestion de la communication avec les priphriques le c utilise trois types de
registres associss chaque port :
Registre de direction, not DDRx (Data Direction Register), indique la direction de
la donne, ou mieux, la direction que peut prendre chaque bit de la donne du port.
Registre de donnes, not PORTx, contient la donne de sortie envoyer.
Registre des PINs d'entre
d'entr (Input PIN Adresse Register),
), not PINx, sert acqurir
la donne entrer.
O x indique le nom du port / x={A,B,D}.
Les bits de la donnes d'un port sont appels les pins.
s. Chaque pin est dcrite par :
DDRxn, PORTxn, et PINxn; o x indique le nom du port / x={A,B,D} et n indique le
numro du pin.

7.1 Configuration des pins:


La configuration se fait par le registre de direction DDRx. Le bit DDRxn du
registre DDRx slectionne la direction du PIN n:
Si DDRxn =1 Alors PINxn est configur en sortie;
Si DDRxn=0 Alors PINxn est configur en entre
On donne le schma simplifi correspondant chaque pin d'entre
d'entre-sortie, illustr pour
le pin 2 du port B (PB2):

Figure 7: Schma simplifi dun pin dentre-sortie

47
On y trouve deux passeurs. Lun permet tout instant de lire ltat du pin en question.
Lautre permet d'imposer une valeur logique au pin, lorsqu'il est configur en sortie.
On y trouve aussi deux bascules. Chacune fait partie d'un registre 8 bit. L'une de ces
ce
bascules
les est le registre DDR.
DDR L'autre est le registre PORT.

7.2 Utilisation des interrupteurs et boutons poussoirs


Le schma gnralement utilis pour lire la valeur d'un interrupteur ou d'un bouton
bouton-
poussoir est le suivant :

Lorsque le bouton-poussoir
poussoir est press,
press, l'entre du contrleur reoit la valeur 0.
Lorsqu'il est ouvert, une rsistance est ncessaire pour qu'une valeur 1 soit
transmise l'entre. On l'appelle rsistance de rappel, ou pull-up
up resistor.
resistor
Sans cette rsistance, l'entre serait en l'air (=libre =non connecte=non relie). Or les
entre en circuit fabriqus en technologie C
C-MOS
MOS ont une impdance trs leve, leur
tat est donc indtermin lorsqu'elles ne sont pas relies. On observe facilement dans la
pratique qu'une entre en l'air chang
changee de valeur chaque instant, sous l'influence des
perturbations lectromagntiques ambiantes.
Avec ce schma, la valeur lue sur l'entre sera 0 lorsque le bouton est press (donc
actif) et 1 lorsque le bouton est relch.
Le fabricant de la famille des contrleurs AVR intgr une rsistance de rappel sur
le circuit intgr pour imposer la valeur logique 1 lentre lorsque celle-ci
celle est libre.
Ainsi, un bouton poussoir ou une interrupteur peut tre connect sans besoin de
rsistance externe.
La fonctionnalit
ionnalit correspondant l'tat des bits des registre DDR et PORT est donne
sur le tableau suivant :

48
DDRXn PORTXn Configuration du pinn du port X
0 0 Entre, Haute impdance
0 1 Entre, avec rsistance de rappel
1 0 Sortie, tat 0
1 1 Sortie tat 1
Exemple:
On veut mettre les pins 0 et 1 du port B au niveau haut, les pins 2 et 3 du port B au
niveau bas, et configurer les pins 4 7 en entre.
Si le pin 5 est au niveau haut mettre une variable x 33 sinon 0
Le programme en code C est le suivant :

#include<tiny2313.h>
Int x;
Void main (void)
{
DDRB=0x.;
While(1)
{ PORTB=0x;
If (PINB5==1) x=33;
Else x=0;
}
}

8 Les modes de basse consommation (de sauvegarde de


puissance)
Mode Idle arte le CPU pendant que le SRAM, Timer/compteurs, port SPI, et le
systme d'interruption continuent fonctionner.
Le mode power-down sauvegarde le contenu des registres mais stop l'oscillateur,
inhibant de la sorte le fonctionnement du reste des lments jusqu' l'arriv de la
prochaine interruption externe ou une RESET matrielle.

49
Dans le mode Standby, l'oscillateur Crystal/rsonateur est fonctionnel alors que les
autres lments ne le sont pas. Cela permet un dmarrage trs rapide avec une
consommation de puissance minimal

9 Mmoire de programme
Le c ATtuny 2313 contient une mmoire In-System programmable Flash (ISP Flash)
de 2 K octets pour stocker mes programmes. Comme les instructions de lAVR sont de
largeur 16 ou 32 bits, la mmoire Flash est organise en 1Kx16.
Ce type de mmoire peut tre reprogramm dans la puce travers un SPI Serial
peripheral interface ou par un programmeur de mmoire non-volatile conventionnel.

10 Mmoire de donne

10.1 La mmoire de donne interne SARM


Elle peut tre dcompose en deux parties significatives : Lune contient les donnes et
lautre est destine aux registres.
Lespace adressable par le c pour les donnes est illustr dans la figure 7.

Figure 8. Cartographie de la mmoire de donnes

Espace de 0000-001F est rserv pour les 32 registres usage gnral. Lespace qui
suit est rserv aux 64 registres standard dI/O dcrits dans le tableau registre

50
summary . Les 128 derniers emplacements mmoires sont rservs pour la mmoire
SRAM interne.

10.2 La mmoire EEPROM


Le C ATtiny 2313 possde une mmoire de donne type EEPROM de capacit 128
Octets. Elle est organise dans un espace de donnes spar ou un seul octet peut tre
lu ou crit chaque fois. LEEPROM a une endurance de 100,000cycle
dcriture/effacement.
La mmoire EEPROM diffre de la mmoire SRAM dans la conservation de
linformation aprs la coupure de lalimentation, et en plus on peut crire et lire dans
lEEPROM lors de lexcution du programme.
Il ya trois registres associs laccs de lEEPROM :
EEAR (EEPROM Address Register) : registre de ladresse contient ladresse de
la donne lire ou crire.
EEDR (EEPROM Data Register) : registre de donne contient la donne
crire en cas dcriture ou la donne lue en cas de lecture.
EECR (EEPROM Control Registre) : registre de contrle pour contrler laccs
la mmoire EEPROM.
Ces registres sont accessibles dans lespace dI/O.
Lors de la lecture dans LEEPROM le CPU sarrte pendant 4 cycles horloge avant
que linstruction suivante ne sexcute. Lors de lcriture, le CPU sarrte pendant 2
cycles horloge avant que linstruction suivante ne sexcute.

10.2.1 Description du registre de contrle de lEEPROM (EECR)

Figure 9. Registre de contrle de lEEPROM.

51
Bit 5-4 : EEPM1, EEPM0 (EEPROM Programmation Mode bits)
Les bits de mode de programmation dfinis quelle opration de programmation
entreprendre lorsque le bit EEPE est crit. Ces bits sont ignors si le bit EEPE est mis
1.
EEPM1 EEPM0 Temps de programmation Opration
0 0 3.4 ms Effacer et crire en une seule opration
0 1 1.8 ms Effacer seulement
1 0 1.8 ms crire seulement
1 1 - Rserver pour une utilisation ultrieur

Bit 3 : EERIE (EEPROM Ready Interrupt Enable)


Si le bit de validation de linterruption EE_RDY (EERIE) est mise 1, cette
interruption est valid si le bit I du registre dtat SREG est 1.
Sinon (EERIE=0) linterruption est bloque.
Sachant que linterruption EE_RDY gnre une interruption constante lorsque
lEEPROM est prte pour la programmation (c--d la fin de chaque opration
programmation).
Bit 2 : EEMPE ( EEPROM Master Programming Enable)
Le bit matre de lautorisation de la programmation de lEEPROM dtermine si la mise
1 de lEEPE a un effet ou non.
Si EEMPE=1, la mise 1 de EEPE pendant 4 cycle horloge va programmer
lEEPROM ladresse slectionne.
Sinon (EEMPE=0) la mise 1 de EEPE na aucun effet.
Lorsque EEMPE est mise 1 par le programme, le matriel (hardware) efface le bit et
le met 0 aprs 4 cycles horloge.
Bit 1 : EEPE (EEPROM Programming Enable)
Lorsque le bit dautorisation de programmation est crit, lEEPROM va tre
programme selon les bits EEPMn. La mise 1 du bit EEMPE doit tre effectue avant
la mise 1 du bit EEPE, sinon aucune programmation naura lieu. Lorsque le temps de
programmation (dcriture) est coul le bit EEPE est mis 0 par le hardware. Et

52
lorsque le bit EEPE est mis 1, le CPU est arrt pour 2 cycles horloge avant que la
prochaine instruction ne sexcute.
Bit 0 : EERE (EEPROM Read Enable)
Le bit dautorisation de lecture lEEPROM est une sorte de demonde de lecture.
Lorsque ladresse est place dans le registre EEAR, le bit EERE doit tre mis pour
que la lecture aura lieu.
Lopration de lecture de lEEPROM seffectue en un seul cycle horloge, et elle ne
peut pas seffectuer si une opration dcriture est en cours et on ne peut pas changer le
contenu du registre EEAR. Donc on doit vrifier la valeur du bit EEPE qui doit tre =0
avant que la prochaine instruction ne sexcute.

10.2.2 Procdure de lecture/criture dans lEEPROM


Bien que lutilisation de lEEPROM laide des registres reste simple, une procdure
particulire est effectue avant toute demande dcriture dans cette mmoire, dans le
but de scuriser au maximum le bon fonctionnement de celle-ci.

10.2.2.1 Procdure dcriture

Test du bit EEPE = 0afin de savoir si une procdure est en cours.


Ecrire ladresse o lon souhaite crire la donne dans les registres EEAR.
Ecrire la donne dans le registre EEDR.
Mettre 1 le bit EEMPE.
Mettre 1 le bit EEPE dans un dlai infrieur quatre cycles dhorloge sous
peine dannuler lcriture.

10.2.2.2 Procdure de lecture

Test du bit EEPE = 0 afin de savoir si une procdure est en cours.


Ecrire ladresse o lon souhaite accder la donne dans les registres EEAR.
Mettre 1 le bit EERE.
Lecture de la donne dans le registre EEDR.

53
10.2.2.3 Exemples de procdure en C pour la lecture et lcriture dans
lEEPROM
Void EE_READ (Var ,Adr) //Lire une donne dans lEEPROM dadresse Adr et la mettre
dans une variable Var
{
While (EECR & 0x02) ;//vrifier si EEPROM est prte
EEAR =Adr ; //mettre ladresse dans le registre EEAR
EECR |= 0x01 ; //mettre 1 le bit EERE
Var=EEDR ; //Lire la donne en la mettant dans la variable Var
}

Void EE_Write(Adr, Val) //Ecrire une donne val dans lEEPROM ladresse Adr
{
while (EECR & 0x02) ;
EEAR=Adr;
EEDR=Val;
EECR|=0x04;
EECR|=0x02;
}

54
Chapitre 6 : Timers dans le microcontrleur ATtiny2313

1 Gnralits sur le Timer/counter


Le timer/counter (temporisateur/compteur) ou tous court un timer est un
priphrique matriel important dans le microcontrleur fonctionnant
indpendamment de lexcution du programme. Il peut fonctionner soit comme :
un temporisateur (timer) : mesure le temps entre deux actions ou vnements et
gnre des impulsions. Un signal dhorloge interne (clk_I/O) ou driv de ce
signal est utilis pour synchroniser le timer.
un compteur (counter) : compte le nombre dvnements sur une broche (pin).
Un signal externe provenant dun pin dun port est utilis pour le synchroniser.

2 Les timer/counter dans le C ATtiny 2313


Le -controleur ATtiny 2313 possde deux timers avec des rsolutions diffrentes :
Timer/conter0 de 8 bits et Timer/conter1 de 16 bits. La rsolution du timer indique
sa capacit de comptage, par exemple le timer 8 bits peut compter jusqu 28=256
avant de passer 0.

3 Circuit de slection du signal horloge


Le circuit logique qui permet la slection du signal horloge pour le timer/counter0
(clkT0) et celui du timer/counter1 (clkT1) est prsent sur la figure 1.
La source du signal horloge est slectionne par les trois bits CS00, CS01, CS02 du
registre de control du timer/counter0 (TCCR0B) selon le tableau 1. La mme logique
de slection est valable pour le timer/counter1 mais en utilisant les bits CS10, CS11,
CS12 du registre de control du timer/counter1.

55
Tableau 1
CS02 CS01 CS00 Description
0 0 0 Arrter le timer/counter0
0 0 1 clkT0 =CK (Pas de division)
0 1 0 clkT0 =CK/8 (Division par 8)
0 1 1 clkT0 =CK /64 (Division par 64)
1 0 0 clkT0 =CK /256 (Division par 256)
1 0 1 clkT0 =CK /1024 (Division par 1024)
1 1 0 clkT0=T0 (Le timer0 est synchroniser sur front descendant)
1 1 1 clkT0=T0 (Le timer0 est synchroniser sur front montant)

4 Timer/counter0 8 bits:
Ce timer est caractris par :
Deux units indpendantes de sortie de comparaison (Output Compare Units) ;
Deux registres tampons de sortie de comparaison (Double Buffered Output
Compare Registers) ;
Remise zro du timer sur Compare Match ;
Phase Correct Pulse Width Modulator (PWM);
Priode de PWM variable ;
Gnrateur de frquence ;
Trois sources dinterruptions indpendantes (TOV0, OCF0A, and OCF0B).
Le schma block simplifi du timer/counter0 est illustr sur la figure 2. Sur la figure 3,
on dcrit les registres du timer/counter0.

5 Les registres du timer/counter0

5.1 Le registre TCNT0


Valeur de TCNT0 est accessible en lecture ou criture en permanence. mais si le mode
comparaison est actif, le contrle peut tre pass et entraner une erreur dans votre
programme, le compteur ne se bloquera pas.

56
5.2 Les registres OCR0A et OCR0B
Ces registres sont les registres de sortie de comparaison (Output Compare Registers).
Leurs contenues sont constamment compares avec celui du TCNT0. Le rsultat de
comparaison est utilis par le gnrateur de forme donde (Waveform Generator to
generate) pour gnrer un signal PWM ou une sortie frquence variable sur les pins
OC0A and OC0B (Output Compare pins).

5.3 Les registres TCCR0A, TCCR0B


TCCR0A et TCCR0B (Timer/Counter0 Control Registers) sont les registres de
contrle du timer/counter0.
Les bits CS02, CS01 et CS00 (les bits 2-0 du registre de control TCCR0B)
permettent la slection de la source du signal horloge clkT0, voir tableau 1.
Les bits WGM02, WGM01 et WGM00 (Le bit 3 du registre de control
TCCR0B et les bits 1-0 du registre de control TCCR0A, respectivement) sont
les bits qui permettent de dterminer le mode dopration du timer (c--d, la
squence de comptage, la source de la valeur TOP du timer et le type de
gnration de forme donde), tableau 2.
Les modes dopration que peut supporter le timer/counter0 sont :
Le mode normal ;
Le mode CTC (Clear Timer on Compare Match) ;
Le mode Phase correct PWM (pulse width modulation- modulation de largeur
dimpultion)
Le mode fast PWM

Les bits COM0A1-0 (les bits 7-6 du registre TCCR0A) et les bits COM0B1-0
(les bits 5-4 du registre TCCR0A) sont les bits qui contrlent le comportement
du pin de sortie de comparaison (OCA) et (OCB), respectivement, tableau 3 -4.
Les bits FOC0A et FOC0B (les bits 7-6 du registre de contrle TCCR0B) sont
actifs seulement si les bits WGM02-0 spcifient un mode non-PWM (mode
normale ou mode CTC). Dans les modes PWM, ils doivent tre mis zro. La

57
mise 1 de ces bits entraine le forage dune comparaison immdiate dans
lunit de gnration de forme dondes. Cela veut dire que la comparaison se
fait normalement selon les valeurs des bits COM0A1-0 et COM0B1-0 mais
sans la gnration daucune dinterruption et sans remise zro du TCNT sur
compare match en mode CTC. Ces bits sont est toujours lu comme zro.

5.4 Le registre TIFR


Le registre TIFR (Timer Interrupt Flag Register) indique ltat des interruptions
internes du Timer0 et du Comparateur.
Le bit OCF0A Output Compare Flag (respectivement OCF0B) est mis 1
quand une galit se produise entre le contenu du registre TCNT0 et celui du
registre OCR0A (respectivement OCR0B).
Le bit TOV0 Timer/Counter0 Overflow Flag est mis 1 quand le
Timer/Counter0 dpasse une certaine valeur. Cette valeur peut tre la valeur
MAX ou BOTTOM ou bien la valeur stocke dans le registre OCR0x, cela
dpend des bits WGM02-1, tableau 2.

Ces bits sont remis 0 par le matriel lors de lexcution de linterruption. Le


programmeur peut aussi les mettre 0.

5.5 Le registre TIMSK


Le registre TIMSK (Timer Interrupt Mask) contient trois bits de masquage
dinterruptions associs au timer/counter0 : OCIE0A, OCIE0B et TOIE0.
Lorsque le bit OCIE0A-Output Compare Interrupt Enable- (respectivement
OCIE0B) et le bit I du registre dtat sont mis 1 linterruption de comparaison
A (respectivement B) du timer/counter0 est valide.
Lorsque le bit TOIE0 Timer/counter0 Overflow Interrupt Enable - et le bit I
du registre dtat sont mis 1 linterruption de dbordement du timer/counter0
est valide.

58
5.6 Unit de sortie de comparaison
Le schma synoptique de lunit de sortie de comparaison est donn sur la figure 4. Le
gnrateur de forme d'onde emploi les bits COM0A1-0 (respectivement COM0B1-0)
pour dfinir l'tat du registre tampon OC0A (respectivement OC0B).
La direction des pins PB2/OC0A et PD5/OC0B est toujours contrle par le registre de
direction des donnes (DDRx). Pour slectionner la sortie de comparaison OC0x
provenant du gnrateur de forme donde il faut que lun des bits COM01-0 soit mis
1. Avant que la valeur de OC0x soit disponible sur le pin, il faut configurer ce pin en
sortie en mettant un 1 dans le bit correspondant du registre de direction de donnes.
Les registres OCR0x sont double tampon (double buffered) seulement en modes
PWM. Dans les modes non-PWM la caractristique du double buffering est
dsactiver. Le double buffering synchronise la mise jour du registre OCR0x ce qui
prvient dobtenir des impulsions PWM de longueur impaire et non-symtrique. Ce
fonctionnement est trs simple : lorsque le double buffering est valid le CPU a accs
au registre tampon de OCR0x et dans le cas contraire le CPU a accs directement au
registre OCR0x.

6 Le fonctionnement du Timer/Compteur0
Le compteur TCNT0 est le cur du timer. Son signal dhorloge clkT0 peut tre
lhorloge interne, via le pr diviseur (prescalar), une horloge externe sur la broche T0
(PD4) ou inactif quand aucune source d'horloge n'est choisie.
La valeur de ce registre est incrmente et compare en permanence celle du registre
OCR0A (respectivement OCR0B). Le rsultat de comparaison est utilis par le
gnrateur de forme donde pour produire une sortie PWM ou une sortie frquence
variable sur le pin OC0A (respectivement OC0B).

6.1 Les modes dopration du timer/counter0


Le mode dopration est le comportement du timer0 et les pins de sortie de
comparaison. Il est dfini par les bits de mode de gnration de forme donde
WGM02-0 et les bits de mode de sortie de comparaison COM0x1-0. Les bits WGM02-

59
0 affectent la squence de comptage contrairement aux COM0x1-0. Linversion ou non
de la sortie PWM gnre est contrl par les bits COM0x1-0. Pour les non-PWM
modes ces bits contrlent si la sortie doit tre mise 1, mise 0, ou inverser en cas
dgalit (compare match).
Les modes dopration du timer/counter0 sont :
Le mode normal ;
Le mode CTC (Clear Timer on Compare Match) ;
Le mode Phase correct PWM (pulse width modulation- modulation de largeur
dimpultion)
Le mode fast PWM

7 Programmation du timer/counter0 en mode normal


Le mode normal est le mode le plus simple (WGM01=0 et WGM00=0) o le registre
TCNT0 sincrmente chaque coup dhorloge jusqu sa valeur maximale (Fixed TOP
Value=0xFF), puis redmarre partir du BOTTOM=0x00. Le drapeau de dpassement
(TOV0) est mis 1 dans le mme cycle horloge de redmarrage du registre TCNT0. Il
peut tre lu par le programme (pour gnrer une interruption) et tre remis 0. La
remise 0 de ce bit se fait en crivant un 1. A tous moment, une nouvelle valeur peut
tre crite dans le registre TCNT0, figure 5. Dans le mode normal, lunit de sortie de
comparaison peut tre utilise pour gnrer des interruptions des moments donnes.
La gnration des signaux en ce mode est viter car elle occupe beaucoup du temps
du CPU. Car on ne peut pas forcer le timer zro en cas dgalit entre les registres
TCNT0 et OCR0x.

8 Programmation du timer/counter0 en mode CTC (Clear


Timer on Compare match)
Dans le mode CTC (WGM02-0=2), le registre TCNT0 est mis zro lorsque sa valeur
est gale la valeur du registre OCR0x. Ce mode permet un bon contrle de la
frquence de sortie de comparaison. Il simplifie aussi les oprations de comptage des

60
vnements externes. Le schma bloc du timer/counter0 en mode CTC et son
diagramme temporel sont prsents sur la figure 9 et figure 10, respectivement.
Une interruption peut tre gnrer chaque fois la valeur de TCNT0 atteint la valeur
TOP en utilisant le drapeau OCF0x. Si linterruption est valide, la routine de service
peut tre utilise pour changer la valeur TOP. Cependant, le changement de TOP une
valeur proche du BOTTOM lors du comptage du TCNT0 avec un petit facteur de
division ou sans division doit tre fait avec prcaution, car il n y a pas de
caractristique de double buffering dans ce mode. Si une nouvelle valeur crite dans
le registre OCR0x est infrieur la valeur courante de TCNT0, le compteur va rater le
Compare Match et continu son comptage jusqu la valeur maximale (0xFF) puis
revient zro avant que le Compare Match peut se produire.

9 La modulation de largeur dimpulsion (Pulse Width


Modulation -PWM)
PWM)
Elle consiste comparer la modulante (le signal moduler)
moduler une porteuse
gnralement triangulaire.
triangulaire. Le signal de sortie vaut 1 si la modulante est plus grande
que la porteuse, sinon il vaut 0, voir les deux figures ci-dessous.
ci

La modulante : +
Comparateur
Le signal PWM
-
La porteuse :

61
La modulation de largeur dimpulsion est une technique trs utilise dans le domaine
de tlcommunication et le contrle de puissance (On peut par exemple, contrler la
luminosit des LEDs, mlanger les couleurs en utilisant des LEDs RGB, contrler la
vitesse dun moteur DC, gnrer des signaux audio, gnrer un signal modul pour par
exemple commander une LED infra-rouge dune tlcommande). Elle est
principalement utilise pour contrler la quantit de lnergie fournir au dispositif
lectrique par fonctionnement tout ou rien. Ainsi, la valeur moyenne de lnergie reue
par le dispositif lectrique dpond du rapport cyclique.
Le rapport cyclique pour un signal carr, not est dfini comme tant le rapport
entre la dure niveau haut (tH) du signal et sa priode (T).

Il varie de 0 1, et en pourcentage de 0 % 100 %.

10 Programmation du timer/counter0 en mode fast PWM


Le mode fast PWM (WGM02:0 = 3 or 7) permet la gnration de signaux de type
PWM de haute frquences sur la sortie OC0x.
Dans ce mode, le compteur TCNT0 compte du BOTTOM jusqu TOP puis
recommence partir du BOTTOM.
TOP = Max si WGM02=0
OCR0x si WGM02=1
Avant de passer de la valeur TOP au BOTTOM, lindicateur TOV0 est mise 1. Si
linterruption associe est valide, sa routine peut tre utilise pour changer la valeur
du registre OCR0x.
Au cours du comptage du BOTTOM au TOP la comparaison entre TCNT0 et OCR0x
est effectue. Si une galit est trouve, le pin OC0x est programm par la valeur de
COM0x1 :0 pour se mettre 1 ou 0. Plus prcisment :
Si COM0x1 :0=1 et si WGM02=1, la sortie OC0A est invers en cas dgalit
entre TCNT0 et OCR0A. Cette fonctionnalit nest pas disponible pour OC0B.

62
Si COM0x1 :0=2, le mode de sortie de comparaison est sans inversement
(mode non-inverted fast PWM) o la sortie OC0x est :
mise 0(clear) si TCNT0=OCR0x
mise 1(set) si TCNT0=TOP
Si COM0x1 :0=3, le mode de sortie de comparaison est avec inversement
(mode inverted fast PWM) o la sortie OC0x est :
mise 1(set) si TCNT0=OCR0x
mise 0(clear) si TCNT0= TOP
Remarque 1 :
Il faut noter que les valeurs extrmes du registre OCR0x reprsentent des cas spciaux
dans la gnration du signal PWM.
Si OCR0x =BOTTOM, le signal la sortie OC0x est form dun pic troit dans
chaque (MAX+1) cycle horloge du timer0.
Si OCR0x = MAX, le signal la sortie OC0x sera constant de niveau haut dans
le mode non-inverted fast PWM et constant de niveau bas dans le mode
inverted fast PWM.

4=TOP

10.1 Fast PWM Mode avec TOP= MAX=0xFF (WGM02=0)


Le schma bloc du timer/counter0 en Fast PWM mode et son diagramme temporel sont
prsents sur la figure 11 et figure 12, respectivement.

La frquence du signal gnr sur OCR0x est obtenu par :

63


= =
256 256

=
. 256
N reprsente le facteur de division (1, 8, 64, 256 ou 1024).
Le rapport cyclique est dtermin par la valeur mettre dans le registre OCR0x. Cette
valeur varie de 0 255 et peut tre obtenue a partir de la formule suivante :

Rapport cyclique= 100 mode Non-Invers


Rapport cyclique = 100 mode Invers

Exemple : en mode Non invers


Rapport cyclique (%) OCR0x
En dcimale En hexadcimale
30 76 0x4C
64 163 0xA3
80 2044 0xCC

Remarque 2 :
Le Timer0 peut gnrer des signaux PWM sur deux pins diffrents. Ces
signaux possdent la mme frquence mais diffrent dans le rapport cyclique.
La gnration d'un signal PWM dans ce mode se fait en deux tapes :
Programmation du Timer0 pour gnrer un signal de frquence
spcifie.
Dtermination de la valeur fixe mettre dans le registre de comparaison
OCR0x qui permet de dfinir le rapport cyclique.

10.2 Fast PWM Mode avec TOP=OCR0x (WGM02=1)


Ce mode est utilis pour avoir plus de contrle sur la frquence du signal PWM gnr
que le mode prcdent.

64
Dans ce mode, le compteur TCNT0 compte du BOTTOM jusqu TOP=OCR0A puis
recommence partir du BOTTOM. Selon le cas spcial (OCR0x=TOP) quon a cit
dans la remarque 1, on a
Si COM0A1 :0=2, le signal gnr sur OC0A est constant de niveau haut (ce nest pas
signal PWM).
Si COM0A1 :0=3, le signal gnr sur OC0A est constant de niveau bas (ce nest pas
signal PWM).
La seule combinaison utilisable est :
COM0A1 :0=1 o le signal gnr sur OC0A sinverse chaque cycle horloge du
timer0.
Dans ce cas la frquence du signal gnr sur OC0A est :
_
=
2. . (1 + 0)

Et le rapport cyclique est toujours fix 50%


Cela sexplique par le fait que la valeur du registre OCR0A ne peut pas tre utilise
comme la valeur maximale de comptage et la valeur de comparaison la fois.
En fait, cest le canal B qui est utilis pour gnrer un signal PWM avec une frquence
et un rapport cyclique contrlable.
La frquence du signal est donne par :
_
=
. (1 + 0)
Et le rapport cyclique est donn par :

Rapport cyclique= 100 mode Non-Invers

()
Rapport cyclique = 100 mode Invers

La gnration d'un signal PWM dans ce mode se fait en 2 tapes :


Programmation du Timer0 pour gnrer un signal de frquence spcifie en
mme temps que la dtermination de la valeur fixe mettre dans le registre de
comparaison OCR0A.

65
Dtermination de la valeur fixe mettre dans le registre de comparaison
OCR0B qui permet de dfinir le rapport cyclique.

11 Programmation du timer/counter0 en mode Phase Correct


PWM:
Dans le mode phase correct PMW (WGM02:0 = 1 or 5), le compteur commence par
compter de BOTTOM TOP puis dcompte de TOP jusqu BOTTOM. Notez bien
que le compteur est = TOP juste pendant un seul cycle horloge du timer0.
TOP = MAX si WGM02 :0=1
OCR0x si WGM02 :0=5
Quand le compteur atteint BOTTOM, lindicateur TOV0 est mise 1.
Au cours du comptage et du dcomptage la comparaison entre TCNT0 et OCR0x est
effectue.
Si une galit est trouve, le pin OC0x est programm par la valeur de COM0x1 :0
pour se mettre 1 ou 0. Plus prcisment :
1. Si COM0A1 :0=1 et si WGM02=1, la sortie OC0A est invers en cas dgalit
entre TCNT0 et OCR0A. Cette fonctionnalit nest pas disponible pour OC0B.
2. Si COM0x1 :0=2, le mode de sortie de comparaison est sans inversement
(mode non-inverted fast PWM) o la sortie OC0x est :
mise 0(clear) si TCNT0=OCR0x lors du comptage
mise 1(set) si TCNT0=OCR0x lors du dcomptage
3. Si COM0x1 :0=3, le mode de sortie de comparaison est avec inversement
(mode inverted fast PWM) o la sortie OC0x est :
mise 1(set) si TCNT0=OCR0x lors du comptage
mise 0(clear) si TCNT0=OCR0x lors du dcomptage
Remarque 3 :
1) Il faut noter que les valeurs extrmes du registre OCR0x reprsentent des cas
spciaux dans la gnration du signal PWM.
Si OCR0x = BOTTOM, le signal la sortie OC0x est constamment au
niveau bas.

66
Si OCR0x = MAX, le signal la sortie OC0x sera constant de niveau haut
dans le mode non-inverted PWM et constant de niveau bas dans le mode
inverted PWM.

2) On peut avoir des transitions sans quune galit ne se soit produite. Il ya deux
cas :
Lorsque OCR0x=MAX et si la valeur de OCR0x change au moment o
TCNT0= MAX, figure 13. La sortie OC0x est programme selon le cas
dune galit lors de dcomptage.
Lorsque le timer0 commence le comptage partir dune valeur suprieur
la valeur de registre OCR0x. le signal la sortie OC0x est programme
selon ce qui a due ce pass.

Figure 1. Le circuit de slection du signal horloge pour les deux timers

67
Canal A

Registre de comparaison Registre tampon de


de sortie A (OCRnA) comparaison de sortie A
(OCRnA)

Horloge Comparateur numrique Gnrateur de forme OCnA


Sortie du canal

Registre Registres de control de


Prescaler Timer/counter
duTimer/counter (TCCRnA et TCCRnB)
(TCNTn)

Comparateur numrique Gnrateur de forme OCnB


Sortie du canal

Registre de comparaison Registre tampon de


de sortie B (OCRnB) comparaison de sortie B
(OCRnB)
Canal B

Figure2. Schma block simplifi du timer/counter0 et timer/counter1

68
Le registre de contrle TCCR0A

Le registre de contrle TCCR0B

Le registre du timer/counter0

Le registre de sortie de comparaison A

Le registre de sortie de comparaison B

Le registre des indicateurs dinterruption

Le registre des masques dinterruption

Figure 3. Les registres du timer/counter0.

69
Tableau 2

Tableau 3. Fonctionnalits des bits COM0A0-1 dans les diffrentes modes dopration du timer/counter0
Mode dopration COM0A1 COM0A0 Description
0 0 OC0A dconnecte (opration du port normale)
0 1 Inverser OC0A sur Compare Match
Mode normal et CTC
1 0 Mise 0 de OC0A sur Compare Match
1 1 Mise 1de OC0A sur Compare Match
0 0 OC0A dconnecte (opration du port normale)
- WGM02 = 0: OC0A dconnecte (opration du port
0 1 normale).
- WGM02 = 1: Inverser OC0A sur Compare Match
Mode Fast PWM
- Mise 0 de OC0A sur Compare Match
1 0
- Mise 1 de OC0A sur TOP
- Mise 1 de OC0A sur Compare Match
1 1
- Mise 0 de OC0A sur TOP
0 0 OC0A dconnecte (opration du port normale)
- WGM02 = 0: OC0A dconnecte (opration du port
0 1 normale).
- WGM02 = 1: Inverser OC0A sur Compare Match
- Mise 0 de OC0B sur Compare Match lors dun
Mode Phase correct comptage.
1 0
PWM - Mise 1 de OC0B sur Compare Match lors dun
dcomptage.
- Mise 1 de OC0B sur Compare Match lors du
comptage.
1 1
- Mise 0 de OC0B sur Compare Match lors de
dcomptage.

70
Tableau 4. Fonctionnalits des bits COM0B0-1 dans les diffrentes modes dopration du timer/counter0
Mode dopration COM0B1 COM0B0 Description
0 0 OC0B dconnecte (opration du port normale)
0 1 Inverser OC0B sur Compare Match
Mode normal et CTC
1 0 Mise 0 de OC0B sur Compare Match
1 1 Mise 1de OC0B sur Compare Match
0 0 OC0B dconnecte (opration du port normale)
0 1 Rserve
- Mise 0 de OC0B sur Compare Match
Mode Fast PWM 1 0
- Mise 1 de OC0B sur TOP
- Mise 1 de OC0B sur Compare Match
1 1
- Mise 0 de OC0B sur TOP
0 0 OC0B dconnecte (opration du port normale)
0 1 Rserve
- Mise 0 de OC0B sur Compare Match lors dun
comptage.
1 0
Mode Phase correct - Mise 1 de OC0B sur Compare Match lors dun
PWM dcomptage.
- Mise 1 de OC0B sur Compare Match lors du
comptage.
1 1
- Mise 0 de OC0B sur Compare Match lors de
dcomptage.

Figure 4. Schma synoptique de lunit de sortie de comparaison.

71
Figure 5. Timer/counter0 en mode normal.

Figure 6. La distribution des signaux dhorloge.

72
Figure 7 Connexion du ATtiny 2313 un oscillateur quartz.

Figure 8. Clock prescale register


Tableau 5 La slection du facteur de division du signal horloge provenant dun oscillateur
quartz

73
Figure 9 Timer/counter0 en mode CTC.

Figure 10 Digramme temporel du timer/counter0 en mode CTC.

74
Figure 11 Timer/counter0 en mode Fast PWM (WGM02=0).

Figure 12 Digramme temporel du timer/counter0 en mode Fast PWM (WGM02=0).

75
Figure 13 Digramme temporel du timer/counter0 en mode phase correct PWM (WGM02=0).

76
Bibliographie
Datasheet - ATtiny2313 - Atmel Corporation :
www.atmel.com/images/doc2543.pdf
Christian Tavernier, Microcontrleurs AVR : des ATtiny aux ATmega - Description et mise en
uvre, Dunod, Collection Technique et Ingnierie 2me dition, 2013.
Florian Schaeffer, Programmation en C des microcontrleurs RISC AVR, traduction Jean-Paul
Brodier : Publitronic-Elektor International Media, cop. 2009.

Dhananjay V. Gadre, Programming and Customizing the AVR Microcontroller. McGraw-Hill,


2000.

Steven F. Barrett, Daniel J. PackAtmel, AVR Microcontroller Primer: Programming and


Interfacing, Morgan & Claypool Publishers, 2007.

Richard H. Barnett, Sarah A. Cox, Larry D. O'Cull, Embedded C Programming and the Atmel
AVR, Thomson Delmar Learning, 2002.

John Morton, AVR: An Introductory Course, Newnes, 2002.

Claus Kuhnel, AVR RISC Microcontroller Handbook, Newnes, 1998.

Richard H. Barnett, Embedded C Programming And The Atmel AVR, Delmar Cengage
Learning: 2nd edition, 2006.

77