Équilibrer les performances et la consommation énergétique des microcontrôleurs grâce aux fonctionnalités intégrées
Avec la contribution de Rédacteurs nord-américains de DigiKey
2017-05-10
Depuis un certain temps, les développeurs ont accès à des microcontrôleurs présentant des états de fonctionnement basse consommation, permettant de désactiver les périphériques et même le cœur, pour réduire les exigences d'alimentation système. Cependant, pour certaines applications, les développeurs ont besoin d'un contrôle plus direct sur la consommation énergétique pour garantir l'alimentation de certaines parties du système et répondre aux exigences fonctionnelles clés.
Auparavant, les concepteurs utilisaient des dispositifs de gestion de l'alimentation autonomes pour établir un contrôle précis de l'alimentation. À l'inverse, le microcontrôleur ADuCM3029 d'Analog Devices fournit une solution intégrée qui permet aux développeurs d'optimiser facilement les performances tout en limitant la consommation énergétique dans les conceptions pour l'acquisition de données de capteur, les dispositifs corporels et d'autres applications Internet des objets (IoT).
Microcontrôleurs avec gestion de l'alimentation
Pour les conceptions basse consommation, les ingénieurs bénéficient d'une vaste gamme de microcontrôleurs avancés conçus avec des options d'économie d'énergie. Les dispositifs ciblant les applications sensibles à l'alimentation incluent systématiquement des capacités comme l'échelonnement de fréquence pour permettre aux ingénieurs de privilégier une alimentation réduite au lieu des performances.
Les modes basse consommation offrent généralement une réduction progressive de l'alimentation en désactivant petit à petit les sous-systèmes du microcontrôleur jusqu'à ce que le strict minimum nécessaire à l'activation du microcontrôleur reste fonctionnel. Pour améliorer davantage la gestion de l'alimentation, les microcontrôleurs ultrabasse consommation ajoutent des modes de fonctionnement spéciaux qui gèrent séparément l'alimentation du cœur du dispositif et de ces périphériques. Même dans ces cas-là, les modes spéciaux désactivent parfois les périphériques en groupe ou utilisent des mécanismes automatisés qui ne laissent au développeur qu'un contrôle minime sur les détails de la répartition de l'alimentation.
Même si la gestion de l'alimentation des microcontrôleurs fournit généralement une gamme de modes de fonctionnement basse consommation, la transition vers ce type de mode entraîne souvent une baisse significative des fonctionnalités. Dans de nombreux cas, les applications tolèrent une perte de fonctionnalités pour des périodes limitées. Dans certains cas, cependant, un contrôle précis de la consommation énergétique est essentiel pour assurer un fonctionnement continu. Le processeur ADuCM3029 d'Analog Devices est spécialement conçu pour prendre en charge les exigences de gestion de l'alimentation plus complexes dans les applications ultrabasse consommation.
Doté d'un cœur ARM® Cortex®-M3, l'ADuCM3029 fournit 256 Ko de mémoire Flash de code de correction d'erreur (ECC) et 64 Ko de mémoire SRAM configurable avec une protection de plusieurs bits de parité. Solution alternative, l'ADuCM3027 offre 128 Ko de mémoire Flash et les mêmes fonctions et fonctionnalités que l'ADuCM3029.
Outre un accélérateur cryptographique matériel intégré, les dispositifs incluent un convertisseur analogique-numérique (CAN) à 8 canaux, 12 bits, ainsi que plusieurs périphériques numériques, y compris SPI, I2C, UART et GPIO, un port série synchrone (SPORT) et un contrôleur DMA à 25 canaux. Même avec ces fonctionnalités étendues, le dispositif consomme généralement moins de 30 μA/MHz en mode actif. Toutefois, avec le modèle ADuCM3029, les concepteurs peuvent ajuster davantage l'équilibre entre les performances fonctionnelles et la consommation énergétique.
Ajustement alimentation/performances
Comme avec la plupart des microcontrôleurs avancés, l'ADuCM3029 comprend plusieurs modes d'alimentation conçus pour réduire la consommation pendant les périodes de faible activité. En mode veille prolongée, le dispositif consomme généralement moins de 750 nA en désactivant le cœur du processeur et la plupart des périphériques, tout en maintenant l'alimentation des régions SRAM sélectionnées par le programme. Pour les périodes d'inactivité de l'application, le mode d'arrêt du dispositif ne nécessite que 60 nA.
Cependant, les développeurs rencontrent souvent des situations qui nécessitent un certain degré d'activité des périphériques lorsque le processeur est inactif. Pour résoudre ce problème, l'ADuCM3029 offre un mode d'alimentation supplémentaire appelé « mode veille flexible » (Flexi). Le mode Flexi réduit la consommation énergétique à 300 μA, tout en fournissant une fonctionnalité située entre le mode actif et la veille prolongée. En mode Flexi, le cœur du dispositif reste en mode veille tandis que des périphériques spécifiques définis par le développeur restent actifs (Tableau 1).

