7809
правок
Fizikdaos (обсуждение | вклад) |
|||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 9: | Строка 9: | ||
<!--T:2--> | <!--T:2--> | ||
В новых версиях наших устройств реализован механизм загрузчика прошивок (bootloader). Он позволяет обновлять микропрограммы устройств/модулей Wiren Board по RS-485/Modbus RTU. | В новых версиях наших устройств реализован механизм загрузчика прошивок (bootloader). Он позволяет обновлять микропрограммы устройств/модулей Wiren Board по RS-485/Modbus RTU. | ||
<!--T:3--> | <!--T:3--> | ||
Строка 18: | Строка 17: | ||
<!--T:5--> | <!--T:5--> | ||
[[File:Bootloader.gif||right||Индикация режима загрузчика]] | [[File:Bootloader.gif||right||Индикация режима загрузчика]] | ||
* на устройстве имеется корректная прошивка | * Если на устройстве имеется корректная прошивка, то первые 2 секунды после включения питания устройство работает в режиме загрузчика; | ||
* на устройстве нет корректной прошивки (например, был сбой при обновлении прошивки) | * Если на устройстве нет корректной прошивки (например, был сбой при обновлении прошивки), то режим загрузчика активен постоянно; | ||
* | * При записи 1 в holding-регистр 129 (0x81) при работе основной программы — в этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд. | ||
<!--T:6--> | <!--T:6--> | ||
Строка 27: | Строка 26: | ||
== Автоматическое обновление прошивки с контроллера Wiren Board == | == Автоматическое обновление прошивки с контроллера Wiren Board == | ||
Прошивку устройств, подключенных к контроллеру Wiren Board можно обновить с помощью утилиты wb-mcu-fw-updater. Утилита проверяет | Прошивку устройств, подключенных к контроллеру Wiren Board можно обновить с помощью утилиты [[wb-mcu-fw-updater]]. Утилита проверяет наличие новой версии прошивки для всех подключенных устройств и, при необходимости, обновляет их. | ||
Для установки выполните в консоли: | Для установки выполните в консоли: | ||
Строка 36: | Строка 33: | ||
</pre> | </pre> | ||
Для обновления прошивки всех устройств, описанных в разделе Serial Devices Configuration (файл /etc/wb-mqtt-serial.conf), выполните: | |||
<pre> | <pre> | ||
wb-mcu-fw-updater update-all | wb-mcu-fw-updater update-all | ||
</pre> | </pre> | ||
Для обновления прошивки конкретного устройства, | Для обновления прошивки конкретного устройства, укажите порт и его адрес Modbus: | ||
<pre> | <pre> | ||
wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a70 | wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a70 | ||
Строка 51: | Строка 48: | ||
</pre> | </pre> | ||
<gallery mode="packed" heights=" | <gallery mode="packed" heights="200px"> | ||
File:Wb-fw-mcu-updater example 1.png|Пример работы wb-fw-mcu-updater | File:Wb-fw-mcu-updater example 1.png|Пример работы wb-fw-mcu-updater | ||
</gallery> | </gallery> | ||
Строка 57: | Строка 54: | ||
== Выбор прошивки == | == Выбор прошивки == | ||
Прошивки публикуются на сайте [http://fw-releases.wirenboard.com/?prefix=fw/ '''fw-releases.wirenboard.com'''] | Прошивки публикуются на сайте [http://fw-releases.wirenboard.com/?prefix=fw/ '''fw-releases.wirenboard.com'''] в виде файлов с расширением '''.wbfw'''. | ||
Прошивки сгруппированы по версиям и сигнатурам устройств. | Прошивки сгруппированы по версиям и сигнатурам (типам) устройств. | ||
Каждое Modbus устройство Wirenboard имеет сигнатуру — наименование аппаратного типа устройства. Перезапись прошивки возможна только при совпадении сигнатур устройства и прошивки. | Каждое Modbus устройство Wirenboard имеет сигнатуру — наименование аппаратного типа устройства. Перезапись прошивки возможна только при совпадении сигнатур устройства и прошивки. | ||
Сигнатура устройства хранится в формате строки из 12 ASCII символов, по одному символу в регистре, и доступна по адресу 290. | Сигнатура устройства хранится в формате строки из 12 ASCII символов, по одному символу в регистре, и доступна по адресу 290. | ||
Получить можно командой: | |||
Получить | |||
<code> | <code> | ||
Строка 76: | Строка 72: | ||
== Modbus == <!--T:11--> | == Modbus == <!--T:11--> | ||
При записи 1 в holding-регистр 129 (0x81) устройство перезагружается и остается в режиме загрузчика 120 секунд. | |||
Загрузчик устройства получает прошивку по Modbus RTU. В режиме загрузчика коммуникационные параметры фиксированы и не зависят от значений, записанных ранее в память устройства: 9600 8N2. | |||
Загрузчик устройства получает прошивку по Modbus RTU. В режиме загрузчика коммуникационные параметры фиксированы и не зависят от значений, записанных ранее в память устройства: 9600 8N2 | |||
<!--T:13--> | <!--T:13--> | ||
Прошивать устройство лучше по стандартному адресу (на который устройство отвечает из основной программы). | |||
Так же можно прошивать по широковещательному адресу 0, если у вас одно устройство на шине в режиме загрузчика. | |||
Поэтому для прошивки нескольких устройств на шине можно: | |||
#переводить в режим загрузчика (перезагрузкой по питанию или записью в регистр) и прошивать по отдельности с указанием нешироковещательного Modbus-адреса. | |||
#переводить '''по очереди''' в режим загрузчика (перезагрузкой по питанию) и прошивать по адресу 0. | |||
'''Внимание!''' Одновременная прошивка устройств невозможна; имеющаяся прошивка на устройствах будет испорчена. | |||
'''Внимание!''' | * Перевести устройство в бутлоадер по широковещательному адресу 0 - '''нельзя'''! | ||
== Утилита для прошивки wb-mcu-fw-flasher == <!--T:15--> | == Утилита для прошивки wb-mcu-fw-flasher == <!--T:15--> |