Vous êtes sur la page 1sur 25

CH3 : Etude du microcontroleur Atmega16

Le déroulement de ce cours sera organisé autour de


6 points comme le montre la planche suivante :
Plan du chapitre III

 1- Introduction des microcontroleurs Atmega


 2- Presentation du microcontroleur Atmega16
 3- L’architecture interne de l’atmega16
 4- L’organisation memoire
 5- Les modes d’adressage
 6- Le jeu d’instructions
Animation 1

 Cette 1ere Animation va me permettre de vous


présenter les 4 premiers points du chapitre3

 Une seconde animation suivra et elle abordera les 2 derniers


points de ce même chapitre
III-1 Introduction du microcontrôleur ATMEGA
 Les microcontrôleurs de la famille ATMEGA en technologie
CMOS sont des modèles à 8 bits AVR basés
sur l’architecture RISC. En exécutant des instructions dans
un cycle d'horloge simple, l'ATMEGA réalise
des opérations s'approchant de 1 MIPS c.a.d 1 MHZ permettant de
réaliser des systèmes à faible
consommation électrique et simple au niveau électronique.
La famille AVR 8bits (ATMEL) regroupe une centaine de composants,
chacun disponible dans plusieurs types de boîtiers physique (package).

 La famille AVR peut être découpées en 3 sous familles principales :

 TinyAVR (8 à 20 broches) Circuit Atmega de petite taille


 Méga AVR (20 à 44 broches) Circuit Atmega de taille moyenne
 XMega AVR (44 à 100 broches) Circuit Atmega de grande taille

 Complétés par des familles développées pour des marchés spécifiques :


-Automotive AVR : microcontroleurs AVR dédiés industrie automobile
-Lightning AVR : microcontroleurs AVR dédiés éclairage intelligent
-LCD AVR : microcontroleursAVR dédiés contrôle d'affichage LCD
-USB AVR : microcontroleurs AVR dédiés bus USB
Les Modèles ATMEGA AVR
Vous trouverez dans le tableau qui suit tout les modèles d’ATMEGA existant
et à venir (en 2004) :
La série ATMEGA fournit les particularités suivantes :
 Une FLASH RAM de 4 à 256 Ko (Flash Programmable),
 Une EEPROM de 256 à 4 Ko (Electrique Ecriture Programmable ROM),
 Une SRAM de 512 à 8 Ko octets (Static Random Access Memory),
 De 23 à 53 lignes d'entrée-sortie universelles (Port A, B, C, D, E, F & G),
 32 registres de travails universels qui dialoguent directement avec l'unité centrale
(ALU),
 Une horloge en temps réel (RTC),
 Trois Timer/Compteurs flexibles avec comparaison des modes, interruption internes et
externes,
 Un comparateur analogique (entrée sur PB2, PB3),
 Un convertisseur Analogique/Numérique ADC de 8 canaux à 10 bits,
 Un Chien de Garde programmable avec oscillateur interne,
 Une ou deux interfaces série USART programmable & périodique (série asynchrone et
synchrone),
 Une interface série SPI à trois modes sélectionnables (série synchrone),
 Une interface I2C pour la gestion d’un bus à 2 fils,
 Une interface LCD pour piloter directement un écran LCD (modèles spéciaux),
 Tension d’alimentation de 2,7 V à 5,5 V.
III-2 Présentation de l’ ATMega16

 L'ATméga16 est un composant intermédiaire de la


famille AVR 8 de taille raisonnable (40broches),
qui existe en boîtier DIP et qui est très bien fourni
en périphériques.
– Disponible en boîtier DIP40
– 32 lignes d'entrée/sorties
– 1K octets de SRAM
– 16Ko de mémoire Flash
– 512 octets EEPROM
Brochage
Descriptions des broches de l’Atmega16 :

 Port A (PA7.. PA0) le Port A est un port d'entrée-sortie à 8 bits


bidirectionnel . Il sert aussi pour les entrées analogiques du convertisseur
A/D.

 Port B (PB7.. PB0) le Port B est un port d'entrée-sortie à 8 bits


bidirectionnel . Il sert aussi de comparateur analogique (sortie sur
PB2,PB3), ou de SPI (sur PB4,PB5,PB6,PB7) .
 Port C (PC7.. PC0) le Port C est un port d'entrée-sortie à 8 bits
bidirectionnel. Il sert aussi comme oscillateur pour le Timer/Compteur2
(PC6, PC7) et d’interface I2C (PC0, PC1) .
 Port D (PD7.. PD0) le Port D est un port d'entrée-sortie à 8 bits
bidirectionnel . Il sert aussi d’USART (txd , rxd) et d’entrées pour les
interruptions externes (INT0 et INT1).Il sert aussi pour le Timer1
 ( capture ICP1 et comparaison OC1n)
Brochage

 RESET déclenché par un front descendant maintenue plus de


50 ns il produira le Reset du
 microcontrôleur, même si l'horloge ne court pas.
 XTAL1 Entrée de l'oscillateur externe ou libre pour l'horloge
interne.
 XTAL2 Production de l'amplificateur d'oscillateur.
 AVCC est une broche de tension d’alimentation pour le
