Forum: Mikrocontroller und Digitale Elektronik Umstieg AVR -> ARM, mit welchem Cortex anfangen?


von Mirko (Gast)


Lesenswert?

Hallo,

ich habe mich bisher nur mit den Atmel ATmegas/ATtinys beschäftigt, 
möchte jetzt aber gerne mal über den Tellerrand hinausschauen und mir 
ein Evaluierungsboard mit einem Cortex-M-Controller anschaffen.

Die "Marke" ist mir eigentlich egal, aber irgendwie haben es mir Atmel 
(SAM x) und ST (STM32) angetan. Atmel, weil ich hier natürlich schon die 
IDE kenne, und ST weil die Preise für die Eval-Boards extrem günstig 
sind und es eine große Vielfalt verschiedener Cortex-M-basierter 
Controller gibt. Bei Atmel ist mir negativ aufgefallen, dass es 
eigentlich nur zwei Atmel-Evalboards (SAM D20 und SAM4x) gibt. Bei ST 
wiederum fehlt mir eine "professionelle", freie IDE, ich habe mir mal 
ein paar installiert, und am Ende hat mir CooCox noch am besten 
gefallen, aber so ganz zufrieden bin ich damit nicht (wahrscheinlich 
weil ich aktuell noch auf Atmel Studio eingeschossen bin).

In jedem Fall wollte ich mir gerne je ein STM32 und ein SAMx Board 
holen, einfach um zu schauen, womit ich besser zurecht komme. Nun stellt 
sich mir die Frage, mit welchem Cortex-M ich am besten anfangen sollte. 
Rein von den technischen Leistungsdaten mache ich mir da keine Gedanken, 
da selbst der kleinste Cortex-M0+ sowohl von ST als auch von Atmel 
leistungsfähiger und mächtiger ist als der größte ATmega, mit dem ich 
bisher hantiert habe (2560).

Allerdings habe ich die Sorge, dass ich mit einem größeren Cortex-M die 
Messlatte zu hoch hänge und mich überfordere. Allein vom Umfang der 
Dokumentation übertreffen ja die Cortex-M0+ die Doku des Atmega2560 
schon um mehr als 200 Seiten, bei den Cortex-M4 sind es fast dreimal(!) 
so viele.

Wie schätzt ihr das ein, wäre es sinnvoll zum Einstieg zunächst auf 
einen Cortex-M0(+) zu setzen und wenn man diesen halbwegs beherrscht 
dann auf einen Cortex-M3 oder sogar -M4 zu wechseln?

Gruß
Mirko

von Dennis P. (dennisp)


Lesenswert?

Hallo Mirko,

ich bin direkt von AVR zum STM32F4 (Discovery Board für 13€) gewechselt. 
Ich habe mit dem Cortex-0 noch nicht zu tun gehabt. Aber ich denke da 
unterscheidet sich nicht viel zu den anderen. Es gibt lediglich mehr 
Funktionen die du ja nicht nutzen musst am Anfang wie z.B. Ethernet, 
SRAM usw.

An sich war der Umstieg/Erweiterung für mich nicht besonders schwer. Es 
gibt genug Beispiele und Tutorials dazu im Netz. Und da die bei 13€ den 
Programmierer und Debugger gleich dabei hast, kannst du auch nicht viel 
falsch machen. Ich hab zu mindestens nicht bereut.

Mit der IDE hast du schon recht. Ich nutze auch CoCoox, aber für meine 
Bedürfnisse reicht das aus.

Grüße
Dennis

von Tim  . (cpldcpu)


Lesenswert?

Mirko schrieb:
> Wie schätzt ihr das ein, wäre es sinnvoll zum Einstieg zunächst auf
> einen Cortex-M0(+) zu setzen und wenn man diesen halbwegs beherrscht
> dann auf einen Cortex-M3 oder sogar -M4 zu wechseln?

Von der Programmierung ändert sich nicht viel. M3/M4 haben etwas mehr 
und komplexere Peripherie, die Ansteuerung ist aber ähnlich.

