Hardware
Boards und Pinbelegung
Der Schreibtischaufbau nutzt fertige Boards. Die Belegung ist so gewählt, dass kein Ausgang beim Einschalten kurz anzieht.
Auf dieser Seite
Übersicht
| Rolle | Board | Hinweis |
|---|---|---|
| Hub | ESP32-S3-DevKitC-1 N16R8 | 16 MB Flash, 8 MB PSRAM. Einzelheiten unter Hub. |
| Modul | ESP32-C3 SuperMini | klein, USB-C direkt am Chip |
| Modul, später | eigene Platine mit STM32G0B1 | CAN eingebaut, kein Funk |
Das Modul-Board
| Merkmal | ESP32-C3 SuperMini |
|---|---|
| USB | USB-C direkt am Chip |
| Konsole, 115200 Baud | USB-CDC |
| Plätze D und E | GPIO 20 und 21 |
| LED für „Blinken“ | blaue LED an GPIO 8 |
| Flash | 4 MB im Chip |
| Herausgeführt | GPIO 0 bis 10, 20, 21 |
Der SuperMini ist seit Version 0.10.0 das einzige Modul-Board, das ESP32-C3-DevKitM-1 ist entfallen. Beim ersten Start schreibt das Modul sein Board in den eigenen Speicher. Ein Modul, das dort noch das DevKitM-1 stehen hat, schreibt beim Start den SuperMini.
Versorgt wird das Board über seinen Pin 5V: im fertigen Aufbau aus dem 24-V-Bus über Sicherung, Verpolschutz und einen Abwärtswandler auf 5 V, auf dem Steckbrett direkt von einem 5-V-Netzteil. Mehr unter Stromversorgung.
Plätze statt Pins
Für alle Modultypen fest sind CAN und I²C. Frei für den Typ sind sechs Pins, als Plätze A, B, C, W, D und E benannt.
| GPIO | SuperMini |
|---|---|
| 0 | Platz A, meist Versorgungsmessung |
| 1 | Platz B |
| 2 | frei lassen (Strapping) |
| 3 | Platz W, 1-Wire |
| 4 | Platz C |
| 5, 6 | I²C SDA, SCL |
| 7, 10 | CAN TX, RX |
| 8 | LED (Strapping) |
| 9 | BOOT |
| 18, 19 | USB, nicht herausgeführt |
| 20, 21 | Platz D, E |
Schaltausgänge nur auf ruhigen Pins
Die Plätze A, B, C und W bleiben vom Reset bis zum Start der Firmware ruhig. D und E nicht: Dort kommen beim Start die Meldungen des Bootloaders heraus, oder ein Pull-up zieht den Pin hoch.
Deshalb liegen Schaltausgänge nur auf A, B, C, W oder am Portexpander. Auf D und E liegen nur Eingänge wie Tacho, Durchfluss und Kontakte sowie serielle Leitungen. Ein Test prüft diese Regel für alle Typen.
Lasttreiber brauchen trotzdem einen Pull-down, weil die Pins bis zur Einrichtung hochohmig sind.
Belegung je Modultyp
Fett sind Ausgänge. „Versorgung“ ist die Messung der Versorgungsspannung über einen Teiler 1:11. Wo A anders belegt ist, misst ein INA226 die Versorgung (Leistung DC, Relais 4-fach, Antrieb, Einspeisung). Alle Typen passen auf den SuperMini.
| Typ | A | B | C | W | D | E | Expander |
|---|---|---|---|---|---|---|---|
| Temperatur/Feuchte, CO₂, Lichtsensor, BME280 | Versorgung | – | – | – | – | – | nein, Sensor am I²C-Bus |
| Bodenfeuchte | Versorgung | – | – | – | RS485 RX | RS485 TX | nein |
| Temperatur, Bodentemperatur, Wassertemperatur | Versorgung | – | – | 1-Wire | – | – | nein |
| Füllstand | Versorgung | – | – | – | Ultraschall RX | – | nein |
| Regensensor | Versorgung | – | – | – | Regensensor RX | Regensensor TX | nein |
| Durchfluss | Versorgung | Durchfluss 2 | Durchfluss 1 | – | – | – | nein |
| Typ offen | Versorgung | – | – | – | – | – | nein, alle Plätze hochohmig |
| Relais 4-fach | Relais 1 | Relais 2 | Relais 3 | Relais 4 | Messbaustein RX | Messbaustein TX | nein |
| Relais 8-fach | Versorgung | Wahl der Messgruppe | – | Relaisfreigabe | Messbaustein RX | Messbaustein TX | Pflicht: die acht Relais |
| Wind | Versorgung | Windfahne | – | – | Anemometer | – | nein |
| Leistung DC | PWM 1 | PWM 2 | PWM 3 | PWM 4 | Tacho 1 | Tacho 2 | nein, Tacho 3 und 4 entfallen |
| Antrieb, mit Expander | – | Freigabe 1 | Freigabe 2 | – | – | – | Richtung und Endkontakte |
| Antrieb, ohne | Brücke 1 auf | Brücke 1 zu | Brücke 2 zu | Brücke 2 auf | Endkontakt 1 zu | Endkontakt 2 zu | Endkontakte „offen“ entfallen |
| Universal | Schalten 1 | Analog 1 | Analog 2 | Schalten 2 | Kontakt 1 | Kontakt 2 | nein |
| Einspeisung | – | – | – | – | – | – | nein |
Die Sammelmodule (alt) behalten ihre bisherige Belegung:
| Typ | A | B | C | W | D | E | Expander |
|---|---|---|---|---|---|---|---|
| Klima (alt) | Versorgung | – | – | – | – | – | nein |
| Außen (alt) | Versorgung | – | – | – | Regensensor RX | Regensensor TX | nein |
| Boden (alt) | Versorgung | – | – | 1-Wire | RS485 RX | RS485 TX | nein |
| Wasser (alt), mit Expander | Versorgung | Durchfluss 2 | Durchfluss 1 | 1-Wire | Ultraschall RX | Ultraschall TX | Ventil |
| Wasser (alt), ohne | Versorgung | Ventil | Durchfluss 1 | 1-Wire | Ultraschall RX | Ultraschall TX | Durchfluss 2 entfällt |
Beim Suchen nach Sensoren fasst ein Modul nie einen Pin an, den sein Typ als Ausgang nutzt. Den I²C-Bus sucht es immer ab. Den 1-Wire-Bus und das Senden auf der seriellen Leitung nutzt es ohne gesetzten Typ nur, wenn die Pegel an W und E zeigen, dass dort etwas angeschlossen ist.
Portexpander
Der ESP32-C3 hat je Typ nur sechs freie Pins. Antrieb und Wasser (alt) nutzen deshalb einen PCA9555 am I²C-Bus für Richtung, Endkontakte und das Ventil, das Relais 8-fach für seine acht Relais. PWM, Pulse von Tacho und Durchfluss und die seriellen Leitungen bleiben am Controller, denn ein Expander am I²C-Bus ist für Pulszählung zu langsam.
Antwortet beim Start kein Expander, gilt die reduzierte Belegung. Kanäle ohne Pin meldet das Modul dann nicht. Beim Relais 8-fach schaltet ohne Expander nichts.
Bausteine je Typ
| Typ | Bausteine |
|---|---|
| Leistung DC | PWM mit 25 kHz, eigene Lastversorgung mit 12 oder 24 V, je Ausgang ein INA226 für Strom und Spannung |
| Antrieb | zwei H-Brücken, je Antrieb ein INA226, Endkontakte gegen Masse |
| Bodenfeuchte | bis zu zwei Modbus-Fühler oder SMT100 an einem RS485-Bus, 9600 Baud, Feuchte und Temperatur aus dem Fühler |
| Temperatur | DS18B20 oder DS1822 am 1-Wire-Bus mit 4,7 kΩ nach 3,3 V, zwei feste Plätze nach ROM-Code |
| Füllstand | Ultraschallsensor A02YYUW seriell, nur Empfang |
| Regensensor | Hydreon RG-15 seriell, 9600 Baud |
| Durchfluss | zwei Pulseingänge per Interrupt |
| Relais 4-fach | vier potentialfreie Relais direkt am Controller, je Ausgang ein BL0942 für die Leistung, galvanisch getrennt |
| Relais 8-fach | acht Relais am Portexpander, Spulenversorgung über die Relaisfreigabe, acht BL0942 in zwei Gruppen |
| Wind | Schalenanemometer mit Reedkontakt, 0,667 m/s je Hertz, Windfahne am Analogeingang |
| Universal | Analogeingänge 0 bis 10 V, Kontakte gegen Masse |
Beim Relais 4-fach und beim Universalmodul hängen die Schaltausgänge bewusst direkt am Controller. So hängt der sichere Zustand nicht am I²C-Bus. Beim Relais 8-fach reichen die Pins dafür nicht. Dort schaltet die Relaisfreigabe am Controller die Versorgung aller Spulen: Im sicheren Zustand sind alle Relais stromlos, egal was der Expander tut.
Der BL0942 misst Wechselstrom. Schaltet ein Relais Gleichstrom, gibt es dort keine brauchbare Strom- und Leistungsmessung.
Später: STM32G0B1
Für die eigenen Platinen ist ein STM32G0B1 vorgesehen.
- Nur was ein Modul braucht: CAN, I²C, UART, ADC, PWM, Zeitgeber. Kein WLAN, kein Bluetooth, keine Antenne auf der Platine.
- Bei der Auswahl wichtig: Nicht jeder STM32G0 hat CAN, nur die Reihen G0B1 und G0C1.
- Updates über den Bus bleiben möglich. Der Flash hat 512 KB in zwei Bänken. Die zweite Bank nimmt die neue Firmware auf, ein kleiner Bootloader wechselt erst nach erfolgreicher Prüfung.
- Firmware: Der Kern der Module ist schon vom Chip getrennt und läuft in den Tests auf dem PC. Für den STM32G0 kommt nur eine neue Plattformschicht dazu.
Der Hub bleibt ein ESP32-S3.