Tableau 1 : Les modes d'alimentation du microcontrôleur ADuCM3029 d'Analog Devices activent (vert) ou désactivent (rouge) automatiquement l'alimentation de certains blocs intégrés, tout en permettant aux développeurs de contrôler l'alimentation de certains périphériques (orange) ou même de configurer l'espace SRAM conservé (*) en mode veille prolongée. (Source du tableau : Analog Devices)
Les développeurs peuvent placer le microcontrôleur en mode Flexi en réglant simplement les bits MODE du registre PMG_PWRMOD du dispositif sur 0 et en exécutant l'instruction WFI (attente d'interruption). Avec le cœur du processeur inactif, le développeur peut faire fonctionner des périphériques spécifiques en écrivant 0 pour le bit correspondant de chaque périphérique dans le registre CLKG_CLK_CTL5 du microcontrôleur. Même si le dispositif ne peut pas exécuter d'instructions dans ce mode, il peut continuer à effectuer des activités, comme des transferts DMA entre les périphériques et la mémoire.
En permettant de maintenir le fonctionnement des périphériques, le mode Flexi offre une solution écoénergétique pour résoudre un problème courant dans les applications de capteur où l'échantillonnage d'un ou de plusieurs capteurs est requis sur une période de temps avant d'impliquer le processeur. Dans ce cas, les développeurs peuvent utiliser le mode de cycle automatique du CAN intégré pour effectuer une ou plusieurs conversions sur les canaux sélectionnés, puis définir le contrôleur DMA pour transférer les échantillons automatiquement à la mémoire SRAM. Après un nombre de conversions défini par le programmateur et après les transferts DMA associés, le contrôleur DMA émet une interruption afin d'activer le cœur pour traiter les données échantillonnées (Figure 1).

