Wiren BoardDokumentation
Dokumentation · Deutsch

Benutzerdefinierte Firmware und GPIO für WB-MGE v.3

Revision 94857

Beschreibung

Das Modul wird mit werkseitiger Firmware ausgeliefert, die Gateway-Funktionen bereitstellt und Aktualisierungen über die Weboberfläche unterstützt.

Diese Seite beschreibt den Betrieb angepasster Firmware auf der Hardware von WB-MGE v.3. Das Benutzerhandbuch ist hier verfügbar: Modbus-Ethernet-Gateway WB-MGE v.3.

Garantieansprüche werden für Module mit werkseitiger Firmware akzeptiert. Zeigen Experimente mit eigener Firmware ein Hardwareproblem, stellen Sie die werkseitige Firmware wieder her, reproduzieren Sie das Problem damit und wenden Sie sich an den technischen Support.

Firmware flashen

Abbildung des WB-MGE v.3
Der Programmieranschluss

Verwenden Sie zum Flashen das Programm esptool oder ein gleichwertiges Werkzeug. Im Gerät ist ein USB-UART-Konverter auf CH343-Basis eingebaut.

Prüfen Sie die Kommunikation durch Abfragen der Chipkennung, beispielsweise:

$ esptool.py -p /dev/ttyACM0 -b 115200 chip_id
esptool.py v4.8.1
Serial port /dev/ttyACM0
Connecting......
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting.....
Detecting chip type... ESP32
Chip is ESP32-U4WDH (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 2c:bc:bb:31:8b:00
Uploading stub...
Running stub...
Stub running...
Warning: ESP32 has no Chip ID. Reading MAC instead.
MAC: 2c:bc:bb:31:8b:00
Hard resetting via RTS pin...

Beispiele für eigene Firmware

Als Einstieg stellen wir Beispielkonfigurationen für die verbreitete ESPHome-Plattform bereit. Sie zeigen ausschließlich den Hardwarezugriff und haben keinen Bezug zur ursprünglichen Firmware des WB-MGE v.3.

Link: https://github.com/wirenboard/wb-mge-v3-diy-firmware-demo

GPIO und Schnittstellen

Die folgenden Tabellen zeigen die Anschlüsse der Schnittstellenmodule und die Ausgangszuordnung des Portexpanders.

Wichtig! An RS485-2 ist ein interner STM32-basierter MIO-Bereich angeschlossen. Er verwendet Modbus RTU und belegt die auf dem Geräteetikett angegebene Modbus-Adresse. Er lässt sich über den entsprechenden GPIO deaktivieren.

Ethernet-Schnittstelle RTL8201FI
ESP32 GPIO18 GPIO23 GPIO0 GPIO5 GPIO19 GPIO22 GPIO21 GPIO25 GPIO26 GPIO27
RTL8201FI MDIO MDC CLK RST TXD0 TXD1 TXEN RXD0 RXD1 CRS_DV
Portexpander TCA9535
TCA9535 SDA SCL PD00 PD01 PD02 PD03 PD04 PD05 PD06 PD07 PD10
ESP32 GPIO32 GPIO33
RS485-1 Abschlusswiderstand EIN Ruhepegelvorspannung EIN
RS485-2 Abschlusswiderstand EIN Ruhepegelvorspannung EIN
MIO OFF
VOut und VOut-LED ON
LED Wi-Fi OFF
LED Eth OFF
Status ON

In der obigen Tabelle bedeutet ON, dass ein logisch hoher Ausgangspegel den entsprechenden Stromkreis aktiviert. Die Status-LED leuchtet auch, wenn ihr Port hochohmig (HiZ) ist. TCA9535 verwendet die Standard-Busadresse 0x20.

RS-485
ESP32 GPIO10 GPIO9 GPIO4 GPIO14 GPIO12 GPIO15
RS485-1 TX RX RTS
RS485-2 TX RX RTS

Beim ESP32 ist RX ein Eingang und TX ein Ausgang.

Tasten
ESP32 GPIO34
Config (B1) +

Das Drücken einer Taste zieht den entsprechenden ESP32-Port auf logisch Low.

Werkseitige Firmware wiederherstellen

Sie können die werkseitige Firmware bei Bedarf wiederherstellen. Die Gerätegarantie bleibt gültig.

Löschen Sie den experimentellen Inhalt des Flash-Speichers:

esptool.py --chip esp32 --port /dev/ttyACM0 erase_flash

Laden Sie die Firmware-Dateien herunter:

  • factory_mge.bin — partitioniert den Flash-Speicher und startet die Weboberfläche zum Hochladen der Hauptfirmware.
  • mge_main.bin — Hauptfirmware zur Bereitstellung der Gateway-Funktionen.

Flashen Sie die Factory-Firmware und ersetzen Sie factory_mge.bin durch den Namen der heruntergeladenen Datei:

  1. esptool.py --chip esp32 -p /dev/ttyACM0 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x0 factory_mge.bin
    

Die Hauptfirmware mge_main.bin kann auf zwei Arten geflasht werden:

  1. Über die Weboberfläche im Factory-Modus; Einzelheiten unter Firmware aktualisieren und Einstellungen zurücksetzen.
  2. Über die USB-Schnittstelle:
    • Schreiben Sie die Datei in die Partition OTA_0 und ersetzen Sie mge_main.bin durch den Namen der heruntergeladenen Datei:
      esptool.py --chip esp32 -p /dev/ttyACM0 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x90000 mge_main.bin
      
    • Aktivieren Sie das Booten von der Partition OTA_0:
      otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0