Forum: Mikrocontroller und Digitale Elektronik Einstieg ARM: Tutorials, Toolchain, DevBoard


von Andreas S. (igel1)


Lesenswert?

Liebe ARM-Experten,

ich möchte in die ARM-Prozessortechnik einsteigen und finde 1 Mio. 
Seiten dazu im Internet. Leider weiß ich, daß man viel Zeit verlieren 
kann, wenn man den falschen Einstieg wählt, daher interessiert mich Eure 
persönliche Einschätzung bzw. Euer Rat.

Ich habe hier 3 Einstiegsboards herumliegen und frage mich, mit welchem 
Board/ARM-Prozessor ich optimalerweise beginnen sollte:

- TI:  Stellaris Launchpad LM4F120
- NXP: LPC812 mbed/Xpressoo (Arduino compatible)
- ST:  STM32F4 Discovery  (habe eine leichte Präferenz hierzu)

Insbesondere folgende Kriterien sind mir wichtig:

- Für welches Board/Prozessor gibt's die besten Tutorials?
  (Ich bin Euch für jeden guten Link dankbar!)
- Gibt's empfehlenswerte Bücher?
- Welches Board wird von der Community am besten supported?
- Für welches Board gibt's die beste kostenlose IDE (ohne Code-Limit!!)?

Mein Vorwissen:

- C-Kenntnisse & Passable C++ - Kenntnisse
- AVR-8-Bitter-Kenntnisse (Assembler + C)
- Elektronik-Kenntnisse
- Bin vor 2-3 Jahren mal bis zum "Blinky" auf STM32F4 Discovery gekommen
- Kann Doku in Englischer & Deutscher Sprache lesen
- Logic-Analyzer + Oszi vorhanden

Mein Ziel:

- Die Grundtechniken beherrschen (I/O, UART, I2C, PWM, DMA, ggf. USB)
- Fernziel: OV7670-Kameramodul auslesen und auf LCD-Display ausgeben

Es wäre supernett, wenn Ihr mir ein paar Tipps gebt und mich auf die 
"richtige Schiene" setzen könntet.

Gerne könnt Ihr mir auch schildern, wie Ihr Euch in Euren jeweiligen 
ARM-Prozessor eingearbeitet habt und wie Ihr heute vorgehen würdet,
wenn Ihr heute nochmals am Beginn stehen würdet.

Insbesondere interessieren mich Links auf Einstiegstutorials und gute 
Doku.

Bitte hier aber keine Glaubenskriege vom Zaun brechen - es führen 
sicherlich mehrere Wege nach Rom ...

Viele Grüße

Igel1

von google (Gast)


Lesenswert?

Andreas S. schrieb:
> - TI:  Stellaris Launchpad LM4F120

Hierzu gibt es Bücher in English, ("Introduction to ARM Cortex-M 
Microcontrollers", "Real-Time Interfacing to ARM-Cortex-M 
Microcontrollers", usw.) meines Wissens relativ aktives Forum bei TI.

> - NXP: LPC812 mbed/Xpressoo (Arduino compatible)

Sehr große und aktive community bei mbed

> - ST:  STM32F4 Discovery  (habe eine leichte Präferenz hierzu)

hier im Forum gut vertreten

Hardware: mit allen Dreien kannst Du sofort anfangen.

Software: für alle drei frei verfügbar, egal, ob Kommandozeilenfreak 
oder IDE-Anhänger

tutorials: kenn ich nur für STM32 (subjektiv gefärbt ohne irgendeinen 
Anspruch auf Vollständigkeit), siehe Artikel hier im Forum

von CAN-Fan (Gast)


Lesenswert?

Also ich empfehle den STM. Da gibt es mehrere kostenlose IDEs, sehr 
viele Tutorials und wie du siehst sogar im Wiki ein Subwiki.

Dazu gibt es z.B. den CubeMX, der mittlerweile einen viel Arbeit 
abnimmt. Auch wenn manchmal noch ein paar Fehler in der HAL sind, ist es 
immer noch besser, als wenn ich alles selbst baue.

von long long (Gast)


Lesenswert?

Dein Grundlagen Ziel bezieht sich nicht auf den ARM core, sondern auf 
die Peripherals. Und die sind herstellerspezifisch. ;-)

von W.S. (Gast)


Lesenswert?

Andreas S. schrieb:
> ich möchte in die ARM-Prozessortechnik einsteigen und finde 1 Mio.
> Seiten dazu im Internet. Leider weiß ich, daß man viel Zeit verlieren
> kann, wenn man den falschen Einstieg wählt, daher interessiert mich Eure
> persönliche Einschätzung bzw. Euer Rat.

Ich verstehe deine Startposition nicht: Du willst "einsteigen", aber was 
meinst du konkret damit?

Willst du bloß ein wenig herumprogrammieren? Das klingt bei "Die 
Grundtechniken beherrschen (I/O, UART, I2C, PWM, DMA, ggf. USB)" nämlich 
so.

Willst du bloß in irgend einer IDE herumgucken, was es da alles an 
Whistles&Bells gibt?

Oder verfolgst du ein konkretes Ziel - mal abgesehen  von deinem 
Fernziel?

Also, wenn du schon drei Marketing/Eval-Boards auf der letzten Embedded 
abgestaubt hast, dann würde ich dir - die Bastelhardware betreffend - am 
ehesten zu dem NXP-Board raten. Das scheint mir noch am ehesten 
überschaubar zu sein.

Andreas S. schrieb:
> Mein Vorwissen:
>
> - C-Kenntnisse & Passable C++ - Kenntnisse
> - AVR-8-Bitter-Kenntnisse (Assembler + C)
> - Elektronik-Kenntnisse

Das scheint mir völlig ausreichend. Aber C++ kannst du hier 
steckenlassen. Arbeite dich eher in die Anfangsgründe der 
ARM-Assemblerprogrammierung ein. Nee, nicht daß du jetzt anfängst, Epen 
in Assembler zu schreiben, sondern nur, daß du dir ein Bild machen 
kannst über die Struktur der CPU, die Register und deren Verwendung, die 
Flags und Bedingungen, das Aufrufen und wieder Verlassen von 
Unterprogrammen und die Interrupt-Mechanismen.  Lies dazu einfach das 
Referenzmanual zum Cortex M0 (für dein Board) von arm.com - die haben 
reichhaltige Dokus zum Herunterladen.

Als nächstes wäre die Lektüre des Referenzmanuals zu deinem Chip von NXP 
dran. Wenn du dir dort einen Überblick verschafft hast, wäre damit 
eigentlich der wesentliche Grundstein gelegt.

Wovon ich dir abrate, ist alles Draufgesetzte, weil das einem nur die 
Augen verkleistert mit unsäglich vielem Krempel, der sich zwischen dich 
und der zu verstehenden Hardware schiebt. Also kein Arduino, keine 
Eclipse, keine sonstige IDE, keine wohlgemeinten "Systembibliotheken", 
die das Ganze nur aufbauschen.

Das Einzige, was du zu allererst brauchst, ist eine echte Toolchain, 
also vom Compiler bis hin zum Hexfile und dann eine 
Programmiermöglichkeit, die du bezahlen kannst (und willst). Die Chips 
von NXP haben m.W. eigentlich alle einen residenten Bootlader an Bord, 
so daß du fast kostenlos mit FlashMagic und einem billigen Usb->Serial 
Adapter (FTDI, Prolific, etc.) auskommst. Wenn du Geld ausgeben willst, 
dann kauf dir einen Seggerschen J-Link-Edu.

So. Wie man sinnvoll programmiert, setze ich hier mal voraus, das 
solltest du ja bereits können.

W.S.

von long long (Gast)


Lesenswert?

W.S. schrieb:
> zu dem NXP-Board raten. Das scheint mir

W.S. schrieb:
> Die Chips
> von NXP haben m.W. eigentlich

Tipps für Anfänger sollten auf fundierten Kenntnissen und eigenen 
Erfahrungen beruhen. "Hörensagen" nachbrabbeln ist hier nicht dienlich.

von Joachim (Gast)


Lesenswert?

Andreas S. schrieb:
> Ich habe hier 3 Einstiegsboards herumliegen und frage mich, mit welchem
> Board/ARM-Prozessor ich optimalerweise beginnen sollte:

Nur mal zum Verständnis: Du HAST 3 Boards besorgt und fragst nun, 
welches Du nehmen sollst? Hmm...
Nimm das welches Deinen Anforderungen entspricht.

Mich beschleicht aber immer wieder das Gefühl, dass die Leute diese 
Billigboards nehmen, die ab und zu als Marketing-Gag von Firmen 
herausgebracht werden. Und dann bleiben die Leute daran kleben, weil man 
sich die Einarbeitung in eine Kontrollerfamilie nur einmal antun will.
Wäre es nicht besser, sich zunächst zu überlegen, WAS man machen will? 
Also ob es in Richtung Kommunikation, Steuerung, Regelung, Audio, 
Signalverarbeitung oder was auch immer geht. Und DANACH schaut, welcher 
Hersteller das passende Konzept anbietet. Und sich DAVON dann ein Board 
besorgt.
Die Funktionalität der einzelnen Herstellervarianten unterschiedet sich 
in der Peripherie. Daher sollte man die Peripheriefunktionen 
unterschieden.

