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
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
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.
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.
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
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
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!
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.
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.
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 :)
@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