Figure 1 : En mode Flexi, le processeur de l'ADuCM3029 d'Analog Devices est en veille, tandis que certains périphériques restent fonctionnels pour la continuité des opérations, comme le transfert DMA de plusieurs canaux d'échantillons CAN activant le processeur uniquement à la fin de la tâche. (Source de l'image : Analog Devices)
Cache et horloges
En privilégiant les performances au détriment des fonctionnalités, le mode Flexi et les autres modes basse consommation offrent aux concepteurs un mécanisme puissant permettant de réduire considérablement la consommation énergétique de leurs conceptions. Cependant, dans de nombreuses applications comme les systèmes alimentés par batterie, les concepteurs ont souvent besoin d'un meilleur contrôle sur la consommation énergétique. Avec l'ADuCM3029, les concepteurs peuvent réduire davantage la consommation en exploitant une combinaison des méthodes conventionnelles et novatrices.
Parmi les méthodes conventionnelles typiques figure l'utilisation du cache d'instruction pour réduire l'accès à la mémoire hors puce ou à la mémoire intégrée à haute consommation énergétique, comme la mémoire Flash. Dans les systèmes basés sur l'ADuCM3029, les développeurs peuvent affecter jusqu'à 4 Ko de mémoire SRAM au cache. En pratique, les économies d'énergie spécifiques dépendent des taux de réussite du cache, mais Analog Devices indique que l'utilisation du cache dans certaines applications de référence typiques peut considérablement réduire la consommation énergétique (Tableau 2).
|
Tableau 2 : En configurant une partie de la mémoire SRAM de l'ADuCM3029 d'Analog Devices comme cache, les applications de référence typiques peuvent fonctionner à des niveaux d'alimentation approchant ceux de l'accès SRAM basse consommation au lieu de l'accès Flash à consommation plus élevée. (Source du tableau : Analog Devices)
L'échelonnement de la fréquence constitue une autre approche traditionnelle pour réduire la consommation. Les faibles fréquences d'horloge du processeur ralentissent l'exécution des instructions mais résultent également en une réduction de la consommation énergétique (Figure 2). Toutefois, contrairement à la majorité des autres approches, l'ADuCM3029 permet aux développeurs de modifier de manière dynamique et distincte les fréquences d'horloge du processeur et des périphériques. Dans notre exemple, le dispositif utilise une boucle à verrouillage de phase et des diviseurs d'horloge commandés par un quartz externe ou un oscillateur interne de 26 MHz pour générer les horloges des ressources intégrées, notamment le processeur, la mémoire et les interfaces. Un quartz externe ou un oscillateur interne de 32 kHz commande les horloges temps réel (RTC) et l'horloge de surveillance du dispositif. Les développeurs peuvent modifier les registres d'horloge respectifs pendant l'exécution pour changer les fréquences d'horloge et les adapter aux exigences évolutives de l'application ou aux possibilités de réduction de la consommation.