Mal ehrlich, gemessen an der Einarbeitungszeit in einen neuen Kontroller 
spielt es kaum eine Rolle, ob ein Entwicklungsboard 15,- Euro oder 300,- 
Euro kostet.
Wenn man aber merkt, dass der Kontroller von dem 15,- Euro Board eben 
doch nicht der richtige war, hat man am falschen Ende gespart.

Gruß
Joachim

von long long (Gast)


Lesenswert?

Joachim schrieb:
> Wenn man aber merkt, dass der Kontroller von dem 15,- Euro Board eben
> doch nicht der richtige war, hat man am falschen Ende gespart.

Und wenn man merkt, dass der Controller vom 300€ Board der falsche war, 
hat man richtig ins ... gegriffen.

Die kleinen EVALs a la Discovery & Co. sind schon eine tolle Sache. Du 
kannst hier im Forum viele Projekte nachlesen oder dir die 
Wettbewerbsergebnisse vom XMC Contest anschauen.

von Andreas S. (igel1)


Lesenswert?

@google:

Danke für Deine Tipps.

Hast Du die Bücher ergooglet oder tatsächlich gelesen und kannst sie aus 
eigener Erfahrung empfehlen?

Mit welchem Board und welcher IDE arbeitest Du? Und welche Tutorial 
würdest Du lesen, wenn du nochmals mit ARM anfangen würdest?


CAN-Fan schrieb:
> Also ich empfehle den STM. Da gibt es mehrere kostenlose IDEs, sehr
> viele Tutorials und wie du siehst sogar im Wiki ein Subwiki.

Ja, momentan tendiere ich ebenfalls dahin - allerdings nur deshalb, weil 
ich die anderen Board/Prozessoren noch nicht kenne.

Welche IDE'en empfiehlst Du mir?
(sollte kostenlos und ohne Code-Limit sein)

> Dazu gibt es z.B. den CubeMX, der mittlerweile einen viel Arbeit
> abnimmt. Auch wenn manchmal noch ein paar Fehler in der HAL sind, ist es
> immer noch besser, als wenn ich alles selbst baue.

Danke für diesen Tipp. Vor 3 Jahren, als ich erstmals mit dem STM32F4 
herumspielte, gab's dieses CubeMX noch nicht (oder ich hab's nicht 
gefunden). Kann mir gut vorstellen, dass einem dieses Tool das Leben 
deutlich erleichtert.


Long long schrieb:
> Dein Grundlagen Ziel bezieht sich nicht auf den ARM core,
> sondern auf  die Peripherals. Und die sind herstellerspezifisch. ;-)

Hmmm - trotzdem muß ich diese Dinge erst einmal beherrschen, damit ich 
mit einem ARM überhaupt so weit komme, wie mit meinen heutigen ATmegas.

Und weil die Frage zu meinen Anwendungsgebieten mehrmals kam, so muß ich 
Euch leider antworten, daß ich es heute noch nicht so genau weiß.

Ich weiß nur, daß ich Hobby-Elektroniker bin und meine Projekte somit 
vom Umfang her beschränkt sind - genau wie meine 
Einarbeitungskapazitäten.
Das Einzige, was unbeschränkt ist, sind meine Ideen :-)

Hier ein paar davon (most important first):

- Bildsensoren OV7660 auslesen und ggf. jpeg's daraus generieren
  (siehe auch mein Beitrag 
Beitrag "Re: Projekt Maus")
- Anwendungen auf dem ARM per USB steuern
- Daten vom ARM per USB in den PC einlesen (und umgekehrt)
- Sensoren auslesen, Daten zwischenspeichern
- Meine Roboter steuern (z.B. meinen RP6)
- SD-Karten lesen und schreiben
- Audiodaten aufnehmen, filtern, ausgeben


W.S. schrieb:
> Willst du bloß ein wenig herumprogrammieren?
> Das klingt bei "Die Grundtechniken beherrschen
> (I/O, UART, I2C, PWM, DMA, ggf. USB)" nämlich so.

Das klingt jetzt aber ein bißchen abwertend ...
Aber egal: ja,ich will zunächst einfach nur ein bißchen 
herumprogrammieren.

Ich gehe anfangs oft wenig zielstrebig vor und spiele zunächst mit den 
Möglichkeiten der Prozessoren. Wenn ich die raushabe, gehe ich 
Konkreteres an.

> Also, wenn du schon drei Marketing/Eval-Boards auf der letzten
> Embedded abgestaubt hast,

Muß Dich enttäuschen: ich habe alle drei gekauft - zwei davon gebraucht 
hier im Forum.

> dann würde ich dir - die Bastelhardware betreffend - am
> ehesten zu dem NXP-Board raten. Das scheint mir noch am ehesten
> überschaubar zu sein.

Kennst Du den Prozessor und hast Du bereits Erfahrungen mit einem ARM 
von NXP gemacht?  Entspricht die aufgezeigte Vorgehensweise Deiner 
Vorgehensweise, die Du am NXP - ARM praktiziert hast?

Welche Tutorials von arm.com meinst Du genau? Sicherlich ersaufe ich da 
wieder in Material. Welche davon hast Du gelesen und kannst sie aus 
eigener Erfahrung empfehlen?

Du hast Dir sehr viel Mühe mit Deiner langen Antwort gemacht (Danke 
dafür) - basiert alles auf eigenen ARM-Erfahrungen?


Joachim schrieb:
> Nur mal zum Verständnis: Du HAST 3 Boards besorgt und fragst nun,
> welches Du nehmen sollst? Hmm...

Ja, das zeigt meine Unsicherheit ...

> Nimm das welches Deinen Anforderungen entspricht.

Die hatte ich hinter dem Satz "Insbesondere folgende Kriterien sind mir 
wichtig:" versteckt.

Als Hobby-Elektroniker erbeitet man sich in einen MC ein und versucht 
dann später möglichst viele Probleme mit genau diesem Teil zu erschlagen 
- da gebe ich Dir recht.


@All:

Vielen Dank für die Mühen Eurer Antworten.
Habe alles fein säuberlich gelesen und werde es beherzigen.

Allerdings fehlen mir noch ein bißchen konkretere Ansagen a la:
Wenn Du Board X nimmst, dann lese Artikel Y und nutze Toolchain Z - hat 
mich auch gehilft.

Auch wenn's sicherlich sehr subjektiv wäre - so würde ich mich über 
solche Tipps (basierend auf Euren eigenen Erfahrungen) sehr freuen ...

Viele Grüße

Igel1

von CAN-Fan (Gast)


Lesenswert?

Also ich habe das Init-Zeugs per Cube erstellt und dann mit Eclipse die 
Makefile.

Dann einfach unter Linux + Texteditor + JLinkCommander alles gemacht. 
Bei größeren Sachen nutze ich Eclipse + Plugins oder das neue SW4STM32. 
Das ist nichts anderes als ein Eclipse mit Plugins. Muss man nicht alles 
einzeln installieren.

Was mich überrascht hat:
Ich habe ein Board mit STM32F446RE designed. In Cube die IPs eingestellt 
und das mit SW4STM32 geöffnet, kompiliert und dann (von Hand, später das 
JLink Plugin installiert) auf die MCU geladen. Und ich konnte auf Anhieb 
Daten an den PC per USB versenden. (USB-Middleware kannst per Cube 
einstellen)

Die Ernüchterung:
Beim CDC-Empfangen gabs massive Probleme und ich hab Teile der 
Middleware ändern müssen.

Auch bei dem STM32F302 hatte ich mit der HAL und dem DMA ein Problem. 
Also es ist nicht zu 100% fehlerfrei, aber wenn man das darunter 
einschätzen kann, spricht m.M.n. nichts dagegen.

Was ich aber empfehle, und wie ich es gelernt habe:
- Das Cortex-M3/M4 Buch (definitive guide for the ...)
- Sich erstmal nur auf die CPU konzentrieren, Clock tree und 
Speicheranbindung etc.
- Hab mit Assembler da einfache Sachen gemacht um die CPU zu verstehen 
etc.
- Simples Linkerskript erstellt
- Datenblätter zum ARM gelesen

und dann eigentlich schon Datenblätter zur MCU und wie die Speicherbusse 
etc verlaufen. Und mit C angefangen.

von Little B. (lil-b)


Lesenswert?

Andreas S. schrieb:
> Wenn Du Board X nimmst, dann lese Artikel Y und nutze Toolchain Z - hat
> mich auch gehilft.

Wenn du Board "STM32F4 Discovery" nimmst, dann nutze Toolchain "Atollic 
TrueStudio Lite" und lese da die Beispiele.

Klar, TrueStudio ist beschränkt, hat aber den vorteil, dass es auf 
anhieb funktioniert. Die IDE kannst du dann ja immer noch wechseln.
Im TrueStudio sind alle ST-Beispiele für das Discovery dabei und lassen 
sich problemlos kompilieren. Hier siehst du, wie die HAL benutzt wird. 
Ein einfach gehaltenes Linker Skript zeigt dir, wie der Speicher genutzt 
wird.

Meine Vorgehensweise (eigentlich bei jedem Controller gleich):
 - Blinky LED in Main Loop
 - Blinky LED mit Timer
 - UART
 - UART mit DMA
und dann speziel für den Einsatz weiter arbeiten

von Joachim (Gast)


Lesenswert?

long long schrieb:
> Und wenn man merkt, dass der Controller vom 300€ Board der falsche war,
> hat man richtig ins ... gegriffen.

Wenn ich den gewissenhaft ausgewählt habe, dann ist es nicht der 
falsche.
Du hast leider NICHTS von dem kapiert, was ich geschrieben habe.

