Le microcontrôleur (MCU) a été l'épine dorsale des systèmes intégrés depuis plus longtemps que la plupart d'entre nous ne peuvent se souvenir. Les MCU constituent le processeur préféré de nombreuses applications au travers d'une myriade de marchés. Les produits industriels et de consommation dépendent tous des microcontrôleurs. La petite taille des MCU, leur faible consommation d'énergie, et leurs mémoires compactes sont idéalement adaptés à de nombreuses applications. Les périphériques et mémoires intégrés ainsi que des prix bas sont des caractéristiques très intéressantes pour les développeurs de systèmes.
L'architecture AVR® est l'une des principales architectures 8 bits. Elle est devenue synonyme de facilité d'utilisation depuis sa création au milieu des années 1990 par Alf-Egil Bogen et Vegard Wollan, deux étudiants de l'Université norvégienne des sciences et de la technologie. L'AVR est l'appareil le plus attirant pour les étudiants et les amateurs qui souhaitent se former aux architectures informatiques et à la programmation intégrée. Le processeur AVR a été l'un des premiers microcontrôleurs à utiliser une puce flash pour le stockage de la mémoire de programme. De plus, l'architecture AVR permet la reprogrammation en système. Au cours des 15 dernières années, la facilité d'utilisation du cœur AVR en a fait le moteur de traitement préférée pour une grande variété d'applications. Il est également utilisé dans une multitude de projets intégrés dans des universités à travers le monde. Le choix d'utiliser AVR pour la plateforme de développement open-source connue Arduino témoigne de la réussite de l'architecture.
Moteur RISC à cycle unique AVR
Le noyau du processeur AVR est un moteur RISC (reduced instruction set computer, ordinateur à jeu d'instructions réduit). RISC ne signifie pas une quantité réduite d'instructions, mais plutôt, une complexité réduite des instructions. Un processeur RISC a normalement plus d'instructions qu'un processeur CISC. Ce riche ensemble d'instruction comporte des aspects positifs pour un compilateur car il peut rechercher l'instruction à cycle unique optimale pour son besoin. Le code machine résultant augmente la vitesse et réduit l'utilisation de la mémoire à la fois SRAM et Flash. L'architecture AVR combine ce riche ensemble d'instructions à 32 registres de travail à usage général 8 bits directement connectés à l'ALU (Arithmetic Logic Unit). AVR utilise l'architecture Harvard, qui sépare les mémoires et les bus pour le programme et les données (figure 1). Elle dispose d'un pipeline à un seul niveau en deux étapes. Pendant qu'une instruction est exécutée, l'instruction suivante est pré-extraite de la mémoire programme. Deux registres aléatoires alimentent l'ALU pour effectuer l'opération demandée et écrire le résultat. La plupart des instructions sont exécutées durant un cycle d'horloge. Du fait de l'exécution en un seul cycle des opérations arithmétiques et logiques, le MCU basé sur l'AVR réalise près de 1 MIPS (millions d'instructions par seconde) par mégahertz de fréquence d'horloge.
Fig. 1. L'architecture Harvard de l'AVR sépare la mémoire de programme de la mémoire de données.
Dès le début un autre aspect a été à la base du succès de l'architecture AVR. Il s'agit de la disponibilité de logiciel libre de conception et de développement, y compris désormais des outils tels que l'AVR GCC C/C++ et l'Atmel Studio 6 IDE (Integrated Development Environment). Cette combinaison de performance 8 bits dominant l'industrie et d'outils de développement gratuits a eu pour conséquence une fidélité importante des ingénieurs et programmeurs à AVR.
Trois familles
Atmel a utilisé le processeur AVR pour trois familles de MCU 8 bits à haute performance et puissance efficace : l'entrée de gamme tinyAVR®, le milieu de gamme megaAVR®, et jusqu'à la famille la plus récente, l'AVR XMEGA®.
Les appareils tinyAVR sont optimisés pour des applications qui nécessitent de la performance, une puissance efficace et la facilité d'utilisation, en un seul petit boîtier. Capables de fonctionner à seulement 0,7 V, ces appareils intègrent un ADC, une mémoire Flash, une EEPROM et un détecteur de brunissement. En outre, les puces permettent le débogage matériel pour un dépannage du firmware sur circuit rapide, sécurisé et économique.
Le milieu de gamme megaAVR est plus adapté pour des applications nécessitant de grandes quantités de code. Offrant des performances jusqu'à 20 MIPS, la gamme offre un large choix en termes de mémoires, décompte de broches et de périphériques (Figure 2). Il existe des pièces spécialisées tels que des contrôleurs LCD, USB, CAN, LIN et d'étages de puissance.

