Forum: Mikrocontroller und Digitale Elektronik Embedded Systems lernen


von Lukas F. (lukas718)


Lesenswert?

Hallo zusammen,

ich studiere Elektrotechnik mit der Vertiefung "Regelungstechnik" an 
einer Universität. Leider ist dieser Studiengang kaum praxisbezogen, 
weshalb ich mir den praktischen Teil selbst erarbeiten möchte. Ich kann 
bereits in C++ und Java Computeranwendungen programmieren und möchte C 
für Embedded Systems erlernen. Leider fehlt mir dafür eine passende 
Hardwareumgebung. Im Buch "Programming Embedded Systems" wird die 
Thematik zwar gut erarbeitet, aber das verwendete Board ist ein 
Viper-lite von Arcom und dementsprechend teuer.

Meine ersten Projektideen wären z.B. ein Lichtwecker oder die 
Verarbeitung und Ausgabe von Audiosignalen. Kann mir evtl. jemand ein 
gutes Entwicklungsboard für solche Anwendungen empfehlen?

Viele Grüße,
Lukas

von Danish B. (danishbelal)


Lesenswert?

Ich persönlich arbeite mit einer Eigenentwicklung für PIC18.

Hier im Forum sind STM32-ARM Controller seeehr beliebt. Entsprechend 
wird es bei Problemen mit dieser Familier vermutlich leichter hier an 
Hilfe zu kommen. Aber auch andere Gattungen sind vertreten.

Je nachdem was du vorhast kannst du dir auch einfach nen PIC/AVR mit 
Minimalbeschaltung auf ein Steckbrett/Lochraster stecken und mal 
reinfühlen.

Dann brauchst du aber nen Programmer wie z.B. PicKit3. Arduino hat 
Bootloader+Seriell Wandler und lässt sich auch in C programmieren.

Hat aber nen "unprofessionellen" Ruf.

Noch nie mit gearbeitet aber vielleicht interresant : Microchip 
Curiosity
http://www.microchip.com/promo/curiosity


MfG

von THOR (Gast)


Lesenswert?

Bei mir war die Vorlesung "Embedded Systems" eine semesterlange Übung in 
Linux-Kommandozeile.

Will sagen: Beschreib mal die Art von Embedded System in die du dich 
einarbeiten willst. Ein ES hat eine eher breite Definition.

von Lukas F. (lukas718)


Lesenswert?

Erstmal vielen Dank für die Antworten!

> Will sagen: Beschreib mal die Art von Embedded System in die du dich
> einarbeiten willst. Ein ES hat eine eher breite Definition.

Wenn ich mit meinem Studium fertig bin, will ich in der Lage sein die 
vorhandenen Plattformen richtig zu programmieren. Gerade in der 
Umrichtertechnik für elektrische Maschinen werden oftmals DSPs und FPGAs 
eingesetzt. Ein Kollege von mir Arbeitet beispielsweise mit einem 
ARM9-Prozessor und einem Spartan6-FPGA für die ganze Regelung und 
Signalverarbeitung (Umrichtersteuerung, Spannungs- und Strommessung). Da 
ich jedoch nur wenig mit µController-Programmierung zu tun hatte, möchte 
ich die ganze Thematik Schritt für Schritt lernen. D.h. zunächst LEDs 
zum leuchten bringen und dann Daten von Sensoren auslesen usw. . Einen 
genauen roten Faden, wie ich mich die ganze Thematik einarbeiten soll, 
habe ich nicht. Doch ich hoffe, dass mir neue Ideen kommen wenn ich 
erstmal damit angefangen habe einen µController zu programmieren.
Ich hoffe die Erklärung in welche Art ES ich mich einarbeiten möchte, 
war verständlich. :D

von Imonbln (Gast)


Lesenswert?

Vielleicht ist ein Arduino was für dich, der behaupt ja für Einsteiger 
zu sein und wenn läuft kannst du den AVR darauf auch nativ ansteuern. 
als start für ein paar LEDs zum blinken zu bringen ist der gut genug 
(TM).

später wenn du mehr willst kannst du dann auf größer Controller 
wechseln.

von THOR (Gast)


Lesenswert?