Mich erinnern die Auswahlkriterien von Kontrollern an den "Eagle"-Hype: 
Eagle war (zumindedst in den 90ern) das gräuseligste Layoutptogramm, was 
man sich vorstellen konnte. Aber jeder hats benutzt, weil billig oder 
für lau.
Der Gedanke der Hersteller ist der:
Streue das Zeug billig oder umsonst unter die Schüler und Studenten und 
hoffe dann, dass es ein Großteil zu seinem künftigen Arbeitgeber 
mitnimmt.

Es kann natürlich sein, dass ich das von einer für Euch unverständlichen 
Seite sehe. Ihr habt viel Zeit, Euch in Dinge einzuarbeiten, auch wenn 
Ihr es nachher verwerft.
Als Gewerbetreibender steht bei mir die Zeit an erster Stelle. Nach 2 
Arbeitstagen eines Angestellten sind die Kosten für ein 
Entwicklungsboard eh verbraten. Und nach 1 Monat Arbeit an dem Projekt 
sind ein paar Tausender verbraten. Wen kümmern da 300,- Euro für das 
Board?

Gruß

Joachim

von W.S. (Gast)


Lesenswert?

Andreas S. schrieb:
> Kennst Du den Prozessor und hast Du bereits Erfahrungen mit einem ARM
> von NXP gemacht?  Entspricht die aufgezeigte Vorgehensweise Deiner
> Vorgehensweise, die Du am NXP - ARM praktiziert hast?
>
> Welche Tutorials von arm.com meinst Du genau? Sicherlich ersaufe ich da
> wieder in Material. Welche davon hast Du gelesen und kannst sie aus
> eigener Erfahrung empfehlen?
>
> Du hast Dir sehr viel Mühe mit Deiner langen Antwort gemacht (Danke
> dafür) - basiert alles auf eigenen ARM-Erfahrungen?

Also, mein Lieber,
Ich bin jemand, der Geräte entwickelt - und davon sind eine ganze Reihe 
davon mit ARM-Controllern von NXP ausgestattet. Ich hab allerdings auch 
Nuvoton, ST und neuerdings Freescale im Portfolio. So, reicht dir das?

Ich hab vor geraumer Zeit die Lernbetty hier im Forum geschrieben, damit 
Neulinge wie du eine saubillige und dabei recht gut ausgestattete 
Hardware haben zum Erlernen des Umgangs mit ARM-Prozessoren. Ist bei 
Pollin leider ausverkauft. Die Betty war zwar ein ARM7TDMI, aber dennoch 
ist das Anschauen und Lesen der Lernbetty auch heutzutage noch für die 
meisten Anfänger sowohl lehrreich als auch eine Fundgrube für 
Softwaredetails und zum Verstehen der prinzipiellen Herangehensweise. 
Viele Dinge sind soweit plattformunabhängig, daß man sie auch auf 
anderen Chips benutzen kann. Soweit dazu.

Zu arm.com: Da meine ich keine Tutorials, sondern Dokumentationen. Hänge 
dich nicht an Tutorials, das sind ganz häufig Trittbrettfahrer-Produkte, 
wo Leute gegen Geld über irgendwas schwätzen. Bei ARM findest du 
hingegen Dokumentationen - und zwar aus allererster Hand. Ich kann dir 
auch bedingt zu Appnotes der jeweiligen Chiphersteller raten, aber 
lies das mit Vorsicht: Häufig genug will dir der Hersteller damit was 
unterjubeln -selbstverständlich in lauterster und bester Absicht. So 
z.B. Setzen eines Portpins mittels CMSIS oder Toggeln eines anderen 
Portpins mittels ST-Lib oder so ähnlich.. ;-)

W.S.

von long long (Gast)


Lesenswert?

Joachim schrieb:
> long long schrieb:
> Und wenn man merkt, dass der Controller vom 300€ Board der falsche war,
> hat man richtig ins ... gegriffen.
>
> Wenn ich den gewissenhaft ausgewählt habe, dann ist es nicht der
> falsche.

Und ist der Richtige auf dem EVAL Board nicht OK? Nur weil er günstig 
ist, taugt er nicht?

Man schreibst du einen B..s... :-(

Bei den EVAL Board sind die Pins auf Stiftleiste geführt. Eigene HW kann 
einfach angeschlossen und genutzt werden. Bei den teuren Boards sind 
Display in Co. direkt darauf. Zeugs, das ich nicht kenne, und nicht 
brauche.

Alle namhaften Hersteller haben die günstigen und komfortablen Boards. 
Du bekommst also auch eins mit dem Richtigen! ;-)

Lies den ersten Post und du wirst verstehen, warum ein günstiges Board 
mit allem drum und dran für den TO das Richtige ist. ;-)

von W.S. (Gast)


Lesenswert?

Joachim schrieb:
> Mich beschleicht aber immer wieder das Gefühl, dass die Leute diese
> Billigboards nehmen, die ab und zu als Marketing-Gag von Firmen
> herausgebracht werden. Und dann bleiben die Leute daran kleben, weil man
> sich die Einarbeitung in eine Kontrollerfamilie nur einmal antun will.

Nimm's leicht und betrachte mal die Zielgruppen.

Da haben wir die eigentlichen Entwickler, die sich sowas lediglich mal 
ansehen und lediglich wissen wollen, ob der Chip darauf ihnen gefällt.

Als nächstes haben wir die Bastler und Wurschtler unter den Entwicklern, 
die zu klein sind, um in der Firma was Eigenständiges auf die Beine zu 
stellen und die deshalb solche Eval-Boards tatsächlich in Produkte 
verbauen.

Dann haben wir die eigentlichen Bastler. Das sins Privatleute, die zwar 
ein Faible dafür haben, aber nicht die Potenz einer Firma, weswegen sie 
keine eigene Entwicklung auf die Beine stellen können und deshalb ihre 
Basteleien auf so einem Eval-Board aufsetzen. Das elende Problem mit den 
Distries hierzulande, die zum großen Teil jegliche Privatleute 
ausschließen, ist ja seit Jahren bekannt. Entsprechend beschränkt ist 
die Zugriffsmöglichkeit von Bastlern auf Bauelemente.

Als nächstes haben wir die Schüler und Studenten, die eigentlich 
garnichts bauen oder basteln wollen, sondern sich eben nur damit 
beschäftigen, also drin herum daddeln, ein wenig programmieren (soll 
aber keinen Nervenschmalz kosten) oder in einer IDE erumklicken, kurzum 
zum Zeitvertreib ohne Entwicklungsziel.

Ich sehe natürlich durchaus die schlimmen Langzeiteffekte, die auf die 
Allgemeinheit mit Leuten aus der letzten Gruppe zukommen. Die kleben 
dann an irgendwas fest, können eigentlich garnichts und verstehen auch 
fast garnichts - aber sie sind stolz auf sich und ihr Blinky und voll 
erfüllt von ihrer Selbsteinschätzung als großartige 
Mikrocontroller-Spezialisten - und sie sind dann in einigen Jahren das 
Einzige, was am Arbeitsmarkt für Elektronik-Ingenieure überhaupt zur 
Verfügung stehen wird. Tja..

W.S.

von Schneckenepilierer (Gast)


Lesenswert?

Ah, immer gut, wenn sich die Welt einfach und pauschal erklären lässt.

von long long (Gast)


Lesenswert?

Tja, es gibt immer so ein paar Labersäcke, die nmach dem Motto leben: 
Was nichts kostet, taugt nicht!

von Andreas S. (igel1)


Lesenswert?

@CAN-Fan:

So ein langer Beitrag - das ist aber nett.

Dabei hast Du genau meine Frage getroffen und mir konkrete 
"Handlungsanweisungen" zur Einarbeitung gegeben - super.

"The definitive guide" hatte ich damals bereits angelesen und fand ihn 
gut - danke, daß Du mir diese Lektüre bestätigst, dann werde ich dort 
wieder die verlorene Spur aufnehmen. Sollte ich unbedingt die aktuellste 
Version des Buches für meinen STM32F4 lesen, oder tun es auch die 
älteren M0 und M3- Auflagen des Buches?

Auch die Hinweise auf CDC waren für mich interessant - ich hatte das vor 
3 Jahren bereits probiert, war aber damals noch an fehlenden Kenntnissen 
plus fehlender Doku bzw. fertigen Codeschnippseln/Libraries und dem 
Code-Limit der Atolic-IDE gescheitert.


@Little Basdart:

Auch Dir ein Dank für die Hinweise - jawohl, ich werde die ersten 
Schritte wohl wieder (wie vor 3 Jahren) mit Atollic machen, dann aber 
auf etwas ohne Code-Limitations umsteigen.


@Joachim:

Im beruflichen Umfeld gebe ich Dir 100% Recht: an Tools oder Werkzeugen 
zu sparen macht bei den hiesigen Stundensätzen absolut keinen Sinn.

Im privaten Hobby-Bereich sehe ich es etwas differenzierter: 
letztendlich ist das Hobby-Budget halt doch beschränkt - genau wie die 
zur Verfügung stehende Zeit.

Hätte ich vor 3 Jahren ein 300,- EUR Board gekauft, so hätte es nun 3 
Jahre ungeplant im Schrank gelegen und ich hätte mich geärgert.
Mit meinen 10,- Euro-Boards sehe ich das viel entspannter.