Fig. 2. La CPU et unités périphériques megaAVR fournissent puissance et flexibilité.
Les MCU AVR XMEGA sont composés de différents blocs de base, comprenant la CPU, la SRAM, la mémoire Flash, l'EEPROM et d'un certain nombre de périphériques. L'ensemble d'instructions AVR XMEGA prend également en charge l'accès aux registres arithmétique 16 bits et 32 bits. Une caractéristique clé de la famille est l'utilisation de périphériques à économie d'énergie, obtenue grâce au système d'événements très innovant de l'appareil. Il s'agit d'un ensemble de fonctionnalités qui permet aux périphériques d'interagir sans intervention de la CPU. Il permet aux périphériques d'envoyer des signaux directement à d'autres périphériques, assurant un temps de réponse court et 100 % prévisible. Lors de l'utilisation des fonctionnalités du système d'événements, il est possible de configurer la puce pour effectuer des opérations complexes avec très peu d'intervention de la CPU. Cela permet d'économiser à la fois de la mémoire de programme et un temps d'exécution précieux.
Tous les appareils AVR 8 bits utilisent la technologie picoPower® de la société. Ceci inclut un équilibre optimisé de transistors haute performance et à faible courant de fuite, un fonctionnement à basse tension, différents modes à faible puissance et mise en veille/réactivation rapide et l'utilisation de la DMA matérielle. De plus l'AVR XMEGA est doté du système d'événements qui réduit le travail de la CPU pour économiser l'énergie et fournir des temps de réaction d'interruption uniformes. Les caractéristiques de performance clés comportent le fonctionnement de 1,8 V à 5,5 V, la consommation de 200 uA par MHz en mode actif, 0.1 uA en mode de mise hors tension avec rétention de RAM complète, 0.6 uA en mode d'économie d'énergie (avec un oscillateur à cristal fonctionnant à 32 kHz), et à moins de 1 us de temps de réactivation.
Les applications et l'IoT (L'internet des objets, Internet of Things)
Les MCU 8 bits AVR ont remporté une multitude de succès de conception dans pratiquement tous les secteurs du marché. En plus des MCU d'usage général précédemment décrits, il existe un large éventail d'appareils spécifiques à une application basés sur AVR adaptés à l'éclairage, aux batteries intelligentes, aux applications industrielles et automobiles, parmi beaucoup d'autres. Le sans fil constitue un domaine d'application énorme et à la croissance rapide. En fait, le RF devient rapidement un périphérique standard des MCU de toutes tailles et toutes largeurs de bande passante. Les possibilités du sans fil sont certainement nombreuses - et pas aussi nombreuses que celles de l'Internet des objets (IoT, Internet of Things).Les responsables de l'infrastructure sans fil à travers le monde ont prédit que d'ici 2020 il y aura 50 milliards d'appareils mobiles sans fil connectés à l'Internet. Cependant, les principaux acteurs du sans fil ne domineront pas totalement ce domaine en pleine croissance. Jim Tully, directeur de recherche de l'analyste de marché Gartner Group, note : « Notre recherche met en évidence que d'ici 2018, 50 % des solutions de l'Internet des objets seront fournis par des startups qui sont âgées de moins de trois ans. Nous pouvons désormais nous faire une idée de ce à quoi l'internet des objets ressemblera. Mais nous savons que nous ne pouvons même pas imaginer la plupart des choses qui existeront en 2018 car elles n'ont pas encore été inventées ».
Bien qu'il y ait peu de doute sur le fait que les MCU de faible puissance 32 bits prendront une part du marché, les possibilités sont encore très importantes pour des microcontrôleurs 8 bits à faible puissance pour la multitude d'appareils RF intégrés qui seront nécessaires. L'ATmega256RF constitue un exemple majeur d'appareil à base d'AVR bien placé pour tirer parti de ces applications (Figure 3). Ce CI constitue une solution sans-fil à puce unique conforme à IEEE 802.15.4 adaptée aux applications sans fil ZigBee® RF4CE, IPv6 / 6LoWPAN et ISM (industrielles, scientifiques, médicales).

Figure 3. L'ATmega256RF combine la facilité d'utilisation AVR avec une liaison RF à haute performance.
Cet appareil combine un microcontrôleur AVR et un transmetteur RF parmi les meilleurs, à haute sensibilité de 2,4 GHz, qui offre des taux de données de 250 Kbits/s à 2 Mbits/s. Il propose de 64 k à 256 k de Flash et consomme jusqu'à 50 % moins de courant dans certains modes de fonctionnement. Il permet un fonctionnement de 16 MHz à une tension d'alimentation de 1,8 V seulement et procure un temps de réactivation rapide du mode veille au mode actif. De plus, il met en œuvre divers modes de mise hors tension, comme une fonctionnalité radio wake-on, qui maintient le transmetteur FR actif pendant que le microcontrôleur est inactif, améliorant encore l'efficacité.