Figure 2 : Les concepteurs peuvent simplement paramétrer quelques registres dans l'ADuCM3029 d'Analog Devices pour mettre à l'échelle la fréquence d'horloge du microcontrôleur et ainsi réduire la consommation énergétique. (Source de l'image : Analog Devices)
Schéma d'alimentation optimisé
Outre la prise en charge de méthodes de réduction de la consommation plus conventionnelles, l'ADuCM3029 offre des approches plus innovantes basées sur les fonctionnalités matérielles du dispositif. Dans le schéma d'alimentation de l'ADuCM3029, un convertisseur abaisseur intégré compense la différence entre la plage de tensions d'alimentation VBAT du dispositif (1,74 V - 3,6 V) et la tension de fonctionnement du domaine numérique interne (1,2 V).
En fonctionnement normal, un régulateur à faible chute de tension (LDO) intégré alimente cette tension interne. Comme avec tout autre régulateur LDO typique, lorsque la différence entre l'alimentation du LDO et la tension de charge est élevée, le schéma d'alimentation par défaut dissipe simplement l'énergie excédentaire, ce qui entraîne un gaspillage de puissance. Cependant, avec ce microcontrôleur, les concepteurs peuvent réduire cette perte à des tensions d'alimentation supérieures, avec uniquement quelques condensateurs externes (Figure 3). Côté logiciel, il suffit aux développeurs d'écrire sur le registre de contrôle abaisseur (PMG_CTL1) pour activer le convertisseur abaisseur.

Figure 3 : En utilisant simplement quelques lignes de code et quelques condensateurs externes, les développeurs peuvent activer le convertisseur abaisseur intégré de l'ADuCM3029 d'Analog Devices pour réduire le niveau de tension appliquée au régulateur LDO du dispositif. (Source de l'image : Analog Devices)
Basé sur une topologie de pompe à charge à condensateur haut rendement, le convertisseur réduit le niveau de tension fournie au régulateur LDO. Par conséquent, le microcontrôleur affiche une réduction considérable de la consommation énergétique à des niveaux de tension du côté supérieur de VBAT (Figure 4). Pour les niveaux inférieurs à environ 2,3 V, le convertisseur abaisseur passe en mode de dérivation et suit VBAT.

Figure 4 : Pour des niveaux de tension d'alimentation (VBAT) supérieurs à environ 3 V, le convertisseur abaisseur intégré de l'ADuCM3029 réduit la consommation énergétique du microcontrôleur et atteint une réduction relative de 50 % en mode actif, comme illustré ici, ainsi qu'en mode Flexi. (Source de l'image : Analog Devices)
Échantillonnage à alimentation optimisée
Les caractéristiques comme la mise en cache, l'échelonnement de la fréquence et la conversion CC/CC intégrée, fonctionnent au niveau système pour contribuer à réduire la consommation énergétique. Au niveau de l'application, des fonctionnalités comme le mode Flexi permettent de réduire la consommation pour les opérations périphériques telles que l'échantillonnage des capteurs. Cependant, même ces méthodes peuvent s'avérer insuffisantes pour certaines applications. Par exemple, les dispositifs IoT alimentés par batterie sont souvent utilisés pour échantillonner des capteurs à des fréquences d'acquisition très faibles ou pour surveiller régulièrement certains processus externes.
Pour les applications avec une activité périodique lente, les développeurs peuvent généralement recourir à l'horloge temps réel (RTC) du microcontrôleur pour conserver une base temporelle constante, ainsi qu'à des indicateurs de temps de commande, utilisés pour activer le microcontrôleur à des instants précis et prédéfinis. Par conséquent, les microcontrôleurs avancés présentent typiquement des modes d'alimentation qui conservent la fonctionnalité RTC, même dans les modes à très faible consommation. Avec l'ADuCM3029, les développeurs peuvent accéder à deux RTC distinctes, RTC0 et RTC1, qui fournissent des options supplémentaires pour l'équilibrage de l'alimentation et des performances.
Comme indiqué dans le Tableau 1, les deux RTC prennent en charge un fonctionnement en modes actif, Flexi et veille prolongée, mais seul RTC0 reste disponible en mode d'arrêt à la plus basse consommation. Dans les autres modes, cependant, les différences distinctes entre les deux horloges fournissent aux développeurs la possibilité de mettre en œuvre des applications de temporisation plus complexes. Par exemple, RTC0 effectue un comptage en secondes à 1 Hz, ce qui limite la définition des temps d'activation en secondes uniquement. L'horloge RTC1 peut être préalablement mise à l'échelle sur une vaste plage et fournir ainsi des temps d'activation de seulement 30,7 μs. L'alimentation de chaque horloge est également différente. RTC0 est alimentée par une alimentation primaire (VBAT), tandis que RTC1 est alimentée par un domaine d'alimentation interne de 1,2 V. Dans ce cas, l'utilisation du convertisseur abaisseur en option réduit davantage la consommation énergétique réelle de RTC1. Peut-être plus important encore, RTC1 prend en charge le mécanisme SensorStrobe d'Analog Devices, une fonctionnalité d'échantillonnage basse consommation unique, intégrée dans l'ADuCM3029.
SensorStrobe est une alarme RTC1 spéciale qui génère une impulsion de sortie au niveau de la broche RTC1_SS1 du microcontrôleur. Les développeurs peuvent connecter la sortie SensorStrobe de l'ADuCM3029 à un dispositif multicapteur externe, comme l'ADXL363 d'Analog Devices, pour créer une solution d'échantillonnage à très faible consommation avec seulement quelques composants (Figure 5).

Figure 5 : Le mécanisme SensorStrobe de l'ADuCM3029 fournit une alarme stable et synchronisée pour les dispositifs externes, permettant la mise en œuvre d'un système d'acquisition des données simple avec un capteur intégré, comme l'ADXL363 d'Analog Devices. (Source de l'image : Analog Devices)
Analog Devices fournit le sous-système spécifique illustré à la Figure 5 avec le kit de développement ADuCM3029 EZ-KIT, l'ADZS-UCM3029EZLITE. Outre une configuration matérielle simple, cette approche ne requiert que quelques lignes de code pour paramétrer les registres de dispositifs associés et lancer le mécanisme SensorStrobe (Liste 1).
#define PRD_VAL 255
void SensorStrobe_Cfg()
{
// SensorStrobe Pin Mux
*pREG_GPIO2_CFG |= (0x3 << BITP_GPIO_CFG_PIN11);
// Reset the RTC counter
while(*pREG_RTC1_SR1 & 0x0180); //wait until sync
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 0;
while(!(*pREG_RTC1_SR0 & 0x0080 )); //wait for sync
// SensorStrobe configuration
// Initial trigger and auto reload value = 255 RTC counts
// RTC runs at 32KHz ideally, 1 RTC count = 30.7us
while(*pREG_RTC1_SR5 != 0);
*pREG_RTC1_SS1ARL = PRD_VAL;
// SensorStrobe to be triggered after 255 RTC counts
*pREG_RTC1_CR4SS = (1 << 9); //Enable Autoreload
*pREG_RTC1_SS1 = PRD_VAL; // Initial Compare Value
// Enable SensorStrobe
*pREG_RTC1_CR3SS = 1;
while(*pREG_RTC1_SR4 != 0x77FF);
// Initialize the counter value to zero
while(*pREG_RTC1_SR1 & 0x0600);
*pREG_RTC1_CNT0 = 0;
*pREG_RTC1_CNT1 = 0;
while(!(*pREG_RTC1_SR0 & 0x0400));
// Enable (start) the counter
while(*pREG_RTC1_SR1 & 0x0180); //wait until sync
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 1;
while(!(*pREG_RTC1_SR0 & 0x0080)); //wait for sync
return;
}
Liste 1 : Les développeurs doivent uniquement paramétrer quelques registres du dispositif pour bénéficier de la fonctionnalité SensorStrobe du microcontrôleur ADuCM3029 d'Analog Devices. (Source de l'image : Analog Devices)
Pendant l'exécution de SensorStrobe, les développeurs mettent l'ADuCM3029 en mode veille prolongée pour garantir une consommation énergétique minimale du microcontrôleur durant le processus d'échantillonnage étendu. Tandis que le microcontrôleur reste en mode veille prolongée, l'horloge RTC1 compte jusqu'à la valeur désirée, spécifiée dans les valeurs du registre définies lors du paramétrage de SensorStrobe. Lorsque les conditions de comptage de SensorStrobe sont remplies, le signal SensorStrobe est appliqué au niveau de la broche d'entrée d'interruption de l'ADXL363 pour activer le dispositif. L'ADXL363 exécute alors à son tour ses propres programmes d'échantillonnage de données. À la fin du processus, l'ADXL363 émet un signal au niveau de la broche d'interruption du microcontrôleur pour que celui-ci sorte du mode veille prolongée et démarre le traitement des données échantillonnées.
Auparavant, les développeurs implémentaient systématiquement ce type de conception d'échantillonnage étendu à l'aide d'une horloge temps réel externe, d'un temporisateur ou même d'un simple oscillateur. En plus d'accroître la complexité de la conception, l'utilisation d'une source d'horloge externe divise la synchronisation temporelle entre les données d'échantillonnage et la propre base de temporisation du microcontrôleur. Par conséquent, les développeurs utilisant l'approche traditionnelle devaient recourir à un ré-échantillonnage de leurs données pour normaliser l'horodatage par rapport à celui du microcontrôleur. En utilisant l'horloge RTC1 en mode SensorStrobe, les développeurs peuvent maintenant garantir la synchronisation de l'horodatage des échantillons avec le système basé sur l'ADuCM3029.
Les développeurs peuvent éventuellement trouver différents mécanismes discrets similaires aux capacités de gestion de l'alimentation intégrées de l'ADuCM3029. Cependant, en exploitant les capacités internes de ce dispositif, les ingénieurs peuvent plus facilement obtenir un meilleur équilibre entre alimentation et performances.
Conclusion
La demande en matière de systèmes basse consommation met constamment à l'épreuve les développeurs et leur capacité à atteindre des performances maximales dans des conceptions plus compactes et écoénergétiques. Chaque application exige un équilibre unique entre les performances fonctionnelles et la consommation énergétique.
Les fonctionnalités de gestion de l'alimentation intégrées du microcontrôleur ADuCM3029 d'Analog Devices offrent aux développeurs la flexibilité requise pour trouver plus facilement cet équilibre. En utilisant ce dispositif, les développeurs peuvent fournir la combinaison unique de hautes performances et de basse consommation, requise pour chaque application spécifique.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.