Convertisseur A/D qui doit être connectée à VCC via un filtre
passe-bas pour éviter les parasites.
 AREF est l'entrée de référence analogue pour le Convertisseur
A/D
 GND Masse
 Vcc : Alimentation
III-3 L’Architecture interne
Port A Port C

Mem Flash SRAM

B
Bloc
CPU
Fonctionn
U
el
S

Port B Port D
ARCHITECTURE INTERNE ATMEGA 16 1_LE CPU
Le CPU
 La fonction principale d’un cpu est la CPU
lecture et l’ exécution des instruc d’1
programme. Lecture de l’instruction
 1 prog est une suite ordonnée d’instruc
réalisant une tache.
Execution de l’instruction
 Donc exécuter 1 prog revient a exécuter
une suite d’instructions.
Aller a l’instruction suivante
 Le déroulement d’1 instru commence par
la lecture de celle-ci (cycle de lecture)
qui consiste a ramener l’instru de la mem
prog vers le registre RI. Lecture
PC Instruction1
 L’etape suivante est l’ exécution qui se 1
Instruction2
résume au décodage de l’instru par
Instruction3
l’unite de contrôle en générant les ordres RI
Instruction4
afin de réaliser l’operation demandée.
 Question : Est-ce que la mémoire 2
Execution
programme fait partie de l’unite de
contrôle du CPU ? Justifier votre reponse Instruction n
Architecture interne atmega 16 2_les mémoires
Architecture interne atmega 16 3_les Ports E/S

=
Architecture interne atmega 16 4_les Blocs Fonctionnels
III-4 L’organisation memoire

 L’organisation mémoire de l’atmega16 est donnée par la


figure de la planche 20.

 On distingue :

 32 registres internes de travail (données et adresses)


 64 registres d’entrées/sorties (les ports +Sreg+…)
 La mémoire de données SRAM de 1 kilo.octets
 La mémoire Flash (programme) de 16 kilo.octets
 Et enfin le mémoire données EEPROM qui n’apparait pas
sur le plan
Organisation du plan mémoire
Details des memoires
 Memoire Flash ( 8k. Mot de 16b ) adresse sur 13bits
 Mémoire Programme Lecture seulement
 Non volatile

 SRAM (1k.octets)
 Données temporaires , Piles, ….
 Volatile
 Espace limité

 EEPROM (1/2 K.ocets) = 512 octets


 Données permanente vct d’interruption
Les CPU AVR contiennent plusieurs types de mémoires :

 – la mémoire dédiée aux programmes, cette mémoire est de type FLASH,


elle conserve les programmes (ici le programme qu'exécutera le
microcontrôleur) même en absence d'alimentation.
 – la mémoire RAM qui contient les données, cette mémoire est de type
SRAM. La SRAM perd les données en absence d'alimentation.
 – La mémoire EEPROM, qui contient des données mais conserve ces
données si l'alimentation est coupée. Son fonctionnement est similaire à
celui d'un périphérique.
 – 2 zones supplémentaires sont assimilables à de la mémoire :
 – les 32 registres de travail R0 à R31
 – les 64 registres I/O
 Les registres sont des « cases mémoires » spécifiques qui peuvent être
spécialisés pour une utilisation particulière (PC, SP, ...)
Memoire programme
 Un programme microcontrôleur est composée d'une suite d'instructions
assembleurs (le langage du microcontrôleur est appelé son « jeu
d'instructions ») qui sont exécutées les unes après les autres . Ces
instructions sont « flashées » dans le microcontrôleur lors de la
programmation de celui ci. Elles sont stockées dans la zone de mémoire
appelée PROGRAM MEMORY en mémoire FLASH.
 Les instructions du jeu d'instruction AVR ont une largeur de 16 ou 32 bits,
la mémoire
 programme d'un ATMega 16 est de 16koctets = 8192 mots de 2 octets.
Une instruction occupe 1 ou 2 mots de 2octets=16bits soit 16 ou 32 bits
suivant les
 Ces instructions sont donc stockées à des adresses allant de 0 à 8191 soit
0x0000 à 0x1FFF
 en hexadécimal. Ces adresses sont représentable par un nombre binaire de
13 bits (213 = 8192).
Quelques rappels

 Soit A=10, B=11 ...F =15 en décimal. En langage C, le préfixe 0x indique


que le nombre est écrit en hexadécimal (par exemple 0x86 n'est pas 86).

 Conversion Hexadécimal --> Décimal


 0x1FFF = 1*163 +F*162 +F*161+F = 1*4096+15*256+15*16+15 = 8191
 0x03FA= ???...

 Conversion Décimal --> Hexadécimal


 857/256 = 3, il reste 857-3*256= 111
 111/16= 6, il reste 111-6*16 =15 = F
 857=3*256 + 6*16+15 = 0x36F
Exercice d’application:

 Donner l’équivalent hexa de (32)10 (64)10 de (1K)10 en déduire la même chose


pour 31,63 et 1k-1.

 A partir de la donner tous les détails pour expliquer les adresses de début et
de fin de chaque bloc mémoire de la planche 20 a savoir :

 Le bloc des 32 registres celui des 64 registres E/S le bloc SRAM et celui de
la Memoire Programme ( Flash )

Vous aimerez peut-être aussi