Was ist der eigentliche Grenzwert in Bezug auf den Kompromiss zwischen Kosten und Leistung bei der Auswahl von 32-Bit-Mikrocontrollern?
Mit anderen Worten, warum verwenden wir angesichts des Aufstiegs und der Dominanz von ARM-Architekturen immer noch 8-Bit- und 16-Bit-Mikrocontroller? Sind sie noch viel billiger?
Ich verstehe, dass sehr Low-End-Geräte nicht die Ressourcen benötigen, die größere und komplexere Architekturen bieten. Was ist jedoch die eigentliche Motivation, sie weiterhin zu nutzen, wenn sich die Kosten in den gleichen Bereich zu bewegen scheinen?
microcontroller
arm
cost
Bruno Morais
quelle
quelle
Antworten:
Vielleicht gab es vor einem Jahr einen signifikanten Unterschied zwischen den 8-Bit-Low-End-Mikrocontrollern und den billigsten 32-Bit-Mikrocontrollern. Nicht mehr der Fall.
Basierend auf den Bulk-Preisen von Digi-Key können Sie einen 8-Bit-PIC10F200 für 35ȼ in 2500 Mengen in einem SOT-23-6-Paket erhalten. Sie erhalten einen 32-Bit-CY8C4013SXI-400 (ARM Cortex-M0) für 36ȼ in 2500 Mengen in einem SOIC-8-Paket. (Digi-Key-Massenpreise sind nicht realistisch in Bezug auf das, was die Hersteller tatsächlich bezahlen, was wahrscheinlich viel weniger ist, aber ich denke, es ist gültig, sie für einen groben Preisvergleich zwischen verschiedenen Produkten für ähnliche Mengen zu verwenden.)
Das OP ist also richtig, sie konvergieren.
Warum werden die 32-Bit-Chips nicht mehr verwendet? Wie ich bereits in meinem ersten Absatz sagte, ist diese Preis- und Größenparität erst im letzten Jahr oder in den letzten 18 Monaten aufgetreten. Und sie haben noch einen langen Weg vor sich, bevor es genug Chips gibt, um wettbewerbsfähig zu sein.
Von den 6875 ARM-Chips, die bei Digi-Key erhältlich sind, sind nur vier mit Mengenpreisen unter einem Dollar auf Lager. Vier . Mittlerweile stehen den Ingenieuren Hunderte von 8-Bit-Chips unter einem Dollar zur Auswahl.
Nehmen wir an, es waren mindestens ein paar Dutzend Low-End-32-Bit-Mikros verfügbar. Würden sie automatisch über die 8-Bit-Dateien ausgewählt?
Zunächst müssen Sie die Ingenieure auf sie aufmerksam machen. Es gibt immer viel Widerstand gegen Veränderungen. Neue Dinge zu lernen - vom Standpunkt der Hardware aus lernen, wie der neue Chip in eine Schaltung integriert wird. Es gibt neue Tools wie In-Circuit-Programmierer, neue Compiler usw. Für die Firmware-Ingenieure lernen sie, wie man einen brandneuen Satz von Peripheriegeräten und Timern verwendet (meistens Registerlayouts und Bitbedeutungen).
32-Bit ist nett und das alles, aber wenn man nicht viel rechnen muss, worum geht es dann? Wenn Sie nur vier GPIO-Pins haben, bietet der interne Zugriff auf diese als 32-Bit-Register keinen Vorteil gegenüber der Verwendung eines 8-Bit-Registers.
Ich denke, der Stromverbrauch wird immer zugunsten der 8-Bit-Mikros sein.
Zum Beispiel verbraucht der PIC10F200 175 µA bei 4 MHz und 2 V und 100 nA im Schlafmodus. Der CY8C4013SXI-400 verbraucht im Ruhemodus ca. 800 µA bei 4 MHz und 2 V und 1 uA. (Das Datenblatt für den CY8C4013SXI hatte weder Zahlen für 4 MHz noch für 2 V, daher musste ich einige Schätzungen vornehmen. Das Datenblatt besagt, dass es 2 mA bei 6 MHz und 3,3 V zeichnet.)
Der ARM zieht also im Wachzustand 4,5-mal so viel Strom und im Schlaf 10-mal so viel Strom. Scheint nicht viel zu sein, aber es ist der Unterschied zwischen 3 Monaten oder einem Jahr auf einer Knopfzelle. (Ich gehe davon aus, dass beide Mikrocontroller meistens das Timing durchführen, Ports aktualisieren usw. und keine wirklich umfangreichen Berechnungen durchführen. Wenn letzteres der Fall ist und das 8-Bit-Mikro über einen längeren Zeitraum viel Multibyte-Arithmetik ausführen muss mit der Zeit verliert es einen Teil seines Vorteils.)
Es ist interessant, dass der ARM ungefähr viermal so viel Strom zieht wie der 8-Bitter und wiederum interne Register und Datenpfade hat, die viermal so breit sind. Ich denke nicht, dass dies ein Zufall ist. Für CMOS ist der Stromverbrauch ungefähr proportional zur Anzahl der geschalteten Transistoren, und der ARM leistet offensichtlich viel mehr pro ausgeführtem Befehl.
Da immer mehr ARM-Anbieter Low-End-Chips herausbringen, wäre ich nicht überrascht, wenn Anbieter wie Microchip ihre Preise noch weiter senken würden. Auf jeden Fall, bei mehr oder weniger gleichen Preisen, Paketen ähnlicher Größe, aber viel weniger 32-Bit-Chips zur Auswahl, denke ich, dass die 8-Bit-Mikrocontroller noch eine Weile verfügbar sein werden - vor allem, weil Sie es getan haben haben Zehntausende von Ingenieuren mit ihnen vertraut gemacht.
quelle
Drei Hauptpunkte:
50 ¢ bei der Bestellung von 10.000 Chips ist ziemlich viel Geld. Noch mehr, wenn Sie 100.000 Chips bestellen.
Sie können 8-Bit-Chips erhalten, die erheblich kleiner sind als 32-Bit-Chips, wie z. B. den PIC10, der in einem SOT23-6-Paket erhältlich ist.
32-Bit-Chips verbrauchen viel mehr Strom als ein kleiner 8-Bit-Chip, da sie im Allgemeinen schneller getaktet werden und mehr leisten. Batterien entladen sich schneller, Stromversorgungssysteme müssen mehr Strom liefern (und sind daher teurer) usw.
Warum sollten Sie sich einen Moloch kaufen, um nebenan eine Tasse Zucker zu trinken?
quelle
Die uC-Anwendungen, die ich für kommerzielle Produkte entwickelt habe, haben fast nie Datengrößen von mehr als 8 Bit verarbeitet. Selbst wenn 32-Bitter den gleichen Preis wie 8-Bitter hätten, gäbe es immer noch keinen Vorteil. Wie jemand anderes sagte, gehen wir auf das Vertraute ein, damit wir es schneller ausstanzen können. Der letzte, den ich entwickelt habe, hat den PIC16, den ich verwendet habe, in jeder Hinsicht an seine Grenzen gebracht - aber das lag nicht an der Datengröße. Wenn ich so etwas mehr mache, sollte ich wirklich ARM lernen.
quelle
Ich würde erwarten, dass ARM-Chips die meisten Funktionen übernehmen, bei denen sich etwas wie ein "Computer" verhält. Andererseits gewöhnen sich viele 8-Bit-Mikrocontroller daran, Dinge zu tun, die mit einem relativ einfachen programmierbaren Logikbaustein oder einer moderaten Anzahl von Gattern erledigt werden könnten, aber tatsächlich billiger und / oder mit weniger Stromaufnahme unter Verwendung von a einfaches 8-Bit-Mikro. Beim Entwerfen komplizierterer Anwendungen ist es oft einfacher, ein 32-Bit-Mikro als ein 8-Bit-Mikro zu verwenden. Wenn der gesamte Zweck eines Chips darin besteht, z. B. einen bestimmten Eingang zu beobachten und zu entprellen und, wenn er hoch ist, 200 auszugeben Impulse an einem bestimmten Ausgang in Intervallen von 1 ms, dann 100 in Intervallen von 2 ms, dann 100 in Intervallen von 3 ms, dann Pause für 100 ms und so lange tun, bis der Eingang niedrig wird. Das Entwerfen des Codes dafür ist möglicherweise tatsächlich einfacherauf einem 8-Bit-Mikro als auf einem 32-Bit-Mikro. Der Kostenunterschied zwischen 8-Bit- und 32-Bit-Mikros reicht in vielen Fällen möglicherweise nicht mehr aus, um zusätzlichen Engineering-Aufwand zu rechtfertigen, damit ein Projekt in ein 8-Bit-Mikro "passt", aber in Fällen, in denen ein 32-Bit-Teil dies nicht tun würde Es gibt keinen Grund, auch nur einen Cent mehr auszugeben.
quelle
Ich stimme zwar zu, dass CPU-Kosten und Stromverbrauch die Hauptgründe sind, aber eine weitere Überlegung, die ich hier noch nicht gesehen habe, ist der Platz auf der Leiterplatte. Für viele Arten von eingebetteten Systemen, wie zum Beispiel eine elektronische Personenwaage, besteht kein großer Bedarf an vielen E / A, kein Vorteil für größere Busgrößen und kein Vorteil für eine schnellere Verarbeitung. Es gibt jedochEin Vorteil für ein kleineres Gehäuse mit weniger Stiften, da dadurch das Layout und die Verlegung einer Leiterplatte einfacher und häufig kleiner werden. Wenn eine Karte als 2-Schicht-Karte anstatt als 4-Schicht-Karte ausgeführt werden kann, ergeben sich erhebliche Kosteneinsparungen, und die kleineren Pin-Zählungen, die häufig bei 8-Bit-Prozessoren auftreten, erleichtern diese Einsparungen leichter als 32- Bitprozessoren, die im Allgemeinen mehr Pins und physikalisch größere Gehäuse haben.
quelle
Selbst innerhalb der 8-Bit-Welt ist bekannt, dass neuere Typen sehr lange brauchen, um ältere Typen zu übernehmen - sehen Sie, dass MCS51 in seinen Nischen noch am Leben ist und MCS48 immer noch an unerwarteten Orten gefunden wird.
In vielen Fällen kommt es nicht zu Veränderungen, weil sie keinen zusätzlichen Wert bringen und mit den Kosten für das Erlernen einer neuen Technologie verbunden sind, die sich noch nicht als dauerhaft erwiesen hat und / oder voraussichtlich immer noch ein sich bewegendes Ziel ist (was dazu führt) Es ist interessant für Leute, die sich auf die MCU-Technologie konzentrieren möchten, aber ärgerlich für Leute, die sich auf ihre Anwendung konzentrieren und die Produktionssoftware nicht ständig reparieren und erneut testen möchten, um den diesjährigen ARM-Jahrgang anzupassen!). Für einige ist eine nicht mehr entwickelte Komponente veraltet, für andere ist sie endlich stabil geworden , und obwohl sie möglicherweise Problemumgehungen für eingewachsene Fehler benötigt, bietet sie zumindest eine stabile Plattform für diese. Der Lavastrom ist nicht immer das Antimuster, zu dem er aufgebrochen ist - er neigt dazu, Berge zum Schauplatz zu machen.
quelle