Ein Argument für den M0 ist allerdings, dass diese eher in 
"Bastlerfreundlichen" Gehäusen verfügbar sind, so dass man damit auch 
außerhalb eines Testboards arbeiten kann.

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Du kannst hier im Artikel lesen:
- STM32 für Einsteiger
- STM32 CooCox Installation

Ich empfehle einen STM32F2xx oder besser einen STM32F4xx.

von ruepel (Gast)


Lesenswert?

Was evtl. auch hilfreich beim Entscheiden sein könnte, ist das 
AF-Mapping.
Oft hat man ja schon eine vage Idee, was für Peripherie beim Umstieg von 
AVR auf Cortex wichtig ist, und wie sie angeschlossen wird.
Das AF-Mapping für den STM32F4 ist ab Seite 58ff im Datenblatt (zum 
STM32F407xx/STM32405xx).
Beim 100-Pinner hat man dann 3 DIN-A4 Seiten mit den Portpins und ihren 
alternativen Funktionen, die man sich ausdrucken und damit warm werden 
kann.
Ich habe für jedes Peripheriegerät ein Kästchen gemalt.
(Hat mir aber nicht bei einem gedanklichen Fehler geholfen: Bei einer 
SPI ist das Clock-Signal bereits vergeben. Und die zweite paßt auch 
nirgends so richtig rein. Nun müssen 2 RFM12 an einer SPI hängen -> das 
ist ziemlich dämlich, wenn man den ursprünglichen Sinn zweier 
unabhängiger Netze vergegenwärtigt g)

Also so würde ich inzwischen anfangen. Peripherie anschauen und dann 
entscheiden, was einem gefällt, und wie schnell man durchsteigt. Beim 
STM32 geht das recht fix - das Programmieren selbst ist dann schon etwas 
durchwachsener.

Die CooCox-IDE hat mir keine nennenswerten Schwierigkeiten bereitet.

von Robert T. (robertteufel)


Lesenswert?

Mirko schrieb:
> Hallo,
>
> ich habe mich bisher nur mit den Atmel ATmegas/ATtinys beschäftigt,
> möchte jetzt aber gerne mal über den Tellerrand hinausschauen und mir
> ein Evaluierungsboard mit einem Cortex-M-Controller anschaffen.
>
> Die "Marke" ist mir eigentlich egal, aber irgendwie haben es mir Atmel
> (SAM x) und ST (STM32) angetan. Atmel, weil ich hier natürlich schon die
> IDE kenne, und ST weil die Preise für die Eval-Boards extrem günstig
> sind und es eine große Vielfalt verschiedener Cortex-M-basierter
> Controller gibt. Bei Atmel ist mir negativ aufgefallen, dass es
> eigentlich nur zwei Atmel-Evalboards (SAM D20 und SAM4x) gibt. Bei ST
> wiederum fehlt mir eine "professionelle", freie IDE, ich habe mir mal
> ein paar installiert, und am Ende hat mir CooCox noch am besten
> gefallen, aber so ganz zufrieden bin ich damit nicht (wahrscheinlich
> weil ich aktuell noch auf Atmel Studio eingeschossen bin).

Mirko,
die wichtigste Analyse hast du meiner Meinung nach bereits gemacht. 
Wieviel ist dir deine eigene Zeit wert? Offensichtlich kennst du dich 
mit AVR Studio aus und hast somit einen schnellen Start mit den SAM, 
andererseits tummelt sich der STM32 schon viel laenger in den ARM-Cortex 
Gewaessern und hat entsprechend viele Derivate zu bieten. Mir ist immer 
etwas unklar warum der einmalige Preisunterschied von 30 Euro so wichtig 
ist, wenn man dadurch Tage an zusaetzlicher Arbeit investieren muss?
Von ST oder Partnern gibt es auch "richtige Eval-Boards", die kosten 
allerdings etwas mehr als das Discovery.

Das xPlained PRO von Atmel hat den grossen Vorteil, dass es einfach 
erweiterbar ist, erscheint allerdings auf den ersten Blick als etwas 
teuer fuer das was (nicht) auf dem Board ist. Trotzdem ein sehr gutes 
Board fuer den D20 zum Start, hab selbst mehrere verschiedene Boards 
hier vor mir liegen zur Analyse.

Wenn der kostenguenstige Einstieg sehr wichtig und deine Zeit eher 
unwichtig ist, dann schau dir aber mindestens noch das Freedom Board von 
Freescale an.

Offensichtlich bin ich nicht an deiner Stelle, denn mit dem Wissen, das 
du bereits hast waere meine Entscheidung gefallen. Ist dir deine Zeit 
mehr als 1 Euro / Stunde wert? Denkst du, dass es speziell fuer den 
Anfang hilft mehrere Entwicklungsumgebungen auszuprobieren oder verwirrt 
das eher?

In einem anderen Thread habe ich nach Erfahrungen der Forummitglieger 
bezueglich Studio 6.1 und ARM gefragt, denn schliesslich war es frueher 
mal das AVR-Studio und ARM Unterstuetzung ist erst in den letzten 2 
Jahren hinzugekommen. Als AVR Benutzer macht es fuer die Lernkurve jede 
Menge Sinn jetzt einen SAM anzuschauen! Dann kannst du dich auf das 
Lernen der Hardware konzentrieren ohne eine neue IDE als zusaetzliche 
Quelle von Verwirrung beruecksichtigen zu muessen.

Gruss, Robert

von Mirko (Gast)


Lesenswert?

Hallo,

danke für eure Hilfe.

Tim    schrieb:
> Ein Argument für den M0 ist allerdings, dass diese eher in
> "Bastlerfreundlichen" Gehäusen verfügbar sind, so dass man damit auch
> außerhalb eines Testboards arbeiten kann

Das ist natürlich ein Punkt, so wichtig ist mir das aber nicht da ich 
Prototypen ja mit Hilfe der Evalboards entwickeln kann und hinterher 
dann passende Platinen fertigen lasse, 0.5er Pitch kriege ich dann auch 
noch gelötet.

ruepel schrieb:
> Oft hat man ja schon eine vage Idee, was für Peripherie beim Umstieg von
> AVR auf Cortex wichtig ist, und wie sie angeschlossen wird.
> Das AF-Mapping für den STM32F4 ist ab Seite 58ff im Datenblatt (zum
> STM32F407xx/STM32405xx).
> Beim 100-Pinner hat man dann 3 DIN-A4 Seiten mit den Portpins und ihren
> alternativen Funktionen, die man sich ausdrucken und damit warm werden
> kann.

Eine Idee habe ich so gesehen noch nicht. Klar, Display, Taster ggf. 
Funkmodule usw.. Aber erstmal geht es wirklich nur ums Testen und "warm 
werden" mit der neuen Technik.

Robert Teufel schrieb:
> Denkst du, dass es speziell fuer den
> Anfang hilft mehrere Entwicklungsumgebungen auszuprobieren oder verwirrt
> das eher?

Es geht mir eigentlich mehr darum, mir mehrere Optionen offen zu halten. 
Bisher war es ja so, dass man bei ATmegas und ATtinys keine große Wahl 
hatte, entweder man hat einen davon genommen oder nicht. Bei ARM ist es 
ja nun etwas anders, unter der Haube steckt prinzipiell das Gleiche, 
aber die Peripherie ist anders. Wenn nun also ST genau den ARM anbietet 
den ich möchte, dann wäre es ja von Vorteil ihn programmieren zu können, 
ergo die Entwicklungsumgebung zu kennen. Und was die Zeit angeht, ich 
mache das primär als Hobby, da ist der Zeitwaufwand nebensächlich. Und 
ich denke ich kann auch viel lernen, wenn ich ein Programm auf dem SAM 
D20 laufen habe und dann versuche, es möglichst 1:1 auf den STM32 zu 
portieren.

