Es gibt zahlreiche MCU-Plattformen, und sobald sich jemand an eine gewöhnt hat, zögert er im Allgemeinen, auf eine andere Plattform zu wechseln.
Meine Frage lautet: Wenn man heute anfangen würde, eine MCU für allgemeine Aufgaben zu verwenden, wie würde man dann eine auswählen? Was sind die Alleinstellungsmerkmale der verschiedenen Plattformen?
Antworten:
Ein Jahr später hielt ich einen Vortrag über die Auswahl von Mikrocontrollern (es dauerte ungefähr 1,5 Stunden). Das Publikum bestand aus hochrangigen Softwareprogrammierern und -herstellern. Die Mehrheit des Publikums hatte keine Erfahrung mit μC, der Rest hat nur mit Arduino gespielt. Die Anzahl der Zuhörer lag bei 30 Personen. Dies war also ein Multicast im Gegensatz zu einer Einzelklinik.
Die Schlüsselrutsche im Vortrag war:
ps
Ich sollte den Umfang definieren, auf den sich meine Antwort beschränkt. Ich sehe diese Frage zur Plattformauswahl durch zwei Arten von Objektiven. Der erste ist ein Prototyper. Der zweite ist ein Entwickler von professioneller Ausrüstung mit Straßenpreisen in der Größenordnung von 3.000 USD und Mengen in Hunderten pro Jahr. Das Hobbyobjektiv ist auch nicht weit weg. In diesen Fällen sind die zusätzlichen Kosten des Mikrocontrollers im Vergleich zu den Entwicklungskosten oder den Kosten der professionellen Ausrüstung, in die der Mikrocontroller investiert, gering.
Es gibt natürlich eine ganz andere Perspektive der Massenproduktion. Wenn sich jemand für einen Mikrocontroller für ein billiges Gerät entscheidet, das in großen Mengen hergestellt wird (Mainstream-Spielzeug ist ein gutes Beispiel), werden die Kosten für Hardware in die Höhe getrieben. Eine bescheidene Einsparung bei den Hardwarekosten multipliziert mit einem großen Produktionsvolumen (in Hunderttausenden oder mehr) kann den Aufwand für die Verwendung einer unhandlichen Entwicklungsumgebung und eines preisgünstigen Mikrocontrollers mit mittelmäßiger Unterstützung rechtfertigen.
quelle
Da diese Frage nicht den Plattformvergleich ergab, auf den ich gehofft hatte, habe ich versucht, einen selbst zu erstellen, indem ich die Literatur sowie die anderen Antworten studierte. Vielleicht kann dies in Zukunft jemand anderem helfen.
Bitte lassen Sie mich wissen, ob es Fehler gibt oder ob ich Informationen hinzufügen kann.
Plattform-Vergleich
Hinweise zum Vergleich:
PIC:
AVR:
Arm Cortex-M:
PSoc: (aus der Antwort von Rocketmagnet)
Propeller: (aus der Antwort von Rocketmagnet)
Vergleich nach Anwendung
USB:
"Legende" für die folgende Liste:
Eigenschaften des günstigsten Gerätes: (in ca. Preisreihenfolge)
Ethernet:
quelle
Ihre Wahl der MCU hängt stark von der Art der Projekte ab, an denen Sie arbeiten werden. Produzieren Sie großvolumige, supergünstige und einfache Geräte wie blinkende Fahrradlichter? Entwickeln Sie komplexe Prototypenroboter, die mit zahlreichen bizarren IO-Devices und Sensoren umgehen müssen?
Ich arbeite hauptsächlich an letzterem. Das Hauptproblem für mich ist es, Mikrocontroller zu finden, die über das von mir gewünschte Peripheriegerät verfügen. Dies ist sehr schwierig, da unsere Anforderungen nicht zum Mainstream zu gehören scheinen. Wir wollen Dinge wie 5 PWM-Kanäle, 5 Quadratur-Decoder, 2 nicht standardmäßige SPI-Ports und einen UART mit negiertem E / A.
Die einzigen MCUs, die ich gesehen habe, die diese Anforderungen problemlos erfüllen können, sind der PSoC und der Propeller.
Der Propeller besteht im Grunde aus acht 32-Bit-MCUs auf einem einzigen Chip. Wenn Sie eine Art Peripheriegerät benötigen, programmieren Sie einfach eine der MCUs, um diesen Job auszuführen. So können Sie haben, was Sie wollen.
Die PSoCs sind in zwei Varianten erhältlich: 3 und 5. Die 3 ist ein 8051-Kern und die 5 ein ARM-Cortex M3. Auf dem Chip sind auch rekonfigurierbare digitale und analoge Blöcke enthalten, die zu einer Vielzahl von Peripheriegeräten verarbeitet werden können: ADCs, Filter, Operationsverstärker, DACs, SPI, UART, Quadraturdecoder, CRC-Generator usw.
Die Entwicklungsumgebung ist fantastisch. Sie haben die übliche Quellcodebearbeitung einer typischen IDE, aber Sie haben auch einen Schaltplaneditor. Sie können buchstäblich jede beliebige digitale Schaltung anschließen und die Peripheriegeräte mit Gattern, Flipflops usw. verbinden. Benötigen Sie 5 PWMs? Ganz einfach, legen Sie sie in den Schaltplan, verdrahten Sie sie und los geht's. Sie können sogar Ihre eigenen Peripheriegeräte in Verilog schreiben, wenn Sie etwas wollen, das nicht mitgeliefert wird. Ein Großteil Ihrer Anwendung kann einfach in diese Art von Hardware implementiert werden.
Der eigentliche Vorteil ist, dass Sie sich an einen Chip halten können, da Sie wissen, dass er viele der Projekte angehen kann, die Sie in Zukunft durchführen möchten. Was mich an PICs störte, war das ständige Durchsuchen von Dutzenden von Geräten, auf der Suche nach dem Gerät mit dem speziellen Peripheriegerät, das ich brauchte. Jetzt habe ich das Problem nicht.
quelle
Für mich war die wichtigste Anforderung, ob das Gerät / die IDE auf meinem Nicht-Windows-PC (Linux) gut unterstützt wird. Es stellte sich heraus, dass Atmel AVRs für mich eine bessere (Open Source) Unterstützung hatten als PIC.
quelle
Die Verwendung von mehr als einer Plattform ist in Ordnung. Auswahl der besten für jeden Job und Verfügbarkeit von Code und Beispielen für den Job.
Die meisten von ihnen haben gute Entwicklungswerkzeuge, arduino hat ein visuelles Studio, pic hat ein großartiges Werkzeug und andere auch. Für mich ist es also, wie schnell und einfach ich den Job gut erledigen kann, + wie viele Open-Source-Leute arbeiten an der gleichen Sache?
quelle
Mikrocontroller sind eine sich schnell verändernde Welt, es gibt viele Vorteile des Lernens auf den aktuellen "In" -Chips, und die bekanntesten IDEs erhalten vor allem Hilfe von der Community. Als PIC-Person würde ich sagen, dass der Aduino im Moment wahrscheinlich die besten IDE- und Entwicklungsboards für Neulinge hat, und Sie können viel zu einem einfachen Aduino-Board hinzufügen, ohne einen Lötkolben zu berühren.
Jeder, der einen Aduino für das echte Leben benutzt, möchte vielleicht bald weitermachen, aber zu diesem Zeitpunkt haben Sie eine Menge grundlegender digitaler Elektronik und eine gute Untergruppe von C gelernt, um einfach etwas passenderes zu verwenden.
Wie bereits erwähnt, haben Sie den Chip für Ihr Projekt ausgewählt. Ich habe einige Projekte gesehen, in denen ARM-Chips als einfache Temperatursensoren oder AD-Wandler verwendet wurden, genauso wie Aduinos und PIC 16-Bausteine an ihre Grenzen gestoßen sind, um ein Space Invaders-Spiel, FPGAs, zu generieren Sind auch recht und es ist gut, HDL zu verstehen, wenn Sie sich ernsthaft mit Elektronikdesign beschäftigen. Aber leider gibt es nicht viele Projekte in der realen Welt, in denen Sie nur einen einzigen Job benötigen: geringes Volumen, schnelles Design und eingeschränkte Preise hier regiert das 8-bit-uC an oberster stelle
quelle
Da sich viele der veröffentlichten Antworten auf die Verwendung durch Bastler konzentrieren, werden hier verschiedene Empfehlungen gegeben, die sich nur an professionelle Entwickler richten.
Bloße Mindestanforderungen
Wenn die MCU nicht alle diese Anforderungen erfüllt , sollte sie nicht verwendet werden.
Warnzeichen - MCU-Hardware Mit
diesen Dingen sollten Sie im Jahr 2019 keine Zeit verschwenden.
int
, was wiederum mit allen versteckten Gefahren von C-Integer-Promotions einhergeht.Warnzeichen - Werkzeugkette
quelle
Wenn Sie allgemeine Aufgaben ausführen möchten, die analoge und digitale Verarbeitung ermöglichen, hätte ich PSoC für die IDE, den Debugger und eine Vielzahl von Dingen bevorzugt, die Sie damit ausführen können.
Ich habe PSoC3 im College für meine Projekte verwendet und es ist recht einfach zu meistern. Das Einzige, was Sie tun müssen, ist, dass Sie einige Performance-Chips separat erwerben müssen. Es hat gut genug Ports. Wenn Sie also einige Performance-Chips zusammen mit dem Development Kit suchen, sollten Sie sich für separate Komponenten entscheiden.
quelle