Comment choisir le bon microcontrôleur pour votre projet ?
Le microcontrôleur est le « cœur » de nombreux appareils modernes. Le choix est parfois facile de par nos compétences ou notre matériel. Cependant, de nouveaux défis apparaissent, et il faut alors répondre à de nombreuses questions liées au choix et prendre en compte divers critères.
Critères de sélection étape par étape
Lorsque vous relevez le défi de construire un nouvel appareil électronique, vous devez répondre à quelques questions. L’un des plus importants est le choix des composants, qui n’est pas toujours évident. Ces dernières années, de nombreux composants n’étaient pas immédiatement disponibles et devaient parfois être rapidement remplacés par d’autres présentant des paramètres similaires, même au prix de la fabrication d’un nouveau circuit imprimé. Le microcontrôleur est le « cœur » de nombreux appareils modernes. Le choix est parfois facile de par nos compétences ou notre matériel. Cependant, de nouveaux défis apparaissent, et il faut alors répondre à de nombreuses questions liées au choix et prendre en compte divers critères.
Le choix du microcontrôleur pour le projet en cours de création se fait au tout début des travaux. Compte tenu de l’offre de systèmes, trois groupes doivent être pris en compte : les microcontrôleurs avec un cœur de 8, 16 et 32 bits. Le choix d’un microcontrôleur n’est limité par aucune règle, mais de nombreux facteurs devraient influencer la décision. Parfois, surtout au début d’un projet, il est difficile d’évaluer quelles fonctionnalités du microcontrôleur seront les plus importantes pour une application donnée. Par exemple, la capacité de fonctionner sur une large plage de températures ou la disponibilité de modules d’interface intégrés peuvent entrer en conflit avec les exigences de faible consommation d’énergie de l’alimentation électrique.
La première partie de la description doit contenir les fonctionnalités de base, c’est-à-dire une liste des fonctionnalités clés pour un projet donné. Il doit contenir les informations suivantes :
Ensuite, cela vaut la peine de jeter un œil aux contraintes de conception :
À ce stade de la création des spécifications de conception, une grande précision n’est pas nécessaire. Le but est uniquement d’estimer les besoins afin de pouvoir comparer les caractéristiques et fonctions des systèmes de microcontrôleurs sélectionnés. Par exemple, l’implémentation matérielle des fonctions de mode veille, la réponse en temps réel et la résistance aux perturbations EMI sont typiques des systèmes dotés d’un cœur de 8 bits. Il vaut la peine de choisir des microcontrôleurs 32 bits si vous souhaitez obtenir un multitâche, une gestion dynamique de la consommation d’énergie, une puissance de calcul élevée ou la possibilité de travailler sous le contrôle d’un système d’exploitation.
Le microcontrôleur contrôlant l’application batterie doit avoir un cœur très efficace afin qu’il puisse effectuer autant d’opérations que possible après le réveil de l’état de veille, dans lequel il restera la majorité du temps (afin de minimiser la consommation d’énergie). Par conséquent, dans la plupart des cas, le meilleur choix pour un appareil mobile sera une puce dotée d’un cœur ARM 32 bits. Dans un appareil stationnaire disposant de sa propre alimentation, la vitesse du microcontrôleur est un critère important, mais uniquement pour répondre aux besoins de l’application.
Dans un appareil portable, le grand nombre d’états de veille dans lesquels le microcontrôleur peut entrer constitue un avantage. Il s’agit d’une caractéristique typique des microcontrôleurs 32 bits ; les ordinateurs 8 bits plus simples ont au plus un ou deux modes de fonctionnement avec une consommation d’énergie réduite. Il arrive souvent que le microcontrôleur fonctionne ou soit éteint. Pour de nombreuses applications, cela ne fera aucune différence, mais pour des applications plus avancées, il peut être nécessaire de prendre en charge davantage de modes d’économie d’énergie. Cela vous permet de minimiser la consommation d’énergie moyenne et de prolonger la durée de fonctionnement sur batterie.
La valeur de la tension d’alimentation affectera également la perte de puissance dans le cœur, mais dans la plupart des applications de microcontrôleurs, elles ne nécessitent aucun refroidissement supplémentaire.
Bien sûr, vous pouvez utiliser des systèmes d’expandeurs supplémentaires avec une interface série ce qui réduit considérablement le besoin de broches, mais complique en même temps le logiciel, la carte et rend difficile le démarrage de l’appareil. La sélection d’un microcontrôleur en termes de nombre de broches est toujours un compromis entre ce qui est disponible et l’effort déployé ultérieurement pour écrire et exécuter l’application terminée.
Le choix des signaux traités est également très important. Si nous traitons des signaux analogiques dans l’application, alors le microcontrôleur doit avoir des performances élevées, disposer d’un nombre approprié de convertisseurs A/D fonctionnant à la fréquence d’échantillonnage requise, et il serait préférable que des modules périphériques soient disponibles pour prendre en charge leur travail, tels que Unité DMA, MAC (Multiply And Accumulate), DSP ou FPU. Il est alors possible de traiter efficacement les signaux analogiques sans augmenter les exigences du cœur lui-même et de ses performances.
Le système d’exploitation nécessite beaucoup plus de ressources mémoire qu’une application auto-écrite. En plus du programme lui-même, il doit disposer de suffisamment d’espace pour les données redondantes, qui dans ce cas incluront le code du système d’exploitation stocké dans la mémoire Flash et ses besoins en mémoire de fonctionnement (pile, variables système, gestion des interruptions, circuits d’interface et autres).
Les programmes écrits en langage assembleur nécessitent généralement le moins de mémoire. L’utilisation d’un compilateur de langage de haut niveau nécessite d’allouer une certaine quantité de mémoire à la pile du programme et aux variables. Encore plus de mémoire, comme mentionné précédemment, est requise par le système d’exploitation et le programme exécuté sous son contrôle. Il est également important que le microcontrôleur fonctionne avec un affichage graphique, car les modèles d’icônes ou d’autres éléments graphiques sont alors stockés dans la mémoire Flash, qui se présentent généralement sous la forme de bitmaps et, lorsqu’ils sont stockés avec des attributs de couleur, occupent beaucoup de place.
Lors du choix du type de système et de l’environnement d’exécution de l’IDE, il convient de prêter attention à la disponibilité des bibliothèques de fonctions. Souvent, les fabricants de puces font beaucoup de travail pour le programmeur, exécutant des fonctions et des procédures responsables de la gestion de nombreuses fonctionnalités et modules périphériques : interface tactile, écran, interfaces de communication, générateurs PWM, etc. Des fragments de code standards, testés dans les laboratoires du fabricant, peuvent accélérer considérablement l’exécution du programme et réduire le temps de travail sur le projet. Il vaut également la peine de réutiliser du code précédemment écrit, ce qui rend judicieux de choisir un fabricant de puces proposant une variété de microcontrôleurs, mais programmés de la même manière et utilisant les mêmes outils.
Texte préparé par Transfer Multisort Elektronik Sp. z o.o.
https://www.tme.eu/fr/news/library-articles/page/58382/comment-choisir-le-bon-microcontroleur-pour-votre-projet-/
Lorsque vous relevez le défi de construire un nouvel appareil électronique, vous devez répondre à quelques questions. L’un des plus importants est le choix des composants, qui n’est pas toujours évident. Ces dernières années, de nombreux composants n’étaient pas immédiatement disponibles et devaient parfois être rapidement remplacés par d’autres présentant des paramètres similaires, même au prix de la fabrication d’un nouveau circuit imprimé. Le microcontrôleur est le « cœur » de nombreux appareils modernes. Le choix est parfois facile de par nos compétences ou notre matériel. Cependant, de nouveaux défis apparaissent, et il faut alors répondre à de nombreuses questions liées au choix et prendre en compte divers critères.
- Le rôle d’une description précise du projet
- Critères de sélection d’un microcontrôleur
- Type d’alimentation
- Tension de fonctionnement
- Nombre de broches
- Modules périphériques
- Vitesse de cœur et de circuits périphériques
- Mémoire disponible
- Fiabilité électrique
- Volume
Le choix du microcontrôleur pour le projet en cours de création se fait au tout début des travaux. Compte tenu de l’offre de systèmes, trois groupes doivent être pris en compte : les microcontrôleurs avec un cœur de 8, 16 et 32 bits. Le choix d’un microcontrôleur n’est limité par aucune règle, mais de nombreux facteurs devraient influencer la décision. Parfois, surtout au début d’un projet, il est difficile d’évaluer quelles fonctionnalités du microcontrôleur seront les plus importantes pour une application donnée. Par exemple, la capacité de fonctionner sur une large plage de températures ou la disponibilité de modules d’interface intégrés peuvent entrer en conflit avec les exigences de faible consommation d’énergie de l’alimentation électrique.
Description du projet
Le choix des composants de l’appareil est un compromis entre paramètres, prix, disponibilité et équipement de l’atelier. Il n’en va pas autrement dans le cas d’un composant aussi important que le microcontrôleur. Sa sélection peut être encore plus difficile car elle affecte les paramètres actuels et futurs de l’appareil fini, ainsi que la possibilité de créer des versions de développement ultérieures. Une bonne méthode consiste à préparer une description des exigences à ce stade ce qui facilitera non seulement la sélection d’un microcontrôleur, mais aidera également à comparer les caractéristiques et les paramètres des systèmes individuels.La première partie de la description doit contenir les fonctionnalités de base, c’est-à-dire une liste des fonctionnalités clés pour un projet donné. Il doit contenir les informations suivantes :
- Quelles fonctions l’appareil conçu remplira-t-il ?
- Quels seront les signaux d’entrée et de sortie ? Quels seront leurs niveaux (tension et courant), quelle sera leur fréquence ?
- L’appareil communiquera-t-il avec l’environnement ? Si oui, de quelle manière ? Une interface sans fil sera-t-elle nécessaire ? Les données seront-elles présentées à l’utilisateur sur un affichage graphique ?
- Quelles données seront stockées en mémoire et combien d’espace sera nécessaire pour cela ? Ces données doivent-elles également être disponibles après la mise hors/sous tension ?
- Quelle doit être la vitesse de réaction à l’événement ?
- Dans quelle langue l’application de contrôle sera-t-elle créée (cela affecte la taille de la mémoire de fonctionnement et de la mémoire programme) ?
Ensuite, cela vaut la peine de jeter un œil aux contraintes de conception :
- Quel est le prix final de l’appareil (qui affectera le coût de l’assemblage et des composants) ?
- Quelles sont les restrictions de puissance ? L’appareil doit-il être portable ou fixe ? Quelle est la durée de fonctionnement nécessaire après avoir changé la batterie/chargé la batterie ?
- Quelle est la taille cible de l’appareil ? Dans quel logement sera-t-il installé ?
- L’appareil est-il destiné à des applications industrielles, grand public ou spéciales ?
À ce stade de la création des spécifications de conception, une grande précision n’est pas nécessaire. Le but est uniquement d’estimer les besoins afin de pouvoir comparer les caractéristiques et fonctions des systèmes de microcontrôleurs sélectionnés. Par exemple, l’implémentation matérielle des fonctions de mode veille, la réponse en temps réel et la résistance aux perturbations EMI sont typiques des systèmes dotés d’un cœur de 8 bits. Il vaut la peine de choisir des microcontrôleurs 32 bits si vous souhaitez obtenir un multitâche, une gestion dynamique de la consommation d’énergie, une puissance de calcul élevée ou la possibilité de travailler sous le contrôle d’un système d’exploitation.
Critères de choix
Pour faciliter le choix du bon microcontrôleur, nous vous proposons un certain nombre de critères que vous pouvez suivre. Ils doivent être traités comme des conseils, des sujets de réflexion, classés selon leur importance et les fonctionnalités attendues de l’appareil, en ajoutant vos propres critères non repris dans ce texte. Pour certains appareils, certains problèmes peuvent être cruciaux, tandis que pour d’autres, ils peuvent même être omis.Type d’alimentation
Les appareils portables sont généralement alimentés par des piles ou des batteries. Par conséquent, le microcontrôleur intégré à un tel dispositif doit consommer le moins d’énergie possible. À leur tour, les microcontrôleurs intégrés aux appareils alimentés par le secteur (à partir d’une alimentation électrique), afin de suivre les tendances des applications modernes, devraient également être économes en énergie, mais il n’est pas nécessaire de minimiser complètement la consommation d’énergie.Le microcontrôleur contrôlant l’application batterie doit avoir un cœur très efficace afin qu’il puisse effectuer autant d’opérations que possible après le réveil de l’état de veille, dans lequel il restera la majorité du temps (afin de minimiser la consommation d’énergie). Par conséquent, dans la plupart des cas, le meilleur choix pour un appareil mobile sera une puce dotée d’un cœur ARM 32 bits. Dans un appareil stationnaire disposant de sa propre alimentation, la vitesse du microcontrôleur est un critère important, mais uniquement pour répondre aux besoins de l’application.
Dans un appareil portable, le grand nombre d’états de veille dans lesquels le microcontrôleur peut entrer constitue un avantage. Il s’agit d’une caractéristique typique des microcontrôleurs 32 bits ; les ordinateurs 8 bits plus simples ont au plus un ou deux modes de fonctionnement avec une consommation d’énergie réduite. Il arrive souvent que le microcontrôleur fonctionne ou soit éteint. Pour de nombreuses applications, cela ne fera aucune différence, mais pour des applications plus avancées, il peut être nécessaire de prendre en charge davantage de modes d’économie d’énergie. Cela vous permet de minimiser la consommation d’énergie moyenne et de prolonger la durée de fonctionnement sur batterie.
Valeur de la tension d’alimentation
La valeur de la tension d’alimentation mérite d’être prise en compte sous au moins deux aspects. Premièrement, cela affectera la vitesse du microcontrôleur. Habituellement, plus la tension d’alimentation est basse, plus le cœur fonctionne lentement (plus la fréquence à laquelle il peut être cadencé est basse). Ceci doit être pris en compte lors de l’examen de la vitesse d’exécution du code. Le deuxième aspect concerne les systèmes externes coopérants. La question est généralement de savoir si un microcontrôleur alimenté par une basse tension peut fonctionner, par exemple, avec des systèmes d’interface nécessitant une tension plus élevée. Cela signifie qu’il est nécessaire de vérifier si de tels systèmes sont disponibles, s’il sera nécessaire d’utiliser des convertisseurs spéciaux ou d’alimenter le microcontrôleur avec une tension plus élevée que celle prévue.La valeur de la tension d’alimentation affectera également la perte de puissance dans le cœur, mais dans la plupart des applications de microcontrôleurs, elles ne nécessitent aucun refroidissement supplémentaire.
Nombre de broches et leur type
Le nombre de broches d’E/S dans le boîtier que nous prévoyons d’utiliser dans l’application constitue un critère important. En envisageant les broches, vous devez disposer d’une application « à peu près » organisée. Autrement dit, vous devez savoir quel écran sera utilisé, comment il sera contrôlé, si des circuits d’interface d’entrée/sortie seront nécessaires et comment ils seront connectés au microcontrôleur lui-même. Vous devez également connaître le nombre de broches d’E/S binaires requises (entrées et sorties), le nombre prévu de boutons, les entrées/sorties analogiques, etc. Ce n’est que lorsque tout cela sera raisonnablement planifié que vous pourrez estimer le nombre de broches que nous allons utiliser ainsi que le boîtier dans lequel nous placerons notre microcontrôleur.Bien sûr, vous pouvez utiliser des systèmes d’expandeurs supplémentaires avec une interface série ce qui réduit considérablement le besoin de broches, mais complique en même temps le logiciel, la carte et rend difficile le démarrage de l’appareil. La sélection d’un microcontrôleur en termes de nombre de broches est toujours un compromis entre ce qui est disponible et l’effort déployé ultérieurement pour écrire et exécuter l’application terminée.
Exigences particulières et supplémentaires
Les microcontrôleurs modernes sont assez bien équipés de modules périphériques intégrés. Parmi eux, on trouve ceux qui peuvent être directement contrôlés par les pilotes moteur ou convertisseur. Vous pouvez trouver ceux qui disposent d’un très grand nombre de générateurs PWM intégrés, qui seront utiles pour contrôler de nombreux servomécanismes dans le manipulateur. Beaucoup peuvent être directement connectés à une interface USB. Les modules périphériques intégrés simplifient l’application, accélèrent son fonctionnement et réduisent la taille du code du programme. Ils permettent également un démarrage beaucoup plus rapide de l’appareil. Par conséquent, lors du choix d’un microcontrôleur, il convient de prendre en compte la disponibilité de modules périphériques et d’autres fonctionnalités spéciales.Le choix des signaux traités est également très important. Si nous traitons des signaux analogiques dans l’application, alors le microcontrôleur doit avoir des performances élevées, disposer d’un nombre approprié de convertisseurs A/D fonctionnant à la fréquence d’échantillonnage requise, et il serait préférable que des modules périphériques soient disponibles pour prendre en charge leur travail, tels que Unité DMA, MAC (Multiply And Accumulate), DSP ou FPU. Il est alors possible de traiter efficacement les signaux analogiques sans augmenter les exigences du cœur lui-même et de ses performances.
La vitesse des systèmes centraux et périphériques
Le choix entre la mise en œuvre matérielle et logicielle des fonctions a des conséquences sur l’ensemble du projet. C’est un choix entre une faible demande en puissance de calcul et la simplicité de la conception. Lorsque vous prenez cette décision, vous devez également prêter attention aux conséquences de votre choix. Par exemple, il est possible d’implémenter l’interface UART dans le logiciel, mais cela nécessite que le CPU écoute constamment le signal sur l’entrée sélectionnée ou interrompe l’exécution du thread principal du programme si nous décidons d’utiliser des interruptions de l’entrée E/S. Cette fonctionnalité peut consommer une grande partie de la puissance de traitement du processeur et constituer un obstacle à la prise en charge d’autres périphériques. C’est la même chose avec affichage graphique. Un grand nombre de données transférées peut affecter la vitesse d’exécution du programme – ici, en particulier avec une résolution d’affichage élevée, il peut être beaucoup plus efficace d’utiliser le DMA, qui transfère les données de la mémoire via le SPI matériel sans l’intervention du cœur.Ressources mémoire disponibles
Par définition, le système d’exploitation offre le multitâche et bascule indépendamment entre les états individuels de la machine à états, ce qui simplifie considérablement la programmation. D’un autre côté, une machine à états auto-écrite occupe beaucoup moins de mémoire de programme et de données, nécessite moins de puissance de calcul et peut être optimale du point de vue des besoins de l’application et de sa vitesse de fonctionnement. Les deux approches fonctionnent et sont utilisées dans la pratique.Le système d’exploitation nécessite beaucoup plus de ressources mémoire qu’une application auto-écrite. En plus du programme lui-même, il doit disposer de suffisamment d’espace pour les données redondantes, qui dans ce cas incluront le code du système d’exploitation stocké dans la mémoire Flash et ses besoins en mémoire de fonctionnement (pile, variables système, gestion des interruptions, circuits d’interface et autres).
Les programmes écrits en langage assembleur nécessitent généralement le moins de mémoire. L’utilisation d’un compilateur de langage de haut niveau nécessite d’allouer une certaine quantité de mémoire à la pile du programme et aux variables. Encore plus de mémoire, comme mentionné précédemment, est requise par le système d’exploitation et le programme exécuté sous son contrôle. Il est également important que le microcontrôleur fonctionne avec un affichage graphique, car les modèles d’icônes ou d’autres éléments graphiques sont alors stockés dans la mémoire Flash, qui se présentent généralement sous la forme de bitmaps et, lorsqu’ils sont stockés avec des attributs de couleur, occupent beaucoup de place.
Fiabilité électrique
Dans une application idéale, la résistance du microcontrôleur aux fluctuations de la tension d’alimentation, aux perturbations EMI ou aux surtensions sur les lignes d’E/S n’est pas prise en compte. Cependant, dans des conditions réelles d’application, notamment dans les véhicules, le microcontrôleur est fortement exposé à ces facteurs. Les microcontrôleurs avec un cœur de 8 bits ou les microcontrôleurs intermédiaires avec un cœur de 16 bits alimentés par 5 V fonctionneront beaucoup mieux dans les véhicules. La pratique montre que l’utilisation d’un cœur de 32 bits alimenté par une basse tension de 2,7…3,3 V est difficile , car il entraîne un niveau d’exposition accru aux perturbations EMI. Une telle application est possible, mais sa mise en œuvre nécessite beaucoup plus de temps.Volume de production
Il est important pour le choix des composants, pas seulement du microcontrôleur, de savoir si l’appareil est un module d’une machine industrielle proposé en petit nombre de pièces ou s’il doit être proposé sur le marché grand public en milliers de pièces. Dans le premier cas, vous n’avez généralement pas à vous soucier des dimensions du boîtier et du prix des composants. Dans le second cas, vous devez faire attention non seulement aux composants eux-mêmes et à leurs prix, mais également à la méthode d’installation sur la carte cible.Environnement d’exécution, outils logiciels
Aujourd’hui, pour de nombreux microcontrôleurs, il existe une large sélection d’excellents compilateurs, éditeurs, débogueurs, simulateurs et autres outils matériels et logiciels gratuits et de haut niveau. Par conséquent, ce critère n’aura souvent pas une grande importance, mais ce n’est pas toujours le cas. Si nous concevons un appareil pour l’industrie automobile ou aéronautique, nous devons utiliser des outils logiciels certifiés, qui ne sont pas bon marché et limitent les choix à des familles de systèmes spécifiques, souvent à des fabricants spécifiques. Un concepteur qui construit un nouvel appareil destiné au marché grand public, par exemple un contrôleur de jouet, aura beaucoup plus de liberté.Lors du choix du type de système et de l’environnement d’exécution de l’IDE, il convient de prêter attention à la disponibilité des bibliothèques de fonctions. Souvent, les fabricants de puces font beaucoup de travail pour le programmeur, exécutant des fonctions et des procédures responsables de la gestion de nombreuses fonctionnalités et modules périphériques : interface tactile, écran, interfaces de communication, générateurs PWM, etc. Des fragments de code standards, testés dans les laboratoires du fabricant, peuvent accélérer considérablement l’exécution du programme et réduire le temps de travail sur le projet. Il vaut également la peine de réutiliser du code précédemment écrit, ce qui rend judicieux de choisir un fabricant de puces proposant une variété de microcontrôleurs, mais programmés de la même manière et utilisant les mêmes outils.
Commentaires finaux
Une fois que nous avons analysé les critères et décidé des compromis, nous pouvons commencer à chercher un microcontrôleur qui répondra à nos exigences de conception. Malheureusement, il arrive souvent que malgré le grand nombre de systèmes disponibles, il soit difficile de choisir le modèle parfait. Il peut être nécessaire de renoncer à certaines options qui, d’une part, compliquent le projet et, d’autre part, augmentent les coûts. Il ne s’agit pas seulement du microcontrôleur lui-même, mais également du prix de l’équipement nécessaire pour exécuter et tester les fonctions de l’appareil fini, ainsi que du coût des systèmes périphériques nécessaires à la mise en œuvre d’une fonctionnalité donnée. Il n’est pas rare que l’introduction de fonctionnalités supplémentaires augmente la complexité des tests et puisse allonger considérablement le temps nécessaire à la mise sur le marché d’un appareil. Les opportunités d’ateliers sont également importantes. Parfois, la seule option de programmation possible consiste à sauvegarder le circuit soudé sur la carte (en circuit). La plupart des microcontrôleurs modernes ont cette capacité, mais pas tous.Texte préparé par Transfer Multisort Elektronik Sp. z o.o.
https://www.tme.eu/fr/news/library-articles/page/58382/comment-choisir-le-bon-microcontroleur-pour-votre-projet-/