Wie wähle ich eine MCU-Plattform aus? [geschlossen]

Es gibt zahlreiche MCU-Plattformen, und wenn sich jemand einmal an eine gewöhnt hat, wechselt er im Allgemeinen nur ungern zu einer anderen Plattform.

Meine Frage ist: Wenn man heute anfing, eine MCU für allgemeine Aufgaben zu verwenden, wie würde man sich für eine entscheiden? Was sind die Alleinstellungsmerkmale der verschiedenen Plattformen?

Teilen Sie uns mit, welche Art von Projekten und Volumina Sie im Sinn haben, und es hilft uns, die Frage zu beantworten.
Allzweck ist viel zu breit. Es macht wenig Sinn, denselben uC zum Blinken einer Fahrrad-LED und für ein RTOS mit einem hochauflösenden Touch-Farb-LCD zu verwenden.
Ja, Sie hätten idealerweise mehrere Chips, mit denen Sie vertraut sind, für Probleme mit unterschiedlichen Größen - und bereit sein, einen neuen zu nehmen, wenn er für eine Aufgabe einzigartig geeignet ist.
@WoutervanOoijen Die Idee mit dieser Frage war wie folgt: Es gibt viele Aufgaben, die jede der Plattformen problemlos bewältigen kann (dh allgemeine Aufgaben). Man ist dann völlig frei zwischen den Plattformen zu wählen. In diesem Fall werden die "weichen Faktoren", zB Benutzerfreundlichkeit, Anzahl der externen Komponenten usw. dominant. - Ich wollte herausfinden, was verschiedene Plattformen im Vergleich zu anderen gut/schlecht machen.

Antworten (8)

Vor einem Jahr hielt ich einen Vortrag zum Thema Kommissionierung von Mikrocontrollern (Dauer ca. 1,5 Stunden). Das Publikum bestand aus hochrangigen Softwareprogrammierern und -herstellern. Die Mehrheit des Publikums hatte keine vorherige μC-Erfahrung, der Rest hat nur mit Arduino gespielt. Die Zahl der Zuhörer betrug ungefähr 30. Das war also eine Multicast-Sendung, im Gegensatz zu einer Eins-zu-Eins-Klinik.

Die Schlüsselfolie des Vortrags lautete:

Maße

zum Vergleich von Mikrocontrollern. Die Liste ist in absteigender Reihenfolge.

  • Entwicklungsumgebung (Werkzeugkette)
    • Entwicklungsumgebung
    • Habe ich die Entwicklungsumgebung erwähnt?
  • Unterstützung
    • Anwendungshinweise
    • Peer-Unterstützung: Stammeswissen, Freunde, Foren, die Codes [sic]
  • Merkmale
    • Erinnerung
    • Peripherie
    • Rechenleistung
  • Energieverbrauch
  • Kosten

p.s

Ich sollte den Umfang definieren, auf den sich diese 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 $ und Mengen von Hunderten pro Jahr. Auch das Bastlerobjektiv ist nicht weit entfernt. In diesen Fällen sind die zusätzlichen Kosten des Mikrocontrollers gering im Vergleich zu den Entwicklungskosten oder den Kosten der professionellen Ausrüstung, in die der Mikrocontroller eingesetzt wird.

Natürlich gibt es eine ganz andere Perspektive der Massenproduktion. Wenn jemand einen Mikrocontroller für ein billiges Gerät auswählt, das in großen Mengen produziert wird (Mainstream-Spielzeug ist ein gutes Beispiel), wird er von den Kosten der Hardware getrieben. Eine bescheidene Einsparung bei den Hardwarekosten multipliziert mit einem großen Produktionsvolumen (in Hunderttausenden oder mehr) kann den Schmerz rechtfertigen, eine unhandliche Entwicklungsumgebung und einen preisgünstigen Mikrocontroller mit mittelmäßigem Support zu verwenden.

Sie konzentrieren sich auf die Entwicklungsumgebung. Für mich ergibt das Sinn. Was waren Ihre Schlussfolgerungen?
@ArikRaffaelFunke Nun, diese Punkte in meinem Beitrag oben sind die Schlussfolgerungen. Nicht schlüssig genug? Mein Ziel für den Vortrag war: (1) Eine Mindestliste der Fragen zu erstellen, die während des Auswahlverfahrens gestellt werden müssen. (2) Zeigen Sie, wo und wie Sie nach Antworten suchen können. Ich habe ausdrücklich vermieden, harte Schlussfolgerungen zu ziehen nach dem Motto: Familie X ist gut, wenn..., Familie Y ist gut, wenn...
Für kleine Volumina und typische Anforderungen ja. Aber manchmal muss man sich für die beste Technologie entscheiden. Oder wenn das Volumen riesig ist, können ziemlich erhebliche Kopfschmerzen in der Entwicklung gerechtfertigt sein, wenn es ein paar Cent pro Widget einspart – einschließlich Lösungen, die auf konkurrierenden Teilen basieren, die getestet und bereit sind, darauf zu springen.
@ChrisStratton Der Stromverbrauch ist eine andere Sache [zusätzlich zu hohen Produktionsvolumeneffekten], die manchmal einige Kopfschmerzen rechtfertigen kann. Weniger kann tun, wenn er einen Betrieb mit sehr geringem Stromverbrauch wünscht und der uC (den er gewählt hat) dies nicht unterstützen kann.
Der Fokus auf die Entwicklungsumgebung ist absolut richtig. Sie könnten den besten Chip der Welt haben, aber wenn Sie das verdammte Ding nicht programmieren und debuggen können, kann es genauso gut ein Baustein sein. Ich habe viel Gutes über NXP gehört, aber keine direkte Erfahrung. Ich dachte, Freescale sei schlecht, aber dann habe ich TI (MSP und dann DM36x) ausprobiert, und jetzt ist Freescale in meinen Augen ein leuchtendes Leuchtfeuer der Brillanz. Bester Ratschlag für JEDE Entwicklungsumgebung: Bauen/installieren Sie es in einer virtuellen Maschine und bewahren Sie ein Backup davon in einem voll funktionsfähigen Zustand auf, damit es beim Verschieben von Computern / Aktualisieren des Betriebssystems usw. nicht kaputt geht ...
Eine weitere etwas andere Kriterienliste findet sich in diesem Thread .

Da diese Frage nicht ganz zu dem erhofften Plattformvergleich geführt hat, habe ich versucht, selbst einen zu erstellen, indem ich die Literatur sowie die anderen Antworten studiert habe. Vielleicht kann das in Zukunft jemand anderem helfen.

Bitte lassen Sie mich wissen, wenn es irgendwelche Fehler gibt oder wenn es Informationen gibt, die ich hinzufügen kann.


Plattformvergleich

Hinweise zum Vergleich:

  • IDE: Kommentare beziehen sich auf die kostenlose Version

BILD:

  • mit Abstand die günstigsten Einsteiger-Chips
  • Viele haben interne Spannungsregler
  • zum gegebenen Preis haben normalerweise mehr und bessere Peripheriegeräte
  • quasi Industriestandard: sehr gute Bibliotheken und Entwicklerunterstützung
  • IDE: NetBeans-basiert, hervorragend, einschließlich vollständiger Offline-Simulation und Debugging
  • Debugger von Drittanbietern: ca. 25 $
  • sehr große Auswahl an Paketen
  • Alleinstellungsmerkmale: 1. XLP = Geräte mit besonders geringem Stromverbrauch verfügbar; 2. Viele moderne Chips haben das Capacitive Sensing Module für Berührungstasten usw.

AVR:

  • AVR hinkt im Allgemeinen den Peripheriegeräten hinterher und ist etwas teurer. Im Großen und Ganzen ist AVR jedoch in Funktionalität und Preis den PICs sehr ähnlich.
  • 8-Bit-AVR-Chips sind schneller als 8-Bit-PIC-Chips
  • Emulatoren von Drittanbietern: ca. 20 $
  • sehr große Auswahl an Paketen