Außerdem gilt hier im Hobby-Bereich viel eher: der Weg ist das Ziel.
Und selbst wenn er ein wenig länger ist - solange ich ihn genieße ist ja 
alles im Lot, oder?!


@W.S.:

> Also, mein Lieber,
> Ich bin jemand, der Geräte entwickelt

Nett, daß Du mich offenbar in Dein Herz geschlossen hast - bei der 
Anrede ... :-)

Sorry, wenn ich kurz an Deiner Qualifikation gezweifelt habe - ich kann 
bei meinem Wissensstand nicht entscheiden, ob mir hier jemand vom Fach 
Tipps gibt, oder ob mir Google-Anhänger Tipps geben - daher meine 
Nachfrage.

Nun, da Deine Quali über jeden Zweifel erhaben ist, sind Deine Tipps 
natürlich noch viel wertvoller - daher auch Dir: 1000 Dank dafür!

Danke auch für den Betty-Tipp (habe schon immer mal damit kokettiert) 
und Deine Erläuterungen zu arm.com


@long long:

> Man schreibst du einen B..s... :-(

> Tja, es gibt immer so ein paar Labersäcke ...

Eifer und Leidenschaft sind ja gut und davon lebt unser Hobby, aber laßt 
uns bitte über die Sache diskutieren und uns nicht gegenseitig 
persönlich angehen.


Zwischenfazit:

Die Tipps von CAN-Fan und Little Basdart haben mich bislang am meisten 
angesprochen. Allerdings hatte der Tipp von W.S. mit seinem Hinweis auf 
die Übersichtlichkeit der NXP-Prozessoren auch Potential, mich 
umzustimmen.
Mal sehen, ob hier noch weitere Stimmen eingehen werden.

Immerhin werde ich erst einmal die Lektüre des Definitive Guide's wieder 
aufnehmen - die Zeit scheint gut investiert zu sein.

Viele Grüße

Igel1

von Jojo S. (Gast)


Lesenswert?

@Igel1: Zum LPCXpresso gibt es hier das Tutorial: 
https://www.lpcware.com/system/files/LPCXpresso_User_Guide_0.pdf
Bzw. wird das aktuelle mit der Installation der IDE mitgeliefert. 
LPCXpresso hat zwar ein Codelimit in der freien Version, ist aber für 
den LPC812 nicht relevant weil der gar nicht soviel Speicher hat (Limit 
256k). Selbst für die grösseren LPCs kommt man da nicht so leicht ran, 
auch nicht mit Webserver, Dateisystem und RTOS.
Die IDE ist sehr umfangreich, deshalb ist es ratsam sich das Tutrial gut 
anzusehen. Wenn man mit IDEs gerne arbeitet ist die aber sehr 
komfortabel.
Von NXP gibt es eine Lib names LPCOpen, damit bekommt man die jeweiligen 
Peripherieteile schnell ans Laufen. Die Lib mag ich nicht so, aber man 
kann hier immerhin abgucken welche Register/Bits wie konfiguriert werden 
müssen.
Wenn du mit den Atmel Datenblättern klar gekommen bist dann ist die LPC 
Doku auch kein Problem, die ist sehr gut. Oft wird das hier als 
kompliziert dargestellt weil das bei einigen Prozessoren mehr als 
Tausend Seiten sind, die liest man aber nicht von A-Z als Lehrbuch. Es 
gibt ein Datasheet das die Features beschreibt und ein User Manual das 
in die bitweisen Details geht. Für den Anfang sollte man Wissen das fast 
alle Pins mehrfach belegt sind man erstmal die gewünschte Funktion 
aktivieren muss. Dann lassen sich viele Peripherieteile zum Strom sparen 
abschalten und nach dem Reset müssen die erst eingeschaltet werden, das 
findet man aber auch schnell in der Doku.
Ähnliches gibt es natürlich auch für die anderen Kandidaten, hier im 
Forum ist ST weiter verbreitet. Den LPC1769 gibt es aber schon seit 
Jahren als günstiges Einsteiger Angebot und deshalb hatte ich damit 
angefangen. ST hat eine wahnsinnig grosse Palette, aber das ist wohl 
eher für kommerzielle Anwendungen wichtig.
Die LPC8xx sind die neueren 'kleinen', besonderes Merkmal ist die IO 
Switch Matrix und ein sehr komplexer Timer (SCT). Ich benutze gerne den 
LPC1347 wg. eingebautem USB und weil ich das LQFP SMD Zeug gerade noch 
verarbeiten kann. Der nächstgrössere ist der LPC1769, dann auf dem 
LPCXpresso Board. Da muss nur eine MagJack Buchse dran und die Hardware 
ist Ethernetfähig. Noch eine Stufe drüber ist der LPC4088 mit FPU und 
Display Controller. Ich denke damit bekomme ich alles rund um den 
heimischen Herd gesteuert :-)

von Andreas S. (igel1)


Lesenswert?

@Jojo S.:

Interessantes Plädoyer für NXP - insbesondere den Verweis auf die 
professionelle IDE und das eingebaute USB fand ich gut.

Die verlinkte Doku macht ebenfalls einen guten Eindruck. Ob ich doch 
schwach werde und auf NXP umsattle?

Danke in jedem Fall für Deine Einschätzung/Tipps!

Viele Grüße

Igel1

von iwoasesned (Gast)


Lesenswert?

Little B. schrieb:
> Klar, TrueStudio ist beschränkt, hat aber den vorteil, dass es auf

Ist es seit kurzem nicht mehr, die Codesize Limitierung is weggefallen.
Allerdings ist es natürlich ein ziemlich lames teil.

von iwoasesned (Gast)


Lesenswert?

CAN-Fan schrieb:
> , als wenn ich alles selbst baue.

Wenn Du es selbst baust, verstehts Du wenigstens was Du tust.

Ich halte von dem CubMx garnix. Ich hatte mir vor Jahren eine der
ersten Versionen reingezogen, einfach gruselig. Nix hat gescheit
funktioniert.

Vor kurzen habe ich mir noch einmal die neueste Version installiert.
Das da zum Teil an Code rauskommt ist schon genial:

if (ptr != NULL) {
  ptr = NULL;
}

Das zeigt schon wie effizient das ist und von welchen Leuten das
gemacht wurde.....

von Markus F. (mfro)


Lesenswert?

Ich finde die Teensies einfach genial.

Die sind zwar für Arduiono gemacht, aber das braucht man nicht, so man 
nicht will. arm-none-eabi Toolchain installieren, Makefile, eine IDE der 
Wahl, das Ding auf ein Steckbrett gesteckt, USB-Kabel dran, den UART 
dazu und man hat eine brauchbare Entwicklungsumgebung für die ersten 
ARM-Schritte (20 €).

Dazu das Kinetis-Manual auswendig lernen und es kann losgehen.

Einziges Manko ist die nicht zugängliche SWD-Debuggerschnittstelle. Das 
läßt sich aber mit einem scharfen Messer und Lötkolben beheben.

Macht man so ein Ding auf dem Steckbrett mal kaputt (hab' ich noch nicht 
hingekriegt), holt man sich einfach ein neues aus der Schachtel ;)

Ob die allerdings für dein "Fernziel" ausreichend sind?

von Jojo S. (Gast)


Lesenswert?

Andreas S. schrieb:
> Interessantes Plädoyer für NXP - insbesondere den Verweis auf die
> professionelle IDE und das eingebaute USB fand ich gut.

Da möchte ich nur noch anmerken das ich nicht mit NXP oder Philips 
verwandt bin und auch nix dafür kriege. Ich habe halt auch mit den Atmel 
AVR den Einstig in die µC Welt angefangen und fand die ARM dann wegen 
gleicher Grösse und mehr Power interessanter. Mit den ARM7TDMI war das 
aber ein Krampf, nicht wegen der ARM sondern OpenOCD und irgendwie eine 
lauffähige Umgebung hinzubekommen. Da ist heute deutlich einfacher, nur 
hat man jetzt die Qual der Wahl...
USB können andere selbstverständlich auch, ich wollte damit nur sagen 
das ich mit den genannten Familien meine Hobbyprojekte wie zB LED 
Schnickschnack, FS20->UDP Gateway, Blumenbewässerung oder 
Motorsteuerungen realisieren kann. Der 'Nachteil' am LPCXpresso ist ja 
das es leider auf die NXP beschränkt ist. Es kam von CodeRed und da 
sollte es (zumindest gegen Cash) auch für andere Hersteller offen sein, 
aber in diese Richtung geht es ja nicht mehr weiter. Für mich ist hier 
weniger mehr und selbst wenn es mal was mit ST sein soll gibts ja immer 
noch CooCox und andere.
So kleine Breakoutboards wie Teensy finde ich auch gut, gibt es ja auch 
für LPC, ST und andere. Dazu etwas eigene HW auf ein Steckbrett und man 
kann schnell alles mögliche ausprobieren. Die kleinen Boards kriegt man 
auch noch gut auf eine eigene Platine und man umgeht das SMD verarbeiten 
wenn man das nicht mag.

von Geert H. (geerth)


Lesenswert?

