Welche ARM-MCU-Familie ist besser für Anfänger? [geschlossen]

Welche ARM-MCU-Familie ist besser für Anfänger?

Ich meine welche Familie:

  • Ist unkompliziert und leichter zu erlernen
  • Hat mehr/bessere Lern- und Entwicklungsressourcen zur Verfügung
  • Hat eine größere und bessere Community
  • [Hat FLOSS Lern- und Entwicklungssoftware/-hardware verfügbar]

Aktualisieren:

  1. Ist es eine gute Idee, mit Cortex-M4 zu beginnen? (wegen ARMv7, Harvard Mem Arch etc)
  2. zwischen NXP-, ST- und TI Cortex-M4-basierten MCUs, was ist besser für den Anfang? (basierend auf den oben genannten Anforderungen)
Diese Frage könnte als meinungsbasiert angesehen werden, da "besser" ziemlich subjektiv ist, obwohl ich denke, dass es einen allgemeinen Konsens geben wird
Bitte schließen Sie diese Frage nicht, da sie sehr interessant ist. Es gibt eine begrenzte Anzahl von Optionen, es ist nicht meinungsbasiert, die Informationen sind für viele Benutzer relevant, die Informationen sind langlebig, weil die Toolchains seit einem Jahrzehnt existieren und es nur sehr wenig Veralterung gibt. Alles in allem sind die Informationen nützlich und da, um zu bleiben.
nicht als Antwort hinzufügen, weil ich keine andere Erfahrung habe, aber persönlich bin ich nach Arduino auf eine stm32f3discovery gesprungen und eigentlich war der schwierigste Teil das Einrichten des Build-Tools. Dank CMSIS und anderen RTOS wie Chibios können Sie eine Schnittstelle haben, die Ihnen beim Verbergen von Registern und solchen Dingen sehr hilft oder Beispiele dafür liefert, wie Dinge implementiert wurden.
Ich bin enttäuscht, dass diese Frage geschlossen wird. Ich bin bereit zu glauben, dass Sie es hauptsächlich getan haben, um mich zu ärgern, und dann die Gründe danach gefunden haben. Das ist genau die Art von Frage, die wir brauchen. Es profitiert von der umfangreichen kombinierten Wissensbasis der SE.EE-Benutzer. Es könnte besser formuliert sein, zB "Welche ARM-Entwicklungs-Toolchains gibt es und was sind ihre Vorteile" oder so ähnlich.
Meine Stimme wäre "egal". Ich bevorzuge die Verwendung eines einfachen GCC (von launchpad.net/gcc-arm-embedded ) mit meinen eigenen Makefiles, Linkerscript und Startcode. Ich mag den LPC1114 und den LPC810, weil sie in DIP sind und das (Boot-)Laden mit lpc21isp einfach ist, aber ich könnte ohne großen Aufwand zu jedem anderen Chip wechseln, der Hands-Off-Bootloading unterstützt.
@PkP Ich habe nicht für das Schließen gestimmt, weil es geschlossen war, bevor ich hier ankam, aber ich entschied, dass ich für das Schließen gestimmt hätte, bevor die Frage vollständig geladen wurde, streng basierend auf dem Titel. 95%, dass die Intuition richtig ist.
@ Matt, verständlich. Ich hatte die gleiche Intuition, daher schrieb ich den Kommentar, um zu bitten, ihn nicht zu schließen. Ich frage mich, warum es üblich ist, die Fragen zu Produktempfehlungen zu schließen. Welche Seite könnte aufgrund des Abstimmungssystems besser für diese Art von Fragen geeignet sein als Stack Exchange? Vielleicht verwende ich mein Urlaubsgeld, um genug Schnaps zu kaufen, um es zu wagen, eine Meta darüber zu schreiben, und stelle mich dem Zorn der Community!
@PkP Während solche Fragen hier nicht erlaubt sind, gibt es andere Dinge, die wir nicht besonders mögen. Eines davon ist Ihr Ton. Bei EE.SE lassen wir keine Fragen zu Produktempfehlungen zu, da EE.SE für das Elektronikdesign, das Erstellen einer Schaltung, das Testen, den Aufbau und nicht für den Kauf bestimmt ist. Es gibt viele andere Foren, die Ihnen beim Kauf eines Produkts helfen, aber so wie es aussieht, ist EE.SE einer der wenigen Orte, an denen Sie eine wirklich endgültige Antwort auf ein bestimmtes Problem in einer bestimmten Anwendung erhalten können.
@Funkyguy, du darfst dich gerne so fühlen. Und ich verstehe die Richtlinie in Bezug auf Produktempfehlungen, es tut mir nur leid, dass es sie gibt, weil die Komponentenauswahl einen so großen Teil des Elektronik-(Produkt-)Designs ausmacht und so viel Zeit, Überlegung und Energie kostet, und dies wäre eine großartige Community dafür beantworte solche Fragen. Und danke für Ihre Antwort auf diese Frage, es ist genau die Art, die sehr nützlich ist, und ich hoffe, wir würden hier mehr Antworten dieser Art sehen.
@PkP Aw danke für dein Verständnis. Ich hasse es wirklich, der Bösewicht zu sein. Ich stimme zu, dass es ein großer Teil eines Projekts ist, obwohl wir uns anscheinend nur darauf verlassen, dass der Fragesteller zuerst eine gute Menge an Recherche durchführt. Wir hoffen, Sie in unserer Community zu sehen.

Antworten (3)

1.Ist es eine gute Idee, mit Cortex-M4 zu beginnen? (wegen ARMv7, Harvard Mem Arch etc)