Ich würde auch mit nem Arduino anfangen.

Audio (Sampling, digitale Signalverarbeitung) kann der auch gerade noch 
so.

von qwertz (Gast)


Lesenswert?

Was ist das für ein Board?  ARM?  welche MCU?
Was für ein Compiler, Entwicklungsumgebung wird verwendet?

beschreibe das mal, dann kann die eine ähnliche Umgebung empfohlen 
werden.

von Stefan F. (Gast)


Lesenswert?

Ich empfehle Dir den Roboter-Bausatz NiboBee.

Er enthält ein programmierbares Fahrwerk mit unterschiedlichen Sensoren, 
sowie einen USB Programmieradapter. Als Mikrocontroller kommt ein ATmega 
zum Einsatz. Programmiert wird mit dem avr-gcc Compiler, wahlweise mit 
der IDE Deiner Wahl oder ohne IDE.

An diesem Gerät kannst du die konkrete elektrische Schaltung erforschen 
und die Programmierung üben. Geradeaus fahren wäre eine der ersten 
Übungen, wo man Regelungstechnik benötigt.

Wenn du mit diesem Ding klar kommst, kannst Du dich an komplexere Sachen 
wagen.

https://www.reichelt.de/?ARTICLE=91023

von qwertz (Gast)


Lesenswert?

Wenn du sofort loslegen willst ist ein Arduino gut, allerdings bringt 
dir das nicht viel für dein weiteres Vorhaben. Wenn du dich aber in eine 
ARM Umgebung einarbeiten musst kann das viel Aufwand sein der sich aber 
sicher lohnen wird. Damit du das Buch so gut wie möglich nutzen kannst 
sollte deine Entwicklungsumgebung der Umgebung im Buch sehr ähnlich 
sein.

von Thomas M. (Firma: https://img.favpng.com/23/21/3) (thomasmopunkt)


Lesenswert?

MIKROE.COM bietet sehr viel zum guten preis, auch MP3 Touchscreens etc 
pp

von waflija (Gast)


Lesenswert?

> Wenn ich mit meinem Studium fertig bin, will ich in der Lage sein die
> vorhandenen Plattformen richtig zu programmieren. Gerade in der
> Umrichtertechnik für elektrische Maschinen werden oftmals DSPs und FPGAs
> eingesetzt. Ein Kollege von mir Arbeitet beispielsweise mit einem
> ARM9-Prozessor und einem Spartan6-FPGA für die ganze Regelung und
> Signalverarbeitung (Umrichtersteuerung, Spannungs- und Strommessung).

Das hat aber beides nix mit nem µC zu tun. Bei einem µC arbeitest du 
meist direkt auf der Hardware oder über Frameworks mit minimaler 
Abstraktion. Das möchtest du auf einem ARM Prozessor definitiv nicht. 
Der ARM und wahrscheinlich auch das Board aus dem Buch sind "echte" 
Computer mit Betriebssystem und allen Abstraktionsebenen die dazu 
gehören.

Wenn du embedded machen willst, brauchst du die µC eigentlich nicht. 
Andersrum genau so. Das sind sehr verschiedene Welten. Für einen FPGA 
widerum brauchst du VHDL oder eine ähnliche Hardware- 
(Logik)beschreibungs Sprache. Da kommt es vor allem auf Aussagenlogik 
und "klassische" Informatik an. Auch das hat mit den beiden anderen 
Themen wenig bis gar nichts zu tun. Hier "baust" du quasi einen eignen 
Prozessor auf Hardwareenebene.

Als Hardware ist für embedded auf jeden Fall der Rasberry Pi zu 
empfehlen. Ich würde vermuten das der fast 100% analog zum Viper-Board 
benutzt werden kann. Wenn dann noch mehr als 10 LEDs blinken sollen, 
nimmst das Rasberry Compute Module mit IO-Board. Kosten 20€-150€.

Sollen nachher nur ein paar LEDs Blinken und du nicht viel weiter 
darüber hinaus gehen, ist der Arduino sicher eine der besten Lösungen. 
Spätestens bei komplexen Audioverarbeitungen ist der Arduino am Ende, da 
bräuchtest du einen entsprechend größeren µC.

Aber für das was du als Ziel beschreibst, solltest damit anfangen dich 
mit dem oben genannten Rasberry und vor allem einem Linux Kernel zu 
beschäftigen. Das ist meist die Basis von embedded-Plattformen der 
Viper-Board Klasse. Gerade moderne Maschinen laufen fast nur noch mit 
solchen single-board Lösungen oder entsprechenden Industrie PCs. Das 
ganze lässt sich recht einfach mit C, CPP oder Python umsetzen. Alles 
Sprachen die man nachher sehr gut brauchen kann :)