@Jojo S.
Ich bin mit dir einverstanden. Ich hatte das mbed LPC1768 modul frei 
bekommen. Habe Angefangen mit mbed. Ist einfach zu benutzen, aber für 
mich ist das Problem C++ kenntniss. Das ist noch ein bisschen schweriger 
als reines C.
Ich fand die Docu von NXP sehr gut.
Habe mir auf Youtube demo von LPCXpressoIDE angesehen, aber dass sieht 
sehr Komplex aus... Ich habe es schon lange auf PC, und mehrfach updates 
installiert. Das ging alles ohne probleme. (Vergleiche mit Atmel Studio, 
der braucht immer etwas anderes/neues, der ist nie erwachsen).
An sich sieht LPCXpressoIDE besonders stabil aus.
Ich habe auch KeilMDK angesehen, macht einen einfacheren Eindruck.

Alles zusammen finde ich dass LPC1768 eine Art Standardmodul ist.
Sehr weitverbreitet und "alles" ist drin.

Alles was mann dazu braucht an software ist da, und von bester Qualität.
Ich habe mich konzentriert auf Bascom-AVR, aber wenn ich weiter gehe mit 
ARM denke ich dass das Studium mit die NXP der beste Investition ist.
Ein Anfangerkurs auf Mikrocontroller.net mit LPCxpressoIDE möchte ich 
gerne mitmachen.

: Bearbeitet durch User
von google (Gast)


Lesenswert?

Andreas S. schrieb:
> Danke für Deine Tipps.
>
> Hast Du die Bücher ergooglet oder tatsächlich gelesen und kannst sie aus
> eigener Erfahrung empfehlen?
>
> Mit welchem Board und welcher IDE arbeitest Du? Und welche Tutorial
> würdest Du lesen, wenn du nochmals mit ARM anfangen würdest?

Ich habe die Bücher, habe mit dem Code Composer und den launchpads 
seinerzeit angefangen, bin aber mittlerweile auf eigene STM32-Boards 
bzw. bei Ebay gekaufte Minimalboards und Coocox bzw. IAR 
(codebeschränkt) umgestiegen. Aber ich bin fachfremder Bastler mit wenig 
Zeit, kein Profi.

von Joachim (Gast)


Lesenswert?

W.S. schrieb:
> Ich sehe natürlich durchaus die schlimmen Langzeiteffekte, die auf die
> Allgemeinheit mit Leuten aus der letzten Gruppe zukommen.

Ich muss Dir da leider recht geben. Aus eigener Erfahrung kann ich 
bestätigen, dass 90% der Leute am liebsten mit 3 oder 4 monströsen Tools 
gleichzeitig arbeiten und jede kleinste Funktion ihrer Monster-IDE 
auswendig können, aber nicht im geringsten ein Problem lösen können.

Natürlich verstehe ich das mit dem Bastlergedanken.
Ich wollte auch nur den Hinweis geben, sich nicht an 3 zufällig 
vorhandene Boards zu binden, sondern vielleicht mal herumzuschauen.
Gerade weil die Einarbeitung nicht ganz ohne ist, sollte es das wert 
sein.
Ein Arduion Due Clone kostet auch nur um 20,- Euro. Und wenn man das 
Arduino-Geraffel weglässt (sprich: per JTAG und einem richtigen Compiler 
drangeht), dann hat man ein sehr leistungsfähiges Board.

Jojo S. schrieb:
> Mit den ARM7TDMI war das
> aber ein Krampf, nicht wegen der ARM sondern OpenOCD und irgendwie eine
> lauffähige Umgebung hinzubekommen.

Ich habe für meine älteren ARM7-Projekte immer noch die Kombination 
WinArm und OpenOCD drauf. Macht überhaupt keine Probleme. Da kann man 
sogar noch das Makefile von Hand editieren und es funktioniert so wie 
man will.
Ein Krampf ist eher das ATMEL Studio. Ich habe es bis heute nicht 
geschafft, dem Ding mal beizubringen, dass es mir nicht den Stackbereich 
mit Daten überschreibt, wenn mal ein paar KB RAM mehr benutzt werden :-(
Compiler bzw. Linker-Warnung in dem Fall Fehlanzeige! Sowas ist doch 
Mist!

Leider war es schon in der Vergangenheit oft so, dass man sich zwischen 
einem guten Kontroller mit mäßiger Entwicklungsumgebung und einem 
schlechteren Kontroller mit super Entwicklungsumgebung entscheiden 
musste.
Beides zusammen ist mir bislang noch nie begegnet ;-)

Gruß

Joachim

von CAN-Fan (Gast)


Lesenswert?

iwoasesned schrieb:
> CAN-Fan schrieb:
>> , als wenn ich alles selbst baue.
>
> Wenn Du es selbst baust, verstehts Du wenigstens was Du tust.
>
> Ich halte von dem CubMx garnix. Ich hatte mir vor Jahren eine der
> ersten Versionen reingezogen, einfach gruselig. Nix hat gescheit
> funktioniert.

Habe ich auch früher gemacht. Hab dann z.B. für einen Freescale (die IPs 
sind ganz ok, aber die Doku und Support finde ich einfach schlecht) eine 
SPI-Lib geschrieben. Zuerst für eine Cortex-M4, dann sollte es eine 
kleinere Version vom Produkt mit einer M0+ geben. Da durfte ich wieder 
alle Register raussuchen, die defines schreiben etc.

Mir ist bewusst, dass jede Schicht ein Performanceverlust ist, nur habe 
ich keine Lust einen USB-Stack in Assembler zu schreiben.
Dank CubeMX suche ich mir einfach genau die MCU, die alles hat, was ich 
brauche und dabei am "kleinsten" ist. Ob das jetzt eine M0+, M3, M4 ist, 
ist egal, davon bin ich unabhängig. Und 4 kB mehr Flash für die Lib ist 
bei den Produkten auch egal. Klar wenn es z.B. Multimedia-Massen-Markt 
ist, da rechnet man anders. Auch wenn eine Firma die Ressourcen hat um 
eine eigene Hardware-Lib zu pflegen ist das ok.

Die ersten Versionen von Cube habe ich auch nicht verwendet (hab noch 
die alte HAL benutzt). Zeitkritische Sachen schreibe ich auch direkt 
selbst. Aber beim Startup um die Register für die GPIOs zu beschreiben 
habe ich mit der HAL kein Problem. Wichtig ist, dass man weiß, was 
dahinter passiert und ob es für die Anwendung passt.


@Andreas S. danke für das Lob :) Damals gab es leider noch nicht so 
viel, als ich angefangen habe. Für die Grundzüge ist es egal, ob es das 
M3 oder M4 Buch ist. Im wesentlichen ist da nur die FPU dazu gekommen.
Von NXP habe ich selbst nichts schlechtes gehört, habe mich dann einfach 
wegen den support und den tools für St entschieden. Der ganz große 
Nachteil ist, St bietet keine STM32 bis 125°C an. Daher werde ich mich 
auch wegen anderen Herstellern umsehen müssen.

Und da ist ein Board mit Power Supply und einem Chip genau das richtige. 
Warum 300€ für ein Board ausgeben, wenn ich nur die CPU testen will, 
bzw. das Toolchain. Was ich da dran hänge, teste ich separat. Die 
billigen Boards bringen auch nicht unbedingt dummen Nachwuchs, sondern 
ist eher eine Chance. Aber da stimme ich @W.S. zu: Wer einfach in einer 
IDE rum klickt und ein Beispiel ladet und sich als Experte fühlt, der 
soll mal wieder auf den Boden kommen.

von iwoasesned (Gast)


Lesenswert?

Hi

Ein Kollege hat versucht mit CubMX den USB von einem STM32F103
zum laufeb zu bringen. Der hat irgendwann entnervt aufgegeben.
Wir haben zum Glück in der Firma die SW von Segger. Die läuft
Prima.

von Andreas S. (igel1)


Lesenswert?

iwoasesned schrieb:
> Hi
>
> Ein Kollege hat versucht mit CubMX den USB von einem STM32F103
> zum laufeb zu bringen. Der hat irgendwann entnervt aufgegeben.
> Wir haben zum Glück in der Firma die SW von Segger. Die läuft
> Prima.


... Ihr solltet Euch CAN-Fan aus diesem Forum einkaufen - er hat genau 
dieses Problem gelöst. Siehe sein Posting etwas weiter oben in diesem 
Thread:
Beitrag "Re: Einstieg ARM: Tutorials, Toolchain, DevBoard"

Viele Grüße

Igel1


PS:  @CAN-Fan: 10% Vermittlungsgebühr gehen an mich :-)

von Andreas S. (igel1)


Lesenswert?

iwoasesned schrieb:
> Little B. schrieb:
>> Klar, TrueStudio ist beschränkt, hat aber den vorteil, dass es auf
>
> Ist es seit kurzem nicht mehr, die Codesize Limitierung is weggefallen.
> Allerdings ist es natürlich ein ziemlich lames teil.

Super Info!! Damit hatte ich vor 3 Jahren angefangen und bin dann bei 
meinen USB-Experimenten (die definitiv 'ne Nummer zu hoch für mich 
waren) schon ganz schnell an die Codesize-Limitierung gestoßen.

Einfach klasse, was man hier für Infos bekommt - Danke nach Bayern an 
iwoasesned.


Markus F. schrieb:
> Ich finde die Teensies einfach genial.

Macht ebenfalls einen interessanten Eindruck, aber habe ich dort eine 
genauso große Community-Unterstützung wie bei ST, NXP oder TI?


Jojo S. schrieb:
> Da möchte ich nur noch anmerken das ich nicht mit NXP oder Philips
> verwandt bin

Ja, ja - schon gut: ich bin auch nicht mit Mikrocontrollern verwandt, 
obwohl meine Frau ab und an meint, ich sei mit denen und nicht mit ihr 
verheiratet ...