Arm Cortex-M:

  • moderne Prozessorarchitektur: kein Memory Banking, gutes Multitasking
  • mit Abstand die billigsten 32-Bit-Geräte
  • ziemlich einfach zwischen verschiedenen Chips und verschiedenen Herstellern zu wechseln
  • Geräte erfordern im Allgemeinen mehr externe Komponenten als PICs
  • sehr günstige USB-Geräte mit ROM-Bootloader: NXP LPC1342/LPC1343
  • angemessene Bibliotheksunterstützung
  • IDE: vernünftig, keine Offline-Simulation
  • SWD-Schnittstelle ermöglicht In-System-Programmierung, Debugging und Tracing mit einfach zu bauender Hardware (
  • preiswerte NXP-Chips gibt es nur in Small-Pitch- oder Pin-less-Gehäusen
  • Verkaufsargumente: 1. günstigste 32-Bit-Plattform; 2. Günstigste Plattform mit USB-ROM-Bootloader

PSoc: (aus Rocketmagnets Antwort)

  • König, wenn es um analoge Peripheriegeräte geht: Ein bestimmter Chip kann intern neu konfiguriert werden, um verschiedene analoge und digitale Peripheriegeräte bereitzustellen
  • deutlich teurer als PICs
  • IDE: ausgezeichnet
  • $88 Programmierer (erlaubt es Debugging?)
  • nur SMD-Gehäuse

Propeller: (aus Rocketmagnets Antwort)

  • Mehrkern-MCU: Verschiedene Kerne können simultan an verschiedenen Aufgaben arbeiten
  • eliminiert/reduziert (?) die Notwendigkeit herkömmlicher Interrupts
  • wenige Hardware-Peripheriegeräte, die explizit für die Ausführung auf einem der Kerne codiert werden müssen, bieten eine unglaubliche Flexibilität
  • schwach, wenn es um analoge Peripherie geht
  • IDE: ausgezeichnet
  • DIP-Paket verfügbar

Vergleich nach Anwendung

USB:

"Legende" für die Liste unten:

  • Bootloader = vorprogrammierter USB-Bootloader
  • Spannungsregler = kann ohne externen Regler vom Bus versorgt werden
  • Klimmzüge = kein externer Klimmzug erforderlich
  • Impedanzanpassung = keine Notwendigkeit für externe Anpassungswiderstände
  • Präzisionsoszillator = kein externer Quarz erforderlich

Eigenschaften des günstigsten Gerätes: (in etwa Preisreihenfolge)

  • PIC: 8bit, Low- und Full-Speed, Spannungsregler, Pullups, Impedanzanpassung, ESD-Schutz
  • NXP: 32bit, Bootloader, nur Full-Speed, ESD-Schutz
  • Freescale: 8bit, nur Low-Speed, Spannungsregler, Impedanzanpassung, ESD-Schutz
  • Atmel: 8bit, Bootloader, nur Full-Speed, Spannungsregler, Pullup, ESD-Schutz
  • STM: 32bit, Bootloader, nur Full-Speed, Pullup, Impedanzanpassung, ESD-Schutz
  • Silicon Laboratories: 8bit, Low- und Full-Speed, Spannungsregler, Pullups, Impedanzanpassung, Präzisionsoszillator
  • TI: 32bit, Bootloader, Low- und Full-Speed, andere Eigenschaften unbekannt
  • PSoc: als Modul konfigurierbar, andere Eigenschaften unbekannt
  • Propeller: 32 Bit, nur Bitbanging

Ethernet:

  • PIC: billigstes Gerät mit integriertem PHY
Ein paar Anmerkungen hier: Propeller hat überhaupt keine Interrupts und es gibt keine Unterstützung für Debugging in der offiziellen IDE. Stattdessen scheint der bevorzugte Debug-Mechanismus darin zu bestehen, das Ding an einen Fernseher anzuschließen und eine bereitgestellte Bibliothek zu verwenden, die Variablen auf dem Bildschirm anzeigt. Außerdem gibt es keine Codevervollständigung, keinen Simulator, keine Integration mit Codeverwaltungssystemen, ungewöhnliche Implementierung von Includes ... Außerdem gibt es meines Wissens keine Hardwareperipherie außer den zwei Zählern pro Kern.
Haben Sie auch eine Quelle für den 20-Dollar-AVR-Emulator? Soweit ich gesehen habe, ist das der übliche Preis für Programmierer.
@AndrejaKo Ich dachte an den Olimex AVR-USB-JTAG . Danke für die Hinweise zum Propeller. Ich werde sie in meine nächste Bearbeitung aufnehmen.
Interessantes Gerät. Es scheint mir, dass Atmel JTAG-fähige Geräte zugunsten von Debug-Wire-Geräten vernichtet, und es scheint fast keine Klone des JTAGICE MK2 zu geben.
Hinweis zum Propeller - Er hat KEINE Unterbrechungen. Überhaupt . Wenn Sie etwas benötigen, das einem herkömmlichen Interrupt ähnelt, drehen Sie einen zusätzlichen CPU-Kern hoch und lassen ihn drehen und warten.
Nachdem ich ziemlich ausführlich mit dem Propeller gearbeitet habe, würde ich Ihrer Bewertung der IDE nicht zustimmen. Persönlich denke ich, dass es eine Art Scheiße ist, es ist bestenfalls mittelmäßig (Sie können keine Tabulatoren verwenden! Es hat keine Option, die Tab-Space-Konvertierung auszuschalten).
Wie würde so etwas wie die xmos-Prozessorreihe im Vergleich zu diesen in Bezug auf Einfachheit, Flexibilität und Leistungsfähigkeit abschneiden? Ich verstehe, dass der xmos kein Mikrocontroller wie der Rest ist, aber er sieht im Vergleich zu den Propellern wie eine sehr attraktive Plattform mit der umgekehrten Philosophie aus (ein wirklich leistungsstarker Kern, der anstelle vieler Kerne kombiniert wird).
@ArikRaffaelFunke Ihre Kommentare zu PIC scheinen nur die 8-Bit-Geräte anzunehmen. Sie sagen: "Der Arm Cortex-M hat mit Abstand die billigsten 32-Bit-Geräte". Bei Digi-Key kostet der billigste PIC32 mit 16K Flash und 4K RAM 2,90 $. Der billigste Arm Cortex-M mit dem gleichen Flash und RAM kostet 2,65 $. Allerdings ist der PIC32 in 100 Stück tatsächlich etwas billiger. Jedenfalls halte ich die Behauptung "mit Abstand der billigste" für den ARM für nicht sehr zutreffend. Und viele Versionen des PIC32 sind in einem DIP-Paket erhältlich, was für 32-Bit-Prozessoren ungewöhnlich ist.
Eine solche Liste ist fast zwangsläufig sinnlos und veraltet. Alle Hersteller konkurrieren ständig miteinander und die meisten versuchen, in jeder Kategorie etwas anzubieten – Sie führen eine Umfrage durch, wenn Sie Bedarf haben, wählen eine Lösung aus, und wenn sie funktioniert, arbeiten Sie damit, bis Sie Bedarf haben wofür es eine bessere Lösung gibt.
Für das, was es wert ist, könnten Sie hier auch die MSP430-Reihe wegen ihres extrem niedrigen Stromverbrauchs einbeziehen
@ChrisStratton: Eine solche Liste auf Papier oder in einem 5 Jahre alten Blogbeitrag wäre veraltet. Diese Liste kann jedoch bearbeitet werden, sodass sie immer über die neuesten Informationen verfügt.
„Eingebettete Systeme/bestimmte Mikroprozessoren“ enthält ähnliche Informationen zur Auswahl eines Prozessors, der ebenfalls bearbeitet werden kann, um ihn (hoffentlich) auf dem neuesten Stand und relativ neutral zu halten.
@ConnorWolf, deshalb nennen sie es sicher Propeller - es muss sich ständig drehen, um irgendwohin zu gelangen? :P

Ihre Wahl der MCU hängt stark von der Art der Projekte ab, an denen Sie arbeiten werden. Stellen Sie großvolumige, supergünstige und einfache Geräte wie blinkende Fahrradlichter her? Sie entwickeln komplexe Roboterprototypen, die mit zahlreichen bizarren IO-Geräten und Sensoren zurechtkommen müssen?

An letzterem arbeite ich hauptsächlich. Das Hauptproblem für mich besteht darin, Mikrocontroller zu finden, die über das gewünschte Peripheriegerät verfügen. Dies ist sehr schwierig, da unsere Anforderungen nicht dem Mainstream zu entsprechen scheinen. Wir wollen Dinge wie 5 PWM-Kanäle, 5 Quadratur-Decoder, 2 nicht standardmäßige SPI-Ports und einen UART mit negiertem IO.

Die einzigen MCUs, die ich gesehen habe, die diese Art von Anforderungen problemlos bewältigen können, sind der PSoC und der Propeller.

Propellerchips

Der Propeller besteht im Wesentlichen aus acht 32-Bit-MCUs in einem einzigen Chip. Wenn Sie irgendeine Art von Peripherie benötigen, programmieren Sie einfach eine der MCUs, um diese Aufgabe auszuführen. Sie können also haben, was Sie wollen.

PSoC

Die PSoCs gibt es in zwei Varianten, 3 und 5. Die 3 ist ein 8051-Kern und die 5 ist ein ARM-Cortex M3. Ebenfalls auf dem Chip enthalten sind rekonfigurierbare digitale und analoge Blöcke, die zu einer Vielzahl von Peripheriegeräten verarbeitet werden können: ADCs, Filter, Operationsverstärker, DACs, SPI, UART, Quadratur-Decoder, CRC-Generator usw.

Die Entwicklungsumgebung ist fantastisch. Sie haben die übliche Bearbeitung des Quellcodes einer typischen IDE, aber Sie haben auch einen Schaltplaneditor. Sie können buchstäblich jede beliebige digitale Schaltung verdrahten und die Peripheriegeräte mit Gattern, Flipflops usw. verbinden. Benötigen Sie 5 PWMs? Ganz einfach, fügen Sie sie einfach in den Schaltplan ein, verkabeln Sie sie und los geht's. Sie können sogar Ihre eigenen Peripheriegeräte in Verilog schreiben, wenn Sie etwas wollen, das nicht bereitgestellt wird. Ein großer Teil Ihrer Anwendung lässt sich einfach in diese Art von Hardware implementieren.

Der wirkliche Vorteil besteht darin, dass Sie bei einem Chip bleiben können, da Sie wissen, dass er viele der Projekte bewältigen kann, die Sie in Zukunft durchführen möchten. Was ich an PICs ärgerlich fand, war das ständige Durchsuchen von Dutzenden von Geräten auf der Suche nach demjenigen, das das bestimmte Peripheriegerät hatte, das ich brauchte. Jetzt habe ich das Problem nicht.

Der Propeller ist ein merkwürdiges Konzept. Da muss ich ein bisschen nachdenken. In Bezug auf PSoC: Ich habe diese in der Vergangenheit aufgrund der unglaublichen Flexibilität in Betracht gezogen, aber die Notwendigkeit eines 250-Dollar-Programmierers machte es für mich so ziemlich zu einem Nichtstarter.
@ArikRaffaelFunke - Der Programmierer kostet nur 88 $ , weniger als die Hälfte des Preises des ICD3 .
@ArikRaffaelFunke - eine weitere Überlegung ist die Verpackung. Wenn Sie planen, Ihre eigenen Prototypen zu bauen, dann ist es viel einfacher, mit DIP-Paketen zu arbeiten. Die meisten PICs und ATmel AVRs sind in DIPs erhältlich, ebenso wie der Propeller. Die PSoC 3 und 5 nicht.
@tcrosley - Ja, das ist ein weiterer guter Punkt. Es ist etwas, wonach viele Leute Cypress gefragt haben.
Schmartboard hat eine einfach zu verwendende SMT-to-Dip-Lösung: youtube.com/watch?v=-32orELxkpE
+1. Ich habe PSOC 1 (M8C-Kern) in DIP-Paketen verwendet, damals, als PSOC 3 und PSOC 5 nur Gerüchte waren. Ich sehe, dass "PSoC 4" seit kurzem verfügbar ist. Jetzt 4 Geschmacksrichtungen?
Hmm, das wurde 2012 gepostet, aber ich werde trotzdem fragen. Da Sie eine periphere Anforderung haben, die nicht dem Mainstream entspricht, haben Sie jemals daran gedacht, zu Softcores (Nios II von Altera und Picoblaze und Microblaze von Xilinx) überzugehen? Mit einem Softcore auf einem FPGA gibt es unendlich viele Möglichkeiten, was auf einem einzigen FPGA zusammengestellt werden kann.
@quantum231: Ich habe darüber nachgedacht, aber: 1) FPGAs schienen im Allgemeinen größer und teurer zu sein als Mikrocontroller (und Roboter haben oft verzweifelt wenig Platz). Und 2) Ich habe nicht viel Erfahrung mit FPGAs, und es ist immer mühsam, nur für eine geringfügige Anwendung ein völlig anderes Toolset und eine völlig andere Denkweise erlernen zu müssen.
Ich würde diese nicht für den professionellen Gebrauch empfehlen, da sie eine Aufzeichnung davon haben, dass ihre Produkte kurzfristig auslaufen / veraltet sind.

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.

