Forum: Mikrocontroller und Digitale Elektronik Frage zum Anfang


von Martin A. (computador)


Lesenswert?

Howdy,

habe ausgiebig die Threads studiert, muss jedoch noch einmal auf die 
allseits beliebte Frage zurück kommen: wie anfangen?

Habe mich mittlerweile auf STM32 bzw. LPC1x festgelegt. Die ursprünglich 
mal angedachten Arduinos sind komplett raus. Bei den Cortex-M- Boards 
scheint die Toolchain-Hölle zumindest für Hobbyisten immer noch zu 
existierien. Auf der anderen Seite gibt es sowas wie mbed, die ihre 
Tools über ein Web-Frontend verfügbar machen und den ISW ("it simply 
works")- Anspruch haben.

Dafür ist man aber auf den LPC1768 bzw. LPC11U24 beschränkt. Gut, kosten 
auch nicht mehr die Welt, aber wenn man später mal ein paar mehr von den 
Teilen braucht und es pro Board 20€ ausmacht, wäre das schon 
überdenkenswert....

Bei mbed gibt es eine Reihe von C++  Beispielen, die mir gut gefallen 
haben. Speziell angeschaut habe ich mir die 1-wire Implementierungen, 
die ich quasi unverändert einsetzen kann. Zumindest bei den ST-Libraries 
und Beispielen habe ich sowas nicht gefunden. Könnte man so etwas 
prinzipiell eher leicht oder schwer portieren? Ich könnte mir 
vorstellen, dass die Sachen eigentlich unverändert auch mit einer 
anderen Toolchain laufen müssten.

Letztendlich läuft das alles auf die Abwägung hinaus, etwas Einfaches, 
aber Überdimensioniertes und nicht debugging-fähiges zu haben, oder aber 
den offensichtlich immer noch sehr steinigen Weg der eigenen Toolchain 
zu gehen, dafür aber die freie Wahl der Ziel-Hardware, sowie 
Debuggingmöglichkeit zu haben. Dann gibt es noch die Gerüchte, dass es 
für 150 USD eine gute und einfach zu bedienende, aber doch 
leistungsfähige Toolchain geben soll. Wäre bereit, das auszugeben, wenn 
Debugging und Simulator dabei wären.

Was könnt ihr mir raten? Ich könnte mir vorstellen, dass es eine fertig 
konfigurierte Lösung für Windows Rechner für diese allgemeine Aufgabe 
gibt.

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

Mein Tipp:
stm32F4Discovery für 12 Euro + Coocox (umsonst)

Sehr einfach einzurichten und klappt in der Regel auf Anhieb. :-)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Kinder, Kinder,
Toolchain, Web-Frontend, Gigahertz Superprozessoren…
Kein Wunder, dass jede fortschrittliche Kultur bisher immer wieder 
untergegangen ist.

von Martin A. (computador)


Lesenswert?

Wow! Dieses Coocox sieht wirklich gut aus! Habe mal die Webseite 
durchgesehen und bin beeindruckt. Werde das mal sofort probieren!

Hätte aber noch folgende Fragen:

- man braucht noch ein Interface um die Verbindung zum Board 
herzustellen. Was empfiehlt sich da so? Kann mit den Schlagworten wie 
JTAG etc. noch nicht so viel anfangen.

- kriegt man printf-Ausgaben auch über diesen Weg auf ein Terminal auf 
den PC? (Debug-)Logging ist für mich sehr wichtig.

- man braucht noch den gnu-Compiler extra. Ist ja kein Problem, bedeutet 
das auch, dass man in C++ programmieren kann?

- Coocox scheint eine Firma zu sein. Wieso geben die die IDE kostenlos 
raus? Wie ist das Geschäftsmodell? Nicht dass man dann später zahlen 
muss, wenn man was "Richtiges" machen will.... :-)

((Werde Montag mal gleich ein Board bestellen. Kann das über meine Firma 
abwickeln. Welcher Händler ist hier angezeigt? )).

Grüße
Computador

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

> - man braucht noch ein Interface um die Verbindung zum Board
> herzustellen. Was empfiehlt sich da so? Kann mit den Schlagworten wie
> JTAG etc. noch nicht so viel anfangen.

Das STM32F4Discovery ist zugleich auch ein Programmiergerät. Es wird per 
USB an den PC angeschlossen

> - kriegt man printf-Ausgaben auch über diesen Weg auf ein Terminal auf
> den PC? (Debug-)Logging ist für mich sehr wichtig.

Klar. Du brauchst ev. noch einen RS232 zu TTL-Wandler. Der µC hat 
natürlich einen Usart