Aber mal 'ne Frage:
Wenn ich tatsächlich auf NXP umsteigen sollte, welches Einsteigerboard 
sollte ich dann nehmen? Für welches gibt's die größte Community, die 
beste Doku und die meisten Code-Beispiele? Etwa das mbed LPC1768 modul 
von Geerd H.? Schlägt immerhin mit 60,- EUR zu Buche ...


@google:

Danke für die Erläuterung - sehr eindrucksvoll, wie weit Du offenbar 
gekommen bist, während ich direkt zu Anfang aus der Kurve geflogen bin.


@CAN-Fan:

Danke nochmals für Deine Hinweise.

> Der ganz große Nachteil ist, St bietet keine STM32 bis 125°C an.

Au, das ist jetzt ganz schlecht für mich, denn ich wollte den STM32 
nicht nur zum Programmieren, sondern auch als Lötkolbenablage benutzen 
;-)


@All:

Ich werde mich dann jetzt mal ans Werk machen und das von CAN-Fan 
empfohlene Buch lesen, bevor ich vor lauter Recherche den eigentlichen 
Forscher-, Entdecker- und Programmier-Spaß verpasse.

Aktuell präferiere ich noch immer ganz leicht den STM32, aber die 
NXP-Fraktion hier hat mich mit den Hinweisen auf die gute Doku und die 
gute CodeRed IDE mächtig verunsichert.


Danke für Euren vielen Tipps.
Ihr wart mal wieder super hilfsbereit.


Viele Grüße

Igel1

von CAN-Fan (Gast)


Lesenswert?

Andreas S. schrieb:
> PS:  @CAN-Fan: 10% Vermittlungsgebühr gehen an mich :-)

Da ich nicht billig bin, kannst dir schon mal ne schöne Reise buchen.

Also ich schreib durchaus positiv, aber ich nutze auch nicht alles mit 
CubeMX. Eigentlich nur für die HW-Init und dass es mir die Middleware 
für z.B. Rtos rein kopiert. Hab das früher mit der Hand gemacht, jetzt 
kopiert er das rein, und passt paar Configs an, was ich sonst auch per 
Define und Hand gemacht hab. Wer da etwas voll automatisches erwartet 
(und ohne Grundlagenwissen), ist da auch falsch. Es hilft, wenn man 
weiß, was Cube macht und was man eigentlich machen will.

Wegen USB: Ich hab die STM32F446RE genutzt und das senden (!) per VCP 
hat auf Anhieb funktioniert. Beim empfangen ruft er ca. 10 
Unterfunktionen auf, bei einer steht einfach: return HAL_OK; drinnen.

Da die Empfangsfunktion nicht blockierend war und immer HAL_OK 
zurückgegeben hat, musste ich mir den kompletten USB-Stack ansehen und 
das dann direkt vom Endpoint auswerten und weiter geben. Aber das 
Problem ist eigentlich von der Middleware, Cube kopiert nur. Die Doku zu 
der St USB Middleware ist zwar (vermutlich) besser als jede Freescale 
Doku scnr, aber die Segger doku zu emWin ist da deutlich besser.

Auch hatte ich das Problem bei dem STM32F302, dass der DMA für UART 
nicht funktioniert hat. Die HAL hat (warum auch immer) das DMA-Start bit 
nicht gesetzt. Habe dann einfach das Register direkt beschrieben und 
dann ging es.

Aber z.B. bei der Lib von Freescale habe ich ewig einen CMSIS-Befehl wie 
__SET_MSP gesucht, welcher nicht dabei war. Und wenn es z.B. die 
Anforderung ist, dass die Software auf nem AtMega8 (abgespeckt), Kinetis 
M0+ und STM32F4 läuft, dann bin ich ehrlich gesagt froh, wenn es solche 
libs gibt und ich meine Software leicht für einen Hersteller portieren 
kann.

Überzeugen oder Missionieren will ich keinen, da ich eigentlich 
hauptsächlich einen Texteditor nutze und am liebsten alles selbst 
schreibe.

von CAN-Fan (Gast)


Lesenswert?

Andreas S. schrieb:
> @CAN-Fan:
>
> Danke nochmals für Deine Hinweise.
>
>> Der ganz große Nachteil ist, St bietet keine STM32 bis 125°C an.
>
> Au, das ist jetzt ganz schlecht für mich, denn ich wollte den STM32
> nicht nur zum Programmieren, sondern auch als Lötkolbenablage benutzen
> ;-)

Als Bastler baust du eh (hoffentlich) nichts in ein KFZ ein ;)

Noch ein letzer Tipp, lies das Buch und leihe/nutze das Board, das du 
hast und gehe einfach auf die nächste Messe. Z.b. embedded world in 
Nürnberg (Februar 2016) oder die electronica in München (Nov. 2016), da 
bekommst du kostenlos sämtliche Boards und kannst dich damit austoben 
und selbst entscheiden. Letztendlich ist es (für den "Allgemeinen 
Bastler" sowieso) egal, ob NXP oder St, außer du brauchst eine ganz 
spezielle IP.

Und wie ich praktisch mit der Cortex angefangen habe. Datenblatt + 
Altium. Wenn du die Hardware selbst baust, lernst du direkt einiges über 
die IPs.

von F. F. (foldi)


Lesenswert?

Andreas S. schrieb:
> Hätte ich vor 3 Jahren ein 300,- EUR Board gekauft, so hätte es nun 3
> Jahre ungeplant im Schrank gelegen und ich hätte mich geärgert.
> Mit meinen 10,- Euro-Boards sehe ich das viel entspannter.
>
> Außerdem gilt hier im Hobby-Bereich viel eher: der Weg ist das Ziel.
> Und selbst wenn er ein wenig länger ist - solange ich ihn genieße ist ja
> alles im Lot, oder?!

Das sehe ich auch so. Habe auch ein paar Discovery Boards hier liegen, 
auch MSP430 (sogar das 432) und nur eines der Discovery habe ich mal 
blinken lassen.
Habe mir gerade einen Segger EDU bestellt. Selbst wenn alles liegen 
bleibt, so kann ich sie mir ab und zu ansehen.

von W.S. (Gast)


Lesenswert?

Andreas S. schrieb:
> Aktuell präferiere ich noch immer ganz leicht den STM32, aber die
> NXP-Fraktion hier hat mich mit den Hinweisen auf die gute Doku und die
> gute CodeRed IDE mächtig verunsichert.

Sachlich gesehen, liegen beide mittlerweile fast gleichauf. NXP war seit 
Jahren führend bei größeren Chips, wo man externen SDRAM und 
TFT-Interface erwartet. Das kam von der Übernahme der BlueStreak's her.

Bei ST gab es in dieser Richtung lange Zeit nichts und die ersten STM32F 
mit SDRAM und TFT hatten vorigen Herbst noch Hardware-Bugs im externen 
Businterface.

Bei der Programmierung der Chips hat NXP immer noch die Nase vorn, denn 
wenn man mal von JTAG und SWD absieht, ist mit FlashMagic das 
Programmieren per Bootlader immer noch besser als bei ST mit dem 
"..Demonstrator" - der nach meinem Gefühl von ST zu sehr vernachlässigt 
wird. Bei NXP gibt es bei einigen Chips inzwischen auch die 
Programmierung mit Bootlader per USB, wo der Chip sich am PC einfach als 
Massenspeicher anmeldet. Da braucht man die Firmware einfach nur 
draufzukopieren und fertig. Ob es sowas pfiffig-elegantes mittlerweile 
auch bei ST gibt, müßte ich mal nachgucken.

Aber eines ist ganz klar: Sinn macht das Ganze nur dann, wenn am Ende 
etwas wirklich Benutzbares bei herauskommt - und das ist eben nicht nur 
ein irgendwie programmierter Controller, sondern ein Gerät, also 
Kistchen zum Anfassen mit Knöpfen und so.

Vorschlag: Bau deiner Liebsten ein Küchen-Thermometer mit PT100 und 
monochromem Grafikdisplay und mit eingebautem Kurzzeitwecker, womit sie 
das Roastbeef rosé und die weichen Eier und die Weihnachtsstolle gut 
hinkriegt.

W.S.

von Patrick C. (pcrom)


Lesenswert?

Vergess den Cypress PSOC5 nicht
CY8CKIT-059 >> $10 incl programmer
Mit diesen preis also einfach in Produkten Einzubauen

von Jojo S. (Gast)


Lesenswert?

Andreas S. schrieb:
> Etwa das mbed LPC1768 modul
> von Geerd H.? Schlägt immerhin mit 60,- EUR zu Buche ...

Das Modul ist nicht schlecht, aber der Preis nicht mehr ganz 
zeitgemäss... Für ein paar Euro mehr gibt den LPC4088 von EA, der hat 
viel Ram/Flash, Displaycontroller, USB/Ethernet, FPU usw. Das mbed1768 
Modul war das Ur-Modul für die mbed Umgebung und im Preis sind 
vielleicht noch Entwicklungs- und Lizenzkosten mit drin, mbed konnte nur 
mit ausgewählter HW genutzt werden.
Heute ist mbed komplett offen und kann für eine grosse Palette an 
Hardware verwendet werden. mbed ist eine Online IDE mit 
Versionsverwaltung, einer Basislibrary die für alle Kontroller 
einigermassen gleich ist sowie viel Code für Komponenten wie Aktoren, 
Sensoren, Display uvm. Das ganze in C++ und recht effizient. Bei C++ 
melden sich aber gleich wieder die Puristen und es kommt schnell zu 
Glaubenskriegen... Ich bin faul und nutze mbed gerne, aber um für den 
Anfang mit dem Controller auf du zu kommen sind erste Experimente mit zB 
den LPCXpresso Beispielen sinnvoller. Und mbed hat keinen Debugger, dazu 
kann man Projekte aber aus der OnlineIDE in eine lokal installierte 
exportieren.

von Andreas S. (igel1)


Lesenswert?

@W.S.:

Danke für Deine interessanten NXP-Infos - das war mir alles neu, 
erweitert meinen Horizont und es spricht natürlich für NXP.

> Aber eines ist ganz klar: Sinn macht das Ganze nur dann, wenn am Ende
> etwas wirklich Benutzbares bei herauskommt - und das ist eben nicht
> nur ein irgendwie programmierter Controller, sondern ein Gerät, also
> Kistchen zum Anfassen mit Knöpfen und so.

Das mit dem "Sinn machen" ist immer so eine Sache: Du brauchst eine
Kiste mit Knöpfen zum Anfassen - mir reicht ein windiger Drahtverhau,
der irgendwelche (für mich) interessanten Dinge tut.
Jeder von uns findet also auf seine ganz persönliche Weise Sinn.

Off-off-topic:  "Sinn machen" ist übrigens ein Anglizismus, den es im 
Deutschen eigentlich gar nicht gibt - es "macht" also so oder so keinen 
Sinn :-)

