Hallo Leute, ich Programmiere schon ein bisschen AVR so als Hobby (Atmega32). Ich wäre interessiert daran auf STM32F4 umzusteigen wegen mehr Ressorcen und Schnittstellen. Jetzt meine Frage ist es ein großer Umstieg vom AVR auf ARM? Software?... Tips?
Ich arbeite hier mit beiden. Umstieg kann etwas knifflig sein. Es lohnt sich. Ich arbeite zwar unter Linux. Windows ist aber einfacher. Nimm Coocox. Und STM32F4.....
Ich bin inzwischen völlig vernarrt in die STM32-Serie respektive in die ARM-Cortex-uCs. Aber die Frage ist, was hast Du vor? Ein ARM-Cortex kann für simple Aufgaben wie eine H-Brücke ansteuern oder ein paar IOs bangen lassen einfach der völlige Overkill sein. Jeder Controller hat für sein Einsatzgebiet seine Existenzberechtigung. Schnüffeln kostet aber nix; abgesehen von der Anschaffung eines Evaboards. Nebenbei: 32-Bit kann auch ein ganz schön verwirrend werden, wenn man weiterhin in Assembler programmieren will.
Hugo schrieb: > Nebenbei: 32-Bit kann auch ein ganz schön verwirrend werden, wenn man > weiterhin in Assembler programmieren will. Warum eigentlich? Immerhin gilt dann 1 Pointer = 1 Register, und nicht wie am AVR 1 Pointer = 2 Register, und arithmetische Operationen darauf sind auch nur noch 1 Instruktion etc. Außerdem kann man Pointer auf I/O-Register, RAM & Flash völlig gleich behandeln... Peter schrieb: > Software?... Tips? STM32: Programmierung
Hallo, ich arbeite mit dem STM32F429 in Assembler und schreibe DSP Programme. Das geht schon ganz gut zur Sache mit FPU usw. Also Leistung ist O.K. Wenn du in C programmierst ist das meiste eigentlich egal, ausser die andere Hardware. Wenns aber nur um den Lernfaktor geht reicht der AVR oder mal ein XMEGA auch. Gruß Sascha
Von Overkill kann eigentlich gar keine Rede sein. Wir reden hier über den Hobbybereich, und man bekommt ein bastelfreundliches Eval-Board mit eingebauten Debugger für unter 20 Euro. Das ist alles andere als Overkill. Es sei denn du meinst mit Overkill die Komplexität der Peripherie, die ist schon spürbar höher. Aber für den STM32 gibt es ja ganz gute Beispiele, womit man sich schnell zurechtfinden kann.
Hallo Peter, Du kannst auch erst mal auf den STM32F103 umsteigen. Im Gegensatz zum MEGA32 ist der auch schon sehr Leistungsstark. Da muss es nicht gleich er 4er sein. Es gibt viele EVAL-Boards. Von ST gibt es den ST-Link (Programmer und Debugger) für ca. 30€. Dann würde ich auf jeden Fall die STM32F10x Standard Peripherals Library empfehlen. Dann muss man nicht bis ins letzte Register abtauchen :-) http://www.mikrocontroller.net/articles/STM32F10x_Standard_Peripherals_Library Es gibt von u.a. von KEIL etliche Beispiele. Als IDE würde ich Dir aber CrossWorks empfehlen, die haben eine sehr gute Lizenzpolitik. Auch für den Hobbybereich. Und denke daran: Beim STM32 immer erst die Takte einschalten :-) Gruß Florian
Statt dem Stlink kann man auch das STM32F4Discovery nehmen - 17 EUR inkl Versand in der Bucht, und das hat den STLink auch fuer andere Boards dabei. Libs' gibt's massig hier: http://mikrocontroller.bplaced.net/wordpress/ Und zur komplexitaet: Ja, die Peripherie braucht mehr Zeilen - gibt aber auch mehr davon. Und immerhin gibt's keine Fuses, mit denen man sich den Chip unbrauchbar macht ;) Gruss FloF
Vielleicht wäre es einfacher zunächst mal einen kleinen ARM auf dem Steckbrett anzusehen z.B. LPC810 DIP-8. Hat den Vorteil dass man alles noch ohne Bibliotheken machen kann und auch durchblickt. http://learn.adafruit.com/getting-started-with-the-lpc810/ Dann klappt der Einstieg in den M4 auch besser, wobei die NXP Bibliotheken besser sind als bei STM: http://www.embeddedartists.com/products/boards/lpc4088_qsb.php Und es gibt eine kostenfreie Eclipse-Umgebung (auch für Linux) mit CMSIS und Demos für alles (LCD, USB, Ethernet, CAN): http://www.lpcware.com/lpcxpresso/download
Hugo schrieb: > Ich bin inzwischen völlig vernarrt in die STM32-Serie respektive in die > ARM-Cortex-uCs. Aber die Frage ist, was hast Du vor? Ein ARM-Cortex kann > für simple Aufgaben wie eine H-Brücke ansteuern oder ein paar IOs bangen > lassen einfach der völlige Overkill sein. Jeder Controller hat für sein > Einsatzgebiet seine Existenzberechtigung. Schnüffeln kostet aber nix; > abgesehen von der Anschaffung eines Evaboards. Naja Overkill mag sein. Dafür bekommt man für den Preis bei den STM wesentlich mehr geboten. Für kleinstaufgaben nutze ich immer gerne den STM32F103R6 für ca 3 Euro. Auch nicht viel teurer als ein AVR, aber viiiiiel mehr an Board. Vorteil: Wenn man denn doch mal CAN braucht oder USB kann der kleine das auch schon... Wozu also noch AVR? Für den Hobbybereich machen 2 oder 3 Euro doch keinen Unterschied http://de.farnell.com/stmicroelectronics/stm32f103r6t6a/mcu-32bit-32k-flash-64lqfp/dp/1899014
Hallo nochmal, Das interesse am STM32 kommt durch die hohen CPU Takte und CAN Bus. Zusätzlich ist es natürlich immer interessant was neues kennen zu lernen. Woran ich im moment interessiert bin: Datenlogger für ein Motorrad(z.b. Rennstrecken): -GPS 20 Hz -Analoge und Digitale Eingänge -3 Achs Beschleunigungssensor -CAN -Geschwindigkeit -Drehzahl -Gang ... Habe vor diese Daten alle auf einer SD-Karte zu speichern. Ist alles Hobbymäßig aber immer interesse für mehr :-)
Mega32 ist OUT ;-) Neee, ehrlich, Atmel wird die bald austrocknen. Atmel setzt voll auf ARM. Vielleicht bleibt noch der eine oder andere 8 Biter. Bin mal gespannt wie die nächste embedded world gestaltet wird. Wahrscheinlich landen die AVRs in der Schmuddelecke. ;-)
Also der STM32 ist einfach genial. Wenn bisher keine Kenntnisse von AVR vorhanden sind dann umso besser. 32 Bit sowie die hohen Taktraten sind einfach nur geil. Beim STM32 muss man sich um mehr kümmern, aber muss heisst auch KANN. STM32F103 ist ein guter Einstiegsprozessor in die Cortex Serie. Schau mal bei Olimexino STM32. Das Board ist mit etwa 19Euro sehr preiswert und hat bereits CAN, USART und digitale sowie analoge Eingänge. Das kannst Du kaum für den Preis selbst bauen. Viele Grüße Wolfram
Ich bin auch vom Atmega auf stm32 umgestiegen. Ich werde garantiert keinen Atmega mehr anfassen. Teurer, weniger Leistung, teure Debugger usw... :-)) Programmieren tu ich mit der Coocox IDE. Besonders kompliziert ist das nicht. Die Umgebung ist kinderleicht installiert. Mittlerweile nehme ich auch für simple aufgaben einen stm32. Selbst da wo ein Attiny reichen würde. Kost ja alles nichts mehr.
Wolfram schrieb: > Beim STM32 muss man sich um mehr kümmern, aber muss heisst auch KANN. Es gibt doch von ST die LIB. Das macht es einfach und weniger kümmern als bei den kleinen Dingern.
STM32 - volle geil. Wer noch 8 Bittert ist bald verbittert. Dazu Coocox, wie schon tausendmal erwähnt. Baba AVR. Schön wars....
:-D Gibs schon ein Testboard mit STM32F427II Ist zwar nicht ohne weiß auch nicht ob es was in der Programmierung ausmachen. Aber wenn dann richtig :-)
Was haltet ihr denn hiervon? http://de.farnell.com/jsp/displayProduct.jsp?sku=2355377&CMP=KNC-GDE-FDE-GEN-SKU-G12&mckv=nuagEYxH|pcrid|22697171587|kword|stm32f429i-disco|match|p|plid|&gclid=CO7xm5yr7roCFQdY3godJlUAgA Ist das Board gut/schlecht zum Einstieg? Bzw auch zum Testen? Was findet ihr daran gut bzw schlecht? Als Software würde ich wahrscheinlich Coocox verwenden.
Ich werde mir den STM32 auch mal anschauen, der XMega ist zwar ganz nett, aber dort kommt man bei den großen Modellen schon an die Grenzen der 16Bit-Addressierbarkeit und muss anfangen mir irgendwelchen Tricks zu hantieren... Wozu ich irgendwie nichts finden konnte, ist der Unterschied zwischen ST-Link und ST-Link/V2? Gibt es da irgendwo Infos? Grüße Markus
Peter schrieb: > Was haltet ihr denn hiervon? > > http://de.farnell.com/jsp/displayProduct.jsp?sku=2... > > Ist das Board gut/schlecht zum Einstieg? Bzw auch zum Testen? Was findet > ihr daran gut bzw schlecht? > > Als Software würde ich wahrscheinlich Coocox verwenden. Ist ganz nett... Allerdings sollte man wissen, dass das von coocoxnoch nicht offiziell unterstützt wird. Uwe hat da aber mal was vorbereitet ;) http://mikrocontroller.bplaced.net/
Würde mich auch interessieren mich mal mit STM32 zu beschäftigen. Gibt's da ein minimalistisches Dev-Board, das man aufs Breadboard stecken kann? Ich mag die riesigen Vollausstattungsboards nicht, habe auch mit den AVRs immer direkt auf Breadboard gearbeitet. Und kann man vernünftig mit Eclipse arbeiten?
Ich finde es sehr praktisch: in eine 15 cm * 20cm Plastikbox wird ein Loch geschnitten, USB Kabel angesteckt, COOCOX installiert, Beispiel geladen Pastikbox aufgeklappt und schon ging nach einer Woche als Neuling das erste Demo mit Touchscreen, und dass ohne Stress. Es ist eine interessante Erfahrung sich überlegen zu müssen, was man als nächstes lernen möchte, ADU, DAU, PWM , LCD... alles drauf und wartet auf eine Anwendung.
Peter schrieb: > ich Programmiere schon ein bisschen AVR so als Hobby (Atmega32). Ein bißchen und als Hobby? Dann bleib beim AVR. Alles andere ist Selbstzweck, solange Du keine große Programmiererfahrung und keine gezielte Anwendung hast, die die Leistung überhaupt benötigt.
m.n. schrieb: > Peter schrieb: >> ich Programmiere schon ein bisschen AVR so als Hobby (Atmega32). > > Ein bißchen und als Hobby? Dann bleib beim AVR. Alles andere ist > Selbstzweck, solange Du keine große Programmiererfahrung und keine > gezielte Anwendung hast, die die Leistung überhaupt benötigt. Naja und wenn er mal ein LCD mit Touch hobbymäßig in Betrieb nehmen mag? Denn muss der alte Sack (Atmege 32) aber ganz schön keuchen. Auch wenn noch keine konkrete Anwendung geplant ist, ist es doch schön die Möglichkeit zu haben soetwas umzusetzen. Oder ist die Anforderung an ein Hobby den Anspruch so gering wie möglich zu halten und darum nichts neues zu lernen??
ggg schrieb: > Naja und wenn er mal ein LCD mit Touch hobbymäßig in Betrieb nehmen mag? Dann wird er eine hobbymäßige Lösung bekommen, ganz einfach. Von einem Hobby erwarte ich, dass man einfache Lösungen mit einfachen Mitteln realisiert und dabei ein Erfolgserlebnis hat. Und das und noch viel, viel mehr geht mit AVRs recht gut.
Also ich mache es auch als Hobby und ich habe größeren Spass an schwierigen Aufgaben :-) Weiss nicht, was Euch jetzt reitet jemandem den ST32 ausreden zu wollen, wenn er sich dafür interessiert. Ist der so knapp und ihr habt Angst, dass ihr keine mehr bekommt? :-))
Conny G. schrieb: > Ist der so knapp und ihr habt Angst, dass ihr keine mehr bekommt? :-)) LOL, dem muss ich beipflichten! Bin neulich auch (Uni-bedingt) von den AVRs auf STM32 umgestiegen und bin schwer begeistert. Der Umstieg ist zwar anfangs etwas holprig, vor allem wenn man nur die 8-Bitter gewöhnt ist, aber es lohnt sich. Nur schade, dass es (meines Wissens) die STM32 nicht als DIP gibt, fürs Breadboard war das beim AVR immer ganz nett. Ich denke es ist sinnvoll, beide Controller je nach Anwendungsfall einzusetzen, wenn nur ein PWM-Kanal für ne Lampe benötigt wird, tut's auch ein ATtiny, wenn ein Display oder Datenverarbeitung dazukommen, ist der STM32 (in der entsprechenden Ausführung) eine sinnvolle Wahl.
Nabend! als alter 8051er mit nachfolgenden Ausflügen nach Texas hatte ich zuletzt den Cortex M3 beim Wickel - das Schlimmste ist immer, sich an neue IDE und libs gewöhnen zu müssen. Mit Keil hab ich schon lange gearbeitet. Am liebsten hätte wieder ein plattformübergreifendes (nicht OOP) Pascal zurück. Im aktuellen M3 kit steckt ein Toshiba TMPM330 drin. Bin hin und her gerissen. Danke für Kommentare, moppi
Christoph Brennig schrieb: > allem wenn man nur die 8-Bitter gewöhnt ist, aber es lohnt sich. Nur > schade, dass es (meines Wissens) die STM32 nicht als DIP gibt, fürs > Breadboard war das beim AVR immer ganz nett. Ich denke es ist sinnvoll, Genau das hält mich davon ab, es einfach sofort mal zu probieren. Man braucht hier ein Devboard oder eine DIP-Adapter-Platine. Wobei abhalten der falsche Ausdruck ist, es hindert mich am spontanen Ausprobieren und damit verzögert es.
Conny G. schrieb: > Christoph Brennig schrieb: >> allem wenn man nur die 8-Bitter gewöhnt ist, aber es lohnt sich. Nur >> schade, dass es (meines Wissens) die STM32 nicht als DIP gibt, fürs >> Breadboard war das beim AVR immer ganz nett. Ich denke es ist sinnvoll, > > Genau das hält mich davon ab, es einfach sofort mal zu probieren. Man > braucht hier ein Devboard oder eine DIP-Adapter-Platine. Wobei abhalten > der falsche Ausdruck ist, es hindert mich am spontanen Ausprobieren und > damit verzögert es. Naja, die Dev. Boards kosten ja nicht die Welt, für nen 10er bekommt man da schon was (je nach Ausstattung). Und dann hat man auch schon so gut wie alle I/Os auf nem Pinheader wo man auch einfach auf das Breadboard kommt...
Ich habe den F4 auch für ein Projekt nutzen müssen und habe vorher nur AVRs genutzt. Die Cortex bieten natürlich einiges mehr, aber auch einige Fallen mehr. Alles in allem sind die Dinger schon cool, aber für Hobby bleibe ich wann immer es leistungsmäßig reicht bei den 8 Bit AVRs. Wenn man nicht gerade Unmengen von Daten und Berechnungen in kurzer Zeit durchführen muss reicht ein AVR allemal aus, auch wenn er langsam zum alten Eisen gehört! Ingo
Ich habe am Wochenende eine Waage auf 868MHz Funk umgerüstet. Die hatte einen RS232 Ausgang. Rumliegen hatte ich noch ein paar ATTINY45, ATMEGA8L und LPC1114GN28 (28polig DIP). Da ich beim Tiny keine Bock auf Software-UART hatte und der Mega8 kein Debugwire hat, habe ich den LPC verbaut obwohl ich nur 1 Eingang und 2 Ausgänge brauchte. Platz war genügend vorhanden um eine Lochrasterplatine mit dem LPC und dem Sender unterzubringen. Nur am Rande. Da kann man auch Überraschungen erleben. Derjenige der die Software der Waage entwickelt hat war bestimmt besoffen. Die hatten ein Startbit, 8 Datenbits, ein 0 Bit und ein Stopbit im Protokoll. Die Schnittstelle am PC hat das gefressen. Ich bin erst fast verzweifelt bis dann der LA die Tatsachen ans Licht brachte. Die UART des LPC1114 konnte jedenfalls so eingestellt werden, das es ging. Der Workflow vom Übersetzten, Flashen und Debuggen ist bei den Cortexen einfach um Größenordnungen besser. Ich werde wohl auch in Zukunft die AVRS in der Kiste lassen.
old man schrieb: > Ich habe am Wochenende eine Waage auf 868MHz Funk umgerüstet. Die hatte > einen RS232 Ausgang. Coole Waage!
Conny G. schrieb: > Christoph Brennig schrieb: >> allem wenn man nur die 8-Bitter gewöhnt ist, aber es lohnt sich. Nur >> schade, dass es (meines Wissens) die STM32 nicht als DIP gibt, fürs >> Breadboard war das beim AVR immer ganz nett. Ich denke es ist sinnvoll, > > Genau das hält mich davon ab, es einfach sofort mal zu probieren. Man > braucht hier ein Devboard oder eine DIP-Adapter-Platine. Wobei abhalten > der falsche Ausdruck ist, es hindert mich am spontanen Ausprobieren und > damit verzögert es. Dann greife doch mal zum PIC32. Die kleinen Typen gibts als DIL28 und sind überall problemlos für wenig Geld erhältlich, und leistungsmäßig entspricht es einem Cortex M3. Dass da ein MIPS werkelt, merkst Du eigentlich nur, wenn Du unbedingt Assembler machen willst. Normal ist alles in C. fchk
"Am liebsten hätte wieder ein plattformübergreifendes (nicht OOP) Pascal zurück." Dann nimm doch Mikroe.. Da kannst Du plattformunabhängig von AVR zu Arm oder zu Pic switchen. Die Änderungen sind minimal, und binnen Minuten erledigt
Hm - bin nach 2 Wochen Arduino auf Eclipse + AVR-Compiler, von dort nach einer Woche auf STM32F0-Disco mit Eclipse und GCC-ARM, dann STM32F103 "umgestiegen". Die stdperiph-lib von ST ist dabei sehr praktisch. Diese Woche kommt noch die STM32F407-Disco. Die haben alle ihre Berechtigung und ihren Einsatzzweck. Durch Programmierung in "reinem" C (anstatt der Arduino-libs) war der Umstieg zwischen den einzelnen Prozessoren auch gar nicht so schlimm. Die Anpassungen von F0xx auf F1xx beschränkte sich auf Anpassungen der Registernamen sowie leichte Änderungen bei der GPIO-Initialisierung. Habe jetzt noch spottbillige Arduino Pro Minis herumfliegen (<3Eur pro Stück), nächste Stufe Arduino Nano (<6Eur/Stück), einige STm32F103 Dev-Boards (<6Eur/Stück), dann noch einen Arduino Uno Clone (<10Eur), die STM32F0-Disco inklusive Versand grob 11 Eur, Arduino Mega2560 war so 12,50Eur, ... preislich also alles nicht die Welt. Die billigeren Boards kann man gerne auch für "Draußen-Projekte" verwenden, wo es nicht so weh tut, falls das einer gut findet und mitnimmt. Auf jeden Fall ist das Erlernen der nächsten µC relativ günstig, meiner Meinung nach. Da müssen gar nicht 30 und mehr Euro für ein Board rausgehen.
:
Bearbeitet durch User
STM32F429I-DISCO wurde ja schon genannt. Bei der Software würde ich allerdings zu EMBlocks http://www.emblocks.org/web/ raten. Die IDE ist einfach klasse und ist nicht so völlig überladen. CoCox Projekte können importiert werden. Mittlerweile gibt es auch eine Einführung hier... http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks
>sowie die hohen Taktraten sind einfach nur geil.
(aber nur (!) wenn ausm SRAM oder ausm Cache (falls linearer Code
abgearbeitet) ausgeführt)
> aber nur (!) wenn ausm SRAM
Das ist so pauschal falsch, solange der M3 (z.B. der STM32F103)
kein DARAM (Dual Access RAM) hat, bremsen die Zugriffe auf Daten
im RAM die CPU merklich aus.
Wer es nicht glaubt, soll es einfach mal ausprobieren.
Ein STM32F103 laeuft da definitiv langsamer als wenn
Flash und RAM gemeinsam werkeln.
Nur bei Controllern die per Zyklus 2 Zugriffe aufs RAM machen
koennen (z.B. viele Texas Instruments TMS320 DSPs),
oder getrennte RAM Bereiche haben (STM32F4XX CCM RAM),
ist Code im RAM wirklich am schnellsten...
Auch eine Ueberlegung wert sein sollten die Atmel SAMD20. Die sind von der Peripherie einem AVR sehr nahe aber eben mit ARM-Core. Dann muss man nicht gleich alles neu lernen.
Peter schrieb: > Jetzt meine Frage ist es ein großer Umstieg vom AVR > auf ARM? Ja. es ist ein wirklich großer Umstieg, wenn man den ARM wirklich kennenlernen will. Du kannst dir das Ganze selbst einschätzen: Lade dir einfach das zur jeweiligen Familie gehörige Referenzmanual und lies es durch. Entweder das generelle Manual zu Cortex M3 oder M4 von ARM selber oder das zu einem passenden Chip von NXP oder ST. Ich selber bevorzuge NXP, weil die von ST mir zu geschwätzig sind und auf 1003 Seiten ne Menge heißer Luft bringen ohne wirklich stringente Beschreibungen der Funktionsteile zu liefern. Da ist NXP bei den Details besser. Aber mal was zur Deutlichkeit: schreib lieber 'Cortex' wenn du nen Cortex meinst. Oftmals wird unter "ARM" nämlich ARM7TDMI oder ARM9 gemeint und dann ist Verwirrung vorprogrammiert. W.S.
>Das ist so pauschal falsch... ach ne, ich sagte >(aber nur (!) wenn ausm SRAM oder ausm Cache (falls linearer Code >abgearbeitet) ausgeführt)
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.