Wiren BoardDocumentación
Documentación · Español

Firmware personalizado y GPIO de WB-MGE v.3

revisión 94857

Descripción

El módulo se entrega con firmware de fábrica que implementa las funciones de pasarela y permite actualizarlo a través de la interfaz web.

Esta página describe la ejecución de firmware personalizado en el hardware WB-MGE v.3. El manual de usuario está disponible aquí: Pasarela Modbus Ethernet WB-MGE v.3.

Se aceptan reclamaciones de garantía para módulos que utilizan el firmware de fábrica. Si los experimentos con firmware personalizado revelan un problema de hardware, restablezca el firmware de fábrica, reproduzca el problema con él y póngase en contacto con soporte técnico.

Carga del firmware

Ilustración del WB-MGE v.3
El conector de programación

Para programar la memoria flash, utilice la herramienta esptool o un equivalente. El dispositivo incorpora un convertidor USB-UART basado en CH343.

Compruebe la comunicación solicitando el identificador del chip, por ejemplo:

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

Ejemplos de firmware propio

Para ayudarle a empezar, proporcionamos configuraciones de ejemplo para la popular plataforma ESPHome. Solo muestran el acceso al hardware y no están relacionadas con el firmware original de WB-MGE v.3.

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

GPIO e interfaces

Las tablas siguientes muestran las conexiones del módulo de interfaz y las asignaciones de las salidas del expansor de puertos.

¡Importante! Una sección MIO interna basada en STM32 está conectada a RS485-2. Utiliza Modbus RTU y ocupa la dirección Modbus impresa en la etiqueta del dispositivo. Se puede deshabilitar mediante el GPIO correspondiente.

Interfaz 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
Expansor TCA9535
TCA9535 SDA SCL PD00 PD01 PD02 PD03 PD04 PD05 PD06 PD07 PD10
ESP32 GPIO32 GPIO33
RS485-1 terminación activada Polarización de seguridad ON
RS485-2 terminación activada Polarización de seguridad ON
MIO OFF
VOut y LED VOut ON
LED Wi-Fi OFF
LED Eth OFF
Status ON

En la tabla anterior, ON significa que una salida en nivel lógico alto habilita el circuito correspondiente. El LED Status también se enciende cuando su puerto está en estado de alta impedancia (HiZ). TCA9535 utiliza la dirección de bus estándar 0x20.

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

Para el ESP32, RX es una entrada y TX una salida.

Botones
ESP32 GPIO34
Config (B1) +

Al pulsar un botón, el puerto ESP32 correspondiente pasa a nivel lógico bajo.

Restablecimiento del firmware de fábrica

Puede restaurar el firmware de fábrica cuando sea necesario. La garantía del dispositivo sigue siendo válida.

Borre el contenido experimental de la memoria flash:

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

Descargue los archivos de firmware:

  • factory_mge.bin — particiona la memoria flash e inicia la interfaz web utilizada para cargar el firmware principal.
  • mge_main.bin — el firmware principal que implementa las funciones de pasarela.

Grabe el firmware de fábrica, sustituyendo factory_mge.bin por el nombre del archivo descargado:

  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
    

El firmware principal mge_main.bin se puede programar de dos formas:

  1. A través de la interfaz web en modo Factory; consulte Actualización del firmware y restablecimiento de los ajustes para obtener más información.
  2. Mediante la interfaz USB:
    • Escriba el archivo en la partición OTA_0, sustituyendo mge_main.bin por el nombre del archivo descargado:
      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
      
    • Active el arranque desde la partición OTA_0:
      otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0