Ich werde es jetzt wie folgt machen, ich hole mir das Atmel SAM D20 
Xplained Pro sowie von ST das STM32F0DISCOVERY, damit dürfte ich dann 
erstmal beschäftigt sein. Und bei dem Preis des Discovery wäre es auch 
nicht schlimm, wenn ich es bei Nichtgefallen irgendwann als Türstopper 
nutze. WIll damit sagen, es ist ja kein rausgeschmissenes Geld, anders 
als wenn ich mir gleich ein dickes Board für 100€ und mehr kaufe.

Den SAM D20 nutze ich dann einfach um zu schauen ob mir Atmel ARMs 
überhaupt zusagen und das STM32F0DISCOVERY nehme ich um mit CooCox warm 
zu werden.

Wie der Zufall so will habe ich eben einem Freund von meinem Vorhaben 
erzählt, und er hat seit zig Monaten ein Olimex STM32-E407 rumliegen und 
kommt nicht dazu sich damit zu beschäftigen. Für nen Kasten Bier, meinte 
er, könnte ich das Teil haben wenn ich mich mit den anderen beiden 
langweile ;). Dafür bräuchte ich dann allerdings noch einen Debugger, 
soweit ich gelesen soll ja der Segger J-Link ganz gut sein, und in der 
EDU-Version ist der ja sogar bezahlbar UND kann quasi mit allen Cortex 
umgehen.

Gruß
Mirko

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mirko schrieb:
> Wie der Zufall so will habe ich eben einem Freund von meinem Vorhaben
> erzählt, und er hat seit zig Monaten ein Olimex STM32-E407 rumliegen und
> kommt nicht dazu sich damit zu beschäftigen. Für nen Kasten Bier, meinte
> er, könnte ich das Teil haben wenn ich mich mit den anderen beiden
> langweile ;). Dafür bräuchte ich dann allerdings noch einen Debugger,
> soweit ich gelesen soll ja der Segger J-Link ganz gut sein, und in der
> EDU-Version ist der ja sogar bezahlbar UND kann quasi mit allen Cortex
> umgehen.

Dann schlage zu, ist ja Perfekt!

von W.S. (Gast)


Lesenswert?

Nun ja, die STM32 sind nicht schlecht und bei dem Preis der 
Discovery-Boards, die z.B. auf der Embedded gegen eine Visitenkarte 
erhältlich sind, ist es naheliegend, STM32 dann auch zu verwenden (was 
ja de tiefere Zweck der Übung ist).

Aber:  Ich finde es schon bemerkenswert, daß hier in diesem Forum so 
sehr viel mehr geredet wird über die STM32 als über die Cortexe von NXP. 
Warum eigentlich? bastlerisches Beschaffungsproblem?

W.S.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

W.S. schrieb:
> Aber:  Ich finde es schon bemerkenswert, daß hier in diesem Forum so
> sehr viel mehr geredet wird über die STM32 als über die Cortexe von NXP.
> Warum eigentlich? bastlerisches Beschaffungsproblem?

Ich finde, die STM32 etwas mehr flexibel als die LPC's bei Pin-Anzahl. 
Auch die Zuweisung der Peripheriefunktionen auf mehrere Pins (ab 
STM32F2xx) finde ich auch gut.
Ein mal hat mich NXP auf den Arm genommen, als es den LPC1768 noch nicht 
gab, aber die Entwickler hatten mir zugesichert dass der exakt 
Pin/Funktionskompatibel zum LPC2368 sei - ist der aber nicht (MMC/SD 
fehlt). Seither ist der STM32 mein Liebling.
Beim ARM7 zu bleiben hat mir wegen dem Interrupthandling nicht gefallen.
Ich kenne jetzt zwar nicht mehr die aktuellen Typen der LPC Reihe, 
damals jedoch waren die STM's üppiger in der implementierten Peripherie 
als die LPC's.

