Atmel AVR
AVR est le terme utilisé par Atmel pour désigner le cœur du processeur et la famille de microcontrôleurs les implémentant.
Recherche sur Google Images :
Source image : piconomic.berlios.de Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur. |
Page(s) en rapport avec ce sujet :
- Main article : Atmel AVR instruction set. The AVR Instruction Set is more orthogonal than most eight- bit microcontrollers, ... (source : en.wikipedia)
- Les microcontrôleurs ATMEL AVR | Programmation en langage Pascal (Mikropascal) |..... Bit 6 – T – Bit Copy Storage Les instructions de copie des bits (BLD, ... (source : technologuepro)
AVR est le terme utilisé par Atmel pour désigner le cœur du processeur et la famille de microcontrôleurs les implémentant.
Le cœur AVR possède les caractéristiques suivantes :
- architecture Harvard 8 bits RISC
- 32 registres de calcul divisés en 2 sous-ensembles :
- les registres r0 à r15 ne permettant pas de travailler avec les valeurs immédiates
- et les registres r16 à r31 le donnant la possibilité.
- jeu de 90 à 135 instructions (selon le composant)
- la plupart des instructions (hors instructions de saut) s'exécutent en un seul cycle d'horloge interne. L'horloge interne est à la même fréquence que l'horloge externe. Le cœur AVR atteint par conséquent à peu près 1 Mips/MHz.
- le cœur AVR a été optimisé pour exécuter du code généré à partir d'un compilateur C.
- le cœur AVR possède 3 pointeurs 16 bits X, Y et Z mappés sur les registres 8 bits r26 à r31 (X=r26+r27, Y=r28+r29 et Z=r30+r31). Les 3 pointeurs permettent différents types d'indexation (indirecte, indirecte avec déplacement) avec ou sans pré ou post-incrémentation.
- les périphériques sont accessibles dans un espace d'adressage positionné entre les registres et la SRAM (accessible entre autres par les instructions ld et st). Cependant, un ensemble d'instructions spécialisées permet un accès plus pratique aux périphériques (instructions in et out) avec surtout les instructions SBI (Set Bit in I/O) et CBI (Clear Bit in I/O) donnant la possibilité respectivement de mettre à 1 ainsi qu'à 0 un bit dans les 32 premiers registres d'entrées/sorties.
- les registres r0 à r31 sont mappés sur l'espace RAM (adresse 0 à 31) ce qui permet de les accéder par l'intermédiaire de X, Y et Z.
- les branchements sont nombreux et permettent de réaliser l'ensemble des cas de figure.
- le jeu d'instructions est conçu de telle manière que, quoique le cœur soit 8 bits, il est particulièrement aisé de réaliser des calculs sur 16, 24 ou 32 bits (etc. )
- selon les composants, un multiplicateur hardware (2 cycles) est implémenté.
- la plupart des composants AVR sont fully static, c'est-à-dire qu'il n'y a pas de limite basse de la fréquence d'horloge indispensable à un fonctionnement correct.
- les composants AVR possèdent en moyenne une quinzaine d'interruptions (selon les périphériques embarqués) de priorité fixe.
- le cœur AVR possède un pointeur de pile 16 bits (pour les composants équipés de SRAM (95 % des composants) ).
Les micro-contrôleurs AVR embarquent dans un même boîtier un cœur AVR (microprocesseur), de la mémoire flash (espace programme), de la SRAM (espace données), de l'EEPROM (espace données de sauvegarde) et des périphériques divers.
Chaque périphérique possède son (ses) registre (s) associé (s) (accessible (s) via les instructions in et out) pour les contrôler.
Voici à titre indicatif les périphériques existants dans la famille de micro-contrôleurs AVR :
- mémoire EEPROM (elle est gérée comme un périphérique).
- timers 8 et 16 bits avec "compare match" (interruption quand une valeur choisie est atteinte) et mode PWM.
- interface sérielle asynchrone UART (rxd, txd).
- interface sérielle synchrone SPI (miso, mosi, sck, SS).
- interface sérielle TWI (compatible I²C (2 fils) )
- interface sérielle 1-wire (1 fil)
- ports d'entrées/sorties (PIO) avec résistances de pull-up intégrées.
- oscillateur interne
- oscillateur scindé pour l'horloge RTC
- convertisseur analogique/numérique 10 bits
- comparateur analogique
Différentes familles
La famille des micro-contrôleurs AVR se compose de 5 groupes principaux :
- TinyAVRs
- mémoire programme de 1 à 8 kB
- boîtier de 8 à 32 broches
- nombre de périphériques limité
- MegaAVRs
- mémoire programme de 4 à 256 kB
- boîtier de 28 à 100 broches
- jeu d'instructions plus important (multiplication, instructions pour accès à la mémoire étendue)
- nombre de périphériques plus important
- XMEGA
- mémoire programme de 16 à 384 kB
- boîtier de 44 à 100 broches
- performances étendues, telles que DMA, gestion d'événements entre périphériques, cryptographie intégrée.
- AVR spéciaux pour des applications spécifiques
- la famille AVR comprend des MegaAVR avec des périphériques tels que :
- FPSLIC (Field Programmable System Level Integrated Circuit) ce circuit est un FPGA avec un cœur AVR, le cœur peut fonctionner jusqu'à 50 MHz en exécutant son programme en mémoire RAM à la différence des autres familles qui exécutent le programme en mémoire FLASH.
- la famille AVR comprend des MegaAVR avec des périphériques tels que :
Développement logiciel et matériel
Sous environnement Windows, AVRstudio apporté par Atmel jumelé à WinAVR (version win32 d'avr-gcc) sert à développer en langage C gratuitement et sans aucune limitation.
Un compilateur PASCAL existe aussi pour les AVR (E-LAB Pascal-scm), il utilise une syntaxe proche de Turbo Pascal.
En environnement GNU/Linux, avr-gcc (compilateur C) et uisp permettent de développer pour ces microcontrôleurs. Il existe aussi une adaptation de la libc : http ://www. nongnu. org/avr-libc/
Le programmateur, outil d'interface entre le PC et le microcontrôleur donnant la possibilité le flashage de la mémoire programme, se trouve dans le commerce (Atmel STK-200, 300, 400 ou 500) ou sur des sites internet sous forme de schéma (dongle à créer soi-même).
Trois types d'interface existent, l'ISP pour flasher les mémoires seulement, les interfaces JTAG et DebugWire (debug sur un fil) qui permettent de flasher et de débugger en direct à partir d'AVRstudio, particulièrement pratique pour la mise au point des applications. L'interface ISP est présente sur l'ensemble des microcontrôleurs ATMEL, les interfaces JTAG et DebugWire dépendent de la famille de microcontrôleurs.
Pour faire fonctionner un microcontrôleur AVR, il'suffit'de connecter les broches de masse et vcc au potentiel 0 et 5 V (par exemple) et de mettre une résistance de tirage (pull-up) sur la broche reset (résistance de 10 kΩ entre la broche reset et vcc). Si le composant ne possède pas d'oscillateur interne ou dans le cas où une fréquence précise est voulue, il faudra alors ajouter un oscillateur externe (quartz la majorité du temps).
Voir aussi
Liens externes
- (en) Site officiel de ATMEL
- (en) Site officiel de Winavr outils de développement Cpp
- (en) Site officiel de l'AVRLibc, une bibliothèque de fonctions pour AVR
- (en) Site du compilateur PASCAL Avr
- (en) Site du compilateur ADA (projet avr-Ada en cours, anciennement inclus dans Winavr)
- (en) Communauté AVR freaks
- (fr) Informations pratiques pour la programmation des AVR ATMEGA et exemples de réalisations avec codes sources commentés en français
- (fr) Cours sur l'architecture des microcontrôleurs Atmel
- (fr) Tutoriaux, exemples de codes et projets
Recherche sur Amazone (livres) : |
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.