Clones STM32: le bon, le mauvais et le truand

Chaque fois qu’un produit devient populaire, ce n’est qu’une question de temps avant que d’autres entreprises ne commencent à ressentir l’envie de profiter de cette popularité. Ce phénomène est la principale raison pour laquelle tant de jouets et de jeux vidéo terribles ont été produits au fil des ans. Pourtant, il anime également le monde de l’électronique. Il n’est donc pas surprenant que la série très réussie de microcontrôleurs ARM (MCU) de ST ait vu sa part d’imitations, de clones et de contrefaçons.

Les contrefaçons sont probablement les plus problématiques, car ces puces prétendent être des pièces STM32 authentiques jusqu’aux marquages ​​sur l’emballage IC, tandis que la compatibilité avec la partie qu’elles prétendent être peut différer énormément. Pour les imitations et les clones qui portent leurs propres marques, les choses sont un peu plus floues, car on pourrait raisonnablement prétendre que ces entreprises ont conçu des MCU qui, par pure coïncidence, sont entièrement compatibles avec les broches et les enregistrements très populaires. conceptions de MCU concurrentes. Ce serait la forme la plus sincère de flatterie.

Jetons un coup d’œil aux faux et aux imitations et ce que cela signifie si vous vous retrouvez avec un.

Anatomie d’un faux

Bon CI STM32 à gauche, clone à droite, avec des alvéoles supplémentaires.

Plus tôt cette année, Keir Fraser a publié un résumé informatif de certains faux circuits intégrés STM32F103 que l’on trouve sur ce qu’on appelle «Blue Pill» et des tableaux similaires sur leur Github. Les contrefaçons portent les mêmes marques sur l’emballage que les pièces d’origine STM32, mais peuvent souvent être identifiées par le motif des alvéoles sur l’emballage ou par la qualité de la sérigraphie.

Ces faux ne sont pas toujours pleinement fonctionnels. Comme l’a noté Fraser, bon nombre de ces parties ne peuvent même pas être programmées correctement, ni même exécuter du code aussi simple que l’exemple universel «clignotant». Il est possible que ces falsifications soient en fait des matrices STM32F103 défectueuses ou similaires qui sont vendues via des canaux non légaux.

Le STM32FEB. STM32 ce n’est pas.

Plus insidieuses sont peut-être les quasi-contrefaçons qui, à première vue, peuvent ressembler à la partie réelle, mais qui sont trahies par l’identification sur elles: «STM32FEBKC6». Ce n’est pas un code de pièces ST légitime, et cela devrait être le premier conseil. C’est un autre clone qui ne vous apportera probablement rien d’autre que du chagrin, car même lorsqu’il fonctionne, il s’agit d’une version réduite du design STM32F103, avec des fonctionnalités manquantes. Il est également difficile de trouver des informations détaillées à ce sujet.

Copie de bons artistes

CS32F103. Un clone plus honnête.

Cela laisse le plus délicat des clones, sous la forme du CS32F103 susmentionné. Ce clone fonctionne essentiellement comme la vraie affaire et peut très bien exécuter Blinky compilé pour le STM32F103. Certains de ces microcontrôleurs peuvent même être marqués comme partie ST, ce qui les rend difficiles à identifier de manière concluante.

Certains d’entre eux sont fabriqués par CKS (中 科 芯 微), une société chinoise qui a apparemment créé une version complète des fonctionnalités du STM32F103, au point où ils ont corrigé certains des errata répertoriés dans la fiche technique ST. Un article sur CNXSoft fournit plus de détails sur ce MCU.

Une différence majeure que l’on rencontrera rapidement avec cette puce est lors de la programmation et de la réception du message "UNEXPECTED idcode: 0x2ba01477". La raison en est que le MCU STM32F103 signale l’ID 0x1ba01477, déroutant le programmeur. Cela peut être résolu par exemple dans OpenOCD en utilisant un script de configuration qui spécifie soit aucun CPUTAPID (0), soit cet ID signalé par le MCU CS32.

Clones Giga

L’un des fabricants de clones STM32 les plus célèbres est probablement GigaDevice avec ses microcontrôleurs GD32. Comme indiqué sur SMD Prutser dans une série d’articles, le GD32F103 semble être une version plus rapide et plus performante du STM32F103. Il a une vitesse d’horloge maximale plus élevée et un stockage Flash plus rapide, avec une unité décapée indiquant qu’ils ont utilisé deux matrices à l’intérieur du paquet. Un pour le MCU et un pour le stockage Flash, ce qui permet une manière assez flexible de changer les tailles de Flash dans leur gamme de produits.

MCU GD32F103 décapé. Le dé Flash séparé est visible sur le dessus.

À première vue, les MCU GD32 semblent plus attrayants que la série STM32F1, avec des augmentations significatives de la vitesse d’horloge (72 contre 108 MHz) et du stockage Flash. Alors que le stockage Flash sur le GD32 devrait être très lent, étant une ROM SPI série, son utilisation de la SRAM sur la puce MCU pour «  mettre en cache  » le stockage Flash signifie qu’il finit par être beaucoup plus rapide que le stockage Flash intégré, avec zéro états d’attente requis même à pleine vitesse d’horloge du MCU.

