Les microcontrôleurs 8 bits restent une excellente option grâce à leur basse consommation et leur facilité d'utilisation

Au cours des années 1990, période que j'aime appeler l'Âge d'or des microcontrôleurs, les compilateurs C commençaient à gagner en popularité, mais la programmation à l'aide d'un langage d'assemblage était tout de même requise pour travailler dans la programmation embarquée. Les ingénieurs d'applications comme moi rendions visite aux clients, où nous nous tenions devant un auditoire d'ingénieurs aux yeux écarquillés, tous en train de grignoter les beignets que j'avais apportés alors que je leur vantais, essoufflé, les vertus de ma toute dernière offre de microcontrôleurs.

À l'époque, les sociétés de fabrication de semi-conducteurs ne proposaient pas de nouveaux microcontrôleurs chaque mois comme c'est le cas aujourd'hui. Nous sortions généralement un ou deux nouveaux modèles chaque trimestre. Néanmoins, certaines choses ne changent pas. La vingtaine d'ingénieurs que je divertissais ce jour-là grâce à mon incroyable présentation PowerPoint appartenaient à un groupe chargé de la fabrication de contrôleurs de carrosserie automobile. Les contrôleurs de carrosserie étaient de simples petites boîtes qui fonctionnaient conformément aux principes goesintas/goesoutas, selon lesquels les signaux du commutateur vont dans la boîte tandis que les signaux de commande de l'actionneur sortent de la boîte. Un fonctionnement plutôt simple pour un microcontrôleur 8 bits avec de nombreuses GPIO.

La présentation se déroulait de manière parfaitement classique jusqu'à ce qu'une main se lève au fond de la salle.

D'une voix décidée, la phrase suivante a alors été prononcée : « La direction a annoncé que nous devions commencer à utiliser des microcontrôleurs 32 bits pour les contrôleurs de carrosserie ». D'après les murmures dans la salle, j'ai deviné que la direction n'avait rien annoncé du tout, mais que cette personne avait peut-être une idée en tête, comme un fournisseur privilégié qui, malheureusement, tragiquement, n'était pas le mien.

« Vous n'avez en aucun cas besoin d'un microcontrôleur 32 bits et je ne vous crois pas », répondis-je dans un univers parallèle. Ma réponse, dans l'univers réel, fut moins risquée : « Pourriez-vous m'indiquer les fonctionnalités d'une architecture 32 bits dont vous avez besoin pour votre prochaine génération de contrôleurs ? »

Il y eut alors un blanc et mon interlocuteur se contenta de répondre avec une légère insolence : « Il nous faut juste 32 bits ». Sa voix était quelque peu hésitante. Les autres ingénieurs, devinant cette faiblesse, se sont alors retournés avec enthousiasme vers l'avant de la salle pour entendre ma réponse.

