Vous êtes sur la page 1sur 36

• 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
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 par 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)
• Méga AVR (32 à 100 broches)
• XMega AVR (44 à 100 broches)

• 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’ ATMega 16

• 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
Architecture interne atmega 16 1_le CPU
Le CPU
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 19.

• 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 19 :

• 32 reg 64 I/O reg SRAM et Flash Mem


III-5 Les Modes d’Adressages

• On distingue 5 modes d’adressages


principaux : ( avec quelques variantes )
– Le mode d’adressage par registre
– Le mode d’adressage immédiat
– Le mode d’adressage direct
– Le mode d’adressage indirect
– Le mode d’adressage relatif
Adressage registre unique ou double
M.A Direct memoire
M.A Indirect memoire (x,y,z)
III-6 Le jeu d’instructions
• Le coeurs AVR combine un jeu de 131 instructions riches avec 32
registres spéciaux travaillants directement avec l'Unité Arithmétique
de Logique ALU.
• L'architecture résultante est plus efficace en réalisant des
opérations jusqu'à dix fois plus rapidement qu’avec des
microcontrôleurs conventionnels CISC.

• Les registres spéciaux sont dit aussi registre d'accès


rapide et 6 des 32 registres peuvent être employés
comme trois registre d'adresse 16 bits pour l'adressage
indirects d'espace de données (X, Y & Z). Le troisième Z
est aussi employé comme indicateur d'adresse pour la
fonction de consultation de table des constantes.
• Les 32 registres sont détaillés dans le tableau qui suit
avec l’adresse effective dans la mémoire SRAM
On peut classer les instructions en 5 groupes
Instructions arithmetiques et logiques _1
Instructions arithmetiques et logiques _2
Instructions d’accés à la mémoire _1
Instructions d’accés à la mémoire _2

Vous aimerez peut-être aussi