von usbee (Gast)


Lesenswert?

Ich bin auch auf einen Cortex M0+ umgestiegen. Ich würde dir, wie einmal 
hier schon erwähnt das Freedom Board von Freescale empfehlen. Dazu gibts 
auch viel Einstiegsstoff und auch viel machen kann man damit. Da ist ein 
Beschleunigungsensor, Touchsensor drauf womit man schon einiges machen 
kann. Man kann sich ganz einfach Shields zB mit einem Display selbst 
basteln bzw. es ist Arduino Shield Kompatibel. Das gute dabei ist , dass 
da auch ein  Debugger mit drauf ist und dass man das Board als 
Programmer für eigene Platinen benutzen kann. Der Preis dabei ist fast 
unschalagbar. Ist aber Bei STM32 auch der Fall. Somit Geschmackssache, 
jedenfalls hat das Board einfach was :)

von Robert T. (robertteufel)


Lesenswert?

@Mirko,
Congratulations. Dein Ansatz hoert sich sehr zielfuehrend an!

@ W.S.
> Nun ja, die STM32 sind nicht schlecht und bei dem Preis der
> Discovery-Boards, die z.B. auf der Embedded gegen eine Visitenkarte
> erhältlich sind, ist es naheliegend, STM32 dann auch zu verwenden (was
> ja de tiefere Zweck der Übung ist).
>
> Aber:  Ich finde es schon bemerkenswert, daß hier in diesem Forum so
> sehr viel mehr geredet wird über die STM32 als über die Cortexe von NXP.
> Warum eigentlich? bastlerisches Beschaffungsproblem?
>
> W.S.

Da hab ich doch tatsaechlich noch etwas hinzuzufuegen.
Wie hat ein grosser Staatsmann aus dem Osten mal gesagt, wer zu spaet 
kommt, den bestraft das Leben.
Zu der Zeit als der Cortex-M3 in den Markt eingefuehrt wurde war ich bei 
NXP und habe darum gekaempft dass der M3 moeglichst schnell auch dort 
verwendet wuerde. Leider gab es jedoch (zum Teil gute) Gruende weshalb 
sich das verzoegert hat. Zuerst war da eine Firma Luminary, inzwischen 
von TI einverleibt, die haben keiner grosse Gefahr dagestellt. 
Ploetzlich kam ST mit einer sehr attraktiven Loesung und einer tollen 
Roadmap fuer den STM32. Dafuer ist auch heute noch Gratulation am Platz. 
ST hatte am M3 Markt beinahe ein Jahr Vorsprung bevor NXP nachlegte. Da 
passiert viel. Hersteller fuer Eval-Kits nehmen was da ist, alle Tool 
Hersteller erstellen Beispiele fuer die Chips, ARM empfiehlt den 
Hersteller, der ihnen viel Geld bringt durch neue Lizenzen....
Das war ein Lawineneffekt, sehr zu Gunsten von ST.
Ich halte mich heute mal zurueck, was ich ueber die Chips der 
verschiedenen Hersteller denke, doch der Hauptgrund fuer die starke 
Praesenz von ST im ARM-Cortex Markt ist die Tatsache, dass ST der erste 
Grosse war im Markt.
NXP hat versucht Boden gut zu machen mit der fruehen Adoption des 
Cortex-M0, Atmel hat den Vorteil der Studio 6 IDE und wird damit viele, 
vor allem professionelle Anwender (Zeit ist viel Geld) ins Lager der SAM 
MCUs bekommen, TI hat zwar Luminary gekauft aber nicht so richtig 
integriert...
Der vielleicht meistversprechende Neuzugang ist Energy Micro, jetzt Teil 
von Silabs. Dort gibt es sehr interessante Mixed Signal Produkte, die 
Geckos, und ebenfalls eine IDE die sich sehen lassen kann. Allerdings 
gibt es keine ganz billigen Eval-Boards.
Genug -- Robert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.