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
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.
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.
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.
> 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.