STM32 umsteigen oder weiter AVR

Gast #3407172
Lesenswert?

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.
Gast #3407193
Lesenswert?

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
Gast #3407199
Lesenswert?

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
Gast #3407202
Lesenswert?

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.
Gast #3407209
Lesenswert?

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
Gast #3407216
Lesenswert?

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
Gast #3407219
Lesenswert?

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
Gast #3407231
Lesenswert?

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
Gast #3407243
Lesenswert?

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 :-)
Gast #3407258
Lesenswert?

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. ;-)
Gast #3407259
Lesenswert?

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
Gast #3407267
Lesenswert?

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.
#3407981
Lesenswert?

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
Gast #3407995
Lesenswert?

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/
#3408104
Lesenswert?

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.
Gast #3408874
Lesenswert?

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??
Gast #3409099
Lesenswert?

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.
#3430740
Lesenswert?

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.
#3430793
Lesenswert?

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
#3430826
Lesenswert?

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.
Gast #3430868
Lesenswert?

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...
Gast #3430880
Lesenswert?

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
Gast #3430908
Lesenswert?

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.
#3431029
Lesenswert?

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
Gast #3643026
Lesenswert?

"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
#3643197
Lesenswert?

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.
Gast #3643518
Lesenswert?

> 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...
Gast #3643983
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren