Forum: Mikrocontroller und Digitale Elektronik STM32 und ESP32 - µC Lernen


von HalloLeude (Gast)


Lesenswert?

Hallo Leute.

Ich versuche in die Thematik einzusteigen. Was ich bisher weiß ist, dass 
man ESP32 gern für WiFi-Anwendungen nimmt. Warum STM32 usw. ist mir noch 
unklar. es gibt LoRa und LoRaWAN Anwendungen und natürlich die bekannten 
Schnittstellen.

Ich suche eine (oder mehrere?) Quellen für das Thema µC allgemein. Ich 
weiß nicht wie genau man sie einsetzt und wie das im Verbund 
funktioniert.

Beispiel: Firma XY baut Maschinen die irgendwas produzieren. Die 
arbeiten sicher mit irgendwelchen SPS-Systemen. Trotzdem werden dabei 
doch auch Mikrocontroller eingesetzt oder!? (Ja ich weiß, eine SPS ist 
ein starker Controller mit spezieller Peripherie usw.) gleichzeitig 
sitzen µC auch in quasi jedem Haushaltsgerät und in Smart Phones und 
Uhren usw. (dann gibt es auch noch FPGAS... meine Güte es hört nicht auf 
:D).

Ich krieg dabei irgendwie kein Gesamtbild zustanden. Aber ich schweife 
etwas ab.

Ich würde gerne wissen, wann, was eingesetzt wird. Und bin auf der Suche 
nach Quellen zum lernen von den beiden µC-System ESP32 und STM32. Könnt 
ihr dafür Literatur empfehlen?

Achso C++ hatte ich zwei Semester lang. Ist das nützlich oder kann ich 
das dafür vergessen?

Liebe Grüße!

von Stefan F. (Gast)


Lesenswert?

HalloLeude schrieb:
> Ich würde gerne wissen, wann, was eingesetzt wird.

Das kann man gar nicht auf die Schnelle beantworten. Und wenn man sich 
ein Bild geschaffen hat, ist es schon wieder veraltet.

Für STM32 habe ich was: http://stefanfrings.de/stm32/index.html

Für ESP32 würde ich mir das IoT und die Doku dazu direkt vom Hersteller 
besorgen. Produkte von Espressif scheinen mir jedoch nicht ratsam, um 
damit ernsthafte Maschinen zu bauen. Firmware und Hardware sind voller 
Bugs und ohne vernünftigen Support. Für's Hobby sind sie aber 
interessant.

Ich würde dir empfehlen, nicht beides gleichzeitig lernen zu wollen.

C++ Kenntnisse sind sicher nützlich.

