Wiren BoardDocumentazione
Documentazione · Italiano

Firmware personalizzato e GPIO di WB-MGE v.3

revisione 94857

Descrizione

Il modulo viene fornito con firmware di fabbrica che implementa le funzioni di gateway e supporta gli aggiornamenti tramite l’interfaccia web.

Questa pagina descrive l’esecuzione di firmware personalizzato sull’hardware WB-MGE v.3. Il manuale utente è disponibile qui: WB-MGE v.3 Modbus Ethernet Gateway.

Le richieste di garanzia sono accettate per i moduli che utilizzano il firmware di fabbrica. Se gli esperimenti con firmware personalizzato rivelano un problema hardware, ripristinare il firmware di fabbrica, riprodurre il problema con esso e contattare l’assistenza tecnica.

Scrittura del firmware

Illustrazione WB-MGE v.3
Connettore di programmazione

Per la scrittura, utilizzare l’utilità esptool oppure un equivalente. Nel dispositivo è integrato un convertitore USB-UART basato su CH343.

Verificare la comunicazione richiedendo l’identificatore del chip, ad esempio:

$ 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...

Esempi di firmware fai da te

Per facilitare l’avvio, sono fornite configurazioni di esempio per la diffusa piattaforma ESPHome. Dimostrano soltanto l’accesso all’hardware e non sono collegate al firmware originale WB-MGE v.3.

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

GPIO e interfacce

Le tabelle seguenti mostrano i collegamenti dei moduli di interfaccia e le assegnazioni delle uscite dell’espansore di porte.

Importante! Una sezione MIO interna basata su STM32 è collegata a RS485-2. Utilizza Modbus RTU e occupa l’indirizzo Modbus stampato sull’etichetta del dispositivo. Può essere disabilitata tramite il GPIO corrispondente.

Interfaccia Ethernet RTL8201FI
ESP32 GPIO18 GPIO23 GPIO0 GPIO5 GPIO19 GPIO22 GPIO21 GPIO25 GPIO26 GPIO27
RTL8201FI MDIO MDC CLK RST TXD0 TXD1 TXEN RXD0 RXD1 CRS_DV
Espansore TCA9535
TCA9535 SDA SCL PD00 PD01 PD02 PD03 PD04 PD05 PD06 PD07 PD10
ESP32 GPIO32 GPIO33
RS485-1 terminazione attiva polarizzazione a riposo attiva
RS485-2 terminazione attiva polarizzazione a riposo attiva
MIO OFF
VOut e LED VOut ON
LED Wi-Fi OFF
LED Eth OFF
Status ON

Nella tabella precedente, ON indica che un’uscita a livello logico alto abilita il circuito corrispondente. Anche il LED Status si accende quando la sua porta è nello stato ad alta impedenza (HiZ). TCA9535 utilizza l’indirizzo standard del bus 0x20.

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

Per ESP32, RX è un ingresso e TX è un’uscita.

Pulsanti
ESP32 GPIO34
Config (B1) +

La pressione di un pulsante porta la porta ESP32 corrispondente al livello logico basso.

Ripristino del firmware di fabbrica

È possibile ripristinare il firmware di fabbrica quando necessario. La garanzia del dispositivo rimane valida.

Cancellare il contenuto sperimentale della memoria flash:

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

Scaricare i file del firmware:

  • factory_mge.bin — partiziona la memoria flash e avvia l’interfaccia web utilizzata per caricare il firmware principale.
  • mge_main.bin — il firmware principale che implementa le funzioni di gateway.

Scrivere il firmware Factory, sostituendo factory_mge.bin con il nome del file scaricato:

  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
    

Il firmware principale mge_main.bin può essere scritto in due modi:

  1. Tramite l’interfaccia web in modalità Factory; vedere «Aggiornamento del firmware e ripristino delle impostazioni» per i dettagli.
  2. Tramite l’interfaccia USB:
    • Scrivere il file nella partizione OTA_0, sostituendo mge_main.bin con il nome del file scaricato:
      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
      
    • Abilitare l’avvio dalla partizione OTA_0:
      otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0