Сервисная утилита wb-mcu-fw-flasher
Описание
ВНИМАНИЕ: Мы не рекомендуем использовать эту утилиту для повседневного обновления прошивок устройств, используйте утилиту автоматического обновления wb-mcu-fw-updater.
wb-mcu-fw-flasher
— сервисная утилита для modbus-устройств Wiren Board с помощью которой вы сможете сбросить устройство к заводским настройкам или заменить его прошивку.
Подготовка к работе
Для установки утилиты на контроллер Wiren Board выполните команды:
apt update
apt install wb-mcu-fw-flasher
Версия утилиты для MS Windows: Wb-mcu-fw-flasher_1.0.3.zip
Для установки на компьютер с Debian скачайте пакет — Wb-mcu-fw-flasher_1.0.3_amd64-all.deb и выполните команды в директории, куда загрузился пакет:
apt update
apt install libmodbus5
apt install ./Wb-mcu-fw-flasher_1.0.3_amd64-all.deb
Для контроллеров других производителей с процессорами ARM Cortex можно воспользоваться Debian-пакетом для Wiren Board: http://releases.contactless.ru/?prefix=stable/stretch/pool/main/w/wb-mcu-fw-flasher/
Аргументы командной строки
Опции запуска утилиты wb-mcu-fw-flasher:
Параметр | Описание | Значение по умолчанию |
---|---|---|
-d | Устройство последовательного порта (обязательно) | |
-f | Файл прошивки | |
-a | Адрес Modbus | 1 |
-j | Отправить на устройство команду перехода в режим загрузчика | |
-b | Скорость порта (baudrate) | 9600 |
-p | Чётность (parity) | N |
-s | Количество стопбитов | 2 |
-r | Адрес holding-регистра для перехода в режим загрузчика | 129 |
-D | Включить режим отладки | |
-u | Восстановление заводских настроек UART и Modbus адреса | |
-e | Сброс всех настроек до заводских |
Прошивка устройств
Выбор прошивки
Прошивать устройство лучше по стандартному адресу (на который устройство отвечает из основной программы).
Так же можно прошивать по широковещательному адресу «0», если у вас одно устройство на шине в режиме загрузчика.
Поэтому для прошивки нескольких устройств на шине можно:
- переводить в режим загрузчика (перезагрузкой по питанию или записью в регистр) и прошивать по отдельности с указанием нешироковещательного Modbus-адреса.
- переводить по очереди в режим загрузчика (перезагрузкой по питанию) и прошивать по адресу 0.
- Одновременная прошивка устройств невозможна — имеющаяся прошивка на устройствах будет испорчена.
- Перевести устройство в бутлоадер по широковещательному адресу 0 — нельзя!
- При прошивке с контроллера остановите wb-mqtt-serial:
service wb-mqtt-serial stop
- Если вместо
wb-mqtt-serial
используется стороннее ПО, опрашивающее устройства по последовательному порту - остановите это стороннее ПО
Подготовка устройства
Прошивать устройство лучше по стандартному адресу (на который устройство отвечает из основной программы).
Так же можно прошивать по широковещательному адресу «0», если у вас одно устройство на шине в режиме загрузчика.
Поэтому для прошивки нескольких устройств на шине можно:
- переводить в режим загрузчика (перезагрузкой по питанию или записью в регистр) и прошивать по отдельности с указанием нешироковещательного Modbus-адреса.
- переводить по очереди в режим загрузчика (перезагрузкой по питанию) и прошивать по адресу 0.
- Одновременная прошивка устройств невозможна — имеющаяся прошивка на устройствах будет испорчена.
- Перевести устройство в бутлоадер по широковещательному адресу 0 — нельзя!
- При прошивке с контроллера остановите wb-mqtt-serial:
service wb-mqtt-serial stop
- Если вместо
wb-mqtt-serial
используется стороннее ПО, опрашивающее устройства по последовательному порту - остановите это стороннее ПО
Загрузка прошивки в устройство
Итого, порядок выглядит так:
- При прошивке с контроллера остановите
wb-mqtt-serial
. - Подключите устройство к RS-485.
- Скачайте файл прошивки, например,
mr6c__1.14.1_master_19c9ca5.wbfw
- Прошейте устройство утилитой wb-mcu-fw-flasher:
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f mr6c__1.14.1_master_19c9ca5.wbfw
- После успешной прошивки устройство само выйдет из режима загрузчика и перезапустится в основной программе.
Успешный процесс прошивки выглядит так:
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 1 -f mr6c__1.14.1_master_19c9ca5.wbfw
/dev/ttyRS485-1 opened successfully.
Send jump to bootloader command and wait 2 seconds...
Error: Connection timed out.
May be device already in bootloader, try to send firmware...
mr6c__1.14.1_master_19c9ca5.wbfw opened successfully, size 12136 bytes
Sending info block... OK
Sending data block 89 of 89... OK.
All done!
Пример ошибки при несовпадении сигнатуры:
Sending info block... Error while sending info block: Slave device or server failure Data format is invalid or firmware signature doesn't match the device