Was ist der tatsächliche 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 immer 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 wirkliche Motivation, sie dennoch zu verwenden, wenn sich die Kosten in Richtung der gleichen Spanne zu bewegen scheinen?
Vor vielleicht einem Jahr gab es einen signifikanten Unterschied zwischen den Low-End-8-Bit- und den billigsten 32-Bit-Mikrocontrollern. Nicht mehr der Fall.
Basierend auf den Mengenpreisen von Digi-Key können Sie einen 8-Bit-PIC10F200 für 35 Å in 2500-Stückzahlen in einem SOT-23-6-Paket erhalten. Sie erhalten einen 32-Bit-CY8C4013SXI-400 (ARM Cortex-M0) für 36 ȼ in 2500 Stück in einem SOIC-8-Paket. (Digi-Key-Massenpreise sind nicht realistisch in Bezug darauf, was Hersteller tatsächlich zahlen, was wahrscheinlich viel weniger ist, aber ich denke, es ist gültig, um einen groben Preisvergleich zwischen verschiedenen Produkten für ähnliche Mengen durchzuführen.)
Das OP hat also Recht, sie konvergieren.
Warum also werden die 32-Bit-Chips nicht mehr verwendet? Nun, wie ich in meinem ersten Absatz sagte, ist diese Preispunkt- und Größenparität nur im letzten Jahr oder 18 Monaten aufgetreten. Und sie haben noch einen langen Weg vor sich, bevor sie genug Chips haben, um konkurrenzfähig zu sein.
Von den 6875 ARM-Chips, die bei Digi-Key erhältlich sind, sind nur vier auf Lager mit Mengenpreisen unter einem Dollar. Vier . Inzwischen gibt es Hunderte von 8-Bit-Chips unter einem Dollar, aus denen Ingenieure wählen können.
Aber nehmen wir an, es waren mindestens ein paar Dutzend Low-End-32-Bit-Mikros verfügbar. Würden sie automatisch über die 8-Bit-Versionen ausgewählt werden?
Zunächst einmal muss man die Ingenieure darauf aufmerksam machen. Es gibt immer viel Widerstand gegen Veränderungen. Neue Dinge zu lernen – aus Hardware-Sicht, zu lernen, wie man den neuen Chip in eine Schaltung integriert. Es gibt neue Tools wie In-Circuit-Programmierer, neue Compiler usw. Für die Firmware-Ingenieure, die lernen, wie man einen brandneuen Satz von Peripheriegeräten und Timern verwendet (hauptsächlich Registerlayouts und Bitbedeutungen).
32-Bit ist schön und so, aber was bringt es, wenn man nicht viel Rechenarbeit leisten muss? Wenn Sie nur vier GPIO-Pins haben, bietet der interne Zugriff 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.
Beispielsweise zieht der PIC10F200 175 µA bei 4 MHz und 2 V und 100 nA im Ruhemodus. Der CY8C4013SXI-400 zieht ungefähr 800 µA bei Betrieb bei 4 MHz und 2 V und 1 µA im Schlafmodus. (Das Datenblatt für den CY8C4013SXI hatte weder Zahlen für 4 MHz noch 2 V, also musste ich etwas schätzen - das Datenblatt sagt, dass es 2 mA bei 6 MHz und 3,3 V zieht.)
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 dem Betrieb mit einer Knopfzelle für 3 Monate oder für ein Jahr. (Ich gehe davon aus, dass beide Mikrocontroller hauptsächlich Timing durchführen, Ports aktualisieren usw. und keine wirklich schweren Berechnungen durchführen. Wenn letzteres der Fall ist, muss das 8-Bit-Mikro über einen längeren Zeitraum viel Multibyte-Arithmetik ausführen Zeit verliert es etwas von seinem Vorteil.)
Interessant ist, dass der ARM etwa viermal so viel Strom zieht wie der 8-Bitter und dafür wiederum viermal so breite interne Register und Datenpfade hat. Ich denke nicht, dass dies ein Zufall ist. Bei 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, mit mehr oder weniger gleichen Preisen, ähnlich großen Paketen, aber viel weniger 32-Bit-Chips zur Auswahl, denke ich, dass die 8-Bit-Mikrocontroller noch eine Weile auf dem Markt sein werden – besonders weil Sie es haben haben Zehntausende von Ingenieuren mit ihnen vertraut gemacht.
Drei Hauptpunkte:
50¢, wenn Sie 10.000 Chips bestellen, sind 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. der PIC10, der in einem SOT23-6-Gehäuse erhältlich ist.
Da 32-Bit-Chips im Allgemeinen schneller getaktet sind und mehr leisten, verbrauchen sie viel mehr Strom als ein kleiner 8-Bit-Chip. Batterien entladen sich schneller, Stromversorgungssysteme müssen mehr Strom liefern (und sind daher teurer) usw.
Warum sollten Sie schließlich einen Moloch kaufen, um nebenan eine Tasse Zucker zu sich zu nehmen?
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 gesagt hat, greifen wir zu dem, was uns vertraut ist, damit wir es schneller ausstanzen können. Der letzte, den ich entwickelt habe, hat den von mir verwendeten PIC16 jedoch in jeder Hinsicht an seine Grenzen gebracht - aber das lag nicht an der Datengröße. Wenn ich noch mehr so mache, dann sollte ich wirklich ARM lernen.
Ich würde erwarten, dass ARM-Chips die meisten Funktionen übernehmen, wo sich etwas wie ein "Computer" verhält. Auf der anderen Seite 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 Stromverbrauch 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, aber wenn der gesamte Zweck eines Chips darin besteht, z. B. einen bestimmten Eingang zu beobachten und zu entprellen und, wenn er hoch geht, mit der Ausgabe von 200 zu beginnen Impulse an einem bestimmten Ausgang in 1-ms-Intervallen, dann 100 in 2-ms-Intervallen, dann 100 in 3-ms-Intervallen, dann 100 ms pausieren und so lange weitermachen, bis der Eingang niedrig wird. Das Entwerfen des Codes dafür kann tatsächlich einfacher seinauf 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 einen zusätzlichen Engineering-Aufwand zu rechtfertigen, um ein Projekt in ein 8-Bit-Mikro „passen“ zu lassen, aber in Fällen, in denen ein 32-Bit-Teil es tun würde Sparen Sie keinen Engineering-Aufwand, es gibt keinen Grund, auch nur einen Cent extra auszugeben.
Ich stimme zwar zu, dass die CPU-Kosten und der Stromverbrauch die Hauptgründe sind, aber eine weitere Überlegung, die ich hier noch nicht aufgelistet gesehen habe, ist der PCB-Platz. Für viele Arten eingebetteter Systeme, wie beispielsweise eine elektronische Badezimmerwaage, besteht kein großer Bedarf an vielen E/A, kein Vorteil einer größeren Busgröße und kein Vorteil einer schnelleren Verarbeitung. Ein kleineres Gehäuse mit weniger Pins hat jedoch den Vorteil, dass Layout und Routing einer Leiterplatte einfacher und oft kleiner werden. Wenn eine Platine als 2-Layer-Platine statt als 4-Layer-Platine entworfen werden kann, gibt es erhebliche Kosteneinsparungen, und die kleineren Pinzahlen, die oft mit 8-Bit-Prozessoren einhergehen, erleichtern diese Einsparungen eher als 32- Bit-Prozessoren, die im Allgemeinen mehr Pins und physisch größere Gehäuse haben.
Selbst innerhalb der 8-Bit-Welt ist bekannt, dass neuere Typen sehr lange brauchen, um zugunsten älterer Typen zu übernehmen - sehen Sie, wie MCS51 immer noch in seinen Nischen lebt und MCS48 immer noch an unerwarteten Orten zu finden ist.
In vielen Fällen findet keine Änderung statt, weil sie keinen zusätzlichen Wert bringt und mit den Kosten für das Erlernen einer neuen Technologie verbunden ist, die sich noch nicht als dauerhaft erwiesen hat und/oder von der erwartet wird, dass sie immer noch ein bewegliches Ziel ist (was macht Es ist interessant für Leute, die sich auf die MCU-Technologie konzentrieren wollen, aber ärgerlich für Leute, die sich auf ihre Anwendung konzentrieren und nicht ständig Produktionssoftware 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 Workarounds für eingewachsene Fehler benötigt, bietet sie zumindest eine stabile Plattform für diese. Lavastrom ist nicht immer das Antimuster, zu dem er gesprungen ist - neigt dazu, Berge in der Realität bleiben zu lassen.
Leon Heller
Samuel
Bruno Morais
John u
Garth Wilson
Jason S