Quel est le véritable point de coupure en termes de compromis entre coût et performance pour la sélection de microcontrôleurs 32 bits?
En d'autres termes, avec l'essor et la domination des architectures ARM, pourquoi utilisons-nous toujours des microcontrôleurs 8 bits et 16 bits? Sont-ils encore beaucoup moins chers?
Je comprends que les appareils très bas de gamme n'ont pas besoin des ressources offertes par des architectures plus grandes et plus complexes. Cependant, quelle est la véritable motivation de continuer à les utiliser si les coûts semblent converger vers la même fourchette?
microcontroller
arm
cost
Bruno Morais
la source
la source
Réponses:
Il y a peut-être un an, il y avait une différence significative entre les microcontrôleurs 32 bits bas de gamme et les microcontrôleurs 32 bits les moins chers. Ce n'est plus le cas.
Sur la base du prix de gros de Digi-Key, vous pouvez obtenir un PIC10F200 8 bits pour 35ȼ en 2500 quantités dans un boîtier SOT-23-6. Vous obtenez un CY8C4013SXI-400 32 bits (ARM Cortex-M0) pour 36ȼ en 2500 quantités dans un boîtier SOIC-8. (Le prix en gros de Digi-Key n'est pas réaliste en termes de ce que les fabricants paient réellement, ce qui est probablement beaucoup moins, mais je pense qu'il est valable d'utiliser pour une comparaison de prix approximative entre différents produits pour des quantités similaires.)
Donc l'OP a raison, ils convergent.
Alors pourquoi les puces 32 bits ne sont-elles pas davantage utilisées? Eh bien, comme je l'ai dit dans mon premier paragraphe, ce prix et cette parité de taille ne se sont produits qu'au cours de la dernière année ou des 18 derniers mois. Et ils ont encore beaucoup de chemin à parcourir avant d'avoir suffisamment de jetons pour être compétitifs.
Sur les 6875 puces ARM disponibles auprès de Digi-Key, il n'y en a que quatre en stock avec un prix de quantité inférieur à un dollar. Quatre . Pendant ce temps, les ingénieurs peuvent choisir parmi des centaines de puces 8 bits à moins d'un dollar.
Mais disons qu'il y avait au moins quelques dizaines de micros 32 bits bas de gamme disponibles. Seraient-ils automatiquement choisis parmi les 8 bits?
Tout d'abord, vous devez en informer les ingénieurs. Il y a toujours beaucoup de résistance au changement. De nouvelles choses à apprendre - d'un point de vue matériel, apprendre à incorporer la nouvelle puce dans un circuit. Il existe de nouveaux outils, tels que des programmateurs en circuit, de nouveaux compilateurs, etc. Pour les ingénieurs du micrologiciel, apprendre à utiliser un tout nouvel ensemble de périphériques et de temporisateurs (principalement des dispositions de registre et des significations de bits).
32 bits, c'est bien et tout ça, mais à moins que l'on ait besoin de faire beaucoup de calculs lourds, à quoi ça sert? Si vous n'avez que quatre broches GPIO, y accéder en interne en tant que registre 32 bits ne donne aucun avantage par rapport à l'utilisation d'un registre 8 bits.
Je pense que la consommation d'énergie sera toujours en faveur des micros 8 bits.
Par exemple, le PIC10F200 consomme 175 µA fonctionnant à 4 MHz et 2v et 100 nA en mode veille. Le CY8C4013SXI-400 consomme environ 800 µA en fonctionnement à 4 MHz et 2 v et 1 uA en mode veille. (La fiche technique du CY8C4013SXI n'avait pas de chiffres pour 4 MHz ou 2v, j'ai donc dû faire quelques estimations - la fiche technique dit qu'elle consomme 2 ma @ 6 MHz et 3,3v.)
Ainsi, l'ARM consomme 4,5 fois plus de courant lorsqu'il est éveillé et 10 fois lorsqu'il dort. Cela ne semble pas beaucoup, mais c'est la différence entre courir sur une pile bouton pendant 3 mois ou pendant un an. (Je suppose que les deux microcontrôleurs effectuent principalement la synchronisation, la mise à jour des ports, etc. et ne font pas de calculs lourds. Si ce dernier est le cas, et le micro 8 bits doit faire beaucoup d'arithmétique multi-octets pendant une période prolongée de temps, il perd un peu de son avantage.)
Il est intéressant de noter que l'ARM consomme environ quatre fois plus de courant que le 8-bitter, et qu'il possède à son tour des registres internes et des chemins de données quatre fois plus larges. Je ne pense pas que ce soit une coïncidence. Pour CMOS, la consommation d'énergie est à peu près proportionnelle au nombre de transistors commutés, et l'ARM en fait évidemment beaucoup plus par instruction exécutée.
Comme de plus en plus de fournisseurs d'ARM proposent des puces bas de gamme, je ne serais pas surpris si des fournisseurs comme Microchip baissaient encore plus leurs prix. Dans tous les cas, avec des prix plus ou moins égaux, des packages de taille similaire, mais beaucoup moins de puces 32 bits à choisir, je pense que les microcontrôleurs 8 bits vont encore exister pendant un certain temps - en particulier parce que vous avez familiarisé des dizaines de milliers d'ingénieurs avec eux.
la source
Trois points principaux:
50 ¢ lorsque vous commandez 10 000 jetons, c'est beaucoup d'argent. Encore plus lorsque vous commandez 100 000 jetons.
Vous pouvez obtenir des puces 8 bits considérablement plus petites que les puces 32 bits, telles que la PIC10 qui est disponible dans un package SOT23-6.
Les puces 32 bits, car elles sont généralement cadencées plus rapidement et en font plus, consomment beaucoup plus d'énergie qu'une petite puce 8 bits. Les batteries se déchargent plus rapidement, les systèmes d'alimentation doivent fournir plus de courant (et donc être plus coûteux), etc.
Après tout, pourquoi achèteriez-vous un mastodonte pour prendre une tasse de sucre à côté?
la source
Les applications uC que j'ai développées pour les produits commerciaux n'ont presque jamais traité des tailles de données supérieures à 8 bits; donc même si 32 bitters étaient au même prix que 8 bitters, il n'y aurait toujours aucun avantage. Comme quelqu'un d'autre l'a dit, nous optons pour ce qui est familier, afin que nous puissions le faire plus rapidement. Cependant, le dernier que j'ai développé s'est avéré pousser le PIC16 que j'avais utilisé à la limite - mais ce n'était pas à cause de la taille des données. Si je fais plus comme ça, alors je devrais vraiment apprendre ARM.
la source
Je m'attends à ce que les puces ARM prennent en charge la plupart des fonctions où quelque chose se comporte comme un "ordinateur". D'un autre côté, beaucoup de microcontrôleurs 8 bits s'habituent à faire des choses qui pourraient être faites avec un dispositif logique programmable relativement simple ou un nombre modéré de portes, mais qui peuvent en fait se faire moins cher et / ou avec moins de courant en utilisant un micro 8 bits simple. Lors de la conception d'applications plus complexes, il est souvent plus facile d'utiliser un micro 32 bits qu'un micro 8 bits, mais si l'objectif d'une puce est, par exemple, de regarder et de rebondir une certaine entrée et, si elle est élevée, de commencer à produire 200 des impulsions sur une certaine sortie à des intervalles de 1 ms, puis 100 à des intervalles de 2 ms, puis 100 à 3 ms, puis une pause de 100 ms, et continuez jusqu'à ce que l'entrée devienne faible, la conception du code pour cela peut en fait être plus facilesur un micro 8 bits que sur un 32 bits. La différence de coût entre les micros 8 bits et 32 bits peut ne plus être suffisante dans de nombreux cas pour justifier des efforts d'ingénierie supplémentaires pour faire en sorte qu'un projet "s'intègre" dans un micro 8 bits, mais dans les cas où une pièce 32 bits ne le serait pas. 'épargnez aucun effort d'ingénierie, il n'y a aucune raison de dépenser même un sou supplémentaire.
la source
Bien que je convienne que le coût du processeur et la consommation d'énergie sont les principales raisons, une autre considération que je n'ai pas encore vue ici est l' espace PCB. Pour de nombreux types de systèmes intégrés, comme, par exemple, une balance électronique pour salle de bain, il n'y a pas beaucoup besoin de beaucoup d'E / S, aucun avantage pour une plus grande taille de bus et aucun avantage pour un traitement plus rapide. Cependant, il existeun avantage pour un boîtier plus petit avec moins de broches car il rend la disposition et le routage d'une carte de circuit imprimé plus simples et souvent plus petits. Si une carte peut être conçue comme une carte à 2 couches plutôt que comme une carte à 4 couches, il y a des économies de coûts considérables, et le nombre de broches plus petit qui vient souvent avec les processeurs 8 bits a tendance à faciliter ces économies plus facilement que 32- processeurs de bits qui ont généralement plus de broches et des boîtiers physiquement plus grands.
la source
Même dans le monde 8 bits, les types plus récents prennent du temps pour prendre le relais en faveur des types plus anciens - voir MCS51 toujours vivant dans ses niches et MCS48 toujours trouvé dans des endroits inattendus.
Dans de nombreux cas, le changement ne se produit pas car il n'apporte aucune valeur supplémentaire et s'accompagne du coût de l'apprentissage d'une nouvelle technologie qui n'a pas encore fait ses preuves et / ou qui devrait rester une cible mouvante (ce qui fait c'est intéressant pour les gens qui veulent se concentrer sur la technologie MCU mais ennuyeux pour ceux qui veulent se concentrer sur leur application et ne pas constamment réparer et retester le logiciel de production pour adapter le millésime ARM de cette année!). Pour certains, un composant qui n'est plus développé est obsolète, pour d'autres, il est finalement devenu stable , et bien qu'il puisse avoir besoin de solutions de contournement pour les bogues incarnés, il fournit au moins une plate-forme stable pour ceux-ci. La coulée de lave n'est pas toujours l'anti-motif qu'elle est fêlée - tend à faire en sorte que les montagnes restent en place.
la source