Vous êtes sur la page 1sur 22

Famille AVR de ATMEL

(AVR = Advanced Virtual RISC) ou (AVR = Alf and Vegard RISC)

Pr F. I. Barro, Microcontroleur AVR 1


Quelques familles de Calculateurs
Architecture 68000 – 8051 - ARC - ARM - AVR - MIPS - PIC – RISC/V
4-bit Am2900, MARC4, S1C6x, TLCS-47, TMS1000, μCOM-4

8-bit 6800 (68HC05, 68HC08, 68HC11, S08, RS08), 6502 (65C02, MELPS 740), 78K, 8048, 8051, XC800, AVR,
Familles COP8, H8, PIC10/12/16/17/18, ST6/ST7, STM8, Z8, Z80 (eZ80, Rabbit 2000, TLCS-870),…

16-bit 68HC12/16, C166, CR16/C, H8S, MSP430, PIC24/dsPIC30/dsPIC33, R8C, RL78, TLCS-900, Z8000,…
32-bit Am29000, ARM/Cortex-M, AVR32, MSP432, CRX, FR (FR-V), H8SX, M32R, 68000 (ColdFire), PIC32
PowerPC (MPC5xx), Propeller, STM32, TLCS-900, TriCore, V850, RX, Z80000, …
64-bit PowerPC64

Voir les liens ci-dessous:


https://en.wikipedia.org/wiki/List_of_microprocessors
http://www.cpu-world.com/CPUs/
https://en.wikipedia.org/wiki/List_of_common_microcontrollers

Pr F. I. Barro, Microcontroleur AVR 2


Famille AVR de ATMEL
(AVR = Advanced Virtual RISC)

Famille AVR 8 bits Famille AVR 32 bits

AVR32 AVR ARM

AVR ATtiny AVR ATmega AVR Xmega AVR mega


Spécialisés
(USB, LCD, CAN,
ATmega2560 PWM avancé…)
ATmega328
Pr F. I. Barro, Microcontroleur AVR 3
Architecture
ATMEGA2560

Pr F. I. Barro, Microcontroleur AVR 4


Architecture
ATMEGA2560

Architecture Harvard
Jeu d’instructions RISC

Pr F. I. Barro, Microcontroleur AVR 5


Registres d’usage général

Pr F. I. Barro, Microcontroleur AVR 6


Organisation Mémoire

Cartographie de la mémoire programme


Flash (x16)

Cartographie de la mémoire de données


SRAM(x8)

Pr F. I. Barro, Microcontroleur AVR 7


Organisation Mémoire

Cartographie de la mémoire de données


EEPROM(x8)

Pr F. I. Barro, Microcontroleur AVR 8


Brochage
ATMEGA2560

Pr F. I. Barro, Microcontroleur AVR 9


Système d’horloge
ATMEGA2560

Pr F. I. Barro, Microcontroleur AVR 10


Registres de configuration du Système d’horloge
Division de l’horloge par 8
Sortie de l’horloge en externe
Sélection du temps de
démarrage de l’horloge
Sélection de la
source d’horloge
Pour le système

Horloge choisie par défaut au démarrage de l’AVR

Pr F. I. Barro, Microcontroleur AVR 11


Registres de configuration du Système d’horloge

Horloge choisie par défaut au démarrage de l’AVR

Facteur de pré division

Par défaut, Oscillateur RC interne à 8MHz au reset,


avec le facteur de pré division CKDIV8 activé

Pr F. I. Barro, Microcontroleur AVR 12


Registres de configuration du Système d’horloge
: Oscillateur RC interne

a. Cet octet est l’octet supérieur à l’adresse 0x000 de l’espace des octets de
signature
b. Le bit CAL7 définit la plage de fréquences:
CAL7 = 0 : fréquence la plus petite et CAL7 = 1 fréquence la plus grande
c. Les bits CAL0 à CAL6 permettent de définir la fréquence à partir de la
valeur choisie par CAL7

Pr F. I. Barro, Microcontroleur AVR 13


Registres de configuration du Système d’horloge
: Registre de sélection du facteur de prédivision

a. Le bit CLKPCE (Clock Prescaler Change Enable) active la possibilité de


choisir un facteur de prédivision pour l’horloge
b. Les bits CLKPS0 à CLKPS3 (Clock Prescaler Select Bits)
permettent de définir le facteur de prédivision