> - man braucht noch den gnu-Compiler extra. Ist ja kein Problem, bedeutet
> das auch, dass man in C++ programmieren kann?

Du brauchst die GCC-Toolchain. Die läd man kostenlos runter und macht 
sie der Coocox-IDE bekannt.

> - Coocox scheint eine Firma zu sein. Wieso geben die die IDE kostenlos
> raus? Wie ist das Geschäftsmodell? Nicht dass man dann später zahlen
> muss, wenn man was "Richtiges" machen will.... :-)

Ist definitiv umsonst. Und zwar unbegrenzt. Weitere Infos auf 
www.coocox.org

> ((Werde Montag mal gleich ein Board bestellen. Kann das über meine Firma
> abwickeln. Welcher Händler ist hier angezeigt? )).

Kommt drauf an. Ich habe meins bei Mouser damals bestellt. Dort kostet 
es 12 Euro. Die Versandkosten sind aber erst ab 75 Euro umsonst. 
Ansonsten gibt es diverse Versender für das Board

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

Ergänzung:

Man programmiert in c und nicht in c++ (Coocox)

von Martin A. (computador)


Lesenswert?

Jo, erst mal vielen Dank.

>Ergänzung:
>Man programmiert in c und nicht in c++ (Coocox)

hmmm. Wieso geht C++ nicht?

>> - kriegt man printf-Ausgaben auch über diesen Weg auf ein Terminal auf
>> den PC? (Debug-)Logging ist für mich sehr wichtig.
>
>Klar. Du brauchst ev. noch einen RS232 zu TTL-Wandler. Der µC hat
>natürlich einen Usart

hmmm2. USART? mit seriellem Kabel via Pegelwandler zum Host? Der eine 
serielle SN haben muss? Das geht technisch natürlich, aber mein PC hat 
keine serielle SN. Seriell zu USB gibts natürlich, sollte aber doch 
nicht nötig sein? Ich dachte eigentlich, dass das über die SWD oder JTAG 
- Schnittstelle mit dem USB-Kabel gehen könnte.

LG
computador

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

> Seriell zu USB gibts natürlich, sollte aber doch
> nicht nötig sein?

5 Euro für einen Wandler sind nicht mehr übrig? ;-)

> Ich dachte eigentlich, dass das über die SWD oder JTAG

SWD zum Debuggen und Flashen. Die serielle Verbindung mit einem 
Terminalprogramm macht man überlichweise mit einer seriellen 
Schnittstelle.
Soweit ich weiß geht das nicht über die USB-Schnittstelle die auf dem 
Board ist.

> Wieso geht C++ nicht?

Wozu brauchst du denn c++? Mikrocontroller werden überlichweise mit c 
programmiert.

lg
jo

von Martin A. (computador)


Lesenswert?

Hallo Jo,

> 5 Euro für einen Wandler sind nicht mehr übrig? ;-)
>
Das wäre nicht das Problem. Was bedeutet das? Habe ich dann 2 USB-Ports 
belegt, einen für den Programmer und einen für die serielle 
Kommunikation? USB-Portmultiplexer wäre dann nötig, was hoffentlich 
gehen wird.

>
> SWD zum Debuggen und Flashen. Die serielle Verbindung mit einem
> Terminalprogramm macht man überlichweise mit einer seriellen
> Schnittstelle.

natürlich. Die Boards, die ich bisher kenne, leiten das aber über die 
bestehende USB-Programmier-Verbindung in ein Terminalfenster der IDE. So 
macht das z.B. mbed, ebenfalls NETMF, und IMHO wäre das der Standard, 
wie man es macht. So hatte ich es eigentlich erwartet....


>> Wieso geht C++ nicht?

>
> Wozu brauchst du denn c++? Mikrocontroller werden überlichweise mit c
> programmiert.

Eigentlich nicht. Microcontroller verstehen kein C, sondern Bitmuster.

C ist genauso wie C++ oder z.B. auch C# eine Möglichkeit, diese 
Bitmuster bequemer zu erzeugen. Warum jedoch C++ für hardwarenahe 
Programmierung C überlegen ist, kannst du z.B. bei Stroustrup nachlesen.

Bei den alten AVRs war es noch im Wesentlichen Assembler, dann kam C, 
und bei den heutigen leistungsfähigeren Architekturen mit größerem 
Speicher sowohl für Proggies als auch Daten ist eine objektorientierte, 
hardwarenahe Sprache definitiv das Mittel der Wahl. Schau mal ein 
modernes RTOS an: Tasks, Semaphore, Queues, Mutexe - alles Objekte von 
Klassen, und das ist gut so. Schau auch mal bei mbed vorbei - dort sind 
nahezu alle Beispiele in C++.

LG - computador

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.