Hallo zusammen, habe mich kürzlich dazu entschieden einen ARM Cortex M4 zu kaufen und mich damit zu beschäftigen, habe auch das Discovery Kit STM32F4 bestellt, die Bestellung wurde aber storniert. Ich will das als gelegenheit nutzen um auch über andere Boards nachzudenken. Es gibt ja jede Menge Empfehlungen hier im Forum, u.a. STM, Keil, gecko, lpc, infineon, avr ..... Es wäre sehr hilfreich wenn mir jemand aus persönlicher Erfahrung heraus ein gutes Board/Hersteller empfehlen könnte. Es sollte ein M4 sein, kleines Grsfikdidplay darf vorhanden sein, aber nur wenn noch genügend Pins für andere Hardware frei bleiben. Die Pins des Controllers sollen alle herausgeführt sein. Was spricht dagegen einen M0 statt M4 zu nehmen, es gibt hier zwei Artikel die eigentlich beides für Anfängertauglich halten. Einen Arduino möchte ich grundsätzlich nicht haben. Was ich mir auch sehr gut vorstellen könnte, nur nen Controller kaufen, Steckbrettadapter und selbst eine Grundbeschaltung + Hardware dranbauen (Lerneffekt vorhanden?) Zu Beginn möchte ich etwas mit Leds, Tastern und Servos und einfachen Grafikdisplays spielen. Später dann einen Roboter bauen (ja ich weis ich nehme mir zu viel vor für den Anfang, aber eine Motivation ist halt nötig)
Nino schrieb: > Es gibt ja jede Menge Empfehlungen hier im Forum, u.a. STM, Keil, gecko, > lpc, infineon, avr ..... Ähem, AVR ist aber kein ARM. ;-) Wahrscheinlich meinst du einen ARM von Atmel, also im Falle des Cortex-M4 einen SAM4. > Was spricht dagegen einen M0 statt M4 zu > nehmen, es gibt hier zwei Artikel die eigentlich beides für > Anfängertauglich halten. Ist halt 'ne reichlich andere Nummer. Im Befehlssatz einfacher, dadurch nicht die gleiche Leistungsklasse, oft auch in den Peripherals eine Nummer kleiner gehalten, dadurch einfacher zu verstehen.
Na ja, so ein F4 Nucleo Board koster 12€. Da wird die Diskusion teurer als ein Fehlkauf.
Noch einer schrieb: > Na ja, so ein F4 Nucleo Board kostet 12€. Und falls ed drauf an kommt: So genannte "minimum system boards" gibt es ab 3€.
> Und falls ed drauf an kommt: So genannte "minimum system boards" gibt es > ab 3€. Beispiele?
Beitrag "Re: China SUPER Bauteile-Schnäppchen Thread [V2]" Zum Programmieren/Debuggen braucht man noch einen STLink, den gibts beim freundlichen Chinesen auch für <5€.
Nino schrieb: >> Und falls ed drauf an kommt: So genannte "minimum system boards" gibt es >> ab 3€. > > Beispiele? Zwar kein M4, aber immerhin ein M3 : ebay Nr. 391402324033 Dazu braucht man aber noch einen ST-Link wie z.B. 311466266044
Bei den kleinen STM Boards gibt es zwei unterschiedliche Versionen mit unterschiedlichem Pinout, etc. Ich würde einen Maple-Mini Clone empfehlen, der kostet nur ein paar Cent mehr. Hier hatte ich schonmal die Unterschiede aufgezählt: Beitrag "Re: STM32F103C8T6 ARM STM32 Minimum System Development Board Module For Arduino" Theoretisch kommt da noch hinzu, dass bei dem STM32-Mini nur 64kB Flash drauf sein sollten, wobei in der Praxis trotzdem 128kB verfügbar sind. Eine Garantie dafür hast du allerdings nicht. Steht aber auch alles in dem Thread. Das Maple Mini hat einen Bootloader vorinstalliert, bei dem kannst du über USB flashen. Theoretisch geht es auch ohne Bootloader über die serielle Schnittstelle aber das habe ich in der Praxis noch nicht ausprobiert. Mein Rat: Kauf dir ein Nucleo-F411 und ein Maple-Mini. Das Maple Mini bekommst du für unter 4€ bei http://www.aliexpress.com
Christopher J. schrieb: > Mein Rat: Kauf dir ein Nucleo-F411 und ein Maple-Mini. Wenn es etwas mehr Leistung sein darf, dann nimm den Nucleo-F446RE, der geht auch bis 180MHz. Schau Dir einfach die Unterschiede in der Peripherie bei ST an. ( http://www.st.com/stm32nucleo ) Bei HBE kostet das Teil €10,92, ist also keine so große Investition.
Bei den beiden Nucleo Boards wird von Arduino geredet, wie kann ich das verstehen? Ich will eigentlich keine Arduinos.
Nino schrieb: > Ich will eigentlich keine Arduinos. Arduino-Allergie, oder was? ;-) Schau dir doch die Hardware an, ob sie dir passt. Ob die nun kompatibel zu Arduino ist oder nicht, kann dir doch dabei völlig schnuppe sein. Auch, wenn da „Arduino“ draufsteht, zwingt dich doch deshalb keiner, deren Software-Framework zu benutzen. (Nein, ich hab' mir die Nucleos jetzt nicht angesehen.)
Möglicherweise könnte auch die hochgezüchtetere XNucleo Serie interessant sein? Bsp. http://www.waveshare.com/xnucleo-F411RE.htm dort auch Vergleich zum Original NUCLEO-F411RE. Kostet bei ebay aktuell 23,60€, als Bundle auch mit Display.
Nino schrieb: > Bei den beiden Nucleo Boards wird von Arduino geredet, wie kann ich das > verstehen? Ich will eigentlich keine Arduinos. Das betrifft nur die Anschlußmöglichkeiten, die haben Steckleisten bei denen die Belegung und Positionierung zu den arduinoüblichen paßt so daß man viele der 'Shields' benutzen kann. Ganz lustig finde ich die neuen kleinen Nucleo-32. Bauform vom Arduino Nano, STLink/V2 mit drauf und der Große mit dem STM32F303 hat mehr Rechenleistung als man braucht ;-) http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1847
Nino schrieb: > Hallo zusammen, habe mich kürzlich dazu entschieden einen ARM Cortex M4 > zu kaufen und mich damit zu beschäftigen Das ist ganz allgemein zwar sehr löblich, aber zuvor solltest du dir selbst ein paar Fragen stellen. Ganz allgemein: Was kannst du bereits? Was willst du damit? Wie intensiv willst du lernen? Welchen zeitlichen und finanziellen Rahmen hast du? Denk jetzt nicht, eine ehrliche Antwort auf diese Fragen wäre unnötig. Ich formuliere mal ein paar konkretere Fragen: Kannst du englische Manuals lesen? Traust du dir zu, dir eine eigene Schaltung zu entwerfen? Traust du dir zu, dafür auch eine eigene Leiterplatte zu designen? Kennst du bereits einen Leiterplattenfertiger? Was hast du bereits an Hilfsmitteln (Labornetzteil, Oszi, Lötkolben, Multimeter, Programmiergeschirre, Software... usw.) Kurzum, ein jeder hier in diesem Forum kann dir schreiben "Nimm dieses Evalboard, das finde ich klasse, also solltest du das auch klasse finden!" - aber all diese fertigen Evalboards sind eigentlich NICHT für Leute wie dich gemacht, sondern sie sollen etwaige Interesenten an die Produlte der jeweiligen Firma anfüttern. Das ist ne andere Sache. Genau deshalb die 2. obige Frage. Natürlich kann man sich irgend ein Discovery oder Nucleo oder Xpresso usw. zulegen und sich quasi damit nen Ring durch die Nase ziehen lassen - und sich obendrein über eine ach so tolle "Community" freuen und selbstverständlich auch all die dort üblichen Libs, IDE's etc. benutzen und dabei sich selbst festnageln und geistig verkrüppeln. Her gibt es Herden von solchen Leuten, die an ihrem Discovery-Board noch nie gelernt haben, ein Pin ohne die ST-Lib wackeln zu lassen - und ebendiese Leute sind ganz felsenfest davon überzeugt, daß es genau so EINZIGRICHTIG ist. Also wirklich: frag dich selbst nach dem, was du tatsächlich willst. Bei Vorliegen von Antworten kann dir dann eher fachgerecht geraten werden. W.S.
Fang mit dem kleinsten (einfachsten) ARM an den Du finden kannst. Je weniger Seiten das Reference Manual hat desto weniger erdrückend die Einstiegshürde. Es gibt durchaus kleine ARM-Controller die sind nicht nennenswert komplexer oder schwieriger als ein ATMega. Ich würde also nicht gleich mit dem dicksten Brocken anfangen den man für Geld kaufen kann, Du kannst ihn in den nächsten 2 Jahren mit dem typischen Anfängerübungen eh nicht komplett ausreizen, noch nicht mal ansatzweise. Auch die kleinen ARMs nicht. Erst wenn Du irgendwann so weit bist daß Du an konkrete Grenzen stößt für ein konkretes Problem, erst dann brauchst Du was größeres aber bis dahin wirst Du reichlich genug Erfahrung angesammelt haben um genau zu wissen was Du haben willst.
:
Bearbeitet durch User
Kommt darauf an. Also Freescale z.Bsp ein FRDM_KL25Z gibt es schon für 8€ Der Vorteil Debugger OpenSDA ist schon mit auf dem Board. Kleine Spielereien auch :) Das schöne ist das Freescale auch eine Entwicklungsumgebung und Beispiele mitliefert. Was bei Atmel recht mangelhaft ist, also in dem ASF Code als Anfänger durch zuschauen.
Marco H. schrieb: > Kommt darauf an. Also Freescale z.Bsp ein FRDM_KL25Z gibt es schon > für > 8€ Der Vorteil Debugger OpenSDA ist schon mit auf dem Board. Kleine > Spielereien auch :) Genau, am besten eine Familie bei der die Community noch kleiner ist... > Das schöne ist das Freescale auch eine Entwicklungsumgebung und > Beispiele mitliefert. Was bei Atmel recht mangelhaft ist, also in dem > ASF Code als Anfänger durch zuschauen. Das ASF ist auch nicht für Anfänger zum Lernen gedacht. Und Arduino Anfänger schauen die Libs auch nicht an. Aus guten Grund.
Nunja ich verwende die Arduino Libs nicht. Das hat seine Gründe. Der Vorteil ist aber das der Code Plattform übergreifend verwendbar ist. So der Gedanke hinter dem Projekt ;) Das hat aber auch seine Nachteile, eben genau was im Hintergrund abläuft das zu realisieren. Der größte Nachteil ist das man sich mit den Basics nicht beschäftigt. Alle wollen immer möglichst schnell zum Ziel und wenn dies nicht so funktioniert ist es schlecht. Ohne Basics wie ein ARM funktioniert wird man vieles nicht verstehen oder alles hängt dauernd im Hardfault Handler ;)
Marco H. schrieb: > Kommt darauf an. Also Freescale z.Bsp ein FRDM_KL25Z gibt es schon für > 8€ Der Vorteil Debugger OpenSDA ist schon mit auf dem Board. Kleine > Spielereien auch :) Diese Boards (alle Boards der FRDM-KLxx Reihe) kann man übrigens auch umflashen auf J-Link (keine Angst, ist umkehrbar), dann verhält es sich wie ein echter Segger J-Link und man kann dann auch richtiges Werkzeug verwenden (Segger) und auch unter richtigen Betriebssystemen damit arbeiten :-)
Bernd K. schrieb: > Fang mit dem kleinsten (einfachsten) ARM an den Du finden kannst. > Je weniger Seiten das Reference Manual hat desto weniger erdrückend die > Einstiegshürde. Es gibt durchaus kleine ARM-Controller die sind nicht > nennenswert komplexer oder schwieriger als ein ATMega. Ich würde also > nicht gleich mit dem dicksten Brocken anfangen den man für Geld kaufen > kann, Du kannst ihn in den nächsten 2 Jahren mit dem typischen > Anfängerübungen eh nicht komplett ausreizen, noch nicht mal ansatzweise. > Auch die kleinen ARMs nicht. Hört sich vernünftig an. Habe auch kein Problem damit mit einem M0 anzufangen. Wie hier schon erwähnt wurde gibts ja die minimal system boards für wenig geld, werde mich mal umschauen. Wo liegt der Unterschied zwischen M3, M4 und M0? Es wird behauptet, dass die Programmierung fast identisch ist. Ein günstige M3 Boards wurden hier ja schon empfohlen, könnte mir noch jemand ein gutes M0 board empfehlen? Würde mir dann mal die Hardware ansehen.
Was ist von diesen Boards zu halten: http://www.ebay.de/itm/STM32F103C8T6-Cortex-M3-ARM-STM32-JTAG-System-Development-Board-Module-New-H5-/111860634079?hash=item1a0b69d1df:g:~pMAAOSw3KFWgU2f http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF253215?sc=internet/evalboard/product/253215.jsp Ich will zu Beginn viel mit Servos und Sensoren machen (Robotik). Ist da der M0 ausreichend für?
Wenn du nicht gerade in Assembler programmierst, dann ist es für dich als Anfänger am einfachsten damit erklärt: M0 - dick M3 - dicker M4 - am dicksten Das gilt vor allem für die Peripherie, also alles was in dem Chip integriert ist. Du wirst z.B. eher selten einen M0 mit Ethernet oder CAN Schnittstelle finden, während das bei den M4 fast Standard ist. Servos ansteuern kannst du mit allen und Sensoren auslesen (I2C, SPI) ebenso. Selbst mit einem STM32F030 geht das und der kostet beim Aliexpress nicht mal 50 Cent ;) Bernd K. schrieb: > Fang mit dem kleinsten (einfachsten) ARM an den Du finden kannst. Je > weniger Seiten das Reference Manual hat desto weniger erdrückend die > Einstiegshürde. Bernd hat meine volle Zustimmung. Gerade am Anfang ist weniger mehr, d.h. von den Discovery Boards würde ich unbedingt abraten, weil da schon alles verbaut ist durch zusätzliche ICs. Das sind Demo-Boards und es kann einen in den Wahnsinn treiben wenn da ein Pin nicht macht was er soll, weil da eben schon irgendeine andere Hardware dranhängt die fröhlich dazwischen funkt. Hier mal ein paar Gründe für meinen Vorschlag Maple-Mini+NucleoF411: 1. Bei den Maple-Mini Clones hast du ein übersichtliches Board mit ca. 40 Pins, was du in jedes Breadboard stecken oder in einer Lochrasterplatine verlöten kannst. Sonstige ICs wie bei den Discovery Boards sind nicht vorhanden und der Chip ist noch relativ übersichtlich (STM32F103 - Cortex M3). 2. Der Preis ist so niedrig, dass du so ein Teil mit gutem gewissen dauerhaft in einem Projekt verlöten kannst - ich kenne keine vergleichbaren Boards mit ähnlichem Preis 3. Das Nucleo hat einen ST-Link an Board. Damit kannst du jeden ARM Cortex-M flashen/debuggen (Das kann der J-Link Lite von den Freescale-Boards nicht, nicht mal einen anderen Freescale Chip) 4. Das NucleoF411 hat jede Menge Dampf und kann auch mal herhalten wenn der F103 nicht mehr ausreicht (Pin-/Flash-/Ram-technisch) 5. Sowohl das Maple-Mini, als auch das NucleoF411 sind schon eine weile auf dem Markt, so dass du dafür funktionierende Beispiele findest. W.S. schrieb: > Kurzum, ein jeder hier in diesem Forum kann dir schreiben "Nimm dieses > Evalboard, das finde ich klasse, also solltest du das auch klasse > finden!" - aber all diese fertigen Evalboards sind eigentlich NICHT für > Leute wie dich gemacht, sondern sie sollen etwaige Interesenten an die > Produlte der jeweiligen Firma anfüttern. > [...] > Natürlich kann man sich irgend ein Discovery oder Nucleo oder Xpresso > usw. zulegen und sich quasi damit nen Ring durch die Nase ziehen lassen > - und sich obendrein über eine ach so tolle "Community" freuen und > selbstverständlich auch all die dort üblichen Libs, IDE's etc. benutzen > und dabei sich selbst festnageln und geistig verkrüppeln. Her gibt es > Herden von solchen Leuten, die an ihrem Discovery-Board noch nie gelernt > haben, ein Pin ohne die ST-Lib wackeln zu lassen - und ebendiese Leute > sind ganz felsenfest davon überzeugt, daß es genau so EINZIGRICHTIG ist. > Also wirklich: frag dich selbst nach dem, was du tatsächlich willst. Naja, die ST-Lib ist schon ein bisschen für die Katz, das macht Freescale/NXP sicher besser und ist vor allem konsistenter. Nichtsdestotrotz muss man (bzw. du) sich fragen ob man immer das Rad neu erfinden will. Genauso notwendig wie ich (langfristig) ein Grundverständnis der eigentlichen Hardware sehe, gibt es (kurzfristig bzw. als Anfänger) nichts frustrierenderes als wenn man tagelang damit verbringt seine eigenen Bugs zu beheben, nur um irgendwelche trivialen Sachen zum laufen zu bekommen, weil diese Sachen halt für deine Hardware nicht als Library verfügbar sind. Wenn es dann mal an komplexere Sachen, wie z.B. Ethernet geht bleibt einem meist gar nichts anderes übrig als auf fertige Libraries zurückzugreifen. Es geht also sehr wohl um eine sogenannte "Community". Wenn es dieses Forum nicht gäbe wäre die Popularität der AVR-Architektur in Deutschland vermutlich nicht einmal halb so groß. Hier kann man eben mal drei bis vier kryptische Buchstaben (evtl. mit einer Zahl garniert) einwerfen und jeder weiß sofort welches Register gemeint ist. Da hat meiner Meinung nach ST momentan in der ARM-Welt (und auch in diesem Forum) die Nase vorn. Wenn es nicht so wäre würde ich evtl. auch eher zu Freescale raten.
Nino schrieb: > Was ist von diesen Boards zu halten: > > http://www.ebay.de/itm/STM32F103C8T6-Cortex-M3-ARM-STM32-JTAG-System-Development-Board-Module-New-H5-/111860634079?hash=item1a0b69d1df:g:~pMAAOSw3KFWgU2f > > http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF253215?sc=internet/evalboard/product/253215.jsp > > Ich will zu Beginn viel mit Servos und Sensoren machen (Robotik). Ist da > der M0 ausreichend für? Die Nucleo Boards haben eine USB serielle Verbindung via dem Stlink, der auf den aelteren Boards fehlt. Für Statusmeldungen ist diese Verbindung recht gut und auf den Discovery Board muss man die erst mit fliegenden Drähten schaffen. Ich ziehe Nucleo vor. F1 hat ausserdem nur ein einfaches Pin Remapping, die neueren Familien sind da schöner.
Christopher J. schrieb: > Hier mal ein paar Gründe für meinen Vorschlag Maple-Mini In Ordnung, das sieht wirklich sehr einfach und übersichtlich aus. http://www.ebay.de/itm/STM32F103C8T6-Board-mit-ST-ARM-32-bit-Cortex-M3/201475385315?_trksid=p2047675.c100005.m1851&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%26asc%3D20140117130753%26meid%3Ddef3e058e2904df8854aaa9dcf2dca41%26pid%3D100005%26rk%3D2%26rkt%3D6%26sd%3D221812183158 Habe alternativ noch ein simples M0 Board gefunden, mein Bauchgefühl sagt, das hat zu wenig Pins, was meint ihr? http://www.ebay.de/itm/STM32F030F4P6-ARM-CORTEX-M0-Core-Minimum-System-Dev-Board-for-Arduino-/272000603115?hash=item3f547fd3eb:g:Ad8AAOSw4HVWCmQA Grundsätzlich kann man sagen, dass ich noch einen ST-Link benötige zum Programmieren/Debuggen. Wäre das hier geeignet oder soll ich lieber den Seeger Debugger/Programmer kaufen? http://www.ebay.de/itm/ST-Link-V2-Mini-Metal-Shell-STM8-STM32-Emulator-Downloader-Programming-Unit-/251708537849?hash=item3a9aff7bf9:g:M5AAAOSwnDZUDsSp
Mit dem STLink (möglichst V2.1) kann man flashen + debuggen, damit kommt schon sehr weit, dafür braucht man nichts anderes. Die teuren Tools können zusätzlich Sachen wie Variablen Live anzeigen und Traces. Als Studi bekommst du ja den Segger Edu günstig, aber ob der Tracen kann weiss ich nicht.
Nino schrieb: > Grundsätzlich kann man sagen, dass ich noch einen ST-Link benötige zum > Programmieren/Debuggen. Wäre das hier geeignet oder soll ich lieber den > Seeger Debugger/Programmer kaufen? Vergiss den ST-Link. Hol Dir einen Segger J-Link EDU (50€) * Meiste Auswahl unterstützter Controller überhaupt * Von jeder IDE unterstützt * Software für alle gängigen Betriebssysteme kostenlos verfügbar * De-facto Industriestandard * Keine technischen Beschränkungen in der EDU-Version, stattdessen vertraut man Dir daß Dich das Produkt irgendwann ausreichend überzeugt. * Hohe Qualität, viele Mannjahre stecken in dem Produkt und das merkt man. Wenn Du es später kommerziell nutzt kaufst Du Dir einfach das Teil im schwarzen Gehäuse ohne "EDU".
Bernd K. schrieb: > Hol Dir einen Segger J-Link EDU (50€) In Ordnung, habe ich kein Problem damit. Und der STM32F0, zu klein wegen der geringen PINanzahl? http://www.ebay.de/itm/272000603115?clk_rvr_id=995677328347&rmvSB=true
Mich würde ehrlich gesagt auch die Minimalbeschaltung eines Cortex M interessieren (mit Programmier/Debuginterface), ist das in den entsprechenden Datenblättern zu finden, oder gibts da nichts offizielles?
Nino schrieb: > die Minimalbeschaltung eines Cortex M Hinreichend viele Abblockkondensatoren. :-) Alles andere ist optional … Zum Programmieren brauchst die die beiden SWD-Pins (SWCLK und SWDIO).
:
Bearbeitet durch Moderator
Nino schrieb: > Und der STM32F0, zu klein wegen der geringen PINanzahl? Solange du selbst noch nicht weißt, was du alles damit machen willst, ist die Wahrscheinlichkeit dass der uC nicht 100% passt ebenso 100%. Entweder ist er zu groß, zu klein oder irgendein Feature fehlt. Du hast dich für ARM entschieden, also warum kaufst du nicht den J-Link wie empfohlen sowie irgendein günstiges ARM Board (z.B. http://www.ebay.de/itm/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino-UE-/201533903070?hash=item2eec5b50de:g:XPEAAOSwh-1W179S) und fängst damit mal an, deine Sensoren und Servos mit Leben zu füllen. Wenn du dann feststellst, dass der Controller nicht mehr reichen sollte, nimmst du eben einen anderen. Ich kenne Frauen, die sind beim Schuhkauf schneller als du beim uC
Jörg W. schrieb: > Hinreichend viele Abblockkondensatoren Jeweils zwischen V und Gnd ? Torben K. schrieb: > Ich kenne Frauen, die sind beim Schuhkauf schneller als du beim uC Da gibts auch nichts zum Überlegen
Nino schrieb: >> Hinreichend viele Abblockkondensatoren > > Jeweils zwischen V und Gnd ? Ja, natürlich, an jedes entsprechende Pinpaar einen, und an alle sonstigen Pins, für die es der Hersteller im Datenblatt schreibt.
Nino schrieb: > Bernd K. schrieb: >> Hol Dir einen Segger J-Link EDU (50€) > In Ordnung, habe ich kein Problem damit. Darf ich hier mal fragen? Ich habe diesen "2,90€ ST-Link V2" und kann damit alles machen, sowohl mit dem STM8 als auch mit dem STM32. Was habe ich übersehen, also was kann ich nicht damit machen? Sogar beim AVR ist Source-Level-Debuggung preiswerter. Jörg W. schrieb: > Ja, natürlich, an jedes entsprechende Pinpaar einen Steht auch alles im Datenblatt. Dieses zu lesen und zu verstehen, empfielt sich sowieso.
:
Bearbeitet durch User
Christopher J. schrieb: > Wenn du nicht gerade in Assembler programmierst, dann ist es für dich > als Anfänger am einfachsten damit erklärt: > M0 - dick > M3 - dicker > M4 - am dicksten nö. Also hier mal ne Ergänzung: M4F - der ist am dicksten. mal ganz im Ernst: solange man es fertig bringt, in den Aufruf der Tools die richtige CPU-Sorte hinzuschreiben, ist das Programmieren in C für simple Programme (also ohne DSP und FP) für alle Mxxx gleich. Allerdings sollte man bei den M4 ganz gründlich hinschauen: die gibt es nämlich in verschiedenen Ausbaustufen: M4 ohne alles M4 mit DSP-Befehlen M4 mit DSP-Befehlen und mit FP (Gleitkommaprozessor) Manche Hersteller schreiben ganz klar hin, was tatsächlich drinsteckt, bei anderen (insbesondere Freescale) muß man bei manchen Chips dreimal die Doku durchlesen, bis man ne klare Aussage findet, welche M4 Geschmacksrichtung drinsteckt. Bleibt zu hoffen, daß unter der Federführung von NXP diese gräßlichen Un-Dokus gestrafft und verbessert werden. Marco H. schrieb: > Das schöne ist das Freescale auch eine Entwicklungsumgebung und > Beispiele mitliefert. Und das Häßliche bei Freescale ist, daß die meisten Chips innerlich verkorkst sind und daß die Doku von Freescale die unleserlichste von allen ist. Zur Hardware (Kinetis): - der interne RC-Oszillator ist zu ungenau für USB - die FLL ist zu jitterig für USB und auch für I2S - bei den anschließbaren Quarzen ist man sehr eingeschränkt, weil die Taktaufbereitung nur wenige Kombinationen zuläßt. - die Chips enthalten im Gegensatz zu denen von NXP und ST leider keinen residenten Bootlader im ROM. Deswegen kann man die Dinger eben nicht über ne serielle Schnittstelle programmieren wie die LPC und die STM32. Stattdessen ist man auf einen J-Link angewiesen (anderes Zeug wie Ulink, STlink usw. kann man hier vergessen). Nun und der J-Link-Edu hat keine Lizenz für JFlash. Das ist ne Einschränkung und ein Ärgernis, zumal man für den eigentlichen (baugleichen) J-Link prof. rund 500€ berappen muß. Der Basis-J-Link ohne Prof. kostet "nur" ca. 300€, hat aber auch keine JFlash-Lizenz. Ätsch. - manche Chips haben nen EZ-Port, womit man sie theoretisch wie ein serielles Flash programmieren könnte - vorausgesetzt man hätte ein dafür passendes Programm auf dem PC. Ist aber herzlich un-unterstützt. - nach all dem Meckern was positives: Die Kinetis gibt es relativ billig. Zum Beispiel der MK02FN128VLH10, ein 64 poliger M4F mit 100 MHz und 128K Flash/16K RAM für rund 3.60€ netto. Andere sind da teurer. Kurzum, für Anfänger kann ich von Freescale nur dringend abraten. Auch von den XMCxxxx von Infineon muß man abraten, denn ei Infineon ist der innere Aufbau mit ROM ab null so abartig, daß man zwingend dieses DAVE benutzen muß, weil man sonst mit dem Startup graue Haare kriegt. Auch bei den Stellaris oder wie die inzwischen von TI genannt werden, findet sich kein residenter Bootlader, weswegen bei denen das Gleiche gilt wie bei Freescale. Was bleibt, sind NXP's LPC und ST' STM32F, die beide eigentlich ordentlich aufgebaute und leserliche Dokus haben, auch im Chipinneren vernünftig aufgebaut sind, mit Quarz und innerer PLL auch ihren USB versorgen können und die beide einen residenten Bootlader haben, kit dem man die Chips auch ohne JTAG/SWD-Geschirre programmieren kann. W.S.
Torsten C. schrieb: > Darf ich hier mal fragen? Ich habe diesen "2,90€ ST-Link V2" und kann > damit alles machen, sowohl mit dem STM8 als auch mit dem STM32. Was habe > ich übersehen, also was kann ich nicht damit machen? * Andere Controller als STM32 * J-Scope
W.S. schrieb: > und daß die Doku von Freescale die unleserlichste von > allen ist. Das scheint Geschmackssache zu sein, ich zum Beispiel finde die Doku für die Kinetis L ausgesprochen gut und einheitlich strukturiert und vollständig und es reicht ein einziges Dokument (das Refman) für alles was man bei der Arbeit braucht. Jedes Peripheriegerät wird ausführlich besprochen und bei komplizierteren ist auch Beispielcode enthalten. Ich weiß nicht was manche Leute immer für Probleme damit haben, ich komm damit sehr gut zurecht.
W.S. schrieb: > Nun und der J-Link-Edu hat > keine Lizenz für JFlash. Die braucht man auch nicht, immerhin gibts auch ein kostenloses Kommandozeilentool zum Flashen (und zum Speicher-auslesen, Lockbits setzen, löschen, etc), das ist eh besser ins Makefile zu integrieren oder in ne Batchdatei als so ein unhandliches GUI-Tool.
W.S. schrieb: > Was bleibt, sind NXP's LPC und ST' STM32F Und die Fujitsu -> Spansion -> Cypress (FM0/FM3/FM4). Auch sehr gute Doku, reichlich Beispielcode und dank einer nicht vorhandenen Abstraktionsbibliothek (STMCube und wie sie noch alle heißen) und keiner eigenen Eclipsevariante wird man dazu "gezwungen" sich eine Umgebung einzurichten mit der man dann auch STM32, LPC, XMC und wie sie alle heißen befeuern kann. Matthias
Bernd K. schrieb: > Das scheint Geschmackssache zu sein, ich zum Beispiel finde die Doku für > die Kinetis L ausgesprochen gut und einheitlich strukturiert und > vollständig und es reicht ein einziges Dokument (das Refman) für alles > was man bei der Arbeit braucht. Kann ich nicht nachvollziehen. Den Satz mit "und einheitlich strukturiert" finde ich aber klasse. So kann man es auch ausdrücken. Guck dir mal das "K02P64M100SFARM.pdf" an. Jaja, die Schreiber halten sich eisern an ihr Schema, selbst wenn es unter Kapitel X, Absatz 1.2.3 nichts zu sagen gibt, wird eben dieser Absatz gedruckt und enthält dann nur einen Platzhalter. Ach, ich geb mal ein Beispiel: Chapter 18 Miscellaneous Control Module (MCM) 18.1 Introduction NOTE: For the chip-specific implementation details of this module's instances, see the chip configuration information. The Miscellaneous Control Module (MCM) provides a myriad of miscellaneous control functions. 18.1.1 Features The MCM includes the following features: • Program-visible information on the platform configuration and revision 18.2 ... wohlbemerkt, man ist hier gerade im REFERENZMANUAL, wo eigentlich die "chip-specific implementation details" beschrieben sein sollten. Aber da dieses RefMan sowohl für die 64K Flash, 128K Flash (usw...) gilt, wird eben streng formal obige NOTE eingeblendet, auch wenn man im zugehörigen Chip-Manual darüber nichts findet. Also, nach heftigem Blättern findet man meist (nicht immer) das Gesuchte, aber eines ist gewiß: Bei Freescale steht NICHTS dort, wo man es wirklich braucht und ganz vieles ist ausgesprochen mißverständlich dargestellt. Die Regel bei Freescale scheint zu sein, daß alles, dem nicht an irgendeiner_ Stelle in _irgendeinem Dokument ausdrücklich widersprochen ist, als gegeben anzusehen ist. So nach dem Motto "das CLOCK-Signal liegt nicht an Pin 1 bis 38 an, es liegt auch nicht an Pin 40 bis 64 an." X-) W.S.
W.S. schrieb: > wohlbemerkt, man ist hier gerade im REFERENZMANUAL, wo eigentlich die > "chip-specific implementation details" beschrieben sein sollten. Sind sie auch. Jedes Reference Manual enthält ein Kapitel "Chip Configuration", da drin steht dann wieviele von welchen Einheiten dort verbaut sind und wie sie untereinander verbunden sind (falls zutreffend). Also: 1. im jeweiligen Kapitel über das Peripheriegerät nachlesen wie es zu benutzen ist. Die meiste Zeit verbringst Du in "Register Map" und in "Functional Description". 2. (falls notwendig oder zutreffend) im Kapitel 3 nachlesen wieviele Instanzen davon in diesem Chip verbaut sind und wie sie angeschlossen sind (Muxer-Tabellen, Module-Module interconnects, Pinout, Pin-Muxing, etc) Immer das selbe Schema. Nach zwei Tagen hast Du das drauf. Entweder es steht im jeweiligen Kapitel des Peripheriegeräts wenn es um die reine Funktionsweise und Benutzung geht oder es steht in Kapitel 3 wenn es um die konkrete Beschaltung des/der konkreten Moduls/Module in diesem in diesem konkreten Chip geht. Es hilft wenn Du Dir einen PDF-Reader zulegst der ein ausklappbares Inhaltsverzeichnis in der Seitenleiste anzeigen kann, dann navigierst Du nach zwei Tagen jedes JEDES Kinetis Reference Manual (auch solche die Du nie zuvor gesehen hast) zielsicher mit verbundenen Augen. Es ist immer Kapitel 3. Irgendwas scheint zu fehlen? In Kapitel 3 wirds drinstehen. Das nenn ich einheitlich.
:
Bearbeitet durch User
So an alle vielen Dank für die vielen Tipps zur Prozessorwahl, habe jetzt den hier bestellt (gleich 2 davon): http://www.ebay.de/itm/311156408508?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT Wollte eigentlich auch das Maple-Mini, aber da gab es keine SWD-Schnittstelle, daher fiel meine Wahl auf das o.g. Board. Jetzt muss ich mir nur noch das Segger J-Link bestellen, würde ihn hier bestellen: http://www.mouser.de/ProductDetail/Segger-Microcontroller/J-Link-EDU/?qs=8mcwQFjNnDX90s7DXoBPKg%3D%3D aber das Anschlusskabel sieht komplett anders aus als die Pins auf dem Board welches ich gekauft habe, brauche ich also ein zusätzliches Kabel?
W.S. schrieb: > Auch bei den Stellaris oder wie die inzwischen von TI genannt werden Tiva > findet sich kein residenter Bootlader Die werden durch MSP432 ersetzt. Dort findet man das vom MSP430 bekannte, inklusive BSL.
Nino schrieb: > aber das Anschlusskabel sieht komplett anders aus als die Pins auf dem > Board welches ich gekauft habe, brauche ich also ein zusätzliches Kabel? http://www.mouser.de/Search/ProductDetail.aspx?qs=8mcwQFjNnDX6bER7K1QXOw%3d%3d Einfach mal nach „Was andere Kunden noch kauften“ gucken. ;-)
Wow das kostet insgesamt satte 90€. Ich glaube ich versuche zuerst doch lieber den ST-Link v2 aus China, was ich noch nicht ganz begriffen habe, muss die IDE den Programmer/Debugger unterstützen? Falls ja, wäre ich mit dem ST-Link an EM::Blocks (was ja nicht schlechtes wäre, scheint ne gute IDE zu sein)
Nino schrieb: > muss die IDE den Programmer/Debugger unterstützen? Ja, na klar. Andererseits, wenn die IDE OpenOCD unterstützt, dann hast du das J-Link mit dabei und diverse andere Adapter, von billigen Eigenbauten bis zu den Tools verschiedener Hersteller.
Ok, Coocox unterstützt zB den ST-Link v2, dann passt das ja, vielen Dank. Dann hätte ich jetzt zumindest die Hardware zusammen. Freu mich schon darauf loszulegen.
Nino schrieb: > Ok, Coocox unterstützt zB den ST-Link v2, dann passt das ja EM::Blocks auch. Jedenfalls alle IDEs, die ich kenne. Der einzige Unterschied scheint zu sein, wie Bernd K. schrieb: > * Andere Controller als STM32 > * J-Scope
:
Bearbeitet durch User
Torsten C. schrieb: > Der einzige Unterschied scheint zu sein, > wie Bernd K. schrieb: >> * Andere Controller als STM32 Betrifft mich dann ja nicht :-)
Jörg W. schrieb: > Andererseits, wenn die IDE OpenOCD unterstützt, dann hast du das J-Link > mit dabei Riskierst halt ne Gesichtslähmung beim Debuggen. Aber ja, rein formell könnte man durchaus soweit gehen und sagen das funktioniert in allen wesentlichen Punkten.
:
Bearbeitet durch User
Nino schrieb: > Wollte eigentlich auch das Maple-Mini, aber da gab es keine > SWD-Schnittstelle, daher fiel meine Wahl auf das o.g. Board. Doch hat es: PA13 - SWDIO PA14 - SWCLK siehe angehängtes Pinout bzw. STM32F103 Datenblatt und Reference Manual. Nino schrieb: > muss die IDE den Programmer/Debugger unterstützen? Nino schrieb: > Ok, Coocox unterstützt zB den ST-Link v2 Du musst bei Debuggern unterscheiden zwischen - der eigentlichen Hardware (ST-Link, J-Link, uLink2, etc.) - dem eigentlichen Software-Debugger (meistens GDB) - der Software, die zwischen GDB und Hardware sitzt (OpenOCD, Segger GDB-Server, etc.) Eine IDE hat mit der direkten Debuggerhardware normalerweise nichts am Hut, sondern kommuniziert über die Software, die dazwischen sitzt (OpenOCD, Segger GDB-Server) mit deiner Hardware. Du musst dich also nur fragen ob die IDE deiner Wahl OpenOCD bzw. den Segger GDB-Server unterstützt und das ist für Coocox, Em:Blocks, Eclipse, QtCreator und wie sie alle heißen der Fall. Dann ist natürlich noch wichtig, das OpenOCD bzw. Segger deinen Hardware-Debugger unterstützen und natürlich sollte dein Hardware-Debugger mit deinem Mikrocontroller kommunizieren können. Hier nochmal zur Übersicht wie die Kommunikation zwischen den Bestandteilen für das Beispiel mit OpenOCD und ST-Link abläuft: Flashen: IDE<->OpenOCD<->ST-Link<->STM32 Debuggen: IDE<->GDB<->OpenOCD<->ST-Link<->STM32
MapleMini habe ich aus versehen auch mal geordert. Verstehe die wiederholte Empfehlung nicht. Das Pinout ist fürchterlich und scheint nur mit der angepassten Arduino-Umgebung nutzbar. Für ordentliche Programmierung muss man sich selber noch eine Tabelle Pinout-zu-Prozessor-Pin erstellen. Unnötig fehleranfällig. Die STM32F052-Disco hat nur zwei User-Buttons und eine Dreifarb-LED verbaut, ist also hervorragend für den Einstieg geeignet. Nicht alle Discovery-Boards sind überladen.
W.S. schrieb: > Christopher J. schrieb: > Wenn du nicht gerade in Assembler programmierst, dann ist es für dich > als Anfänger am einfachsten damit erklärt: > M0 - dick > M3 - dicker > M4 - am dicksten > > nö. > Also hier mal ne Ergänzung: > M4F - der ist am dicksten Was ist dann mit M7 ? Es gibt auch die ARM Cortex R und die A Serie. Man könnte zum Einstieg auch gleich auf SoC ala Raspy und ko gehen und hat dann gleich ne embeded Lösung mit Betriebssystem drunter was auch ne Visualisierung leichter macht als bei den low level frickel controllern ala cortex m
Bernd K. schrieb: >> Andererseits, wenn die IDE OpenOCD unterstützt, dann hast du das J-Link >> mit dabei > > Riskierst halt ne Gesichtslähmung beim Debuggen. Schreib' doch bitte nicht über Dinge, die du (zumindest in ihrer aktuellen Version) nicht kennst. OpenOCD mag schwieriger konfigurieren zu sein als die Segger-Tools (logisch, wenn man 50 verschiedene Geräte statt nur eines unterstützt), aber ansonsten ist das so schnell, wie die Tools es hergeben. Wenn dein Tool nur ein alter „Wiggler“ ist, ist es natürlich nicht schnell, aber wenn's ein J-Link oder ein aktueller CMSIS-DAP-Dongle ist, dann ist es eher das Nachdenken über den Bug, den man sucht, was da Zeit kostet.
Jörg W. schrieb: > aber ansonsten ist das so schnell, wie die Tools es hergeben. Wenn > dein Tool nur ein alter „Wiggler“ ist, Das Tool ist ein ST-Link V2.1 orginal von STMicroelectronics auf nem Nucleo-Board verbaut. Die Lahmarschigkeit dieser Kombination ist weit jenseits von Gut und Böse und spottet jeder Beschreibung. Am Anfang hatte ich genau wie Du noch keinen Vergleich und dachte Du daß das normal ist, aber eines Morgens lag dann endlich der Segger auf meinem Tisch und ich bekam davon sofort einen GESCHWINDIGKEITSRAUSCH. Lazenz beim Einzelschritt unterhalb der Wahrnehmungsschwelle! Seither definiert DAS für mich die Normalität und alles andere sind Krücken.
^ Das liegt aber nicht am STlink sondern an der Software (GDB, OpenOCD bzw der Kommunikation zwischen den Komponenten). Mit Crossworks kann ich jedenfalls beim Debuggen keinen Unterschied zwischen einem JLink und dem STlink feststellen. Beim Einzelschritt laufen beide ohne Verzögerung. Wenn ich die F11 Taste festhalte flitzt der Debugger mit der Tasten-Wiederholrate durchs Programm. Flashen dauert beim STlink aber fast doppelt so lange.
Stefan schrieb: > Flashen dauert beim STlink aber fast doppelt so lange. Beim Atollic TS dauert das Flashen knapp 10s für 140 kB. In der Config vom STLink GDB Server habe ich von 8 auf 32 bit parallel mode umgestellt, vorher hat der download fast 4x so lange gedauert: # Set flash parallelism mode to 32, 16, or 8 bit when using STM32 F2/F4 microcontrollers # Uncomment next line, 2=32 bit, 1=16 bit and 0=8 bit parallelism mode monitor flash set_parallelism_mode 2 Vielleicht kannst du das auch tunen.
Dirk K. schrieb: > Das Pinout ist fürchterlich und scheint > nur mit der angepassten Arduino-Umgebung nutzbar. Für ordentliche > Programmierung muss man sich selber noch eine Tabelle > Pinout-zu-Prozessor-Pin erstellen. Unnötig fehleranfällig. Verstehe nicht ganz was du meinst. Auf dem Silkscreen sind nicht die Bezeichnungen aus dem Datenblatt von ST (PAx, PBx,...), sondern irgendwelche Zahlen. Um zu wissen welcher Pin des F103 nun dahinter steckt braucht man so etwas wie eine Tabelle bzw. so etwas wie das von mir angehängte Pinout-Diagramm, da gebe ich dir recht. Das ist aber doch bei den Nucleos auch nicht anders. Programmieren kann man das Teil jedenfalls zu 100% ohne irgendeine Arduino Library. Wenn man den vorhandenen Bootloader nutzen will, benötigt man eben die entsprechenden Linker-Skripte, man kann das Teil jedoch ganz normal über SWD flashen. Dirk K. schrieb: > Die STM32F052-Disco hat nur zwei User-Buttons und eine Dreifarb-LED > verbaut, ist also hervorragend für den Einstieg geeignet. Nicht alle > Discovery-Boards sind überladen. Hab mir gerade mal das F051-Disco angeschaut. Das sieht in der tat richtig ordentlich aus. Ist didaktisch vermutlich tatsächlich sinnvoller als ein Maple-Mini.
Huch, das Attachment hatte ich heute morgen auf dem Tablet nicht gesehen (ausgefiltert in der Mobilansicht des Forums?). Ok, wenn die fertig vorhanden ist, passt das ja wieder. Finde es ähnlich wie bei Arduino Nano/Pro Mini jedoch sehr nervig, den eigentlichen Pin laut Datenblatt zu finden; die Boards sind schließlich auch besser direkt mit AVR-GCC nutzbar, wenn man nicht die Arduino-Lib einsetzen will. Das ist bei den billigeren STM-Mini-Boards durch den namentlich passenden Aufdruck einfacher gelöst.
:
Bearbeitet durch User
Bernd K. schrieb: > Am Anfang hatte ich genau wie Du noch keinen Vergleich und dachte Du daß > das normal ist, aber eines Morgens lag dann endlich der Segger auf > meinem Tisch und ich bekam davon sofort einen GESCHWINDIGKEITSRAUSCH. STM kenne ich nicht. Bei uns liegen jedenfalls die Seggers im Schrank, die nimmt keiner.
Christopher J. schrieb: > Was nutzt ihr stattdessen? Atmel-ICE. Wir haben (derzeit) nur mit Atmel-ARMs zu tun.
Nino schrieb: > Ebay-Artikel Nr. 311156408508 > ... > Jetzt muss ich mir nur noch das Segger J-Link bestellen, würde ihn hier > bestellen: > > aber das Anschlusskabel sieht komplett anders aus als die Pins auf dem > Board welches ich gekauft habe, brauche ich also ein zusätzliches Kabel? Ja, das Angebot bei Mouser kenne ich. Ist irgendwie schon seltsam, gelle? Ansonsten ist zum Anschlußkabel zu sagen, daß man es sich ganz einfach selber machen kann. Mir ist es schon seit langem viel zu blöd, so ein 20 (oder neuerdings 16) poligen Ungetüm auf die LP zu setzen. Das ist auch wirklich nicht nötig. Besorge dir einen auf den Segger passenden Steckverbinder und führe nur die Leitungen von dort weg, die du wirklich brauchst. Mal kurz nachdenken: SWDIO, SWCLK, (NRST,) GND, VCC vom Board. Das reicht eigentlich. Ansonsten ist das genannte Board mMn. völlig in Ordnung: nen STM32F103C8T6 (72MHz, 64K Flash, 20K RAM) mit Quarz und USB-Buchse für rund 3€ is OK. Mit dem USB-Port hast du nen netten Anschluß für einen VCP zwecks Kommunikation mit deinem PC. µC-Treiber hier bei Bedarf. W.S.
Ja ich denke für 3 Euro habe ich nichts falsch gemacht (ist immerhin ein M3!), das stm32f0 disco kostet ca 15 euro, das wäre später zu schade fest einzubauen, das Chinateil nicht. Habe mir jetzt doch den J-Link Edu bestellt, vielleicht zahlt es sich ja doch aus.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.