Blue Pill Vs Black Pill: transition de STM32F103 à STM32F411

Depuis de nombreuses années maintenant, la carte de développement MCU STM32 dite «Blue Pill» est un incontournable de la communauté des amateurs. Trouvant ses origines comme un clone apparent de Maple Mini, la carte minuscule est facile à utiliser dans les projets de maquette grâce à ses doubles rangées de douilles à broches de 0,1 ″. Mieux encore, cela ne coûte que quelques dollars, même si vous ne pouvez vraiment l’acheter que via des vendeurs sur AliExpress et EBay.

À partir de l’année dernière, des cartes avec un masque de protection noir et des MCU de la série STM32F4 Access (entrée de gamme), y compris les F401 et F411, ont commencé à apparaître. Ces planches avec le surnom de «Black Pill» ou «Black Pill 2». Les cartes F103 ont également existé avec un masque de soudure noir pendant un certain temps, donc c’est déroutant. Les F4xx Black Pills sont disponibles via les mêmes sources que les Blue Pill basées sur F103, pour un prix similaire, mais disposent d’un MCU considérablement plus récent et plus puissant. Cela soulève la question de savoir s’il est judicieux à ce stade de passer à ces nouveaux conseils.

Notre réponse est oui, mais ce n’est pas tout à fait clair. Le matériel le plus récent est meilleur dans la plupart des cas, il ne manque vraiment que les doubles ADC du F103. Mais le matériel n’est pas la seule considération; selon le cadre privilégié, le soutien peut faire défaut ou être incomplet. Jetons donc un œil à ce qu’il faut pour changer.

Le matériel

Les microcontrôleurs F4 ont des spécifications nettement meilleures que le F103, avec une vitesse d’horloge plus élevée, plus de stockage flash et plus de SRAM. Au total, nous avons trois MCU à comparer sur les anciennes et les nouvelles cartes:

  • F103: 72 MHz, Flash 64/128 ko, SRAM 20 ko. (STM32F103C8T6)
  • F401: 84 MHz, mémoire flash de 256 ko, SRAM de 64 ko. (STM32F401CCU6)
  • F411: 100 MHz, 512 ko de mémoire flash, 128 ko de SRAM. (STM32F411CEU6)

Le noyau Cortex-M du F103 est le M3, tandis que le F4xx a un noyau M4. Pour le côté CPU du MCU, cela signifie en fait qu’en plus de vitesses d’horloge plus élevées, nous obtenons également l’ARMv7E-M ISA, au lieu de l’ARMv7-M du M3. Cela ajoute des instructions arithmétiques à saturation complète, des instructions DSP et des instructions optionnelles à virgule flottante simple précision. Le F401 et le F411 ont tous deux une unité FP à point unique et sont donc beaucoup plus adaptés à l’arithmétique en virgule flottante que le F103.

Des différences plus détaillées peuvent être trouvées lorsque nous examinons la note d’application 4904 (AN4904) de ST: Migration des applications de microcontrôleur de la série STM32F1 vers les lignes d’accès STM32F4. Ce document résume toutes les différences entre les deux familles de MCU à noter lors de la migration de l’une vers l’autre, que ce soit pour la disposition physique des broches, les périphériques ou le chargeur de démarrage.

Ici, les changements les plus importants concernent probablement la configuration de la mémoire, ainsi que le nombre de certains types de périphériques. N’hésitez pas à comparer avec nous dans les schémas de principe.

Un changement important entre F103 et F4xx est que les périphériques GPIO ont été déplacés du bus périphérique avancé (APB) vers l’AHB. AHB est le bus hautes performances, pour les opérations à bande passante élevée et à faible latence. Il est directement connecté au cœur Cortex-M via la matrice de bus AHB. L’APB, par contre, est un bus plus simple, sans opérations de rafale. L’accès aux périphériques sur l’APB à partir du cœur Cortex-M nécessite que les instructions passent par le pont AHB-APB vers l’APB.

Cela devrait signifier que les opérations GPIO sont plus rapides sur les microcontrôleurs F4xx, en particulier avec les opérations à haute fréquence. De plus, le multiplexage des broches d’E / S sur les microcontrôleurs F4xx a changé pour n’autoriser qu’une seule fonction alternative (AF) à définir pour une seule broche GPIO. Cela correspond à l’intégration des registres AF dans le périphérique GPIO.

Un grand changement est également observé dans le RTC périphérique, qui sur la famille STM32F1 est un simple compteur 32 bits avec prescaler programmable et un registre d’alarme. Sur le STM32F4xx, le périphérique RTC implémente un calendrier complet, avec sous-secondes, secondes, minutes, heures, jours, mois et années. Il dispose également d’une alarme qui peut être déclenchée par l’un de ces champs de calendrier, ainsi que d’une fonction d’horodatage des événements et d’un circuit d’étalonnage numérique.

Tandis que DMA, la ÉCLAT interface et Les interruptions voir également quelques changements, ceux-ci sont assez mineurs et ne sont pertinents que lors de la programmation bare-metal. Le seul vrai problème avec les puces F4xx est que, à la place de deux 12 bits ADCs avec 16 canaux partagés, le F401 et le F411 ont un seul ADC 12 bits. Pour le commerce, l’ADC est légèrement plus rapide sur le F4xx (2,4 Msps contre 2 Msps sur le F103) et a une exigence d’alimentation en tension minimale inférieure de 1,7 V -1,8 V.

Les pilules

