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!
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.
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"?
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
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 :/
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.
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.
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.
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.
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++.
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!
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?!
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.
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?
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.
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.