µC Arduino STM32

STM32 mit Arduino programmieren

  • 1.1 Einstieg in Arduino für STM32

    Forum der STM32 Boardleute: https://www.stm32duino.com Anleitung für MacOS Arduino Software laden und installieren.Unter Voreinstellungen zusätzliche Boardverwalter-URL eingeben damit die Erweiterung gefunden wird:Das Kopieren und einfügen: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json Arduino-IDE NEU Starten => Dann wird Eintrag unter Voreinstellungen erst aktiv!​DANN In den Boardverwalter gehen und STM32 MCU based borads installierenWerkzeuge => Board => Boardverwalter => STM32 => Installieren…

  • | |

    1.1 🚧 SPS-Logik-Simulation

    Einordnen des Unterrichtsentwurfs: Hier wird Digitaltechnik mit µC Programmierung in C/Assembler in Java mit Oberfläche betrieben. Günstige Voraussetzungen: Perfekt passend wäre der Zeitpunkt in der Eingangsklasse bei dem in Java die Oberflächenprogrammierung behandelt wurde und in Assembler die ersten Schritte unternommen werden sollen. Letztlich soll verstanden werden, wie die µC Register direkt verwendet werden mit…

  • 1.1b 🚧🏋️ Bitschubserei

    Synopsis: [MezData: Ausdrücke und Operatoren] [SPS-Logik-Simulation] Sobald mehrere Port-Pins auf einmal gelesen oder gesetzt werden sollen wird es mit digitalWrite() und digitalRead() umständlich, ausserdem brauchen diese Operationen deutlich länger als der direkte Zugriff über die Portregister.Hinweise: Zur Veranschaulichung habe ich hier unsigned char a; // 8 Bit ohne Vorzeichen (uint8_t) verwendet. In den [] Klammern…

  • 1.1d 🚧 C Datentypen für Arduino

    Einfache Datentypen Die Tabelleninhalte wurden für STM32 Arduino mit Testsoftware ermittelt. Es gibt Unterschiede in der Interpretation der Datentypen bei verschiedenen Compilern und µCs. In C/C++ hat es daher zusätzliche Datentypen, mit denen Vorzeichenbehaftung und Bitbreite compilerunabhängig festgelegt werden können. Datentyp #Bits #Werte Wertebereich entspricht Bemerkung bool 8 2 false (=0), true (≠0) char (ist…

  • 1.1l 🚧 LCD Anzeige

    Für kleines Geld gibt es LCD-Displays auf Basis des HD44780 Treiberchips. Um sie bequem an einem µC betreiben zu können werden sie mit einem Portexpander-Chip HLF8574 über I2C angeschlossen. Eine Library macht die Ansteuerung zum Kinderspiel. LiquidCrystal_PCF8574 Library Arduino Library for LiquidCrystal displays with I2C PCF8574 adapter🔗 ToDo: Wie kann der Insert-Modus des Displays eingeschaltet…

  • 1.1o 🚧 Oszilloskopieren

    Synopsis: [de.wikipedia.org/wiki/Oszilloskop]Ein Oszilloskop auch liebevoll Oszi genannt ist das (zweit) wichtigste Messgerät eines IT-Bastlers. Dabei werden Signale im zeitlichen Verlauf graphisch dargestellt. Wenn viele digitale Signale gleichzeitig gemessen werden sollen gibt es Logic-Analyzer. Zeiten mit Oszilloskop messen Wie schnell kann ausgegeben werden? Die LED an D13 (PA5) so schnell wie möglich blinken lassen.Das Signal mit…

  • 1.1p print, printf, sprintf (🚧)

    Formatiertes Ausgeben von Werten print Arduino-Doku: Serial.print()🔗 printf, sprintf Tests mit Java Ausgabe Test mit Arduino STM32 Bei dem Testprogramm wird ab Floating Point normalerweise nur noch Mist ausgegeben!Das liegt daran, dass die Verarbeitung von Fließkommaformatierungen recht viel Programmspeicher (ca. 2,5 KiByte) benötigen würde und bei den kleinen µC dies vermieden werden sollte, so wurde…

  • 1.1s 🚧 Spickzettel

    Sammlung für die lokale Formelsammlung 🤠. Beispielsketch Sketch nennt man bei Arduino die Entwürfe für ein Programm. Ein Sketch ist eine Textdatei z.B. „Beispiel“ mit der Endung .ino also Beispiel.ino. Die Datei muss sich in einem gleichnamigen Ordner hier Beispiel befinden. Dafür #define Synopsis: C-Präprozessor📖 Präprozessor-Direktiven🔗.Die Pins am µC haben Bezeichnungen wie D13 oder PC13….

  • 1.1x STM32 GPIO Ports

    Hier eine etwas vereinfachte Betrachtung, für Details Doku lesen: [Referenz Manual rm0038 S183ff.] [Datenblatt stm32l152re S92] [STM32-API] Prinzip-Schaltbild für einen I/O-Pin Veranschaulichung I/O Pin Teilschaltung mit Digital Einstieg in die Vielfalt der Einstellmöglichkeiten. Jeder Pin kann als General Purpose Input/Output  (Allzweckeingabe/-ausgabe) oder mit einer alternativen Funktion verwendet werden. Im Vergleich mit dem oberen Blockschaltbild fehlen…

  • 1.2 Aufgaben zum Einstieg

    SOS ausgeben mit BoardLED D13. … – – – … Auf der BoardLED 13 soll ein SOS-Blinken ausgegeben werden.Hier das Zeitschema zur Ausgabe. Mit einer Variable int dit soll die Dauer des kurzen Signals einstellbar sein.Zum Testen usw. https://morsedecoder.comErstellen Sie ein Programm, ein dit soll die Länge 200ms haben. Hier ein paar Anregungen: String ausgeben…

  • 1.3 🏹 Zustandsdiagramm

    Benötigte Hilfsmittel: TGI-Formelsammlung, Software Umlet, Anleitung zu Umlet: Tipp: Um Diagramme automatisch in der passenden Größe dar zu stellen: style=autoresize Fußgängerampel mit UML-Zustandsdiagramm entwickeln Die [Fußgängerampel] wird mit UML-Zustandsdiagramm erneut entwickelt. Schauen Sie sich den alten Lösungs-Quellcode noch einmal an. Aus der Digitaltechnik kennen Sie ja bereits Zustandsdiagramme, sie sind ein praktisches Werkzeug um Automaten…

  • 1.4 ⚡️ Interrupts

    Die BOARD_LED an PA5 (D13) soll bei Betätigung vom Board-Taster USER_BUTTON an PC13 immer langsamer blinken. Der Taster ist entprellt und Low aktiv. ❓ Wenn die Zeit länger wird, bewirkt ein kurzer Tastendruck oft keine Veränderung mehr. Warum? Lösung: Taster öfter überprüfen Immer wieder vorbeischauen ob der Taster gedrückt wurde nennt man Polling auf den…

  • 1.5 ⏲️ Timer

    Dank der STM32-Arduino HardwareTimer library🔗 wird man von den nicht ganz einfachen Details der STM32 Timer zunächst verschont. Info: In der MBED-Umgebung könnte das so aussehen: Ticker Dort wird mit Threads gearbeitet, die schlafen gelegt werden, erinnert mich an Java..Hier nun der Weg mit STM32-Arduino. (Unterschied zu Atmel-AVR bei Register Compare, hier kein +1 zu…

  • 1.6 ⏱️ Frequenz, Perioden- und Impulsdauer messen

    [de.wikipedia.org/wiki/Frequenz 🔗] Die Frequenz f eines Signals ist die Anzahl der Wiederholungen pro Sekunde.Im Beispiel ein Rechtecksignal. Die Periodendauer T ist dabei z.B. die Zeit von steigender zur steigender Flanke. Um die Frequenz zu messen kann z.B. die Anzahl der steigenden Taktflanken in einer Sekunde gezählt werden.Bei niedrigen Frequenzen wird eher die Periodendauer T gemessen.Oft…

  • 1.7 💯 PWM (PulsWeitenModulation)

    Synopsis: [de.wikipedia.org/wiki/Pulsdauermodulation 🔗]Wieder so ein „explosives“ 🧨 Thema! Sobald man sich näher damit beschäftigt kann es spannend aber auch kompliziert werden… Aufgaben Arduino: analogWrite() Lesen: [arduino.cc/reference/en/language/functions/analog-io/analogWrite/ 🔗] [docs.arduino.cc/learn/microcontrollers/analog-output/ 🔗] Die Helligkeit der LED an PC7 soll durch den low-aktiven prellfreien UserButton an PC13 in den Stufen0% -> 25% -> 50% -> 75% -> 100% ->…

  • 1.9 🤩 Kurztests

    🍼 Einstiegsaufgaben 🍼 SP. Ein Startpieper 🛫 Nach druck auf Taster Start sollen drei tiefe und ein längerer hoher Ton auf einem Piezo-Lautsprecher ausgegeben werden. Während der Ausgabe des tiefen Tones leuchtet die LED LC0, beim hohen Ton LC1. Dieser Quellcode ist schon gegeben: 🍼 SP.1 Ergänzen Sie die fehlenden Teile! 🍼 LM. Leuchtmuster auf…

  • 2.0 🚧 Timer-Schmerzen?

    Angenommen, ich will PWM unterrichten und soll dabei auf die Hardware eingehen. Hier ein Versuch verschiedene µC dabei zu vergleichen: ATmega328P (Arduino Uno, Nano) ATmega328P DATASHEET🔗 S90 ff. Doku ist gut verständlich. Alter Unterricht: Timer und Pulsweitenmodulator STM32L152xx STM32L152xx Referenz Manual RM0038🔗 S383. System ist recht kompliziert, Doku ist nicht so leicht zu verstehen.. STM32-Timer-Hardware…

  • 3.0 〰️ Schnittstellen und Module Überblick

    SPI I2C UART Prinzip Master—Slave Master-Slave Gleichberechtigt Anzahl Kommunikations-Teilnehmer 1 Master,beliebig viele Slaves 1 Master, bis 127 Slaves Zwei Teilnehmer Übertragungsart Vollduplex Halbduplex Halb-/Vollduplex Datenübertragungsrate bis zu 10MHz typ. 3,4 Mbit/s bis zu 5Mbit/s 50..3.000.000Bit/s Anzahl Leitungen minimal 4 2 minimal 2 Taktsynchron synchron synchron asynchron Anschlüsse SCLK, MOSI, MISO , SS SDA, SCK TX,RX…

  • 3.1 🔢 AD / DA Wandlung

    [How to get the best ADC accuracy in STM32 microcontrollers][Was sind A/D- und D/A-Wandler?][MezData: Analog und Digital] [Wikipedia: Analog-Digital-Umsetzer] Die AD-Wandlung (Analog-Digital-Wandlung) ist ein Prozess, bei dem analoge Signale in digitale Signale umgewandelt werden. Dies ist essenziell für die Verarbeitung von Signalen in digitalen Systemen wie Computern, Smartphones oder Messgeräten. Fachbegriffe Wert-Quantisierung: Analoge Spannung in…