Pr F. I. Barro, Microcontroleur AVR 14


Aspects matériels du Système d’horloge

Horloge à quartz ou résonateur Horloge à quartz basse fréquence Horloge externe : 0 à 16 MHz
céramique 32kHz

Pr F. I. Barro, Microcontroleur AVR 15


Les Entrées – Sorties générales (E/S)
Les E/S générales sont regroupées par lot de 8 sous Exemple: port A = PA = regroupement de 8 lignes d’E/S
forme de ports notés port A (PA), port B (PB), …: notées:
PA0 = ligne numéro 0 du port A
PA1 = ligne numéro 1 du port A

PA7 = ligne numéro 7 du port A
Pour chaque port, il y à 3 registres associés :
• Un registre de direction (Data Direction Register) noté
DDRx (pour le port C on aura DDRC par exemple)
• Un registre de sortie PORTx (pour le port F on aura
PORTC par exemple)
• Un registre d’entrée ou de lecture (Port INput register)
PINx (pour le port K on aura PINK par exemple)

Remarque :
• Chacun de ces registres associés est de 8 bits (1 bit pour 1 ligne d’E/S)
• Chaque ligne d’E/S correspond au bit ayant le même numéro dans les registres associés: PC2 = ligne n02 du port C donc correspond
au bit n02 de chacun des registres DDRC, PORTC et PINC.
Pr F. I. Barro, Microcontroleur AVR 16
Les Entrées – Sorties générales (E/S)

Pr F. I. Barro, Microcontroleur AVR 17


Les Entrées – Sorties générales (E/S)
Registre de direction DDRx : permet de choisir le sens Registre de sortie PORTx : permet de choisir l’état de la
de la ligne d’E/S, c’est-à-dire si la ligne d’E/S doit être ligne d’E/S lorsque celle-ci est configurée comme une
une entrée (E) ou une sortie (S) sortie, c’est-à-dire si la ligne d’E/S doit être à l’état bas (0)
• Pour configurer une ligne d’E/S en entrée, il faut ou à l’état haut (1)
mettre le bit correspondant à 0 dans DDRx • Pour mettre une ligne d’E/S à 1, il faut mettre le bit
• Pour configurer une ligne d’E/S en sortie, il faut correspondant à 1 dans PORTx
mettre le bit correspondant à 1 dans DDRx • Pour mettre une ligne d’E/S à 0, il faut mettre le bit
correspondant à 0 dans PORTx

Registre d’entrée ou de lecture PINx : permet de lire


l’état actuel de la ligne d’E/S, c’est-à-dire savoir si la
ligne d’E/S est à l’état bas (0) ou à l’état haut (1)
• Lorsqu’un bit de PINx est à 0, cela signifie que la
ligne d’E/S correspondante est actuellement à 0
• Lorsqu’un bit de PINx est à 1, cela signifie que la
ligne d’E/S correspondante est actuellement à 1

Pr F. I. Barro, Microcontroleur AVR 18


Les Entrées – Sorties générales (E/S)

Pr F. I. Barro, Microcontroleur AVR 19


Les Entrées – Sorties générales (E/S)

PUD = 1: les Rpullup désactivées


qq soit l’état de DDRx et PORTx

Pr F. I. Barro, Microcontroleur AVR 20


Les Entrées – Sorties générales (E/S)

Pr F. I. Barro, Microcontroleur AVR 21


Les Entrées – Sorties générales (E/S)
Pour le bouton poussoir BP, 2 situations sont possibles
• BP n’est pas appuyé: la ligne d’E/S est alors à l’état 1
• BP est appuyé: la ligne d’E/S est alors à l’état 0

Il suffit donc de déterminer l’état logique de la ligne d’E/S


pour savoir l’état appuyé ou non du bouton poussoir.
Il faut donc tester l’état de la ligne d’E/S afin de connaître
l’état du bouton poussoir BP.

Pour activer la résistance interne Rpullup sur une ligne d’E/S, il faut:
• Configurer la ligne d’E/S en Entrée
• Mettre à 1 le bit correspondant à la ligne d’E/S dans le registre
de sortie PORTx

Pr F. I. Barro, Microcontroleur AVR 22

Vous aimerez peut-être aussi