J'ai soigneusement expliqué les avantages d'une architecture 32 bits par rapport à une architecture 8 bits. Avaient-ils besoin d'une fréquence d'horloge plus rapide ? La nouvelle génération de produits réalisait-elle des calculs mathématiques plus complexes ? Le micrologiciel allait-il être multitransactionnel et requérir un système d'exploitation temps réel (RTOS) ? La taille du micrologiciel allait-elle s'envoler jusqu'à nécessiter un adressage accru de la mémoire ? Toutes ces questions étaient et sont toujours des raisons valides de passer d'un cœur 8 bits à un cœur 32 bits (16 bits étant le juste équilibre entre les deux, mais c'est une autre histoire).

Nous avons poursuivi une agréable discussion sur les différences architecturales entre 8 bits et 32 bits tout en mangeant des beignets. L'architecture du microcontrôleur 8 bits est plus simple et offre un modèle de programmation facile à comprendre. Elle ne requiert généralement qu'une alimentation simple. Malgré les revendications marketing affirmant le contraire, les architectures 8 bits modernes sont moins énergivores que les architectures 32 bits, car les composants internes gèrent moins de signaux de bus.

Exemple de microcontrôleur 8 bits concret

La société Microchip Technology est fière de son offre de microcontrôleurs 8 bits depuis des années. Le cœur 8 bits populaire megaAVR de Microchip (également appelé ATMega) présente une architecture de type Harvard conventionnelle qui peut prendre en charge jusqu'à 256 kilo-octets (Ko) de mémoire programme. Il utilise une architecture simple, basée sur registres et compatible C comprenant 32 registres 8 bits généraux (Figure 1).

Figure 1 : Le microcontrôleur megaAVR est basé sur 32 registres 8 bits désignés de R0 à R31. Les registres peuvent également être pris en charge en tant que paires de registres afin de former seize registres 16 bits. (Source de l'image : Microchip Technology)

Les registres généraux peuvent être doublés en tant que paires de registres afin de former seize registres 16 bits. Les trois dernières paires de registres peuvent éventuellement être utilisées en tant que registres d'adresse 16 bits X, Y et Z pour un adressage indirect.

En plus de ces registres généraux, le megaAVR offre un registre de pile 16 bits et un registre d'état 8 bits. Et c'est tout. Il est suffisamment simple pour être programmé en langage d'assemblage (« Les vrais programmeurs utilisent l'assemblage »).

Non, vous ne pouvez pas accéder au compteur de programme dans le megaAVR. Fichez-lui la paix.

Un exemple typique de la gamme megaAVR est l'ATMEGA1609 de 20 mégahertz (MHz). Il s'agit d'un microcontrôleur facile à utiliser doté de 16 Ko de mémoire Flash, de 2 Ko de mémoire RAM et de 256 octets de mémoire EEPROM. La plupart des instructions sont monocycles.

Figure 2 : L'ATMEGA1609 de Microchip Technology est un microcontrôleur 8 bits simple, flexible et basse consommation adapté à de nombreux environnements. (Source de l'image : Microchip Technology)

Il intègre un convertisseur analogique-numérique (CAN) 10 bits, cinq temporisateurs 16 bits, une horloge temps réel (RTC), plusieurs options basse consommation et un multiplicateur matériel signé/non signé à 2 cycles.

Le megaAVR a également des instructions monocycles « bit set/bit clear », ainsi que des instructions « bit test » nécessitant d'un à trois cycles.

L'importance des instructions de bits est souvent négligée par les développeurs qui sont profondément attachés au langage C. À vrai dire, les instructions de bits natives (« Nous n'avons pas besoin d'instructions ATOMIQUES ») peuvent considérablement augmenter les performances, réduire la taille du code, améliorer la lisibilité du code et vous simplifier la vie.

Les besoins en alimentation de l'ATMEGA1609 varient entre 1,8 V et 5,5 V pour un fonctionnement compris entre -40°C et +125°C. Les vastes plages d'alimentation et de températures de fonctionnement ne sont clairement pas le fruit du hasard. Par nature, ce microcontrôleur 8 bits est conçu pour être utilisé dans de nombreux environnements de conception. La « facilité d'utilisation » a de nouveau frappé !

Parfois, un développeur doit juste réaliser un projet simple rapidement ; un microcontrôleur 8 bits est facile à utiliser, flexible et particulièrement robuste. Ces caractéristiques peuvent difficilement être ignorées.

À propos de l'auteur

Image of Bill Giovino

Bill Giovino est un ingénieur en électronique titulaire d'un BSEE de l'Université de Syracuse, et l'une des rares personnes à avoir réussi à passer de l'ingénierie de conception à l'ingénierie des applications sur le terrain et au marketing technologique.

Depuis plus de 25 ans, Bill œuvre à la promotion des nouvelles technologies devant un public technique et non technique pour de nombreuses entreprises, notamment STMicroelectronics, Intel et Maxim Integrated. Chez STMicroelectronics, Bill a contribué aux premiers succès de l'entreprise dans l'industrie des microcontrôleurs. Chez Infineon, Bill a orchestré les premiers succès de l'entreprise en matière de conception de microcontrôleurs dans l'industrie automobile américaine. En tant que consultant marketing pour son entreprise CPU Technologies, Bill a aidé de nombreuses entreprises à transformer des produits sous-performants en réussites.

Bill a été l'un des premiers à adopter l'Internet des objets, notamment en mettant la première pile TCP/IP complète sur un microcontrôleur. Bill pense que les ventes passent par l'éducation et accorde une importance croissante à une communication claire et bien écrite pour la promotion des produits en ligne. Il est modérateur du groupe populaire LinkedIn Semiconductor Sales & Marketing et parle couramment le B2E.

More posts by Bill Giovino
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum