Passer au contenu principal
  • microcontrôleurs
  • systèmes embarqués
  • conception de circuits imprimés
  • électronique
  • micrologiciel

Sélection d’un microcontrôleur : choisissez selon les contraintes

The Boss Factory12 min de lecture

Traduit de l’anglais

Un microcontrôleur cause rarement l’échec d’une conception parce que son horloge est 20 MHz trop lente. Il échoue plutôt parce que la radio occupe le bus SPI, que la source de réveil partage une broche, que l’ADC ne peut pas résoudre le signal du capteur ou que la bibliothèque ne prend pas en charge le périphérique prévu.

Une bonne sélection de microcontrôleur fonctionne comme la conception en vue de la fabrication. Commencez par la contrainte qui contrôle la géométrie, puis remodelez la conception autour d’elle. Pour une carte de circuit imprimé, cela signifie choisir le MCU selon la radio, le courant en veille, le nombre de broches, la qualité analogique, la tension logique et la maturité des bibliothèques, dans cet ordre.

Commencez par la contrainte qui ne peut pas changer

Une pièce peut avoir une puissance de traitement amplement suffisante et quand même être le mauvais choix. La première étape devrait décrire la réalisation sans nommer de puce :

  • Protocole radio et restrictions liées à l’antenne
  • Courant actif, courant en veille et sources de réveil
  • Entrées, sorties, bus, interruptions et broches de programmation
  • Canaux ADC, tension de référence, résolution et vitesse d’échantillonnage
  • Niveaux logiques entre le MCU et chaque appareil connecté
  • Bibliothèques, frameworks, chargeurs de démarrage et méthode de mise à jour requis

Établissez le tableau des broches et des périphériques avant de dessiner le schéma. Comptez chaque élément, y compris les DEL d’état, les lignes de sélection de puce, les entrées d’interruption, les broches UART utilisées pour le débogage, la réinitialisation, les broches de configuration du démarrage et les points de test. Prévoyez au moins une méthode pratique pour la programmation et le diagnostic. Une carte qui ne fonctionne qu’après le retrait de son connecteur de débogage n’est pas terminée.

Le nombre de broches et les conflits entre périphériques mettent fin à plus de conceptions que la vitesse d’horloge. Traitez chaque broche multifonction comme une caractéristique soumise à des contraintes, et non comme un trou disponible dans une liste.

Choisissez la radio avant le cœur

Si le produit a besoin du Wi-Fi, de Bluetooth Low Energy, de Thread, de Zigbee, de LoRa, d’un réseau cellulaire ou d’aucune radio, décidez-le d’abord. Les exigences radio changent le boîtier, la disposition de l’antenne, l’alimentation, les exigences de certification, le comportement en veille, la pile logicielle et souvent le nombre de GPIO utilisables.

Vérifiez les éléments suivants dans la révision exacte de la puce ou du module :

  • Protocoles pris en charge et bandes de fonctionnement
  • Courant de transmission maximal, et pas seulement le courant moyen
  • Courant en veille profonde avec la RAM et les sources de réveil requises activées
  • Dégagement autour de l’antenne et exigences de zone interdite
  • GPIO disponibles lorsque la radio et l’interface de mémoire flash sont actives
  • Micrologiciel de production et prise en charge des mises à jour sans fil

Ne comparez pas la valeur de courant en veille d’un MCU nu avec une mesure prise sur une carte de développement. Les régulateurs, les interfaces USB, les DEL indicatrices, les capteurs et les DEL d’alimentation peuvent dominer le courant de la carte. Mesurez le chemin d’alimentation assemblé dans l’état utilisé par le produit fini.

Pour un appareil alimenté par batterie qui se réveille brièvement, lit un capteur, transmet des données et retourne en veille, le temps de réveil peut être aussi important que le courant en veille. Un contrôleur qui consomme moins en veille profonde, mais qui prend plus de temps à se connecter à un réseau, peut consommer plus d’énergie sur une journée. Mesurez un cycle complet : veille, réveil, démarrage du capteur, traitement, transmission, comportement en cas de nouvelle tentative et retour en veille.

Le nombre de broches est un problème de routage, pas un chiffre accrocheur

Comptez les signaux par fonction, puis affectez-les à des broches réelles. Une mention comme « deux bus SPI et quatre interruptions » ne suffit pas. Vérifiez quelles broches peuvent fournir ces fonctions simultanément, quelles broches sont réservées aux entrées seulement, lesquelles sont réservées au démarrage et lesquelles sont connectées à l’interne à la mémoire flash, à la PSRAM, à l’USB ou à la radio.

Créez une matrice des broches avant la disposition :

ContrainteSi elle est serréeSi elle est soupleConséquence pour la conception
Radio et bus haute vitesseRéservez les broches affectées et vérifiez les fonctions alternativesPlus de liberté pour déplacer les capteurs et les écransChoisissez le boîtier et le multiplexage des broches avant le routage
Courant en veilleMesurez la carte complète dans son état de plus faible consommationOptimisez d’abord les performances activesRetirez les résistances de rappel, les DEL et les régulateurs qui nuisent à la veille
Nombre de GPIO et interruptionsAjoutez un expanseur d’E/S ou changez l’interfaceGardez des broches de réserve pour les tests et les révisionsN’utilisez pas les broches de débogage et de démarrage sans précaution
Précision analogiqueUtilisez un ADC, une référence, un filtrage et une disposition appropriésTraitez les entrées analogiques comme des signaux de seuilChoisissez le convertisseur selon les limites d’erreur et de bruit
Tension logiqueAjoutez une conversion de niveau ou choisissez des appareils compatiblesConnectez uniquement les appareils dans les limites spécifiéesVérifiez les seuils de niveau haut et de niveau bas, et non les indications nominales
Soutien logicielChoisissez un framework mature et un pilote existantExpérimentez avec des périphériques moins pris en chargeEstimez le temps d’intégration à partir des exemples et de l’historique des problèmes

Les conflits entre périphériques apparaissent souvent tard. Un contrôleur I2C peut partager des broches avec la configuration du démarrage. Un canal de minuterie peut être nécessaire pour la MLI alors que sa broche est aussi la seule entrée d’interruption utilisable. Un UART utilisé pour la journalisation peut être l’interface de programmation. Un canal ADC peut être indisponible lorsque le Wi-Fi est actif sur une variante donnée.

Laissez de la capacité de réserve là où une défaillance coûterait cher : un port série pour les diagnostics, un point de test pour une alimentation critique et assez de GPIO pour remplacer une pièce dont la fonction alternative s’avérerait peu pratique. Consacrer un peu d’espace de carte à ces éléments coûte habituellement moins cher que de changer de contrôleur après la disposition.

La qualité analogique et la tension logique établissent les vraies limites électriques

La résolution de l’ADC n’est qu’une partie des performances analogiques. La vraie question est de savoir si toute la chaîne de mesure peut distinguer le changement qui vous intéresse. Incluez l’erreur du capteur, l’erreur de référence, l’impédance d’entrée, le temps d’établissement de la source, le bruit de la carte, les interférences numériques et le nombre effectif de bits de l’ADC.

Un convertisseur de 12 bits avec une référence de 3,3 V a une largeur de code idéale d’environ 0,8 mV, mais cela ne correspond pas à une précision de 0,8 mV pour le système. Une référence bruyante ou une source à haute impédance peut faire disparaître plusieurs codes. Si le capteur change de dizaines de millivolts, le filtrage et la disposition peuvent être plus importants que le passage à un ADC nominalement plus précis.

Vérifiez les conditions de la fiche technique pour la variante exacte :

  • Plage d’entrée de l’ADC et capacité d’atteindre les rails d’alimentation
  • Source de référence et tolérance de la référence
  • Impédance de source et temps d’acquisition recommandés
  • Synchronisation de l’échantillonnage pendant que les autres périphériques sont actifs
  • Prise en charge de l’étalonnage et dérive thermique
  • Partage de l’ADC avec la radio ou des fonctions internes

La tension logique exige la même rigueur. Une sortie de MCU de 3,3 V peut ne pas atteindre le seuil d’entrée de niveau haut garanti d’un périphérique de 5 V, tandis qu’un signal de 5 V peut dépasser la valeur nominale maximale absolue du MCU. « Tolérant à 5 V » s’applique à certaines broches seulement dans de nombreuses familles, et peut ne pas s’appliquer lorsque l’alimentation est coupée ou en mode analogique. Consultez le tableau des caractéristiques électriques pour la broche et la condition de fonctionnement exactes.

Un convertisseur de niveau corrige une incompatibilité de tension, mais pas une mauvaise topologie de bus. Pour l’I2C, tenez compte de la tension des résistances de rappel, du temps de montée, de la capacité du bus et des limites de tension de chaque appareil. Pour les signaux rapides à poussée-tirage, choisissez un convertisseur prévu pour le taux de variation et les changements de direction. Parfois, la solution économique est préférable : remplacer un capteur de 5 V par une version de 3,3 V peut éliminer un convertisseur, deux modes de défaillance et une contrainte de disposition.

La maturité des bibliothèques détermine le calendrier

Les spécifications brutes décrivent ce que le silicium peut faire. La maturité des bibliothèques et de la chaîne d’outils détermine beaucoup plus la durée du projet que les spécifications brutes. Un périphérique qui existe dans le manuel de référence peut quand même nécessiter un travail sur les registres, des solutions de contournement non documentées ou un pilote dérivé.

Avant de vous engager, construisez une petite carte d’essai ou un prototype logiciel rapide qui exerce ensemble les éléments à risque. Ne testez pas l’UART seul si la conception réelle a besoin d’un échantillonnage ADC pendant l’activité radio et d’une sortie commandée par une minuterie. Testez la combinaison qui pourrait forcer une nouvelle conception.

Recherchez :

  • Une version du SDK prise en charge et verrouillée dans une compilation reproductible
  • Des pilotes pour le capteur, l’écran, le dispositif de stockage et la pile radio exacts
  • Des exemples qui couvrent le mode de fonctionnement requis, et pas seulement l’initialisation de base
  • Un comportement documenté en veille et au réveil
  • Une prise en charge du débogage au moyen du programmateur et du système d’exploitation choisis
  • Des rapports de problèmes montrant si les défaillances sont comprises et prises en charge

C’est ici que choisir un MCU selon la vitesse d’horloge entraîne du travail perdu. Un cœur plus rapide ne compense pas l’absence d’un pilote, une pile USB instable ou un chargeur de démarrage incapable d’effectuer le mode de mise à jour. Choisissez la pièce plus lente si sa chaîne d’outils est prévisible et si ses périphériques conviennent à la tâche.

Faites vos preuves sur l’établi

Le choix final devrait réussir un court test de risque avant que la conception de la carte de circuit imprimé soit arrêtée. Utilisez le boîtier prévu ou une carte qui expose les mêmes signaux, puis vérifiez la contrainte qui a motivé la décision.

Pour un premier test, consignez :

  1. Les affectations de broches, les fonctions alternatives, les états de démarrage et les broches inutilisées.
  2. Le courant en mode actif, en transmission radio, au repos et dans chaque mode de veille requis par le produit.
  3. Les relevés de l’ADC avec l’impédance réelle de la source et le bruit électrique prévu.
  4. Les niveaux logiques aux broches réceptrices pendant le démarrage, la réinitialisation et la mise hors tension.
  5. La compilation de la bibliothèque, la mémoire flash, le débogage, la communication avec le capteur et la procédure de récupération.
  6. La synchronisation dans le pire cas avec tous les périphériques importants activés simultanément.

Si un élément échoue, changez la géométrie de la conception plutôt que de compter sur la chance. Déplacez le capteur, retirez l’écran, changez le domaine de tension, ajoutez un expanseur, choisissez une autre radio ou un autre MCU. La nouvelle conception la moins coûteuse est celle qui est faite avant que le cuivre soit posé sur la carte.

La vitesse d’horloge vient vers la fin de ce processus. Une fois la radio, le budget de courant, les broches, le chemin analogique, les niveaux de tension et le soutien logiciel connus, comparez la marge de traitement et la mémoire. Une horloge modeste avec de la RAM en réserve et des pilotes stables constitue un choix préférable pour la production qu’un cœur rapide qui impose un micrologiciel personnalisé pour chaque périphérique.

Questions fréquentes

Combien de broches GPIO devrais-je laisser inutilisées?

Il n’y a pas de nombre fixe. Réservez les broches nécessaires à la programmation, à la réinitialisation, à la récupération du démarrage, aux diagnostics et aux révisions probables de la carte. Pour un petit contrôleur, une entrée et une sortie de réserve peuvent être utiles; une conception sans fil peut en nécessiter davantage parce que les fonctions radio et flash réduisent la disponibilité pratique. Construisez la matrice des broches à partir de la variante exacte plutôt que de vous fier au nombre de broches annoncé pour le boîtier.

Un ADC de plus haute résolution est-il toujours préférable?

Non. Une résolution nominale plus élevée n’est utile que si l’erreur de référence, le bruit, l’impédance de source, le temps d’établissement et la disposition la prennent en charge. Calculez le changement de tension qui doit être détecté, mesurez le bruit à la broche de l’ADC et testez le capteur à la fréquence d’échantillonnage prévue. Une mesure de résolution inférieure, propre et étalonnée est préférable à un convertisseur bruyant qui offre davantage de bits.

Devrais-je choisir le MCU le plus rapide que je peux me permettre?

Habituellement, non. Commencez par démontrer que la synchronisation, la RAM, la mémoire flash, le courant, les périphériques et les bibliothèques requis sont suffisants. Choisissez le plus petit contrôleur qui conserve une marge utile après ces tests. Une pièce plus rapide est justifiée lorsque la charge mesurée dans le pire cas laisse une marge insuffisante, et non parce que son chiffre d’horloge semble meilleur dans un tableau comparatif.

Nous fabriquons de l’électronique sur mesure faite sur commande et des systèmes intelligents par l’intermédiaire de The Boss Factory.

Services associés

Tous les services →

Vous avez un projet en tête?

Dites-nous ce que vous voulez faire fabriquer — nous répondons en 24 à 48 heures.

Demander une soumission

À lire aussi