Die Verwendung von mehr als einer Plattform ist in Ordnung. Auswahl des 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 Visual Studio, pic hat ein großartiges Werkzeug und andere auch. Für mich geht es also darum, wie schnell und einfach ich die Arbeit gut erledigen kann + wie viele Open-Source-Leute arbeiten an derselben Sache?

Aber wie findet man solche Informationen, ohne durch Marketing-Unordnung in die Irre geführt zu werden? Ich meine, wir müssen Leute finden, die die Hardware und die Toolchain verwendet haben, um all diese Informationen zu erhalten. Wie finden Sie solche Gemeinschaften in Ihrem Job? Oder verlassen Sie sich auf das, was Ihnen der Anwendungstechniker sagt?
Sie können Fragen in verschiedenen Foren wie diesem stellen. Erklären Sie Ihre Anwendung und bitten Sie um Hilfe

Mikrocontroller sind eine sich schnell verändernde Welt, es gibt viele Vorteile, sich mit den aktuellen "in"-Chips vertraut zu machen, und am bemerkenswertesten ist, dass die beliebtesten IDEs Hilfe von der Community erhalten. Als PIC-Person würde ich sagen, dass das Aduino im Moment wahrscheinlich die besten IDE- und Entwicklungsboards für Neulinge hat, und Sie können einem einfachen Aduino-Board viel hinzufügen, ohne einen Lötkolben zu berühren.