> Vorschlag: Bau deiner Liebsten ein Küchen-Thermometer mit PT100 und
> monochromem Grafikdisplay und mit eingebautem Kurzzeitwecker, womit sie
> das Roastbeef rosé und die weichen Eier und die Weihnachtsstolle gut
> hinkriegt.

Weil's mein Thread ist, möchte ich der Form halber zu Protokoll geben,
daß ich von meiner Frau, oder genauer: von keiner Frau (Ausnahme: Köchin 
im Restaurant) erwarte, daß sie mir das Roastbeef rosé, die Eier weich 
und den Weihnachtsstollen zart aufbackt. Ich nehme an, unsere 
Frauen(bilder) unterscheiden sich in diesem Punkt etwas (... au weia - 
hoffentlich spricht W.S. jetzt noch mit mir ...)


@foldi:

Ich dachte, daß der ST-Link/V2 auf den Discovery-Boards zur 
Programmierung genügt. Jedenfalls konnte ich den STM32F407VGT6 vor 3 
Jahren ohne Zusatzhardware quasi "mit bloßen Händen" programmieren.
Wofür benötigst Du zusätzlich einen Segger EDU prommer?


@Patrick C.:
> Vergess den Cypress PSOC5 nicht
> CY8CKIT-059 >> $10 incl programmer
> Mit diesen preis also einfach in Produkten Einzubauen

Hammer - was es alles gibt!  Und zu welchem Preis ...

Aber wie gut ist die Doku und wie groß ist die Community dahinter?
Könntest Du dazu noch netterweise ein paar Worte schreiben?

Jedenfalls ist das ein interessanter Hinweis - Danke dafür.


@Jojo S.:

Hochinteressant, was Du da schreibst.
Das mit der Online IDE habe ich leider noch nicht so ganz verstanden.
Heißt "Online IDE" wirklich, daß ich den Code irgendwo im Internet
eintippe und mir das Kompilat dann nach Hause geschickt wird?

Das LPC4088 von EA habe ich mir ebenfalls kurz angeguckt: schmuckes 
Teil,
was ich als Hobby-Elektroniker natürlich nur so richtig verwenden kann, 
wenn ich direkt das LPC4088 Experiment Bundle für 99 EUR kaufe:
http://www.embeddedartists.com/products/boards/lpc4088_qsb.php
Oder liege ich da falsch?

Und noch eine Frage: wenn ich dann irgendwann einmal mit diesem LPC4088 
Prozessor "Laufen gelernt" habe, gibt es dann auch günstige Boards mit 
diesem Prozessor, die ich in meine Schaltungen einbauen könnte?
Das finde ich am STM32F4 Discovery-Board so interessant.

Oder kann ich meinen Code dann auch fix auf kleinere LPC'en portieren, 
für die es solche günstigen Boards gibt? Nur wenige meiner Projekte 
benötigen so einen Düsenjäger.

Viele Grüße

Igel1

von F. F. (foldi)


Lesenswert?

Andreas S. schrieb:
> Wofür benötigst Du zusätzlich einen Segger EDU prommer?

Hallo Andreas,
ganz ehrlich?
Ich musste einfach mal wieder was kaufen. :-)

Eins dieser Dinger blinkte auch schon bei mir und über USB.

von W.S. (Gast)


Lesenswert?

Andreas S. schrieb:
> Weil's mein Thread ist, möchte ich der Form halber zu Protokoll geben,
> daß ich von meiner Frau, oder genauer: von keiner Frau (Ausnahme: Köchin
> im Restaurant) erwarte, daß sie mir das Roastbeef rosé, die Eier weich
> und den Weihnachtsstollen zart aufbackt.

Frauen(zerr)bilder?
Ach nö.

Ich hoffe, du hast den Sinn des Vorschlags verstanden. Natürlich weiß 
ich nichts über deine familiären Verhältnisse, aber das selbstgebastelte 
Kistchen mit nützlichem Funktionsumfang wird zweifelsohne durchaus 
geschätzt - egal ob von Ehefrau oder anderweitigem 
Lebens(abschnitts)gefährten oder der eigenen Oma etc... - und du willst 
beim Eierkochen in der Küche gewiß auch nicht mit einem Drahtverhau zu 
tun haben.

W.S.

von Jojo S. (Gast)


Lesenswert?

Ich finde das Timerprojekt nicht schlecht. Habe mal an einen zyklischen 
Timer gedacht für Sport (Zirkeltraining). Aber für die Küche bzw. den 
Grill ist ein Steaktimer der zB 4 x 90 s bimmelt noch besser. Geht 
natürlich nur mit 32 Bittern :-)

von F. F. (foldi)


Lesenswert?

Jojo S. schrieb:
> Aber für die Küche bzw. den Grill ist ein Steaktimer der zB 4 x 90 s
> bimmelt noch besser. Geht natürlich nur mit 32 Bittern :-)

Zum Steak Braten braucht es nur eine Gabel.

von Markus F. (mfro)


Lesenswert?

F. F. schrieb:
> Zum Steak Braten braucht es nur eine Gabel.

zum Steak Essen braucht es nur eine Gabel (wenn's gut gemacht ist).

von goodfather (Gast)


Lesenswert?

Zwar kein schönes Steak, aber ohne Messer:
http://download.e-bookshelf.de/download/0003/0344/47/L-X-0003034447-
0009138671.XHTML/image/ART_04_steak_eggs.jpg

von Andreas S. (igel1)


Lesenswert?

Leute, Leute,

bevor Ihr hier nun ganz in Richtung Barbecue abdriftet, erlaubt mir 
bitte noch eine Frage:

Gibt es eigentlich auch weniger "trockene" Einstiegsmöglichkeiten als 
den "Definitive_Guide_To_The_ARM_Cortex_M3"?

Mir schweben da so Bücher/Tutorials wie das von Günter Schmitt vor 
("Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie").
Dort bekam man zu jedem Thema ein bißchen Code, das man selbst 
studieren, verstehen und ausprobieren konnte.

Schritt für Schritt hat man sich so durch den ganzen Prozessor 
gearbeitet und man hatte am Ende nicht nur ein fundiertes AVR-Wissen 
erlangt, sondern man hatte sich auch eine passable Auswahl an 
Beispielcode für alle Basis-Fragestellungen erschlossen.

Ich muß gestehen, dass mir so etwas deutlich mehr Spaß macht, als wenn 
ich mir erst einmal 400 Seiten durchlesen muß, bevor ich die erste Zeile 
programmieren kann.

Das heißt nicht, daß ich ohne Grundlangen losprogrammieren will - ich 
weiß, daß dies nur im "Herumwurschteln" endet - aber ich möchte mir die 
Grundlagen gerne direkt von Anfang an mit kleinen Beispielen erarbeiten. 
Habt Ihr so etwas ebenfalls "im Angebot"?

Viele Grüße

Igel1

von STM (Gast)


Lesenswert?

Andreas S. schrieb:
> Gibt es eigentlich auch weniger "trockene" Einstiegsmöglichkeiten als
> den "Definitive_Guide_To_The_ARM_Cortex_M3"?

http://users.ece.utexas.edu/~valvano/arm/outline1.htm

http://users.ece.utexas.edu/~valvano/arm/outline.htm

Für TI-launchpad gut geeignet

von F. F. (foldi)


Lesenswert?

Andreas S. schrieb:
> Mir schweben da so Bücher/Tutorials wie das von Günter Schmitt vor
> ("Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie").
> Dort bekam man zu jedem Thema ein bißchen Code, das man selbst
> studieren, verstehen und ausprobieren konnte.

Oh man, vielleicht habe ich den ja zu früh in die Ecke gestellt?
Ich fand den fürchterlich und habe das Buch schon nach ein paar Seiten 
ins Regal gestellt.

von F. F. (foldi)


Lesenswert?

STM schrieb:
> http://users.ece.utexas.edu/~valvano/arm/outline1.htm
>
> http://users.ece.utexas.edu/~valvano/arm/outline.htm

Vor allem auf Seite 3, das mit dem Widerstand und dem Wassertank.
Auf 508 Seiten wird das was erklärt und davon werden Seiten für so was 
verschwendet. Wo es von den Herstellern doch Dokumente mit über 1000 
Seiten gibt.
Lernt man da noch genug?

von STM (Gast)


Lesenswert?

F. F. schrieb:
> Vor allem auf Seite 3, das mit dem Widerstand und dem Wassertank.

Ist halt idiotensicher. Niemand zwingt Dich, alles zu lesen. Du kannst 
ins Inhaltsverzeichnis schauen und auf Deine Kenntnisstufe vorblättern. 
Geht auch bei Büchern im reallife. ;-)