Anfangen mit einem fertigen Kernel, z.B. Rasbian:
- LEDs am GPIO steuern (und den GPIO richtig elektrisch beschalten)
- Sensoren über Bus anschließen und auslesen (1-Wire, I2C, SPI)
- Weboberfläche für GPIO bauen
- Steuerung der GPIO Pins von einem anderen Rechner per Netzwerk

Danach weiter zum Kernel:
- Wie funktioniert das Ding?
- Wie konfiguriert man einen Kernel?
- Wie baut man einen eignen Kernel?
- Wie baue ich eine Dateisystem auf einem Embedded-system auf?
- Wie lädt / programmiert man eigene Kerneltreiber?

PS: Ich programmiere beruflich embedded-System für Maschinen.

von Nop (Gast)


Lesenswert?

waflija schrieb:

> Das hat aber beides nix mit nem µC zu tun. Bei einem µC arbeitest du
> meist direkt auf der Hardware oder über Frameworks mit minimaler
> Abstraktion. Das möchtest du auf einem ARM Prozessor definitiv nicht.

Jein.

Zustimmung: Auf ARM Cortex-A möchte man eher nicht ohne Betriebssystem 
arbeiten, und das wird meistens ein embedded Linux werden.

Einspruch: Auf ARM Cortex-M nimmt man ein schlankes RTOS, falls man 
Multitasking braucht, ansonsten geht man direkt auf die Hardware.

Beides läuft unter der Bezeichnung "embedded systems", nur halt ganz 
unterschiedliche Bereiche.

Für Sachen wie Sensoren auslesen und LEDs blinken lassen würde ich 
Cortex-M nehmen, das H405 von Olimex erlaubt eine Menge für gerade mal 
15 Euro. Cortex-A (Raspi & Co), wenn letztlich auch noch Sachen wie 
Netzwerkanbindung gefragt sind, das bringt Linux von Haus aus alles mit.

von Sugus (Gast)


Lesenswert?

Ich habe soeben für ein ESP8266 Chip mit Arduino angefangen und kann dir 
das nicht wirklich empfehlen, wenn du wissen willst was da abgeht.
Arduino hat eine Vielzahl von Bibliotheken und du kannst dir alles mit 
Bausteinen zusammensetzen. Aber was im Hintergrund wirklich abläuft hast 
du keine Ahnung.
-> ist gut wenn du ohne grossen Aufwand und wenig Kenntnis schnell ein 
Resultat willst.

Ansonsten habe ich vor einigen Jahren mit einem Bausatz von myAVR 
angefangen und halte das durchaus für einen guten Einstieg. Bei der 
Arbeit haben wir meist den STM32 im Einsatz welcher mehr Leistung 
bietet.
Bei den beiden hast du wohl etwas mehr Aufwand bis es läuft, dafür weist 
du denn auch wie.

(Ev. kannst du auch ein Kit von Arduino mit einem AVR kaufen und diesen 
aber im Atmel Studio programmieren, dass geht natürlich auch. Musst 
jedoch noch den Bootloader neu laden, soweit ich weiss.)

von Alexander (Gast)


Lesenswert?

Hi Lukas,
Muss es ein Umrichter sein oder könntest du dir auch vorstellen, in den 
ersten Schritten einen Gleichspannungswandler digital  zu regeln, und 
auf den Erfahrungen aufbauend einen Umrichter zu einem späteren 
Zeitpunkt zu entwerfen / regeln?

Einen 12V zu 5V Tiefsetzsteller mit bis zu 2A am Ausgang (macht 10W) 
halte ich für einen netten Einstieg in die digitale Regelung, und der 
Wandler lässt sich leicht real aufbauen (Komplexität, Aufwand, Kosten 
etc.)

