La vitesse à laquelle sont commercialisés de nouveaux microcontrôleurs basés sur la technologie ARM® est tout simplement confondante. Le recours à une famille commune de noyaux compatibles qui présentent des niveaux de performances différents est source de nombreux avantages pour les développeurs de composants intégrés recherchant un nouvel appareil sur lequel baser la conception de leur nouveau produit ou de leur nouvelle plate-forme technologique. Toutefois, dans leur hâte à commercialiser des appareils, les fournisseurs de microcontrôleurs sont confrontés à un dilemme : ils doivent passer du temps à ajuster les améliorations visant l’architecture et les ensembles périphériques en fonction du noyau ARM ou risquer de perdre les faveurs de clients loyaux, qui doivent obtenir ces appareils le plus rapidement possible, car ils préparent déjà leurs nouvelles conceptions. C’est notamment le cas pour l’architecture Cortex-M0/M0+ d’ARM. Des fournisseurs de microcontrôleurs se sont rendu compte que certaines des améliorations en matière de périphériques et d’économies d’énergie incorporées au fil du temps dans les appareils 8 bits étaient très prisées des clients et que la création du produit le plus efficace, quelle que soit la plateforme, nécessitait une certaine personnalisation. De ce fait, ils ont opté pour une approche plus approfondie lors de la commercialisation du tout dernier périphérique ARM Cortex®-M0+. L’un de ces fournisseurs est Atmel.
En commençant par repenser la conception pour son premier produit M0+, ce fournisseur tire parti de plus de vingt ans d’expérience en matière de développement de microcontrôleurs intégrés Flash 8 bits et de 17 ans de fonctionnement en tant que titulaire d’une licence ARM. Il apparaissait clairement que la plupart des innovations apportées à ses appareils tinyAVR®, megaAVR® et AVR XMEGA® seraient particulièrement pertinentes pour l’implémentation de la gamme M0+. Le système de gestion des événements périphériques (Peripheral Event System) est un exemple de fonction AVR® particulièrement appréciée par les ingénieurs. Cette approche permet aux périphériques de coopérer les uns avec les autres sans utiliser les ressources des bus ou des processeurs. L’IP à faible puissance d’Atmel est également très prisée. Cela inclut l’utilisation d’oscillateurs à faible puissance, du « clock gating » et de la mise à l’échelle préalable de l’horloge, en plus des modes de réveil des composants et des améliorations apportées aux communications en série, afin d’éviter les pertes de données lorsque l’appareil est tiré d’une longue veille.
Suite à l’incorporation de nombreux aspects des innovations apportées par Atmel à ses propres microcontrôleurs, avec l’IP cœur d’ARM, l’appareil d’Atmel basé sur Cortex-M0+, le modèle SAM D20, propose une référence CoreMark de 2,14 coreMark par MHz et une consommation électrique inférieure à 150 µA/MHz en mode actif, pour environ 2 µA en mode de rétention de RAM. À titre de comparaison, la consommation électrique d’autres appareils du marché en mode actif est située entre 200 et 400 µA/MHz lors de l’exécution des mêmes tâches, pour les mêmes niveaux de performances. Étudions de plus près certaines des améliorations ayant permis d’obtenir ces résultats.
Comme nous l’avons indiqué précédemment, le système de gestion des événements permet aux périphériques de communiquer les uns avec les autres sans impliquer le processeur. Il s’agit d’un réseau de routage qui ne dépend d’aucun chemin de bus de données traditionnel. Différents déclencheurs au niveau des périphériques peuvent entraîner un événement. Par exemple, l’activation d’un minuteur peut déclencher une réaction dans un autre périphérique. Doté de huit canaux indépendants dans le modèle D20 et de douze dans le modèle D21, le système de gestion des événements présente une latence fixe de 2 cycles. Le système de gestion des événements des composants SAM D10 et D11 présente quant à lui 4 canaux. Sans aucune gigue, il s’agit d’une méthode entièrement déterministe, parfaitement adaptée aux applications en temps réel. Aucun événement n’est perdu ; tous les événements sont gérés au niveau des périphériques en 2 cycles, même si le processeur effectue une interruption non masquable. En général, le mode de gestion des actions d’une application à faible puissance repose sur l’utilisation d’interruptions. Toutefois, une interruption ne tire pas le processeur de veille. Prenons l’exemple d’une application de moteur utilisant PWM. Pour détecter une situation d’erreur, de nombreuses applications de moteur tirent parti d’un comparateur analogique (ou ADC), qui mesure le courant circulant dans le moteur. En cas de surintensité, vous devez arrêter les canaux PWM entraînant le moteur aussi rapidement que possible, pour éviter d’abîmer les circuits comme pour des raisons de sécurité. Sans système de gestion des événements, cette situation de surintensité déclenche une interruption, mais la demande du service d’interruption peut être retardée si le processeur effectue d’autres tâches de priorité plus importante. Grâce au système de gestion des événements, vous pouvez directement connecter le comparateur analogique (ou ADC) au minuteur et arrêter systématiquement ce dernier en 2 cycles, quelles que soient
les activités du reste du microcontrôleur.
La figure 1 indique le mode d’administration de la protection de surintensité de la commande de moteur par le système de gestion des événements, sans aucune intervention du processeur. Cette approche offre de nombreux avantages, notamment la réduction du budget général de consommation électrique, le déchargement efficace des tâches routinières hors du processeur et l’établissement d’un temps de réaction entièrement prévisible.
Figure 1 : Système de gestion des événements - Exemple de pilote de commande de moteur
L’appareil d’Atmel présente une autre fonction lui permettant de se démarquer, à savoir la mise à disposition d’un module de communications multiples de série (SERCOM) hautement configurable. Doté de 6 canaux d’interface de série (composants D20 et D21) et de 3 canaux de série (composants D10 et D11), chaque port série peut être configuré par logiciel de manière à devenir une interface I2C, SPI ou USART. Les développeurs bénéficient alors d’une flexibilité incomparable lors de la création de leur conception, car cela leur permet de configurer les interfaces disponibles lorsqu’elles sont requises. Ainsi, s’il vous faut 2 interfaces I2C et 3 interfaces UART, procédez de cette manière. Cette approche offre deux avantages majeurs aux développeurs d’applications intégrées. Tout d’abord, il n’est plus nécessaire de se plonger dans les spécifications des microcontrôleurs pour identifier un appareil présentant le nombre de types d’interfaces série requis. Non seulement vous gagnez beaucoup de temps, mais vous pouvez adopter un microcontrôleur unique pour un certain nombre de conceptions similaires, qui peuvent présenter des exigences légèrement différentes en termes d’interfaces. De plus, vous n’avez plus besoin d’acheter un appareil doté de 5 interfaces UART parce qu’il vous faut 3 interfaces SPI. Le deuxième avantage offert porte sur la conception de PCB. En sélectionnant le type d’interface de façon qu’il corresponde à l’emplacement
de tous les composants d’interface ou interconnexions sous-jacents sur la carte électronique (PCB), vous pouvez renforcer l’efficacité du routage PCB, qui peut non seulement être plus court, mais également éviter tout parcours de signal qui dépasse des composants produisant beaucoup de bruit au niveau électronique. Cette amélioration est possible grâce à l’utilisation de modules SERCOM multiples, sachant que chacun d’eux présente plusieurs options de connexion de broche. L’appareil SAM D20 d’Atmel prend en charge le mode rapide de l’interface I2C, d’un maximum de 400 kHz, alors que les interfaces SPI et UART peuvent atteindre des vitesses de transfert de 24 Mo par seconde. Les modules de communication de série sont tous connectés au système de gestion des événements de périphériques (dont nous avons déjà parlé) qui assure la coopération des périphériques sans aucune intervention du processeur. Chaque module SERCOM peut également être reconfiguré par logiciel en interface d’un autre type, à la volée. Cependant, pour de nombreuses applications, cette action ne sera probablement pas nécessaire.
Enfin, pour proposer une conception de modèle Cortex-M0+ présentant les fonctions les plus utiles susceptibles d’intéresser les développeurs, Atmel a également ajouté un contrôleur PTC (Peripheral Touch Controller) dans ses modèles SAM D20 et D21, en s’appuyant sur la base de connaissances étendue de la gamme de produits maXTouch. Il s’agit des nouveaux périphériques les plus innovants sur les modèles SAM D20 et D21, qui peuvent être utilisés pour implémenter les interfaces de contrôle tactiles au moyen de boutons, de roulettes et de curseurs. Il est également possible d’effectuer la détection sur la base de la proximité. Le module PTC, qui prend en charge un maximum de 256 canaux dans une configuration matricielle, prend en charge les méthodes d’autodétection de la capacité et de détection mutuelle de la capacité. En offrant d’excellentes caractéristiques en termes de sensibilité et de rejet du bruit, en parallèle avec des fonctions d’étalonnage automatique, le modèle SAM D20 bénéficie d’un grand nombre de fonctions de contrôle tactiles, installées sur la puce.
Le modèle SAM D21 inclut également des fonctionnalités d’hôte et de périphérique USB. Les petits composants SAM D10 et D11 disposent de la fonction de périphérique USB, malgré leur disponibilité dans les paquets de 14, 20 et 24 broches d’économie d’espace. Les composants D10 et D11 ne disposent d’aucune fonction DMA, mais ils prennent en charge un maximum de 8 canaux pour un ADC 12 bits 350 ksps et 1 canal pour un DAC 10 bits 350 ksps. Le composant D21 inclut également 2 canaux en cas d’interface I2S avec un PLL fractionnel de 96 MHz, à des fins de diffusion audio.