Comment sélectionner le microcontrôleur pour votre nouveau produit
Comment sélectionner le bon microcontrôleur pour votre produit matériel spécifique? Cet article vous montrera tous les différents facteurs dont vous avez besoin pour jongler lors de la sélection du meilleur microcontrôleur.
Lors de la sélection du bon microcontrôleur pour un projet, vous devez tenir compte du coût, des performances, de la consommation d’énergie et de la taille globale. La disponibilité des outils logiciels et matériels appropriés est également une considération primordiale.
La prise en charge de la plate–forme choisie est également très importante, non seulement de la part du fournisseur, mais de la communauté dans son ensemble. Cela aide également si le microcontrôleur choisi dispose d’une carte de développement facilement disponible.
Enfin, le temps de développement peut être considérablement réduit si le microcontrôleur sélectionné dispose de bibliothèques logicielles étendues et entièrement déboguées avec des interfaces de programmation d’applications bien documentées, ou des API.
Dans cet article, seuls les microcontrôleurs qui répondent généralement aux critères ci-dessus seront présentés.
Tous les microcontrôleurs modernes partagent certaines fonctionnalités de base. En plus d’une unité de traitement, ils ont une certaine quantité de flash qui est utilisée pour stocker le code de l’application, une SRAM et, dans la plupart des cas, une EEPROM.
Ils ont besoin d’une source d’horloge, qui est normalement fournie par un oscillateur à résistance-condensateur interne (RC), ou en utilisant un cristal externe pour des applications plus critiques de synchronisation. Ils ont des ports E/S numériques et au moins un minuteur / compteur.
En outre, à l’exception des microcontrôleurs très bas de gamme, la plupart ont au moins un UART pour les communications série. Au-delà de cela, les microcontrôleurs se distinguent par la quantité de mémoire dont ils disposent, le nombre et le type d’autres périphériques intégrés sur la puce et la vitesse à laquelle ils exécutent des applications utilisateur.
Cela ne dépend pas seulement de la vitesse d’horloge brute; cela dépend également de la largeur des données du processeur et des fonctionnalités d’accélération matérielle incluses.
Les microcontrôleurs pour systèmes embarqués se répartissent principalement en trois catégories en fonction de la largeur de leurs bus de données : 8 bits, 16 bits et 32 bits. Il y en a d’autres, mais ce sont les plus populaires.
En général, les microcontrôleurs 8 bits sont destinés aux applications de bas de gamme, et les microcontrôleurs 32 bits sont destinés aux extrémités supérieures, avec 16 bits pour les applications de milieu de gamme.
De loin, la plupart des produits sur lesquels je travaille ont tendance à intégrer des microcontrôleurs 32 bits, mais les microcontrôleurs 8 ou 16 bits peuvent être un bon choix pour les produits bas de gamme à faible coût.
Microcontrôleurs 8 bits
Si une application n’a pas de très fortes exigences en puissance de traitement et est de taille relativement petite, il peut être logique d’envisager un microcontrôleur 8 bits.
Pour référence, la plupart des Arduinos sont basés sur des microcontrôleurs 8 bits. Donc, si vous avez construit votre premier prototype à l’aide d’un Arduino, vous pourrez peut-être utiliser un microcontrôleur 8 bits dans votre produit final.
Ne laissez pas le prix seul guider votre décision et dans de nombreux cas, les microcontrôleurs 32 bits peuvent être moins chers que les puces 8 bits.
Par exemple, l’Atmega328p est le microcontrôleur 8 bits utilisé par l’Arduino Uno. Il en coûte un peu plus de 1 $ en volumes d’environ 10 000 pièces. Il fonctionne à 20 MHz et comprend 32 Ko de Flash et 2 Ko de RAM.
D’autre part, vous pouvez acheter un microcontrôleur 32 bits fonctionnant à 48 MHz avec une mémoire similaire pour seulement 60 cents. Cela est probablement dû au fait que les microcontrôleurs 32 bits font baisser leur coût.
Cela étant dit, il existe des microcontrôleurs 8 bits encore moins chers qui coûtent moins de 25 cents à des volumes similaires.
Les microcontrôleurs 8 bits doivent généralement être considérés pour les applications dédiées à un seul travail, avec une interface utilisateur limitée et peu de traitement de données.
les microcontrôleurs 8 bits sont disponibles dans toutes les tailles, des petits périphériques à 6 broches aux puces à 64 broches. Ils ont des tailles de flash allant de 512 octets à 256 Ko, des tailles SRAM de 32 à 8 Ko ou plus et des EEPROM de 0 à 4 Ko ou plus. Un système minimal peut être aussi simple qu’une seule puce, avec un condensateur de dérivation sur le rail d’alimentation.
Les trois lignes les plus populaires de microcontrôleurs 8 bits sont la série 8051, la série PIC de Microchip et la série AVR d’Atmel, qui fait maintenant partie de Microchip.
La série 8051
Originaire d’Intel, et maintenant fabriqué par d’autres, ce microcontrôleur est toujours d’usage courant aujourd’hui, intégré dans de nombreuses appliances.
Bien qu’ils soient disponibles en tant que périphériques autonomes, les 8051 sont maintenant principalement utilisés comme cœurs IP (Propriété intellectuelle) intégrés dans le silicium de puces dédiées spécifiques à l’application, telles que certains émetteurs-récepteurs radio sans fil.
Il est très rare que le 8051 soit le bon choix pour servir de microcontrôleur principal à votre produit.
Les microcontrôleurs PIC de la série
PIC sont très populaires et bénéficient d’un large support à la fois par Micropuce et par des tiers.
Microchip fournit son environnement de développement intégré (E) MPLAB® X, qui comprend un compilateur C gratuitement. Le configurateur de code MPLAB qui génère du code C pour les périphériques embarqués est également disponible gratuitement en tant que plug-in ID.
Ceci peut ensuite être intégré dans le code de l’application. Il existe des modèles PIC avec des combinaisons d’interfaces USART, SPI, I2C, ADC, USB, LIN, CAN et autres. Microchip propose également plusieurs outils de développement, dont MPLAB PICkit 4, ICD 4 et Real ICE.
Des compliants commerciaux de meilleure qualité qui ont une meilleure optimisation du code sont également disponibles. Voici un guide de référence PDF rapide sur les microcontrôleurs PIC.
La série AVR
L’AVR est une autre série de microcontrôleurs 8 bits très populaires. Bien qu’ils soient dans le même espace que les PIC décrits ci-dessus, et qu’ils aient des performances comparables, ils ont une grande prétention à la renommée: Arduino.
Figure 1 – La plupart des cartes Arduino sont basées sur des microcontrôleurs AVR 8 bits
Les Arduinos d’origine, tels que les Uno, Leonardo et Mega, utilisent tous des microcontrôleurs AVR. En raison de la très large gamme de bibliothèques disponibles pour les Arduinos, les AVR méritent une attention particulière pour les applications 8 bits, même si ce n’est que pour les prototypes de preuve de concept.
Les bibliothèques Arduino étant écrites en C++, elles peuvent être facilement incorporées dans n’importe quelle application écrite en C/C++.
Les outils de développement logiciel incluent AVR studio, ou, si vous utilisez Arduino, l’ Arduino Arduino et la plate-forme IO sont tous deux couramment utilisés. Le complicateur utilisé dans ces EDI est AVR GCC, un compilateur C / C ++ gratuit, très bien supporté et maintenu.
Les outils de développement matériels incluent l’Atmel ICE et le PICkit 4. De plus, des outils matures tels que le STK600 et l’AVR Dragon sont toujours largement disponibles. Voici un lien vers un guide de référence PDF rapide pour les microcontrôleurs AVR.
Microcontrôleurs 16 bits
les microcontrôleurs 16 bits sont la prochaine étape par rapport aux microcontrôleurs 8 bits, tout en partageant plusieurs des mêmes attributs. Ils sont plus rapides, supportent encore plus de périphériques et offrent généralement plus de mémoire, à la fois flash et SRAM.
En plus de plus de broches IO, la plupart d’entre elles ont également des multiplicateurs matériels nettement plus rapides et utilisent moins de mémoire de programme, par rapport aux implémentations logicielles pures.
Il est facile de trouver des appareils dotés d’un CAN et d’un DAC, ou des appareils dotés de capteurs tactiles capacitifs, de pilotes LCD segmentés et d’Ethernet.
En interne, ces périphériques ont également des blocs matériels généralement introuvables dans les périphériques inférieurs. Ceux-ci incluent des moteurs de cryptage, des amplificateurs de Gain Opérationnels ou programmables et des contrôleurs DMA.
Bien que des microcontrôleurs 16 bits puissent être trouvés auprès de divers fabricants tels que Microchip (leur dsPIC33 est un choix populaire), NXP, Infineon ou Cypress, la série TI MSP430 sera présentée ici comme un exemple typique de ce segment de microcontrôleurs.
Série TI MSP430
Le MSP430 est une série de microcontrôleurs 16 bits à très faible puissance disponibles dans de nombreuses versions. Ils vont des modèles à usage général aux modèles très spécialisés.
Une chose intéressante à propos des variantes spécialisées de ces microcontrôleurs est qu’elles se divisent en deux extrêmes: des modèles très dédiés et très peu coûteux et des modèles haut de gamme avec interfaces de capteurs analogiques et Traitement numérique du signal (DSP).
Un exemple d’application haut de gamme est ce capteur de débit à ultrasons. En bas de gamme, TI fabrique également des puces à base de MSP430 qui résolvent de nombreuses fonctions matérielles très spécifiques. Pour plus de détails, voir ce document électronique.
Par exemple, vous voulez une interface SPI vers UART, un expandeur d’E/ S ou un pont UART vers UART ? Tout est là-dedans, et le tout pour moins de 0,30 $ pour cette puce.
Enfin, bien sûr, le MSP430 est pris en charge par un certain nombre d’outils et de kits de développement à faible coût.
Le tableau 1 ci-dessous présente les fonctionnalités supplémentaires disponibles sur certaines versions grand public.
MSP430FR2x | MSP430FR4x | MSP430FR5x | MSP430FR6x | |
Mémoire de programme | Jusqu’à 32 Ko | Jusqu’à 16 Ko | Jusqu’à 256 Ko | Jusqu’à 128 Ko |
Nombre de broches | 16 à 64 dans une variété de paquets | 48 à 64 dans une variété de paquets | 24 à 100 dans une variété de paquets | 56 à 100 dans une variété de paquets |
Périphériques généralement non disponibles dans les contrôleurs 8 bits | DAC, PGA, Transimpédance & ampères opérationnels | Logique de modulation IR | DMA, AES | DMA, AES |
Pilotes de segment LCD | — | Vers Le Haut 256 | — | Jusqu’à 320 |
Tableau 1 – Résumé des caractéristiques du MSP430 grand public
Microcontrôleurs 32 bits
Les microcontrôleurs 32 bits sont des périphériques puissants dotés de fonctionnalités similaires à celles d’un microprocesseur. Certaines des fonctionnalités avancées incluent le pipelining d’instructions, la prédiction de branches, les interruptions vectorielles imbriquées (NVI), les unités à virgule flottante (FPU), la protection de la mémoire et les débogueurs intégrés.
signifie que le cœur du processeur pré-récupère les instructions suivantes à l’avance et que la prédiction de branche pré-récupère les instructions suivantes des deux résultats d’une condition if-else, accélérant ainsi l’exécution du code.
NVI fournit des priorités d’interruption, où une interruption peut préempter une priorité inférieure.
Les FPU peuvent effectuer des calculs en virgule flottante beaucoup plus rapidement que les méthodes implémentées par SW.
La protection de la mémoire garantit que le code d’application ne peut pas par inadvertance sur-écrire des sections critiques dédiées au système d’exploitation, par exemple.
Enfin, le débogage intégré permet de jeter un coup d’œil dans les registres et d’autres zones du système pour faciliter le débogage du code d’application. Tous ces éléments permettent à ces microcontrôleurs d’exécuter des applications volumineuses, rapides et robustes.
De plus, leur puissance de traitement brute signifie qu’ils peuvent facilement prendre en charge les systèmes d’exploitation en temps réel (RTOS) qui, à leur tour, offrent des capacités multitâches.
Même s’il existe de nombreux microcontrôleurs 32 bits sur le marché, l’accent sera mis dans cette note sur les appareils basés sur ARM Cortex M, avec une mention spéciale de l’ESP32 d’Espressif.
ARM Holdings ne conçoit en fait que des IP de cœur de processeur, qu’elle concède ensuite sous licence à divers fournisseurs de semi-conducteurs qui les incorporent, avec certains périphériques, dans leurs propres puces de silicium. De nombreux fabricants de puces proposent des microcontrôleurs basés sur l’architecture Cortex-M.
Les deux principaux fournisseurs de puces à base d’ARM sont Atmel avec sa gamme d’appareils SAM et STMicroelectronics avec sa gamme de produits STM32.
Les appareils SAM méritent d’être mentionnés ici en raison de leur utilisation dans certaines cartes compatibles Arduino. Cependant, en général, les périphériques STM32 offrent plus de choix et doivent être pris en compte lors de la conception d’un microcontrôleur 32 bits intégré.
microcontrôleurs STM32
Les cœurs ARM Cortex M sont disponibles en plusieurs versions. Les plus populaires sont les modèles M0/M0+, M1, M3, M4 et M7, chacun offrant des performances progressivement plus élevées. Les microcontrôleurs STM32 intègrent des cœurs M0/M0+, M3, M4 ou M7.
La figure 1 montre la famille STM32 de microcontrôleurs ARM Cortex M et leurs segments d’application prévus.
Figure 2 – Famille de microcontrôleurs STM32
Dans chacune des catégories représentées à la figure 1, de nombreuses familles peuvent être sélectionnées pour correspondre plus étroitement à une application donnée.
Par exemple, la figure 2 montre les principales variantes disponibles dans la catégorie » grand public » et leur courbe de performance relative. Notez qu’au sein de chaque famille elle-même, il existe de nombreuses variantes avec différentes combinaisons de périphériques et de quantités de mémoire.
En fait, à l’heure actuelle, il y a plus de trois cents microcontrôleurs STM32 disponibles dans cette catégorie.
Figure 3 – Famille de microcontrôleurs dans la catégorie Grand public STM32
Prise en charge matérielle STM32: La famille STM32 est prise en charge par une grande variété d’outils matériels fournis à la fois par ST Microelectronics et par des tiers.
Un débogueur / programmeur en circuit peu coûteux est le STLink V2. Il est fabriqué par ST et est disponible dans des endroits tels que Digi-Key; cependant, des clones très peu coûteux sont également disponibles.
ST Microelectronics dispose également d’un grand choix de cartes de développement sous leurs familles de Nucléo et de découverte.
Les deux contiennent une interface de débogage STLink. Tout ce qui est nécessaire est un ordinateur avec USB, exécutant l’outil logiciel approprié pour évaluer le microcontrôleur choisi.
Les cartes de découverte incluent des périphériques externes supplémentaires tels que des capteurs MEMs et des plaques tactiles capacitives. Cependant, les Nucleos ont des en-têtes compatibles avec les boucliers Arduino.
Figure 4 – Carte de développement de découverte ST pour un microcontrôleur STM32F407
Avant de quitter cette section, il convient de mentionner encore une autre carte de développement très peu coûteuse. Communément appelée Pilule bleue, cette planche arbore une puce basée sur le Cortex M3 STM32F103 et coûte moins de 2,00 $ de certaines sources.
Une caractéristique intéressante de cette carte est qu’elle peut être rendue compatible avec Arduino afin que l’ Arduino Arduino, ou la plate-forme IO, puisse être utilisée pour écrire et télécharger du code pour des conceptions de preuve de concept rapides.
Bien que le processus de compatibilité Arduino soit un peu impliqué, il existe plusieurs endroits qui vendent des cartes prêtes pour Arduino. Il suffit de faire une recherche pour ‘STM32duino’.
Pour apprendre à concevoir une carte de microcontrôleur personnalisée basée sur STM32, assurez-vous de regarder ce tutoriel et de consulter ce cours payant approfondi.
Support logiciel STM32 : STMicroelectronics fournit une version de la suite de développement Mbed d’ARM pour toute sa gamme de produits STM32. Cela comprend unE, un compilateur et un vaste ensemble de bibliothèques.
Pour les développeurs qui préfèrent utiliser d’autres compilateurs, ST fournit son STMCube. Il s’agit d’un logiciel générateur de code qui produit des codes d’initialisation pour les périphériques STM32.
Avec cela, il n’est pas nécessaire de parcourir complètement les paramètres de bits de plusieurs registres pour configurer les périphériques tels que les ports E / S ou les minuteries, par exemple.
ESP32
L’ESP32 est un microcontrôleur de Espressif Systems. Comme le montre la figure 3, il possède toutes les fonctionnalités d’un microcontrôleur 32 bits typique.
Figure 5 – Module ESP32 Espressif
Cependant, ce qui distingue ce microcontrôleur particulier des autres est l’inclusion de matériel WiFi et Bluetooth sur la puce.
Cela inclut non seulement les piles de protocole, mais également les émetteurs-récepteurs radio réels. L’ESP32 est également disponible en petit module pré-certifié avec antenne intégrée.
Pour les applications nécessitant une connectivité WiFi ou Bluetooth, l’ESP32 mérite une attention particulière. Le prix de l’ESP32 (à la fois puce discrète et module) est très abordable, en particulier compte tenu du nombre de fonctionnalités et de performances intégrées à cette puce.
Figure 6 – schéma fonctionnel ESP32
Conclusion
Le microcontrôleur est sans doute le composant le plus important que vous devez sélectionner pour votre produit. Passer à un nouveau microcontrôleur à mi-projet peut être un cauchemar, alors assurez-vous d’avoir ce choix dès le départ.
D’autres composants d’une conception peuvent généralement être modifiés sans nécessiter de modifications massives à l’échelle du système. Ce n’est pas le cas avec le microcontrôleur qui sert de cœur à votre produit.
Lorsque vous choisissez un microcontrôleur, vous voulez généralement en choisir un qui donne à votre produit une certaine marge de croissance. Par exemple, si vous déterminez que vous avez besoin de 16 broches GPIO, vous ne voulez pas choisir un microcontrôleur avec seulement 16 broches GPIO.
Que se passe-t-il si vous décidez d’ajouter un nouveau bouton à l’avenir et que vous avez besoin d’un autre code pin GPIO ? Si votre microcontrôleur ne vous laisse pas de place pour grandir, vous constaterez peut-être que des mises à niveau de conception apparemment simples à l’avenir nécessiteront une refonte massive car un nouveau microcontrôleur est nécessaire.
D’un autre côté, vous ne voulez pas sélectionner plus de performances ou de fonctionnalités que vous ne le pensez.
Par exemple, si votre produit surveille simplement la température et l’humidité, vous n’aurez jamais besoin d’un microcontrôleur 32 bits avancé fonctionnant à des centaines de MHz. Ce serait exagéré, ce qui ajoutera des coûts inutiles et des complexités de conception à votre produit.
Au lieu de cela, vous devez trouver le bon endroit entre avoir de la place pour grandir si nécessaire, mais ne pas payer pour des performances ou des fonctionnalités dont vous n’aurez jamais vraiment besoin.
Enfin, n’oubliez pas de télécharger votre PDF gratuit: Guide Ultime pour Développer et Vendre votre Nouveau Produit Matériel Électronique. Vous recevrez également ma newsletter hebdomadaire où je partage du contenu premium non disponible sur mon blog.
Autres contenus susceptibles de vous plaire:
- Introduction au Microcontrôleur 32 bits STM32H7 Ultra Performant
- Introduction au Microcontrôleur STM32CubeIDE pour Microcontrôleurs STM32
- ATmega versus STM32 – Quel Microcontrôleur convient le mieux à Votre Application
- Microcontrôleur ou Microprocesseur : Lequel convient à Votre Nouveau Produit?
- Utilisation d’Arduino comme Plate-forme de développement intégrée
Write a Reply or Comment