Auch gibt es zu digitalen Regelungen für Gleichspannungswandler viele 
App notes.

DC/AC ist meines Erachtens nach immer noch mal eine Nummer höher 
(eigentlich keine Ahnung wieso...)

Gruß,

von Felix F. (wiesel8)


Lesenswert?

Also erstes solltest du erst einmal lernen, vernünftig in C zu 
programmieren. Und zwar am PC! Am besten du gehst in die Bib und leihst 
dir "The C Programming Language" von Kernigham aus und arbeitest es mit 
Verstand durch.

Wenn C dann wenigstens so la la sitzt, kannst du zumindest einmal 
anfangen, dich an Mikrocontroller zu wagen. Hier empfiehlt es sich sowas 
wie einen Asuro oder Nibobee zu kaufen. Dort kannst du erstmal deine 
Lötkenntnisse unter Beweis stellen. Dann kannst du dich mal mit den 
fertigen Libraries an die Programmierung wagen und feststellen, dass du 
keine 16GB RAM hast oder mal schnell auf deiner 1TB HDD ein Log file 
anlegen kannst und keine 10 Threads auf einem 4GHz Prozessor 
durchlaufen. GUI? Noch nie gehört...

Wenn du dann mal langsam im Griff hast, wirds interessant. Jetzt kannst 
du versuchen dir selbst eine Library zu schreiben. Selbst beim Asuro der 
mit einem winzig kleinem ATmega daherkommt, kann man sich damit schon 
Monate und Jahre beschäftigen um das zu perfektionieren. Zum Glück kann 
man sich an den bereits vorhandenen orientieren.

Wenn du das alles hier wenigsten mal zur irgendwie zur Hälfte probiert 
hast, tausende Websites durchforstet hast wie man einen Timer 
initalisiert, PWM generiert, Uart ansteuert und ein wenig Ahnung von der 
Materie hast (der durchschnittliche Student schafft das in vlt 5 Jahren, 
da er abends lieber im Pub abhängt), dann kannst du dich auch mal an 
eigene Entwicklungen wagen und dir ein Entwicklungsboard kaufen, diverse 
Sensoren dran machen und das programmieren. Du solltest dann weit genug 
in der Materie drin sein, um zu wissen was es alles gibt und wie man es 
verwendent.

Und falls du wissen willst, wie man FPGAs designed, hoffe ich, dass du 
nochmal ein paar Jahre übrig hast. Das ist nämlich nochmal was komplett 
anderes.

Und um es nochmal kurz zusammen zu fassen. Es gibt keinen genauen weg, 
wie man das wirklich lernt. Sicher muss man programmieren können, sich 
mit Elektronik und sich Algorithmen ausdenken können. Aber all das muss 
dann erst einmal auf dem Mikrocontroller kombiniert werden und das lernt 
man nur, indem man sich intensiv mit der Materie beschäftigt. Über Jahre 
hinweg.

Und was passiert, wenn man denkt dass das ja eh alles nicht so schwierig 
ist, sich mal schnell nen Arduino kauft und drauf los programmiert weil 
man ja eh alles kann, dann schau dir einfach mal ein paar Threads hier 
an.

mfg

von Stefan F. (Gast)


Lesenswert?

Es ist leider nicht so, dass die Universitäten ihre Studenten zu 
fertigen Softwareentwicklern ausbilden können. Man lernst dort gute 
Grundlagen, aber die eigentliche Ausbildung zum Beruf kommt danach oder 
parallel zum Studium.

Ich begrüße daher sehr, dass Lukas F. sich schon vor dem Ende des 
Studiums Gedanken darüber macht.

Wie andere korrekt geschrieben haben, geht es im gefragtem Fachgebiet um 
drei "Welten":

- kleine Mikrocontroller ohne Betriebsystem
- größere Computer mit Betriebsystem
- FPGA's mit VHDL

Dazwischen gibt es natürlich auch noch feinere Abstufungen. Doch im 
Prinzip sind diese drei Welten voneinander getrennt. Du wirst dreimal 
lernen müssen, um alles Abzudecken.