Comparaison des piluliers bleus et noirs. Clonez STM32F103 en haut et STM32F411 en bas.

Les différences entre les deux planches sont assez marquées, même au-delà de la couleur du masque de soudure. La carte avec laquelle je compare ici est la version STM32F411, qui semble d’ailleurs être la version la plus populaire lorsque j’ai recherché ces cartes sur le site Web allemand d’Amazon.

Le connecteur USB est passé de micro USB-B à USB-C, le package MCU est un UFQFPN à 48 broches au lieu d’un LQFP à 48 broches, nous obtenons un bouton utilisateur supplémentaire et les oscillateurs HSE et LSE sont beaucoup plus petits. Les broches du mode de démarrage ont disparu, mais nous obtenons un bouton de mode de démarrage à la place. Nous conservons la même LED contrôlée par l’utilisateur sur PC13, mais le brochage sur les côtés des cartes n’est pas compatible à 100%. Enfin, une broche «Ground» a été remplacée par une broche 5 V. (!)

En retournant les cartes, la carte F103 comprend un tas de passifs et un circuit intégré, tandis que la carte F411 est propre, à l’exception d’un pied pour une empreinte ROM SPI qui convient à une ROM Flash SPI W25Q32JVSSIQ 32 Mbit, par exemple. Cela pourrait être utilisé pour ajouter une ROM de configuration ou similaire.

Dessous des plateaux F103 Blue Pill et F411 Black Pill.

Au-delà de ces différences, la programmation et le débogage de la carte restent les mêmes. On peut utiliser la programmation série, avec de véritables microcontrôleurs STM32, le débogage à un seul fil (SWD) via l’en-tête de dérivation à quatre broches, ou le port USB si un chargeur de démarrage approprié est installé. Le schéma de la carte est également disponible, qui se réfère à la carte comme le «MiniF4». Ce schéma révèle également sans avoir à retirer le multimètre numérique que le bouton utilisateur est connecté à PA0 sans résistance pull-up ou pull-down.

Les logiciels

La famille de microcontrôleurs STM32F4 est entièrement prise en charge par les fichiers de périphérique CMSIS F4 de ST, ainsi que par sa structure de couche d’abstraction matérielle (HAL). Certains peuvent préférer utiliser le logiciel STM32CubeMX de ST pour générer automatiquement la configuration matérielle et le code de configuration.

STM32Duino montre également les cartes F401 et F411 à prendre en charge. Ceux qui sont plus enclins à se mêler de minuscules serpents non venimeux devraient être soulagés de savoir qu’il existe plusieurs définitions MicroPython pour les cartes, pour les F401 et F411, ainsi que cette définition de carte MicroPython pour la version F411 de la carte. Cela signifie qu’au moins en ce qui concerne Arduino et MicroPython, le code existant pour les cartes F103 devrait fonctionner avec des changements minimes sur les cartes F401 et F411, en gardant à l’esprit les changements potentiels des broches GPIO et AF.

Dans mon propre projet Nodate STM32, j’ai également ajouté une définition de carte pour la version de carte F411. Le fait est que ces cartes «Pill» sont des cartes de dérivation si basiques pour les microcontrôleurs STM32 que très peu de support est nécessaire. Outre le MCU sur la carte, il y a juste la LED sur PC13 et un interrupteur sur PA0 si le cadre est du type qui fait abstraction de ces détails.

Conclusion

Il arrive un moment où il faut passer à autre chose. Considérant que le STM32F103 fait partie de la toute première génération de MCU basés sur Arm Cortex-M de ST, cela devrait déjà laisser entendre que le moment est peut-être venu pour le Cortex-M3. Comme je l’ai noté dans mon récent article sur les puces clonées STM32F103, l’offre de cartes F103 ‘Blue Pill’ a récemment été inondée de faux, de clones et d’imitations effrontées du STM32F103 authentique. Cela rend même difficile d’obtenir une telle planche. À moins que l’on ne soit prêt à valider et accepter certains de ces MCU clones F103 (certes assez bons).

Pendant ce temps, ces cartes «  Black Pill  » basées sur F401 / F411 ne semblent pas avoir de problèmes avec les clones ou les faux jusqu’à présent, coûtent à peu près le même prix par unité que l’ancienne F103 «  Blue Pill  », et à moins que vous n’ayez absolument besoin de la deuxième unité ADC , sont une meilleure affaire tout autour. Le support logiciel ne devrait pas non plus poser d’obstacles, avec même des détails comme la LED utilisateur utilisant exactement la même broche.

Assurez-vous simplement de garder à l’esprit le brochage légèrement différent des cartes F4xx (c’est-à-dire la nouvelle broche 5 V), et vérifiez à nouveau avec le manuel de référence F401 ou F411 pour vous assurer que les périphériques utilisés dans un projet sont toujours sur les mêmes broches après recompilation pour la nouvelle carte. Pour les nouveaux projets, l’utilisation de ces nouvelles cartes semble être une évidence, c’est pourquoi je suis presque sûr que je vais en faire le plein.

À quoi ressemblera votre stock de cartes de développement STM32 bon marché dans les années à venir? Allez-vous passer aux MCU F4 ou vous en tenir à ces cartes F103, ne serait-ce que parce que vous en avez acheté 75 lors d’une vente aux enchères une fois et que vous ne les avez toujours pas utilisées? Avez-vous des cas d’utilisation particuliers qui rendent le F103 plus adapté à vos projets? Merci de nous le faire savoir dans les commentaires.