Utiliser les fonctionnalités d'un microcontrôleur pour implémenter rapidement des chaînes de signaux analogiques dans des conceptions compactes
Avec la contribution de Rédacteurs nord-américains de DigiKey
2019-02-05
De nombreuses conceptions Internet des objets (IoT) reposent sur des circuits analogiques pour répondre aux besoins uniques d'une application pour la mise en forme des signaux de capteurs et d'actionneurs, le contrôle du courant et d'autres fonctionnalités. Bien que les circuits intégrés dédiés à la chaîne de signaux puissent répondre à ces besoins, les conceptions dont les coûts et l'espace sont limités nécessitent un moyen de fournir ces fonctionnalités avec moins de pièces, tout en répondant aux exigences de performances.
Pour répondre à ces besoins, certains microcontrôleurs simplifient la nature de cette interface de capteurs et d'actionneurs en intégrant des périphériques analogiques tels que des convertisseurs analogique-numérique (CAN) et des comparateurs. Toutefois, jusqu'à récemment, les ingénieurs devaient généralement ajouter des composants analogiques pour assurer la mise en forme des signaux ou la mise en tampon de la sortie requise dans la plupart des conceptions.
Avec l'ajout de ces circuits de mise en forme des signaux analogiques sur un microcontrôleur, les développeurs disposent désormais d'un moyen efficace de configurer ces composants pour répondre à un large éventail d'exigences d'interface analogique pour les dispositifs corporels et autres dispositifs IoT en ne manipulant que quelques lignes de code.
Cet article traite de la nécessité des exigences de mise en forme des signaux analogiques d'entrée pour les dispositifs IoT connectés. Il présente ensuite une classe de microcontrôleurs aux fonctionnalités analogiques hautement intégrées et indique comment les utiliser.
Interfaçage d'un capteur avec un microcontrôleur
Les concepteurs de capteurs ont généralement besoin d'un ou deux amplificateurs pour mettre en forme les signaux de sortie du transducteur avant qu'ils n'atteignent l'entrée CAN du microcontrôleur. Des dispositifs plus complexes comme les oxymètres de pouls pour la surveillance de la fréquence cardiaque nécessitent plusieurs chaînes de signaux pour générer des formes d'onde d'excitation de LED, convertir la sortie de photodiode et extraire les données de pouls (Figure 1). Même le circuit à boucle de courant simple utilisé couramment pour connecter des capteurs à des contrôleurs logiques programmables dans les applications industrielles nécessite des dispositifs supplémentaires pour entraîner et contrôler la sortie de courant. Toutefois, en utilisant les composants analogiques internes du microcontrôleur MSP430FR2355 de Texas Instruments, les développeurs peuvent implémenter des versions plus compactes de ces conceptions, généralement avec seulement quelques composants passifs supplémentaires.