Jeder, der ein Aduino für echte Dinge verwendet, möchte vielleicht bald weitermachen, aber bis dahin werden Sie eine Menge grundlegender digitaler Elektronik und eine gute Untergruppe von C gelernt haben, um leicht etwas Passenderes zu verwenden.

Wie jemand erwähnt hat, wählen Sie den Chip für Ihr Projekt aus. Ich habe einige Projekte gesehen, bei denen ARM-Chips als einfache Temperatursensoren oder AD-Wandler verwendet wurden. Genauso habe ich Aduinos und PIC 16 gesehen, die an ihre Grenzen getrieben wurden, um ein Space Invaders-Spiel, FPGAs, zu generieren sind auch toll und es ist gut, HDL zu verstehen, wenn Sie sich ernsthaft mit Elektronikdesign beschäftigen. Aber leider gibt es in der realen Welt nicht viele Projekte, bei denen Sie eines verwenden müssen. Die meisten Jobs sind geringes Volumen, schnelles Design und Preisbeschränkungen und Hier regiert das 8-Bit-uC

Ich verstehe, was sind die Einschränkungen von Arduino, die eine Person dazu bringen würde, sich über sie hinaus zu bewegen? Hat ARM mehr Rechenleistung als PIC und Arduino, verfügt es über Peripheriegeräte, die in PIC und Arduino nicht vorhanden sind, oder ist seine Toolchain der von PIC und Arduino überlegen? Warum so viel Lärm um ARM-basierte Chips? Ich weiß, dass sie einen sehr geringen Stromverbrauch haben, aber warum sollte ARM sonst für "ernsthafte" Projekte ausgewählt werden?

