MCU «Terrible» à trois cents - un bref aperçu des microcontrôleurs coûtant moins de 0,1 $

J'ai, entre autres, été étonné par les nouvelles de l'an dernier sur le blog EEVblog que certains microcontrôleurs ont vendu pour seulement 0,03 $ pièce. Comment était-ce possible? Beaucoup ont suggéré qu'il s'agissait d'une vente ou de vieux restes. En fouillant dans l'histoire, je suis arrivé à la conclusion qu'il existe tout un segment du marché des microcontrôleurs super bon marché. Presque tous sont produits par des sociétés peu connues de Chine ou de Taïwan. Dans cet article, j'ai résumé les résultats de mes recherches dans ce créneau plutôt inhabituel.

Nous savons déjà qu'il existe une gamme assez large de microcontrôleurs très puissants coûtant 1,00 $, mais qu'en est-il du MCU à 0,1 $? Sont-ils «terribles» lorsqu'ils écrivent à leur sujet?

Méthodologie


Comment déterminer un microcontrôleur d'une valeur de 0,1 $? Oui, comme vous le souhaitez; le choix de la définition est arbitraire. J'ai décidé d'aller tout droit, en utilisant le coût de 100 pièces au magasin LCSC. J'ai trouvé six fabricants offrant une ou plusieurs puces pour moins de 0,1 $, toutes en provenance d'Asie. Si les puces étaient proposées dans des packages différents, j'ai choisi l'option SOP8. Certains fabricants avaient plusieurs candidats, j'ai donc dû me limiter à choisir des appareils typiques pour la liste finale de 8 candidats.

Chez les grands distributeurs, tels que Digikey ou Mouser, je n'ai pas trouvé de microcontrôleurs pour 0,1 $. Évidemment, cela ne signifie pas qu'il est impossible de trouver de tels MCU auprès de fabricants occidentaux - tout dépend du volume de la commande. Deux facteurs jouent ici un rôle: premièrement, le LCSC travaille avec une marge beaucoup plus faible que les grands distributeurs. Deuxièmement, les grands fabricants de microcontrôleurs ne dépendent pas de petits clients, ils fixent donc librement le prix des biens achetés en petites quantités.

En l'absence de programmeurs et de bancs d'essai, j'ai pu examiner la plupart des appareils uniquement en fonction de leurs spécifications, à l'exception du MCU de Padauk.

Revue


Au total, j'ai sélectionné huit candidats de six fabricants différents. Le tableau récapitulatif est donné ci-dessous.

Il présente des similitudes évidentes - tous les appareils sont conçus pour l'architecture de batterie et, bien sûr, basés sur Microchip PIC12. À l'exception de MDT, tous les fabricants ont changé et complété leurs circuits de puces. Il y a peut-être deux raisons: premièrement, ils voulaient éviter les problèmes juridiques avec Microchip, et deuxièmement, PIC12 a de sérieuses limites. Ils ont travaillé avec les principaux inconvénients - l'absence d'interruptions, l'espace d'adressage JMP / CALL, la commutation des banques de mémoire et des périphériques.

Malheureusement, les fabricants n'ont pas partagé des détails tels que le codage des instructions ou les algorithmes de mémoire. Tout développement pour ces appareils doit passer par l'IDE des fabricants. À l'exception de Holtek, tous les appareils dépendent d'une interface de programmation haute tension et ne sont pas si faciles à programmer sur site. Seuls Padauk et Holtek proposent des appareils qui peuvent être programmés plusieurs fois.



→ Cliquable. Il existe une version PDF

Découvertes distinctes


Bojuxing industriel


La puce BJ8P509F à 0,0466 $ est une version légèrement améliorée du PIC12C509. Le jeu d'instructions a été étendu de 12 à 13 bits. Cela vous permet d'utiliser jmp avec un adressage mémoire complet. De plus, la possibilité de travailler avec des interruptions et une pile HW étendue a été ajoutée.

Il existe une spécification en anglais, et elle est suffisamment détaillée pour fonctionner avec la puce. Malheureusement, le site Web et l'IDE du fabricant sont uniquement en chinois.