Figure 1 : Les utilisateurs attendent des fonctionnalités sophistiquées supplémentaires dans des produits plus compacts, ce qui signifie que les développeurs doivent réduire considérablement le nombre de pièces lors de l'implémentation de trajets de signaux complexes, comme celui des oxymètres de pouls. (Source de l'image : Texas Instruments)
Composants analogiques intégrés
Basé sur un cœur de processeur RISC 16 bits, le microcontrôleur MSP430FR2355 de Texas Instruments fournit toutes les fonctionnalités généralement requises dans de nombreuses conceptions de dispositifs IoT. Appartenant à la gamme FRAM MSP430 de TI, le MSP430FR2355 intègre une mémoire vive ferroélectrique (FRAM) basse consommation de 32 Ko. Bien adaptée aux conceptions IoT, la mémoire FRAM offre les avantages de la mémoire Flash en matière de stockage non volatil, ainsi que la vitesse d'écriture et l'endurance de la mémoire RAM. Ainsi, les développeurs peuvent tirer parti des performances de la mémoire FRAM, très proches de la mémoire RAM, pour stocker des données et du code de programme en mode actif, tout en s'appuyant sur les fonctionnalités non volatiles de la mémoire FRAM pour conserver ces valeurs en mode veille ou dans d'autres états de fonctionnement requis pour économiser l'énergie. Le MSP430FR2355 prend en charge plusieurs modes basse consommation conçus pour répondre aux exigences de basse consommation typiques de ces conceptions.
Outre ses fonctionnalités basse consommation, le MSP430FR2355 prend en charge les exigences d'interface IoT avec plusieurs périphériques analogiques intégrés, notamment un CAN 12 bits à 12 canaux, des comparateurs analogiques avec convertisseurs numérique-analogique (CNA) intégrés, et de nombreuses références de tension sur puce. La caractéristique analogique la plus remarquable du microcontrôleur MSP430FR2355 réside dans ses quatre modules SAC (Smart Analog Combo), que les développeurs peuvent configurer par programme pour répondre à leurs besoins spécifiques.
Chaque module SAC inclut un convertisseur numérique-analogique 12 bits, un amplificateur opérationnel (OA) rail-à-rail et une échelle de résistances de contre-réaction qui transforme l'amplificateur opérationnel en amplificateur à gain programmable (PGA). Des registres dédiés à chaque composant contrôlent leur configuration et leur mode de fonctionnement. Par exemple, les développeurs peuvent simplement charger les bits 0:1 dans le registre de l'amplificateur opérationnel (SACxOA) d'un module SAC (SACx) pour définir l'entrée positive de l'amplificateur opérationnel sur une source externe, sur la sortie CNA ou sur une source SAC associée (voir ci-dessous).
La bibliothèque de pilotes de TI résume ces manipulations de bits en un ensemble intuitif d'appels d'interface de programmation d'application (API). Par conséquent, les développeurs n'ont besoin que de quelques lignes de code (Liste 1) pour programmer un module SAC en tant qu'amplificateur à usage général pouvant remplacer intégralement un amplificateur de mise en forme des signaux de capteur. Cela se traduit par des économies en termes de nombre de pièces et de taille de la conception (Figure 2).
Copier
//Select external source for both positive and negative inputs
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL, SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL);
//Select low speed and low power mode
SAC_OA_selectPowerMode(SAC0_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER)
// Enable OA
SAC_OA_enable(SAC0_BASE);
// Enable SAC
SAC_enable(SAC0_BASE);
(Source du code : Texas Instruments)SAC_OA_initSAC_OA_selectPowerMode