Ich würde zuerst die Programmiersprache C und eventuell auch C++ am PC 
lernen und dann mit einfachen Mikrocontrollern ohne Betriebsysten 
fortfahren. Also Asuro, NiboBee oder Arduino Hardware (aber ohne Arduino 
Software!).

Es sei denn, für Dich steht schon fest, dass du dich auf FPGA's 
spezialisieren wirst. Dann fang gleich damit an.

von waflija (Gast)


Lesenswert?

Nop schrieb:
> Zustimmung: Auf ARM Cortex-A möchte man eher nicht ohne Betriebssystem
> arbeiten, und das wird meistens ein embedded Linux werden.
>
> Einspruch: Auf ARM Cortex-M nimmt man ein schlankes RTOS, falls man
> Multitasking braucht, ansonsten geht man direkt auf die Hardware.
>
> Beides läuft unter der Bezeichnung "embedded systems", nur halt ganz
> unterschiedliche Bereiche.

Er schreibt aber oben explizit ARMv9, dass ist einer der "Großen", auch 
das Board das er nennt hat einen "großen" ARM. Daher beziehe ich mich 
auch darauf.

von qwertz (Gast)


Lesenswert?

Ok das viper-lite hat einen XScale, das ist veraltet da nimmts du am 
besten ein Raspberry Pi. Dann musst du dich natürlich mit dem Linux 
Kernel auseinander setzen, jetzt würde es mich interessieren was in 
deinem Buch steht.

von Marcus (Gast)


Lesenswert?

Ich würde keinen großen uC verwenden, sonst könnte man gleich mit einem 
Raspberry-Pi anfangen und das Systems selbständig kompilieren.

Je nachdem, wie viel Geld man ausgeben möchte, kann man mit ganz 
unterschiedlichen System beginnen.

Ich finde den PsoC5 nicht schlecht:
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-and

Da kann man gleich alles lernen: ARM, VHDL und ein innovatives 
graphisches System.

von Nop (Gast)


Lesenswert?

waflija schrieb:
> Er schreibt aber oben explizit ARMv9, dass ist einer der "Großen", auch
> das Board das er nennt hat einen "großen" ARM.

Das ist korrekt; allerdings schreibt er auch von LED-Blinken und 
Sensoren lesen mit einem µController, und Cortex-A würde ich nicht mehr 
als µController sehen. Wäre dafür auch überdimensioniert, da bietet sich 
Cortex-M an. Und DSPs sind nochmal eine Ecke mehr lowlevel.

Und außerdem hat ein Raspi mit embedded im Besonderen eigentlich nichts 
zu tun, was die SW angeht, denn da läuft ein recht normales Linux drauf. 
Also das kann man auch mit PC-Linuxkenntnissen programmieren. Und ein 
Image bauen ist jetzt auch nichts, was mehr als zwei Wochen Recherche 
dauern sollte.

Anders sieht es aus, wenn man sich auf die Lowlevelwelt mit bare-metal 
nach Datenblatt einläßt. Das dann aber eher mit Cortex-M, wenn es ARM 
sein soll.

von waflija (Gast)


Lesenswert?

Nop schrieb:
> Und außerdem hat ein Raspi mit embedded im Besonderen eigentlich nichts
> zu tun, was die SW angeht, denn da läuft ein recht normales Linux drauf.

Richtig. Das ist aber wie gesagt als Hauptsteuerung in vielen Maschinen 
die Regel. Dazu kommen dann noch "dumme" Buskoppler. Mit dem wissen kann 
dann aber auch etwas weiter unten spezielle, winzige kernel bauen die 
auf sehr kleinen powerPC, ARMs laufen.

> Also das kann man auch mit PC-Linuxkenntnissen programmieren. Und ein
> Image bauen ist jetzt auch nichts, was mehr als zwei Wochen Recherche
> dauern sollte.

Na ja. Ich gehe mal davon aus, dass man mit meinen Vorschlägen ohne 
große Vorkentnisse sicher einige Tage füllen kann. - Dabei hilft sicher 
sich ein konkretes Projekt zu suchen, damit auch ein Ziel hat und nicht 
nur so vor sich hin bastelt. (Eventuell als Praktikum oder Werkstudenten 
tätigkeit? Dann hätte man gleich noch was für den Lebenslauf.)