Eastsoft micro


Eastsoft Micro possède un large portefeuille de microcontrôleurs basés sur PIC. Ils appellent leur version de l'architecture HR7P RISC. Il s'agit d'une architecture de batterie à part entière avec prise en charge des interruptions, d'une pile à 8 niveaux et d'un accès à la mémoire et aux E / S sans changer de banque .

Ils ont une puce pouvant coûter jusqu'à 0,1 $, et c'est HR7P153P45SA. Les fonctionnalités notables incluent la prise en charge ADC 12 bits, un oscillateur à basse vitesse pour un fonctionnement à faible puissance et l'ajout de deux temporisateurs avec prise en charge PWM.

Malheureusement, le site Web et les spécifications sont uniquement en chinois.

Holtek


Holtek est un fabricant bien connu de microcontrôleurs taïwanais. Leur représentant dans cette catégorie HT68F001 est assez unique: un appareil limité avec 512 mots de mémoire flash programme et 16 octets de RAM. L'architecture est très similaire à PIC12, synchronisée uniquement à partir de l'oscillateur interne à 32 kHz. Puisqu'il faut 4 cycles pour terminer chaque instruction, il n'exécute que 8 000 instructions par seconde! Apparemment, cette puce est conçue pour être utilisée avec une consommation d'énergie ultra-faible, sans exiger de performances.

La puce a une excellente documentation. Il existe un site Web, une spécification, des notes d'application et un IDE. C'est également la seule puce dotée d'une capacité de programmation flash basse tension. Tout cela distingue les produits Holtek des autres.

Cependant, étant donné la fonctionnalité limitée de cette puce, il semble que le segment des puces ultra bon marché ne soit pas une priorité pour Holtek.

Padouk


Il est clair que jusqu'à 0,1 $ sur le marché des puces, Padouk se sent comme chez lui. Dans cette gamme de prix, ils proposent des dizaines de produits avec une variété d'options et de types d'étuis.

Tous sont basés sur l'architecture MCU Padauk, qui est beaucoup plus développée que PIC12: il utilise des emplacements de mémoire séparés pour les E / S et SRAM, permet d'adresser à toute la mémoire sans changer de banque. Contrairement à tous les autres appareils, la pile est ici en RAM. La plupart des instructions sont exécutées en un seul cycle d'horloge.

Un aspect intéressant et inhabituel de l'architecture Padauk est qu'elle est affinée pour le multithreading synchrone et vous permet d'exécuter plus d'un programme en parallèle sur un cœur MCU selon le schéma de multitâche préemptif. Ils appellent ce concept «matrice de processeur programmable par l'utilisateur» (FPPA). Un concept similaire est utilisé par XMOS dans l' architecture XCore . Une application utile du multithreading dans les petits MCU est la création de périphériques virtuels, par exemple UART, I 2 C, fonctionnant en parallèle avec le programme principal.

J'ai sélectionné trois de leurs produits représentatifs dans le package SOP8: PMS150C, PFS154 et PFS173. Ils ont tous un module FPPA, ils ne prennent donc pas en charge le multithreading.

Le PMS150C est l'option la moins chère, coûtant 0,033 $, c'est-à-dire le "MCU à trois cents" d'origine. L'appareil dispose d'une mémoire programmable unique pour 1 kilo mot et 64 octets de RAM. La périphérie est représentée par de nombreuses options concurrentes - un temporisateur 16 bits, un temporisateur PWM 8 bits, un oscillateur basse fréquence, un comparateur analogique avec une tension de référence DAC 4 bits, qui peuvent être utilisés pour implémenter les variantes ADC les plus simples. Tout cela suffit pour mettre en œuvre les fonctions simples du capteur et du module de commande.

Le PFS154 coûte presque le double. Cependant, contrairement au PMS150, il a une mémoire flash pour 2 kilosheets, il peut être programmé à plusieurs reprises, ce qui est beaucoup plus pratique pour un vrai développement. La périphérie est agrandie par des modules PWM 3x11 bits, qui sont bien adaptés pour contrôler les LED RGB.