Da sich viele der geposteten Antworten auf die Verwendung durch Hobbyisten konzentrieren, kommen hier verschiedene Empfehlungen, die sich nur an professionelle Entwickler richten.

Absolute Mindestanforderungen
Erfüllt die MCU diese nicht alle , sollte sie nicht verwendet werden.

  • Seit mindestens 1 Jahr in Produktion.
  • Silicon Errata ist verfügbar und wurde mindestens einmal überarbeitet.
  • Interner Wachhund.
  • Interne Unterspannungs-/Unterspannungserkennung.
  • Flash-Speicher auf dem Chip.
  • ESD-Schutz.
  • JTAG/SWD oder eine Single-Wire-Debugging-Schnittstelle.
  • Der Kern verwendet 8-Bit-Bytes und Zweierkomplement-Vorzeichen.
  • Muster und Evaluierungsboards sind jederzeit verfügbar.
  • Hat reaktionsschnellen technischen Support direkt vom Hersteller.

Warnzeichen - MCU-Hardware
Das sind Dinge, mit denen Sie im Jahr 2019 keine Zeit verschwenden sollten.

  • Obskure Adressierungsmodi, die vom Programmierer gehandhabt werden müssen. Einschließlich der Verwendung obskurer, nicht standardmäßiger Schlüsselwörter, um auf ROM-Daten zuzugreifen.
  • Starke Beschränkungen des Stack-Speichers oder der Stack-Tiefe.
  • 16 Bit int, was wiederum mit allen versteckten Gefahren von Integer-Promotions in C-Sprache einhergeht.
  • Kann keine 16- oder 32-Bit-Arithmetik ausführen, ohne zu kochen.
  • Trapiert nicht, wenn Sie Code in Datenabschnitten ausführen.
  • Kein Anweisungs-Trace-Puffer.
  • Kommt mit exotischer Hardware-Peripherie, für die Sie keine Verwendung haben.