Ja, warum nicht? Wenn Sie in der C-Sprache programmieren, werden Sie den Unterschied meiner Meinung nach nicht spüren (nur der Compiler wird es tun). Wenn Sie dagegen in Assembler programmieren, gibt es natürlich Unterschiede.

2. zwischen NXP-, ST- und TI Cortex-M4-basierten MCUs, was ist für den Anfang besser? (basierend auf den oben genannten Anforderungen)

Von diesen MCU kenne ich nur die TI Tiva MCU. Sie können das kostengünstige LaunchPad TM4C123G der C-Serie von Tiva kaufen. Auf diesem Launchpad befinden sich zwei MCU. Einer von ihnen fungiert als Programmierer und Sie können ihn, falls gewünscht, zum Programmieren/Debuggen einer externen Tiva C MCU verwenden.

Sie können eine Arduino-ähnliche Programmier-IDE namens Energia verwenden, um einfache Anwendungen sehr schnell zu programmieren. Für komplexe Anwendungen sollten Sie Code Composer Studio (CCS) verwenden, das unter bestimmten Bedingungen kostenlos ist (einer davon verwendet es mit langsamen Programmierern wie dem im Launchpad). Aktuelles CCS (Version 6) ermöglicht die einfache Installation von Bibliotheken und Beispielen. Kostenlose Bibliotheken, die es ermöglichen, "einfach" (dies ist natürlich relativ) mit Peripheriegeräten innerhalb der MCU zu arbeiten, mit externen Peripheriegeräten zu kommunizieren oder ein RTOS (Echtzeitbetriebssystem) zu haben.

Vieles davon hängt davon ab, was Sie unter "Familie" verstehen.

Wenn Sie fragen, welche Produktfamilie des Herstellers ein guter Ausgangspunkt ist, würde ich die SAM-Serie von Atmel im Grunde wegen der Toolchain empfehlen, zumindest wenn Sie Windows verwenden.

ARM ist leider ziemlich fragmentiert, was Herstellersupport und Toolchains für Windows angeht.

Atmel hat Atmel Studio , das Sie installieren und es funktioniert im Grunde einfach. Ich verbrachte eine Weile damit, mit STM32-Teilen herumzustöbern, bevor ich einige Atmel-Geräte ausprobierte, und es war ein großer Ärger, eine funktionierende Toolchain zu bekommen. Ich habe CooCox schließlich zum Laufen gebracht , aber es gibt sehr wenig First-Party-Support. Atmel Studio funktioniert direkt nach der Installation. Das ist nett, weil es erforderlich sein kann, GCC unter Windows zum Laufen zu bringen.


Wenn Sie mit MCU-Entwicklung überhaupt nicht vertraut sind, kann ich ARM überhaupt nicht empfehlen. Sie müssen auf jeder Plattform viel zwischen den Zeilen lesen, damit die Peripheriegeräte funktionieren.

Interessante Kommentare zu CooCox. Obwohl ich dem Mangel an Erstanbieterunterstützung zustimme, fand ich es sehr einfach, mit STM32 (unter Windows) zu arbeiten - es hat einfach funktioniert - und die Debugging-Unterstützung (zumindest für STM32) ist für eine kostenlose Lösung verdammt beeindruckend imo.
@markt - Ich habe es mir vor ungefähr einem Jahr angesehen, es ist möglich, dass es sich stark verbessert hat.

Der ARM Cortex M0 ist die niedrigste und einfachste Architektur in der ARM-Familie.

Persönlich habe ich mit dem Entwicklungsboard FRDM-KL25z von Freescale gelernt, obwohl es eine Vielzahl von Optionen gibt.

Es gibt eine Arduino-ähnliche Umgebung namens mBed, die Arduino sehr ähnlich ist, obwohl sie für ARM-Controller gedacht ist. Sie können mBed mit vielen verschiedenen Controllern wie dem Teensy und sogar dem von mir erwähnten FRDM-Entwicklungsboard verwenden.

Wenn Sie nicht nach einer Arduino-ähnlichen Umgebung suchen, können Sie das von mir erwähnte FRDM-Entwicklungsboard von Freescale verwenden, das über eine kostenlose Entwicklungsumgebung verfügt, die einen Codegenerator namens Processor Expert enthält. Mit Processor Expert können Sie Komponenten und Kommunikationsprotokolle spezifizieren und dann den Rohcode für Sie generieren. Der Code ist immer noch Bare-Metal-Code und wird dem Code sehr ähnlich sein, den Sie schreiben würden, wenn Sie Processor Expert nicht verwenden würden.

Eine weitere sehr beliebte Linie, insbesondere bei den Benutzern hier bei EE.SE, ist die Discovery-Reihe von Entwicklungsboards von ST Microelectronics.

Kurz gesagt, für Einsteiger würde ich die Cortex-M0-Serie sehr empfehlen. Der Cortex-M0+ hat den gleichen Befehlssatz, obwohl er optimierter ist.

M0+ hat den gleichen Befehlssatz wie M0. Es ist optimiert, um kleiner zu sein, und hat eine 2-stufige Pipeline anstelle der 3-stufigen eines M0, sodass seine Verzweigungsstrafe 2 statt 3 Takte beträgt (also auf demselben Takt etwas schneller ist).
@WoutervanOoijen Danke für die Klarstellung. Ich war mir nicht sicher und dachte aus irgendeinem Grund nicht daran, es nachzuschlagen. Ich habe meinen Beitrag aktualisiert
Der Unterschied zwischen den verschiedenen Cortex-M-Kernen ist für die Nutzungskomplexität im Grunde irrelevant: Die meiste Arbeit entfällt auf den Umgang mit Toolchain und Peripherie.