Un inconvénient de plus de SRAM au lieu de Flash pur est qu’il augmente la consommation d’énergie, en particulier en mode veille. Cela provoque également un (petit) délai de démarrage lorsque le contenu de la ROM SPI est copié dans la SRAM avant que le micrologiciel ne puisse fonctionner. Selon l’application, cela peut être un avantage ou un inconvénient. Il s’agit bien sûr de la même approche que le MCU ESP8266, qui utilise également une ROM SPI externe pour le micrologiciel.

En ce qui concerne les autres périphériques GD32, cependant, ils semblent moins désireux de faire des clones directs. Leur MCU GDF303 a conservé les mêmes périphériques que le GDF103, même si ceux du STM32F3 sont sans doute meilleurs. Cela interdit également leur utilisation comme solution de remplacement pour les cartes STM32F3xx. En fonction de l’opinion que l’on a des périphériques STM32F1, cela peut également affecter la décision d’utiliser ces MCU GD32.

Ils sont partout

Véritable MCU CH32F103 sur plateau Blue Pill.

Bien que je sois au courant des faux et clones susmentionnés, j’en ai néanmoins rencontré un nouveau récemment. Cela impliquait l’achat de certaines cartes «Blue Pill» STM32F103 auprès d’un grand importateur et revendeur allemand de toutes sortes de Maker tat. Je n’étais pas fier de cela, mais j’avais besoin de cartes bon marché à utiliser pour les sondes BlackMagic, et elles avaient une bonne affaire. Dans les commentaires sur la liste Amazon, certaines personnes ont mentionné avoir obtenu de véritables planches, tandis que d’autres ont mentionné que c’était un «  faux  ».

Dans un esprit de curiosité morbide, j’ai eu deux de ces planches et j’ai été à la fois horrifié et heureux de voir que j’avais en fait reçu des planches Blue Pill qui ne portaient pas le MCU STM32F103C8T6 promis, mais à la place un marqué CH32F103C8T6. Du bon côté, il ne prétendait pas être une partie «ST».

Véritable MCU STM32F103 sur plateau Blue Pill.

Ce MCU CH32F103 est produit par une société chinoise appelée WCH, avec les fiches techniques (en chinois uniquement) et le manuel de référence tous deux fournis pour téléchargement. En un coup d’œil rapide, la fiche technique et le manaul montrent une puce pratiquement identique au STM32F103, avec un mappage de mémoire et des registres périphériques identiques.

Le brancher à un dongle ST-Link / V2 et s’y connecter avec OpenOCD entraîne la même erreur CPUTAPID qu’avec le MCU CS32F103 lors de l’utilisation du fichier de profil STM32F1xx. Après avoir apporté la même modification au stm32f1xx.cfg comme suggéré par d’autres, j’ai pu flasher l’exemple ‘Blinky’ de mon projet Nodate STM32 sur la carte sans autre problème.

Cela suggère qu’au moins les fonctionnalités de base RCC (réinitialisation et contrôle de l’horloge), GPIO et SysTick sont suffisamment similaires pour qu’un tel test de base fonctionne. Ensuite, je vais devoir explorer s’il gère également les fonctionnalités USART, DMA, SPI, I2C et I2S de la même manière que le MCU STM32F103 que j’ai sur quelques autres cartes. Si ce MCU ressemble à la partie CS32F103, la réponse est probablement «oui».

En ce qui concerne la réponse du vendeur lorsque je les ai contactés à propos de ces planches Blue Pill ne comportant pas la partie STM32 annoncée, ils ont admis qu’ils en étaient conscients et ont affirmé que «  dans deux mois  », ils auraient à nouveau des cartes avec des pièces STM32 authentiques. Certes, cela soulève beaucoup plus de questions que de réponses, surtout pourquoi ils vendraient sciemment des cartes qui ne comportent pas le MCU annoncé.

Il est temps de paniquer?

Les yeux d’aigle parmi nous ont peut-être remarqué que pratiquement tous ces clones impliquent des microcontrôleurs Cortex-M de première génération de ST (série STM32F1). À moins que vous n’ayez besoin d’acheter des planches Blue Pill pour des projets commerciaux, il est peu probable que cela fasse plus qu’ennuyer sérieusement les amateurs et ceux qui aiment avoir une pile de cartes Cortex-M3 à 3 $ pour des projets aléatoires. Si l’on commande des MCU et des cartes de développement à des vendeurs réputés tels que Digikey et Mouser, il est également peu probable que ce soit une grande préoccupation.

Les cartes Blue Pill et Black Pill ont également fait l’objet d’une refonte récente avec des versions mises à jour comportant des microcontrôleurs basés sur STM32F4. Bien qu’un peu plus chers que les homologues basés sur STM32F103, ils apportent beaucoup plus de ressources à la table et les périphériques beaucoup plus agréables (à mon avis) de la ligne STM32F4. Ceux-ci peuvent tout simplement faire le marché du STM32F103 et avec lui ces innombrables clones, contrefaçons et copies se tarissent.

Jusqu’à ce que les premiers lots de microcontrôleurs STM32F401 et STM32F411 contrefaits, clonés et copiés arrivent sur le marché, naturellement. Parce que c’est apparemment le nom du jeu.

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.