Microcontroller

Nutzbare Anschlüsse an ESP32 Developer-Boards

Nicht alle Pins eines Microcontroller-Boards kann man nutzen: einige steuern den Startvorgang (Strapping Pins), andere sind intern mit LED, Speicher oder Buttons verbunden. Für die ESP32-Boards ESP32 Dev Kit V1, ESP32 Dev Kit V2, ESP32 Dev Kit C V4, ESP32 C6 Dev Kit N8-M, WeMos Dev Board with 0.96 inch OLED gibt es hier Pinouts mit den empfohlenen frei nutzbaren Pins.

Aufbau und Funktion von D-/T-/JK-Flipflops

Eine Reihe von Flipflop-Grundschaltungen wiegen die Nachteile von einfachen RS-Flipflops auf und sind geeignet für besondere Aufgaben: D-Flipflops verfügen neben dem Takt über nur einen Dateneingang, und sind deshalb besonders zum Datenspeichern (in Registern) geeignet, T-Flipflops verfügen nur noch über den Takteingang und eignen sich als Frequenzteiler oder Zähler, und JK-Flipflops sind die Universalisten, mit denen ungefähr alles möglich ist.

Taktgesteuerte Flipflops

Flipflops sind flexibler einsetzbar, wenn man mit einem Takt einen weitern Eingang anfügt. Es wird Taktzustands- und Taktflankensteuerung unterschieden – beide lasse sich jeweils negieren oder durch taktunabhängige Eingänge ergänzen. Die Königsdiziplin ist das zweitaktflankengesteuerte Flipflop. Kleine Übungsaufgaben sind in den Text integriert.

Einfache Speicherschaltungen mit Flipflops

Neben einfachen Logikschaltungen sind Speicherschaltungen die wesentliche Grundlage der Informationstechnik. Flipflops lassen sich einfach aus NAND und NOR aufbauen, verfügen über einen irregulären Zustand, den man über Setz- und Rücksetzdominanz umgehen kann. Aus der Namensgebung (RS/SR) lässt sich leider nicht einheitlich auf die Funktion schließen, da dies unterschiedlich gehandhabt wird. Kleine Übungsaufgaben sind in den Text integriert.

Digitale Signale mit PulseView und einem Logic-Analyzer untersuchen

Um zu prüfen, ob ein Problem auf Hardware- oder auf Softwareseite besteht, ist es manchmal nötig, die Signale direkt zu messen. Logic-Analyzer bieten die Möglichkeit, viele digitale Signale parallel zu messen und unmittelbar auszuwerten. Mit dem OpenSource-Programm PulseView kann dies sehr komfortabel durchgeführt werden.

Software für den Einstieg in die Digitaltechnik

Es gibt eine ganze Reihe von Simulationstools, mit deren Hilfe man Logikgatter aufbauen und ausprobieren kann. Leider verliert man bei der Fülle und der Flüchtigkeit mancher Tools schnell die Übersicht. Ich habe mal mit allen mit bekannten Tools (a) Flipflops (b) BCD-Synchronzähler gebaut, und notiert, was mir dabei aufgefallen ist. Die Liste ist offen für weitere Hinweise/Vorschläge!

Assembler mit dem Arduino programmieren

Wir haben uns entschlossen, die Arduino-Welt auf den Kopf zu stellen und mit dieser vereinfachten IDE alles möglichst kompliziert zu machen: Assembler mit Arduino-Boardmitteln zu programmieren. Nach den Vorbereitungen geht es hier in Teil 2 ins Eingemachte: die eigentliche Programmierung (zu [Teil 1, den Vorbereitungen, gibt es einen weiteren Artikel)

Arduino-IDE zur Programmierung von Assembler vorbereiten

Kann man mit Arduino-Bordmitteln Assembler programmieren? Zugegeben: es ist Schwachsinn: da geben sich die Leute von Arduino viel Mühe, um die ganze Komplexität der Microcontrollerprogrammierung zu verstecken, und dann versuchen wir, das alles wieder zurückzudrehen. Teil 2: Vorbereitung (zu Teil 2, der eigentlichen Programmierung, gibt es einen weiteren Artikel

Debugging per Logging und für ESPs mit WLAN

Bei einfachen Projekten ist das Logging über die serielle Verbindung ein Segen beim Debugging: über die USB-Verbindung können am seriellen Monitor der Arduino-IDE Werte ausgegeben werden. Was aber tun, wenn die serielle Verbindung nicht besteht? Wie kann ich Logging am ESP komfortabel und einfach umsetzen? Ein Vorschlag.

Firmwareupdates für ESPs per WLAN

Es ist lästig, einen ESP-Microprozessor, der in einem Projekt verbaut ist, für ein Softwareupdate auszubauen und an den USB-Port anzuschließen. Mit der Library für „Over the Air“-Updates gibt es jedoch eine elegante Möglichkeit, passwortgeschützt neue eigene Firmware aufzuspielen.

ESP in mehrere WLAN integrieren und Zugangsdaten sichern

Ein ESP (32/8266) ist mit wenigen Zeilen Code ins heimische WLAN integriert. Der hier verwendete Weg stellt sicher, dass aus vielen unterschiedlichen WLANs das geeignetste ausgesucht wird. Außerdem wird wiederkehrend überprüft, ob die WLAN-Verbindung noch besteht, diese ggf. neu aufgebaut und – wenn der Aufbau zu häufig scheitert – der ESP neu gestartet. Ausserdem wird ein Weg vorgestellt, die WLAN-Zugangsdaten vor der unbeabsichtigten Veröffentlichung in Versionsverwaltungen und Codesharing zu schützen.

Mein erster Grafiktreiber: ein Dot-Matrixdisplay direkt ansteuern

Gedankenspiel: wenn es die ganze wunderbare Arduino-Community nicht gäbe. Nur uns, den Microcontroller, ein 8×8-Matrix-Display (MAX7219), die eine IDE und ein Datenblatt. Würden wir es dann schaffen, das Display an’s laufen zu bekommen? An diesem Beispiel soll gezeigt werden, dass hardwarenahe Programmierung ohne Bibliotheken – nur mit den Angaben eines Datenblatts – kein Zauberwerk ist…