von F. F. (foldi)


Lesenswert?

Stimmt.

von F. F. (foldi)


Lesenswert?

Bei Segger gibt es eine Seite auf der alle möglichen IDE's mit "Full 
J-Link Support" aufgeführt sind.
https://www.segger.com/jlink-ide-integration.html


Hier noch ein kleines und günstiges M3 Board.
http://www.ebay.de/itm/ARM-Cortex-M3-STM32F103C8T6-STM32-Kern-board-Mini-System-Entwickeln-USB-DE-TE177-/261884357762?hash=item3cf9862c82:g:Y8wAAOSwv0tVUNWk

: Bearbeitet durch User
von F. F. (foldi)


Lesenswert?

Habe gerade mal das LaunchPad MSP432 rausgehohlt (schon ganz vergessen, 
dass ich das mal bestellt hatte) und werfe das mal in die Runde.

@Andreas

Da du ja viele Software Beispiele haben willst, hier sind sie:
http://dev.ti.com/tirex/#/Device/MSP432P401R?link=MSPWare%2FDevices%2FMSP432P401R%2FExamples%2FC%2Fmsp432p401_1%2Fmsp432_startup_ccs.c

Du kannst die IDE im iNet öffnen und dann dir schon mal alles ansehen, 
was du willst.

von W.S. (Gast)


Lesenswert?

Andreas S. schrieb:
> Ich muß gestehen, dass mir so etwas deutlich mehr Spaß macht, als wenn
> ich mir erst einmal 400 Seiten durchlesen muß, bevor ich die erste Zeile
> programmieren kann.

Nur im Schlaraffenland fliegen einem die gebratenen Tauben freiwillig in 
den Mund.

Wenn du nicht auf der mentalen Stufe von Leuten kleben bleiben willst, 
die in ihrer IDE ein Blinky-Projekt laden und dann auf den Knopf 
drücken, bis daß die LED auf dem dazu passenden Evalboard blinkt, dann 
bleibt dir nichts anderes übrig, als dich in die Materie einzulesen - 
und zwar selbst und trotz der fast immer relativ trockenen 
Schreibweise.

Spaß ist was anderes.

W.S.

von Axel S. (a-za-z0-9)


Lesenswert?

Andreas S. schrieb:

> Gibt es eigentlich auch weniger "trockene" Einstiegsmöglichkeiten als
> den "Definitive_Guide_To_The_ARM_Cortex_M3"?

Das kommt auf deine Vorkenntnisse an. Wenn du Microcontroller an sich 
kennst und Programmierung in C an sich kannst. Und vielleicht auch noch 
den Unterschied zwischen Compiler, Linker und make kennst, dann brauchst 
du für den Einstieg in die ARM Welt wirklich nur ein Buch über die 
Architektur. Und dafür ist dieses Buch sehr gut. Es liegt hier auf 
meinem Nachttisch :)

Für konkrete Cortex-M Implementierungen brauchst du natürlich immer noch 
das Datenblatt des Herstellers, weil sich Peripherie, Flash, 
Debuginterfaces etc. dann halt doch unterscheiden.

Das Buch mag "trocken" rüberkommen. Aber ich bin ehrlich gesagt ganz 
froh, daß mir keiner mehr glaubt erklären zu müssen was Strom ist und 
wie man einen Taster anschließt und ausliest.

> Schritt für Schritt hat man sich so durch den ganzen Prozessor
> gearbeitet und man hatte am Ende nicht nur ein fundiertes AVR-Wissen
> erlangt, sondern man hatte sich auch eine passable Auswahl an
> Beispielcode für alle Basis-Fragestellungen erschlossen.

Und dafür braucht man eine Anleitung? Ich bin da mehr für Learning by 
Doing. Deswegen steckt bei mir ein STM32F030F4 auf dem Steckbrett 
(Methode wie hier: Beitrag "~1€ ARM-Cortex-M0 (STM32)-Bord selbstgestrickt") und ich 
programmier(t)e ausgehend vom Standard "Blinken mit for()-Schleife" 
diverse Varianten mit Timern bis hin zur PWM. Und das gleich noch auf 
verschiedenen Ebenen: komplett zu Fuß a'la 
http://eleceng.dit.ie/frank/arm/STM32F030ISP/index.html, mit CMSIS von 
ST, mit (lib)opencm3. Und mit verschiedenen Adaptern. Angefangen vom 
USB-seriell Adapter mit stm32flash und dem STM32 Bootloader über einen 
STLINK/V2 vom Chinamann mit Texane st-util hin zum Segger J-Link 
(China-Clon). Toolchain ist ARM-gcc aus meiner Linux-Distribution. Und 
make und vim brauche ich ja sowieso immer.

Das STM32F4 Discovery liegt derweil in der Ecke und verstaubt. 
"Einsteigen" kann man damit nicht sinnvoll. Da steckt viel zu viel 
Hardware drauf, um die in Betrieb zu nehmen und gleichzeitig 
verstehen(!) zu können. Und auf Abstraktionsschichten a'la CubeMX habe 
ich keinen Bock. Ich will verstehen was da passiert.

Demnächst werde ich wahrscheinlich mein Moodlight auf den STM32 
portieren. Und dann vielleicht einen Reziprokzähler. Oh und das 
STM32F103 Board das demnächst aus China kommt will ich zum 
Blackmagic-Probe verwursten. Da lerne ich sicher auch noch was dabei.

von F. F. (foldi)


Lesenswert?

Axel S. schrieb:
> Das kommt auf deine Vorkenntnisse an. Wenn du Microcontroller an sich
> kennst und Programmierung in C an sich kannst. Und vielleicht auch noch
> den Unterschied zwischen Compiler, Linker und make kennst, dann brauchst
> du für den Einstieg in die ARM Welt wirklich nur ein Buch über die
> Architektur.

Er kennt sich mit Sicherheit aus und sicher ist es nur seine 
Bescheidenheit, dass er sich hier so zurück hält.
Mal ein Projekt von ihm:
Beitrag "Projekt Maus"
Ihr habt es nicht mit einem Nerd zu tun.

Aber wenn er das will, wird er schon was dazu sagen.

von Andreas S. (igel1)


Lesenswert?

@W.S. schrieb:
> Spaß ist was anderes.

Na dann bin ich hier doch wohl falsch ...
Aber immerhin: die ersten Seiten des Buches habe ich schon hinter mich 
gebracht. Vielleicht sollte ich mir ein paar Durchhalteparolen über 
Schreibtisch, Bett und sonstige Orte hängen?


@Axel Schwenke:

Vielen Dank für Deine ausführliche Schilderung! Du hast einen Weg 
gewählt, der mir ebenfalls gut gefällt und an dessen Ende man sicherlich 
zu 100% verstanden hat, wie so ein 1000-Füßler funktioniert.

Sehr interessant fand ich auch Deine Links sowie die vielen kurzen Tipps 
im Posting. Und ein STM32F103 Board für 3,68 EUR beim Ali habe ich mir 
kurzerhand ebenfalls bestellt: 
http://de.aliexpress.com/item/stm32f103c8t6-stm32-stm32f103-stm32f103c8-minimum-system-board-stm32-development-board-learning-board-CortexM-Evaluation-Board/1986886246.html
Mal sehen, ob's jemals ankommt.


@Foldi

> Beitrag Beitrag "Projekt Maus"
> Ihr habt es nicht mit einem Nerd zu tun.

Ach - da mußte ich fast lachen. Wenigstens einer, der mich noch für 
"normal" hält. Für das Maus-Projekt erhielt ich bislang überall 
10-Nerd-Points extra - jedenfalls bei meiner Frau und allen, denen ich 
bisher mit leuchtenden Augen davon erzählt habe ...

Viele Grüße

Igel1

von Gerhard (Gast)


Lesenswert?

Kenne die beiden anderen von dir im Ausgangsposting gelisteten Boards 
nicht, aber das Stellaris Launchpad LM4F120 von TI hat Floating Point 
und DSP ähnliche Funktionen. Je nachdem, was du vorhast kann das einen 
deutlichen Unterschied machen. Entwickle mit ihm unter Linux 
Audio-Algorithmen und bin sehr zufrieden (sowohl mit Editor und make als 
auch mit Eclipse) und froh, dass ich mich nicht mit Fixed-Point 
Skalierung rumschlagen muss.

Gerhard

von F. F. (foldi)


Lesenswert?

Andreas, das "Maus Projekt" war seit langem der friedlichste und 
schönste "Neuthread" hier.
Ich muss mich mal mit deiner Frau unterhalten.
... und du weißt ja, gegen mich hat die keine Chance. ;-)

von F. F. (foldi)


Lesenswert?


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
Noch kein Account? Hier anmelden.