Использование собственных прошивок на WB-MGE v.3

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Описание

С завода модуль прошит заводским программным обеспечением, которое реализует функции шлюза с возможностью обновлять прошивку через веб-интерфейс.

Эта страница описывает использование собственных прошивок на железе модуля WB-MGE v.3. Документация пользователя на модуль доступна по ссылке WB-MGE v.3 Modbus Ethernet Gateway.

В гарантию принимаются модули с заводской прошивкой. Если вы в результате экспериментов со своей прошивкой обнаружили проблему в железе модуля, верните заводскую прошивку, добейтесь воспроизведения проблемы на ней и обратитесь в техподдержку.

Запись прошивки

Разъём для программирования

Для прошивки можно использовать утилиту esptool или аналог. Конвертер USB-UART на базе CH343 встроен в устройство.

Проверить связь можно запросив идентификатор чипа, пример:

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

Примеры DIY прошивок

Чтобы было проще начать, мы подготовили примеры конфигураций для популярной платформы ESPHome. Они просто демонстрируют работу с железом и не имеют ничего общего с оригинальной прошивкой WB-MGE v.3.

Ссылка: https://github.com/wirenboard/wb-mge-v3-diy-firmware-demo

GPIO и интерфейсы

Ниже даны таблицы с подключением интерфейсных модулей и адреса выходов расширителя.

Важно! Внутри модуля к RS485-2 подключена MIO-часть на STM32, которая работает по протоколу Modbus RTU и занимает Modbus-адрес, указанный на этикетке устройства. Вы можете отключить MIO-часть соответствующим GPIO.

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
Расширитель TCA9555
TCA9555 SDA SCL PD00 PD01 PD02 PD03 PD04 PD05 PD06 PD07 PD10
ESP32 GPIO32 GPIO33
RS485-1 терминатор ON растяжка ON
RS485-2 терминатор ON растяжка ON
MIO OFF
VOut и LED VOut ON
LED Wi-Fi OFF
LED Eth OFF
Status ON

В табличке выше ON означает, что подача логической единицы на порт включает тот или иной узел. Для светодиода Status, если порт будет в HiZ состоянии, светодиод будет включен. TCA9555 имеет на шине стандартный адрес 0x20.

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

В данном случае для ESP32 RX является входом, а TX выходом.

Кнопки
ESP32 GPIO34
Config (B1) +

В данном случае кнопка при нажатии подает на порт ESP32 логический ноль.

Возврат заводской прошивки

Если надо, вы можете вернуть заводскую прошивку. Гарантия на устройство при этом сохраняется.

Очистите флешку от экспериментов:

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

Скачайте файлы прошивок:

  • factory_mge.bin — разметит флешку и поднимет веб-интерфейс для загрузки основной прошивки.
  • mge_main.bin — основная прошивка с функциями шлюза.

Прошейте factory-прошивку, замените имя factory_mge.bin на имя скачанного файла:

  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
    

Основную прошивку mge_main.bin можно прошить двумя способами:

  1. Через веб-интерфейс в режиме Factory, читайте про режим в разделе «Обновление прошивки и сброс настроек».
  2. Через USB-интерфейс:
    • Прошить файл в раздел OTA_0, замените имя mge_main.bin на имя скачанного файла:
      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
      
    • Активировать загрузку из раздела OTA_0:
      otatool.py --port /dev/ttyACM0 --baud 460800 switch_ota_partition --slot 0