von HalloLeude (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Das kann man gar nicht auf die Schnelle beantworten. Und wenn man sich
> ein Bild geschaffen hat, ist es schon wieder veraltet.
> Für STM32 habe ich was: http://stefanfrings.de/stm32/index.html
>
> Für ESP32 würde ich mir das IoT und die Doku dazu direkt vom Hersteller
> besorgen. Produkte von Espressif scheinen mir jedoch nicht ratsam, um
> damit ernsthafte Maschinen zu bauen. Firmware und Hardware sind voller
> Bugs und ohne vernünftigen Support. Für's Hobby sind sie aber
> interessant.
>
> Ich würde dir empfehlen, nicht beides gleichzeitig lernen zu wollen.
>
> C++ Kenntnisse sind sicher nützlich.

Danke. Empfehlenswerte Literatur gibt es dabei nicht? Ist das ganze zu 
"neu"?

von Berry (Gast)


Lesenswert?

Ich weiss zwar nicht ob die STM32 inzwischen supported sind, aber ich 
werfe jetzt Mal das Arduino Framework in den Raum. Es hört sich bei dir 
nämlich so an, als hättest du noch gar keine Ahnung von der Materie. Ich 
Rate dir fang einfach mit irgenwas an, kauf dir bei den bekannten 
Händlern erstmal ein Starterkit für z.B. Arduino und bastel ein 
bisschen. Allein dadurch wirst du schon auf sehr viele deiner Fragen 
stoßen und bekommst langsam ein Bild von allem. Soweit ich weiss sind 
die ESP auch kommplett im Arduino Framework unterstützt.

LG
Berry

von HalloLeude (Gast)


Lesenswert?

Berry schrieb:
> Ich weiss zwar nicht ob die STM32 inzwischen supported sind, aber
> ich werfe jetzt Mal das Arduino Framework in den Raum. Es hört sich bei
> dir nämlich so an, als hättest du noch gar keine Ahnung von der Materie.
> Ich Rate dir fang einfach mit irgenwas an, kauf dir bei den bekannten
> Händlern erstmal ein Starterkit für z.B. Arduino und bastel ein
> bisschen. Allein dadurch wirst du schon auf sehr viele deiner Fragen
> stoßen und bekommst langsam ein Bild von allem. Soweit ich weiss sind
> die ESP auch kommplett im Arduino Framework unterstützt.
>
> LG
> Berry

Lernt man beim Arduino FW denn genug? Ich meine die ganzen Pins, Timer, 
Interrupt Protokolle usw.? Ich hab auf nem Arduino vor zwei Jahren mal 
ne PWM drauf gespielt. Daraus hab ich quasi garnichts bezüglich des 
Controllers gelernt :/

von Alex (Gast)


Lesenswert?

HalloLeude schrieb:
> Lernt man beim Arduino FW denn genug?

Mit deinem Wissen würde ich STM32 in Verbindung mit HAL empfehlen. Ist 
quasi eine etwas professionellere Version von Arduino, und direkt von ST 
zur Verfügung gestellt.

von STK500-Besitzer (Gast)


Lesenswert?

HalloLeude schrieb:
> Lernt man beim Arduino FW denn genug? Ich meine die ganzen Pins, Timer,
> Interrupt Protokolle usw.? Ich hab auf nem Arduino vor zwei Jahren mal
> ne PWM drauf gespielt. Daraus hab ich quasi garnichts bezüglich des
> Controllers gelernt :/

Arduino ist gut für Leute, die wirklich noch nie mit Controllern 
geabeitet haben, oder schnell zu einem akzeptabel funktionierenden 
Ergebnis kommen wollen.

Wenn man tiefer in die Materie einsteigen will, wird es halt 
anstrengender.
Leider veralten Tutorien häufig relativ schnell, weil sich mal wieder 
was neues als "Standard" herausgestellt hat.

Den ESP kann man AFAIK über Lua programmieren (mir reicht die 
Arduino-IDE bis jetzt).
Für STM32 hat STM die Atollic TrueStudio IDE auf die eigenen Prozessoen 
angepasst (nachdem sie Atollic aufgekauft haben).
Das würde ich inzwischen so einordnen wie das AVRStudio von Atmel (erst 
wurde daraus das AtmelStudio, jetzt gehört Atmel zu Microchip).
STM dürfte also der richtige "Ansprechpartner" für den EInstieg in deren 
Controller sein.

von Stefan F. (Gast)


Lesenswert?

HalloLeude schrieb:
> Empfehlenswerte Literatur gibt es dabei nicht?

Au der Webseite habe ich das Buch von Joseph Yiu empfohlen, sowie jede 
Menge Online Doku der Hersteller.

Es gibt zu dem Thema wenig ergänzende Bücher, wie die Chips so schnell 
durch andere überholt werden.

von Stefan F. (Gast)


Lesenswert?

Berry schrieb:
> Ich weiss zwar nicht ob die STM32 inzwischen supported sind, aber ich
> werfe jetzt Mal das Arduino Framework in den Raum.

Sind sie, von STM selbst bereitgestellt.

von Stefan F. (Gast)


Lesenswert?

HalloLeude schrieb:
> Lernt man beim Arduino FW denn genug?

Nein, aber irgendwie muss man Anfangen und dabei ist das Arduino 
Framework sehr hilfreich. Weiter in die Tiefe gehen kannst du dann immer 
noch.

Mikrocontroller indirekt über Frameworks zu programmieren ist zumindest 
im 32bit Umfeld inzwischen die Regel geworden. Alle Chiphersteller 
bieten Frameworks an. Im Fall von ST ist es die "Cube HAL" auf der 
wiederum Arduino aufbaut. Im Fall von ESP ist es das IoT auf das 
wiederum Arduino aufbaut. Du kannst also in Arduino den gesamtem 
Funktionsumfang des jeweiligen Herstellerframeworks nutzen - plus 
Arduino selbst.

Arduino hindert sich auch nicht daran, Referenzhandbücher zu lesen und 
direkt auf Register zuzugreifen. Arduino ist C++.

von HalloLeude (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Nein, aber irgendwie muss man Anfangen und dabei ist das Arduino
> Framework sehr hilfreich. Weiter in die Tiefe gehen kannst du dann immer
> noch.
>
> Mikrocontroller indirekt über Frameworks zu programmieren ist zumindest
> im 32bit Umfeld inzwischen die Regel geworden. Alle Chiphersteller
> bieten Frameworks an. Im Fall von ST ist es die "Cube HAL" auf der
> wiederum Arduino aufbaut. Im Fall von ESP ist es das IoT auf das
> wiederum Arduino aufbaut. Du kannst also in Arduino den gesamtem
> Funktionsumfang des jeweiligen Herstellerframeworks nutzen - plus
> Arduino selbst.
>
> Arduino hindert sich auch nicht daran, Referenzhandbücher zu lesen und
> direkt auf Register zuzugreifen. Arduino ist C++.

Das ist die Antwort die ich gesucht habe. Also verstehe ich das richtig, 
dass ich im Endeffekt mit dem Arduino FW alles für Arduino und auch für 
die jeweilige 32bit Plattform machen kann? Also man im Endeffekt besser 
dran ist die Arduino IDE zu verwenden, da dann die Arduino Community 
ebenfalls mit involviert ist? Das klingt echt geil. Dann verstehe ich 
auch warum Arduino nicht nur Controllerboards sind... Und warum die 
Dinger so beliebt sind. Schade dass das nicht direkt so dargestellt 
wird. Ich hab schon einiges "gegoogelt" aber darauf bin ich noch nicht 
gestoßen.

Danke!

von HalloLeude (Gast)


Lesenswert?

Aber eine Frage ja. Ich noch wegen dem "veraltet" ... In den letzten 
Jahren ist doch eigentlich garnicht so viel passiert. Vergleicht man das 
mit Softwareentwicklung, ist das vergleichsweise doch extrem langsam?!

von Stefan F. (Gast)


Lesenswert?

HalloLeude schrieb:
> Das ist die Antwort die ich gesucht habe. Also verstehe ich das richtig,
> dass ich im Endeffekt mit dem Arduino FW alles für Arduino und auch für
> die jeweilige 32bit Plattform machen kann

Ja

> man im Endeffekt besser dran ist die Arduino IDE zu verwenden

Der Editor von der Arduino IDE ist auf dem technischen Stand von 1980. 
Er enthält keine Funktionen für Navigation zwischen Dateien, keine 
automatische Eingabeergänzung, keine Warnungen bei fragwürdigem Code, 
keine Funktionen für Refactoring, keine Funktionen für VCS

und keinen Debugger! Kurz gesagt: Die Arduino IDE ist ein 
Kinderspielzeug.

Man kann das Arduino Framework aber mit besseren IDE verwenden. Dazu 
gibt es reichlich tutorials.

> da dann die Arduino Community ebenfalls mit involviert ist?

Ich weiß nicht, was du dir von der Arduino Community versprichst. 
Professionellen Support bekommst du dort jedenfalls nicht, denn das ist 
ein sympatischer Haufen von Hobbyprogrammierern.

von HalloLeude (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Ich weiß nicht, was du dir von der Arduino Community versprichst.
> Professionellen Support bekommst du dort jedenfalls nicht, denn das ist
> ein sympatischer Haufen von Hobbyprogrammierern.

Ist das Arduino FW nicht gleich der Community?

von Stefan F. (Gast)


Lesenswert?

HalloLeude schrieb:
> Ist das Arduino FW nicht gleich der Community?

Nein. Arduino ist ein Produkt von einer Italenischen Firma. Gehe mal auf 
deren Webseite arduino.cc, dann siehst du, was von denen kommt.

Arduino ist Open-Source, offen für Nachbauten und fremde Erweiterungen.

Die Unterstützung für 32bit Controller kommt (bis auf einzelne 
Ausnahmen) nicht von Arduino, sondern meist von den Chipherstellern und 
ohne offiziellen Support. Aber es gibt immerhin Diskussionsforen, an 
denen sich Mitarbeiter der Hersteller beteiligen.

Codes für externe Hardware (Displays, Sensoren, etc) kommt überwiegend 
von der Community.

Beim ESP8266 und STM kam die Unterstützung übrigens anfangs aus der 
Community, wurde aber später von den Chipherstellern selbst übernommen.

von Thomas B. (thomas2)


Lesenswert?

HalloLeude schrieb:

> Beispiel: Firma XY baut Maschinen die irgendwas produzieren. Die
> arbeiten sicher mit irgendwelchen SPS-Systemen. Trotzdem werden dabei
> doch auch Mikrocontroller eingesetzt oder!?

Ein Mikrocontroller ist ein Bauteil, das auf die Platine gelötet wird. 
Ähnlich wie ein Mikroprozessor, nur dass er zusätzlich Programm- und 
Arbeitsspeicher bereits integriert hat, so dass er als 1-Chip-Lösung 
lauffähig ist.

Eine SPS ist ein fertiges Gerät für Endanwender. Die SPS enthält 
natürlich einen Mikrocontroller oder Mikroprozessor. Und halt 
zusätzliche Komponenten, insbesondere die Beschaltung der Ein- und 
Ausgänge, so dass man an den Klemmen mit den in der Industrieelektronik 
üblichen 24 V arbeiten kann. Die Mikrocontroller selbst arbeiten mit 5 V 
oder 3,3 V.

Die SPS enthält auch bereits eine Art Betriebssystem und wird komplett 
anders programmiert. Während man einen Mikrocontroller mit normalen 
Programmiersprachen wie C oder C++ programmiert, funktioniert das bei 
der SPS über spezielle SPS-Programmiersprachen nach IEC 61131-3 wie FUP, 
KOP oder ST. Über den in der SPS eingebauten Mikrocontroller muss man 
als SPS-Programmierer nichts wissen.

> Ich versuche in die Thematik einzusteigen. Was ich bisher weiß ist, dass
> man ESP32 gern für WiFi-Anwendungen nimmt. Warum STM32 usw. ist mir noch
> unklar.

Das wird immer unklar sein, irgendwer muss es halt nach Kriterien wie 
Preis, Rechenleistung, integrierte Funktionen, langfristige 
Verfügbarkeit, Komplexität, vorhandene Erfahrungen usw. entscheiden.

ESP8266 und ESP32 sind dabei durch das integrierte Wifi ein Spezialfall 
und werden dann genommen, wenn man dieses eben braucht. Hierzulande aber 
eher für Hobby-Anwendungen als für professionelle Anwendungen.

STM32 und andere ARM-basierte Controller sind sind modern und 
leistungsfähig, für die meisten Anwendungen reichen aber auch viel 
"kleinere" Mikrocontroller aus. Diese sind witzigerweise gar nicht 
billiger, aber halt weniger komplex und langjährig bewährt, so dass nach 
wie vor viele 8-bit-Mikrocontroller eingesetzt werden.

> Lernt man beim Arduino FW denn genug? Ich meine die ganzen Pins, Timer,
> Interrupt Protokolle usw.? Ich hab auf nem Arduino vor zwei Jahren mal
> ne PWM drauf gespielt. Daraus hab ich quasi garnichts bezüglich des
> Controllers gelernt :/

Die Frage ist, was du lernen willst. Die normalen Arduino-Boards 
basieren auf einem 8-Bit AVR-Controller. Es hindert dich niemand daran, 
ein Datenblatt des eingesetzten AVR-Controllers zu besorgen und bei der 
Programmierung in C oder C++ direkt auf die Register des Controllers 
zuzugreifen, anstatt die Arduino-Bibliotheksfunktionen zu verwenden. 
Auch die Verwendung von Interrupts ist natürlich möglich, aber für 
Einfachst-Anwendungen braucht man sie halt nicht.

> Ich würde gerne wissen, wann, was eingesetzt wird. Und bin auf der Suche
> nach Quellen zum lernen von den beiden µC-System ESP32 und STM32. Könnt
> ihr dafür Literatur empfehlen?

Aus Literatur speziell zum ESP32 oder zum STM32 wirst du sicher nicht 
lernen, wann man was einsetzt, da lernst du wie man es genau einsetzt.

Der ESP32 wird im Hobby/Maker-Umfeld verwendet, dementsprechend gibt es 
dafür einsteigerfreundliche Literatur, sogar deutschsprachig. Natürlich 
ist aber der "Tiefgang" solcher Bücher an die Zielgruppe angepasst, 
Elektronik-Grundlagen etc. sind eingewoben - ob es das ist, was du 
suchst, weiß ich nicht.

Der STM32 wird kaum im Hobby/Maker-Umfeld eingesetzt, dementsprechend 
ist einsteigerfreundliche Literatur dafür Mangelware. Das Problem ist 
außerdem, dass es im STM32-Umfeld eine große Vielfalt an 
Entwicklungsumgebungen, Frameworks, Betriebssystemen, ... gibt. Die 
Bücher nutzen teils nur dann was, wenn du auch genau die dort 
beschriebenen Tools einsetzen willst.

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.