Warnzeichen - Werkzeugkette

  • Verlässt sich auf Software-Simulatoren im PC oder eine Art Bootloader, anstatt die gesamte MCU zu flashen und On-Chip-Ausführung/Debugging zu verwenden.
  • Kommt nicht mit vorgefertigten Treibern/Beispielen/Bibliotheken, die von Profis geschrieben wurden. Verlässt sich auf Entwickler, die das Rad neu erfinden, oder auf Internetforen/Open Source.
  • Die CRT für den C-Compiler erfüllt die hier aufgeführten Anforderungen nicht .
  • Der C-Compiler enthält eine lange Liste von C-Standardfunktionen, die nicht unterstützt werden.
  • Der C-Compiler unterstützt C11 immer noch nicht (unabhängig davon, ob Sie beabsichtigen, es zu verwenden oder nicht).
  • Die IDE spuckt mehrere seltsame Linker-Fehler aus, wenn Sie das erste Mal versuchen, ein „Hello World“-Programm zu verwenden.
  • In den ersten Wochen der Nutzung treten viele IDE- oder Compiler-Fehler auf.
Das ist zu dogmatisch. Sie haben Kosten, Verpackungsoptionen (Open Source != unprofessionell), Qualität der Peripherie usw. vollständig weggelassen. Ich bin dem größten Teil davon nicht generell widersprechen, aber Dingen wie "Stack-Beschränkungen" nur bedeutet, dass Sie den Kompromiss kennen müssen, der überhaupt zu diesen Einschränkungen geführt hat.
@awjlogan Kosten- und Verpackungsoptionen sind sehr projektspezifisch, daher ist es nicht sinnvoll, hier darauf einzugehen. Ich habe nicht gesagt, dass Open Source unprofessionell ist, aber ein Unternehmen, das seine Toolkette auf Open Source auslagert und deren Support an Sites wie SO auslagert, ist nicht professionell. Obwohl Open-Source-Projekte mit zu wenigen Mitwirkenden auch nicht professionell sind, wie wir bei Open-Source-Compiler-Portierungen auf verschiedene exotische MCUs sehen können. Es sollte keine Gründe geben, sich im Jahr 2019 für eine MCU mit begrenztem Stack zu entscheiden.
Sicher, sie sind projektspezifisch, aber Sie haben Ihre Basiskosten sofort erhöht, indem Sie in Ihrer Liste nur 16/32 Bit angegeben haben (schneller Scan von Digikey), und ich habe in letzter Zeit keinen 6-poligen M0 gesehen. Wenn Sie etwas (einschließlich Zeit) nicht brauchen, geben Sie nicht das zusätzliche Geld dafür aus, das sind die Entscheidungen, die Sie als Profi treffen sollten. Aber ja, gutes Werkzeug ist so wichtig, dem kann ich nur zustimmen.
@awjlogan LPC81X gibt es seit über 5 Jahren. Ich habe erst kürzlich von Cypress PSoC4 erfahren, was interessant aussieht. Usw. Die Anzahl der Pins ist oft kein Argument, sondern nur die Größe und Art des Gehäuses. Wenn Sie QFN oder BGA vertragen, können Sie sehr kleine Chips erhalten.
Sie sind sich einig, dass Ihre Auswahl bei kleiner Größe eingeschränkt ist (dies gilt jedoch für jede Architektur). Mein allgemeiner Punkt ist, dass, obwohl alle Dinge auf Ihrer Liste wünschenswert sind, Sie auch genug Ahnung haben sollten, um zu wissen, wann Sie sie brechen müssen.
@awjlogan Das Hauptargument hier ist, nicht irgendeinen ekligen 8-Bitter zu wählen, nur weil man die letzten 20 Jahre unter einem Felsen gelebt hat, sondern eine fundierte Entscheidung zu treffen, die darauf basiert, wie der Markt jetzt aussieht, und nicht darauf, wie er innen aussah das Jahr 1995.
absolut, da stimme ich voll und ganz zu, aber eine "informierte Entscheidung" sollte rational und nicht dogmatisch sein.
@awjlogan Sie werden es schwer haben, jemanden zu finden, der dogmatischer ist als die 8-Bit-Lobby. Ihnen gingen vor 10 Jahren die stichhaltigen Argumente aus und doch machen sie weiter.
Auch hier stimme ich voll und ganz zu! :)