Figure 2 : Les développeurs peuvent remplacer un amplificateur opérationnel externe par un amplificateur implémenté en interne dans le microcontrôleur MSP430FR2355 de Texas Instruments à l'aide de l'un des quatre modules SAC (Smart Analog Combo) du microcontrôleur. (Source de l'image : Texas Instruments)
Pour servir de générateur de formes d'ondes de sortie, un module SAC doit utiliser davantage de ses composants (Figure 3). Dans ce cas, le développeur peut contrôler la forme d'onde en chargeant par programme les données dans le registre de données dédié (SACxDAT) qui définit la sortie du CNA interne. À son tour, la sortie du CNA fournit la tension de référence à l'amplificateur opérationnel. Dans cette configuration, les développeurs peuvent améliorer la force de commande de l'amplificateur opérationnel en définissant les bits 0:1 (MSEL) dans le registre PGA (SACxPGA) en mode tampon (01b), ce qui correspond à une entrée flottante. Pour configurer ce mode de fonctionnement, les développeurs n'ont besoin que de quelques appels d'API supplémentaires (Liste 2) par rapport à ceux requis pour la configuration à usage général décrite ci-dessus.
Figure 3 : Les développeurs peuvent implémenter un générateur de formes d'ondes programmable à l'aide du convertisseur numérique-analogique et des composants d'amplificateur opérationnel du module SAC. (Source de l'image : Texas Instruments)
Copier
//Select internal shared reference as DAC reference voltage
SAC_DAC_selectRefVoltage(SAC0_BASE, SAC_DAC_SECONDARY_REFERENCE);
//Select the load trigger for DAC data latch
//DAC always loads data from DACDAT at the positive edge of Timer output TB2.1
SAC_DAC_selectload(SAC0_BASE, SAC_DAC_LOAD_DEVICE_SPECIFIC_0);
//Enable DAC Interrupt
SAC_DAC_interruptEnable(SAC0_BASE);
//Write data to DAC Data Register SACxDAT
//DAC_data is an unsigned int type variable defined by user SAC_DAC_setData(SAC0_BASE, DAC_data);
//Enable DAC
SAC_DAC_enable(SAC0_BASE);
//Select internal DAC for positive input and PGA source for negative input
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_DAC,
SAC_OA_NEGATIVE_INPUT_SOURCE_PGA);
//Select Buffer Mode
SAC_PGA_setMode(SAC0_BASE, SAC_PGA_MODE_BUFFER);
//Enable OA
SAC_OA_enable(SAC0_BASE);
//Enable SAC
SAC_enable(SAC0_BASE);
Liste 2 : Pour configurer un module SAC en tant que générateur de formes d'ondes, les développeurs n'ont besoin que de quelques appels d'API en plus de ceux requis pour son utilisation en tant qu'amplificateur à usage général. (Source du code : Texas Instruments)
Étages multiples
Dans de nombreux cas, les développeurs ont besoin de chaînes de signaux ou de chaînes de sorties construites avec plusieurs amplificateurs. Par exemple, les concepteurs de systèmes de capteurs connectent généralement les amplificateurs en cascade afin de mettre en tampon la sortie du transducteur, puis d'amplifier le signal mis en tampon afin de l'adapter à la réponse pleine échelle du CAN situé à l'extrémité de la chaîne de signaux. De même, les développeurs d'interfaces de sortie ont souvent besoin de relier des amplificateurs en cascade pour générer des formes d'ondes et contrôler les circuits d'attaque de grille. Par exemple, pour créer une interface à boucle de courant, les développeurs peuvent utiliser un module SAC configuré en mode CNA pour fournir la tension du signal modulant. Configuré en mode OA, le second module SAC convertit la tension du signal en courant grâce à un transistor externe (Figure 4).

Figure 4 : Pour construire une interface à boucle de courant, les ingénieurs utilisent un module SAC en mode CNA pour générer la tension de signal modulée et un second module SAC en mode OA pour commander un transistor, générant ainsi un courant de boucle, ILOOP (I1 + I2). (Source de l'image : Texas Instruments)
Le microcontrôleur MSP430FR2355 constitue une méthode encore plus efficace pour connecter des amplificateurs en cascade. Pour les conceptions qui ne nécessitent pas de composants externes supplémentaires, les développeurs peuvent tirer parti du routage intégré qui interconnecte en interne les modules SAC en deux paires : SAC0 est connecté en interne à SAC2, et SAC1 est connecté à SAC3.
Cette interconnexion est particulièrement utile dans les systèmes de capteurs comme les détecteurs de fumée qui doivent convertir la sortie de courant d'une photodiode en un niveau de tension pour la conversion. Les développeurs peuvent implémenter cette chaîne de signaux en utilisant une paire de modules SAC avec seulement quelques lignes de code (Liste 3). Ici, le SAC2 est configuré comme un amplificateur d'adaptation d'impédance pour convertir la sortie de courant de la photodiode en une tension, que le SAC0 associé peut ensuite amplifier pour un CAN en aval (Figure 5). SAC_OA_initSAC0_BASESAC_OA_NEGATIVE_INPUT_SOURCE_PGASAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA
Copier
//Configure Op-Amp functionality
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3,
GPIO_PIN1 | GPIO_PIN3 | GPIO_PIN2,
GPIO_TERNARY_MODULE_FUNCTION);
//Select external source for both positive and negative inputs
SAC_OA_init(SAC2_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL,
SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL);
//Select low speed and low power mode
SAC_OA_selectPowerMode(SAC2_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER);
SAC_OA_enable(SAC2_BASE); // Enable SAC2 OA
SAC_enable(SAC2_BASE); // Enable SAC2
//Select external source for both positive and negative inputs
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA,
SAC_OA_NEGATIVE_INPUT_SOURCE_PGA);
SAC_OA_enable(SAC0_BASE); // Enable SAC0 OA
SAC_enable(SAC0_BASE); // Enable SAC0
(Source du code : Texas Instruments)SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA

Figure 5 : Les développeurs peuvent éliminer efficacement le recours à des circuits intégrés analogiques externes dans une conception de détecteur de fumée en configurant les paires de modules SAC du microcontrôleur MSP430FR2355 pour implémenter l'amplificateur d'adaptation d'impédance et l'amplificateur à gain programmable requis dans une chaîne de signaux d'entrée typique de détecteur de fumée. (Source de l'image : Texas Instruments)
En utilisant cette approche, les développeurs peuvent implémenter la quasi-totalité des circuits d'entrée et de sortie analogiques requis dans les dispositifs corporels et les conceptions IoT. Par exemple, ils peuvent utiliser les modules SAC du microcontrôleur MSP430FR2355 pour condenser des conceptions analogiques complexes comme l'oxymètre de pouls illustré à la Figure 1 en une version nettement plus compacte (Figure 6). Outre les LED, la photodiode et les résistances associées, les concepteurs n'ont besoin que du microcontrôleur pour offrir les mêmes fonctionnalités.

Figure 6 : Les développeurs peuvent utiliser le microcontrôleur MSP430FR2355 et ses modules SAC pour réduire considérablement le nombre de pièces dans des conceptions comme les oxymètres de pouls qui nécessitent plusieurs sources d'excitation de sortie et une chaîne de signaux d'entrée à plusieurs étages. (Source de l'image : Texas Instruments)
Pour évaluer l'utilisation du microcontrôleur MSP430FR2355 et de ses modules SAC, les développeurs peuvent tirer parti du kit de développement LaunchPad MSP-EXP430FR2355 de Texas Instruments. Conçue pour accélérer le prototypage, la carte inclut un système basé sur MSP430FR2355 complet, avec un capteur de lumière, des LED et des boutons-poussoirs pour une interaction avec des applications d'exemple simples, ainsi qu'une sonde de débogage intégrée pour le développement logiciel.
Un connecteur Grove permet d'accéder à la vaste gamme de modules complémentaires Grove, tandis qu'un connecteur BoosterPack de TI permet aux développeurs d'étendre facilement la plateforme de base avec des cartes BoosterPack RF pour une connectivité sans fil. TI fournit également un ensemble d'applications logicielles d'exemple conçues pour s'exécuter immédiatement sur le kit LaunchPad. Outre l'utilisation de la carte LaunchPad, le logiciel d'exemple illustre des modèles de conception de base, tels que la méthode d'interconnexion des modules SAC présentée dans l'extrait de code de la Liste 3.
Conclusion
Des interfaces analogiques sont généralement requises dans tout dispositif qui interagit avec le monde réel. Cependant, dans de nombreuses conceptions de dispositifs corporels et IoT, les dispositifs supplémentaires nécessaires à la construction de ces interfaces vont à l'encontre des exigences en matière de conceptions plus compactes et de réduction du nombre de pièces.
En configurant les composants analogiques intégrés au microcontrôleur MSP430FR2355 de Texas Instruments, les développeurs peuvent implémenter les fonctionnalités de chaîne de signaux requises pour ces conceptions, souvent avec seulement quelques composants passifs supplémentaires.
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é.