Enfin, PFS173 améliore encore la puce PFS154 en ajoutant un ADC 8 bits et en étendant la mémoire flash à 3 kiloslov et la RAM à 256 octets.

Padauk fournit un IDE pour le développement du langage d'assemblage et un dialecte C (Mini-C) plutôt cryptique. Ils ont d'excellentes spécifications en anglais et en chinois, ainsi qu'un site bilingue. La programmation des appareils est réalisée par un protocole haute tension à 5 ou 6 fils, ce qui rend difficile la programmation de la puce en place.

Boîte à outils open source


Une petite communauté s'est formée autour du Padauk MCU sur le site EEVblog, essayant de créer une boîte à outils open source pour leurs puces. La plupart du travail est décrit dans ce fil .

En août 2019, une analyse technique du codage des instructions a été effectuée, un protocole de programmation a été décrit, un programmeur ouvert a été développé et la prise en charge de plusieurs options d'architecture PDK a été intégrée dans SDCC. Il est déjà possible de réaliser le développement de toutes les puces Padauk mentionnées avec une boîte à outils entièrement ouverte.

Puolop


Puolop est un fabricant chinois de microcontrôleurs et de divers circuits mixtes analogique-numérique dont le siège est à Shenzhen. Ils proposent une large gamme de puces de Padauk sous leur propre marque, en particulier les anciennes versions OTP.

Par exemple, le Puolop PTB150CSE est absolument identique au Padauk PMS150C. Leur coût est légèrement inférieur à l'original (0,0315 $ contre 0,334 $). La relation entre ces marques n'est pas claire, mais Padauk semble agir en tant que fournisseur de Puolop.

Le site Web de l'entreprise et toute la documentation sont uniquement en chinois. Il n'y a aucune raison de préférer les puces Puolop aux puces Padauks - économisez une petite fraction du prix.

Yspring Tech / MDT


Yspring Tech est une société chinoise proposant une large gamme d'appareils fonctionnellement comparables aux concurrents de Microchip. Apparemment, la majeure partie de l'assortiment provenait de MDT , une entreprise taïwanaise qu'Yspring a achetée ou a établie comme partenaire. Microchip s'est opposé à son modèle d'entreprise dans le passé.

Ysprings ajoute le MDT10P509 à cette revue pour 0,0795 $. Cet appareil semble être un clone complet de PIC12C509. Il peut être utile comme remplacement bon marché de l'original, mais ses caractéristiques sont clairement inférieures à celles d'autres produits de cette catégorie.

Le MDT10P509 offre 1 kilos de mémoire unique, 41 octets de RAM et un seul temporisateur 8 bits comme périphériques. Comme dans le PIC12C509, il n'y a pas d'interruptions, il n'y a qu'une pile HW à deux niveaux et les instructions sont exécutées en 4 cycles.

Conclusion


Ces microcontrôleurs sont-ils vraiment laids? Cela dépend évidemment du point de vue. Ils entrent dans une catégorie spéciale de produits nécessitant peu d'entretien et nécessitant peu d'entretien et à faible coût pour les achats en gros. Devez-vous attendre que le bouton soit enfoncé puis clignoter cinq fois avec la LED? Avez-vous besoin de faire fonctionner une veilleuse à piles? Les puces coûtant jusqu'à 0,1 $ vous aideront à réduire les coûts et à raccourcir le temps de développement.

Le problème est que le développement de la plupart de ces appareils sera gênant en raison de la disponibilité limitée des options flash flashées et de la programmation en circuit. Le débogage n'est généralement possible que via des émulateurs de circuits.

Si vous aimez travailler avec des microcontrôleurs bon marché, la série Padauk est sans aucun doute le meilleur choix. Ils ont l'architecture la plus puissante, une large gamme d'appareils, y compris des options avec mémoire flash, une bonne documentation et la seule ligne avec un ensemble d'outils ouverts.

Source: https://habr.com/ru/post/fr467837/


All Articles