Wenn Sie sich für allgemeine Aufgaben entscheiden, die analoge und digitale Verarbeitung haben können, dann hätte ich PSoC wegen seiner IDE, seines Debuggers und der schieren Anzahl von Dingen, die Sie damit machen können, bevorzugt.

Ich habe PSoC3 im College für meine Projekte verwendet und es ist ziemlich einfach zu meistern. Die einzige Sache ist, wenn Sie einige Leistungschips benötigen, müssen Sie sie immer noch separat erwerben. Es hat genug gute Ports. Wenn Sie also einige Leistungschips zusammen mit dem Entwicklungskit suchen, entscheiden Sie sich besser für separate Komponenten.

Es könnte sich lohnen, ein bisschen mehr Informationen zum PSoC hinzuzufügen, um dies nützlicher zu machen, ein paar andere Antworten decken es bereits ab.
@PeterJ: Ich wollte dies als Kommentar zu Rocketmagnets Antwort geben, aber ich habe keinen Ruf, einen Kommentar abzugeben.
Gibt es einen Grund, warum Sie sich nicht für Softcore-basiertes Design entschieden haben, wie Nios II auf Altera FPGA oder Microblaze/Picoblaze auf einem Xilinx FPGA? Sie können verwendet werden, um den gleichen Effekt wie der PSoC zu erzielen, und ich würde behaupten, dass sie in vielerlei Hinsicht eine bessere Wahl sind.
@quantum231 : Ich würde das akzeptieren, aber die Hauptbeschränkung für mich war damals das Budget und das war kostenlos in unserer Elektronikabteilung verfügbar.