Ich würde an dieser stelle mal festhalten: C oder CPP lohnt in jedem 
Fall. Denn das läuft auf diversen OS und auch µC lassen sich damit ganz 
gut programmieren heut zu Tage. Daher mein Vorschlag mit einem 
"normalen" PC C zu lernen und sich dann quasi nach unten zu arbeiten. 
Reicht einem der Kerneltreiber nicht, darf man auch gerne einen X86 
Prozessor im FPGA bauen. :)

von Lukas F. (lukas718)


Lesenswert?

Nochmal vielen Dank für die ausführlichen Antworten!
Wie gesagt, beherrsche ich bereits C++ für PC-Anwendungen. Ich werde mir 
zusätzlich "The C programming language" ausleihen und das mal soweit 
durcharbeiten, wie es für meine Zwecke sinnvoll ist. Von den 
Anfängerbaukasten spricht mich das NIBObee am meisten an, um mal erste 
Erfahrungen zu sammeln.
Von meinem Institut weiß ich, dass sie für ihre Umrichter und 
Motorsteuerungen ein eigenes DSP System (mit integrierten FPGAs) 
erstellt und programmiert haben. Dabei wurden auch die ganzen Protokolle 
vom Bus-System (SPI, CAN usw.) von den Mitarbeitern programmiert. Die 
Steuerung des Systems läuft über eine LabView Oberfläche.
Von einem Kommiltonen weiß ich, dass er als Werkstudent für seine 
Maschinensteuerung einen MityDSP 
(http://www.criticallink.com/product/mitydsp-l138f/) benutzt.
Da ich generell noch weit weg von der hardwarenahen Programmierung weg 
bin, will ich zuerst klein anfangen. Wenn ich jetzt alle Vorschläge 
richtig verstanden habe, wäre für mich etwas ohne Betriebsystem besser 
geeignet, oder? (z.B. Arduino?)


Das Buch "Programming Embedded Systems.: With C and GNU Development 
Tools" von Michael Barr & Anthony Massa habe ich jetzt nur ein Beispiel 
angebracht, weil es das erste war, was ich zu diesem Thema gefunden 
habe. Falls ihr andere Bücher kennt, bin ich für Empfehlungen offen.

von qwertz (Gast)


Lesenswert?

> Da ich generell noch weit weg von der hardwarenahen Programmierung weg
> bin, will ich zuerst klein anfangen. Wenn ich jetzt alle Vorschläge
> richtig verstanden habe, wäre für mich etwas ohne Betriebsystem besser
> geeignet, oder? (z.B. Arduino?)

ja, du kannst das Arduino dann ja auch ohne die IDE verwenden, 
allerdings hast du dort keine Jtag Debug möglichkeit und das ist 
Standard darum empfehle ich dir mit ARM zB ST Discovery zu beginnen oder 
du kannst ja beides kaufen , ist eh nicht teuer.

von Pandur S. (jetztnicht)


Lesenswert?

Allenfalls liesse sich das ganze System simulieren.

von Günter Lenz (Gast)


Lesenswert?

Lukas F. schrieb:
>Falls ihr andere Bücher kennt, bin ich für Empfehlungen offen.

Dieses Buch ist ganz interessant.

https://www.amazon.de/Linux-Hardware-Hackz-Steuern-Sensorik/dp/3446407839

von Marcus (Gast)


Lesenswert?

>ja, du kannst das Arduino dann ja auch ohne die IDE verwenden,
>allerdings hast du dort keine Jtag Debug möglichkeit und das ist
>Standard darum empfehle ich dir mit ARM zB ST Discovery zu beginnen oder
>du kannst ja beides kaufen , ist eh nicht teuer.

Das Gleiche geht allerdings auch mit einem Arduino DUE und AVR-Studio 
und einem Atmel-ICE.

von Stefan F. (Gast)


Lesenswert?

> allerdings hast du dort keine Jtag Debug möglichkeit und
> das ist Standard

Ich glaube, es ist schon Ok wenn man erstmal ohne vollwertigen Debugger 
das Programmieren von µC übt.

von Ralph S. (jjflash)


Lesenswert?

qwertz schrieb:
> darum empfehle ich dir mit ARM zB ST Discovery zu beginnen

oder ein Nucleo F401RE, bei Reichelt für 14,90 Euro (einer der wenigen 
Fälle, in denen Reichelt noch günstig ist, sogar günstiger als Ebay).

Das ganze programmieren mit den gängigen Tools (ich hatte Eclipse), bin 
aber jetzt - ihr lest richtig - auf Kommandozeilenebene mit (eigenem) 
Editor und Makefile in Verbindung mit libopencm3 / eigener Bibliothek 
(nach Datenblatt wälzen).

Das "gelernte" lässt sich dann "relativ" einfach auf die gesamte STM32 - 
Familie übertragen, vieles von M4 ist auch für M3 und M1 gültig.

Wenn es superbillig sein soll: LPC1114 auf Steckbrett und RS-232 
Bootloader.

Allerdings:

Das erstellen von Startup-Code und Linkerscripts ist anfänglich 
schiwerig zu durchschauen.

von W.S. (Gast)


Lesenswert?

Lukas F. schrieb:
> Da ich generell noch weit weg von der hardwarenahen Programmierung weg
> bin, will ich zuerst klein anfangen.

Ah ja.
Das klingt zunächst recht vernünftig, aber ich würde dir dringlichst 
empfehlen, zu allererst en Art "Vorbrenner" zu starten.

Wie?

Nun ganz einfach:
1. Frage dich in aller Ruhe, was du bislang so an Hobbies gepflegt hast, 
also wo deine mentalen interessen liegen - mal nur auf Fachliches 
bezogen und die Themen Frauen, Essen, Angeben außen vorgelassen.

2. Frage dich dann danach, wie du dir deinen eignen Berufsweg so 
vorstellst. In welcher Branche, an welcher Stelle, welche beruflichen 
Inhalte als Schwerpunkte. Keine Sorge, die fachfernen Kotzbrocken kommen 
im Berufsleben von selbst, die brauchst du also bei deiner Zielfindung 
nicht zu berücksichtigen.

So. Und jetzt frage dich danach, wie groß der Stellenwert hardwarenaher 
Programmierung im Lichte der oben genannten Dinge denn so sein wird. 
Merke dir eines: Hardware-Entwicklung und hardwarenahe Programmierung 
sind quasi eines, sie gehören auf's Engste zusammen und sollten als ein 
Ganzes dir mental liegen - und wer da denkt "Hardware lebt - und sie ist 
böse", der ist auf den Holzweg.

W.S.

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

Ich möchte einen weiteren Aspekt in die Diskussion einbringen: das 
Vorhandensein geeigneter Literatur für den Einsteiger.
Deshalb kann ich die Beschäftigung mit dem Arduino- System unbedingt 
empfehlen; es gibt eine Fülle von hilfreichen Büchern zu diesem Thema.
Mit C- Vorkenntnissen ist man recht schnell bei erfolgreichen kleinen 
Projekten.
Obwohl ich die PSoC- Controller sehr schätze, sowohl was den Hand- in 
Hand- Entwicklungsprozess von Hard- und Softwaremodulen betrifft, als 
auch die gelungene IDE, fehlt es leider an aktueller Literatur und einer 
aktiven deutschsprachigen Community.
Das gleiche gilt auch für die STM32- Controller. Man muss sich mühsam 
durch die umfangreichen Dokumentationen wühlen...Aber es gibt zum Glück 
die informativen Seiten und Bibliotheken von Uwe Becker: 
http://mikrocontroller.bplaced.net/wordpress/

Für PIC Mikrocontroller stehen zwei lesenswerte Bücher im Regal, leider 
beruht die darin behandelte Softwareentwicklung auf Assembler, und der 
Stand ist 2007. Aber die Grundlagen werden hier sehr ausführlich 
behandelt: 
https://www.amazon.de/Das-grosse-PIC-Mikro-Handbuch-Nanowatt/dp/3772359957

: Bearbeitet durch User
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.