16 343
правки
(переписал всё) |
|||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Загрузчик периферийных устройств Wiren Board}} | {{DISPLAYTITLE:Загрузчик периферийных устройств Wiren Board}} | ||
== Описание == | == Описание == | ||
{{YouTube | |||
|link= https://youtu.be/d_olK15Xhkw | |||
|text= Что такое загрузчик (28:27) | |||
|start=1708 | |||
}} | |||
В периферийных устройствах с Modbus есть прошивка, которая реализует заложенную логику работы. Чтобы прошивку можно было обновлять прямо в инсталляции по RS-485, в устройствах предусмотрен загрузчик (bootloader), который отвечает за инициализацию устройства и обновление прошивки. | В периферийных устройствах с Modbus есть прошивка, которая реализует заложенную логику работы. Чтобы прошивку можно было обновлять прямо в инсталляции по RS-485, в устройствах предусмотрен загрузчик (bootloader), который отвечает за инициализацию устройства и обновление прошивки. | ||
Строка 29: | Строка 34: | ||
{{Anchor|update}} | {{Anchor|update}} | ||
Текущую версию загрузчика можно узнать, считав 8 holding регистров с адреса 330: | Текущую версию загрузчика можно узнать, считав 8 holding регистров с адреса 330, например, с помощью [[modbus_client]]: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 - | echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r330 -c8 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g') | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 67: | Строка 72: | ||
Пример: | Пример: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="console"> | ||
wb-mcu-fw-updater update-all | # wb-mcu-fw-updater update-all | ||
2024-04-03 07:17:24,061 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf: | 2024-04-03 07:17:24,061 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf: | ||
2024-04-03 07:17:24,063 Probing WB-MAP6S fw2 (port: /dev/ttyRS485-1, slaveid: 26, uart_params: 9600N2, response_timeout: 0.50)... | 2024-04-03 07:17:24,063 Probing WB-MAP6S fw2 (port: /dev/ttyRS485-1, slaveid: 26, uart_params: 9600N2, response_timeout: 0.50)... | ||
Строка 82: | Строка 87: | ||
==== Чтение сигнатуры ==== | ==== Чтение сигнатуры ==== | ||
Для начала нам нужно считать сигнатуру устройства, чтобы понимать, какие загрузчик и прошивки нужны: | Для начала нам нужно считать сигнатуру устройства, чтобы понимать, какие загрузчик и прошивки нужны. | ||
Сделать это можно прочитав 12 holding регистров с адреса 290, например, с помощью [[modbus_client]]: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g') | echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g') | ||
Строка 108: | Строка 115: | ||
Более подробно про ручное обновление прошивки читайте в статье [[ WB_Modbus_Devices_Firmware_Update#Ручное_обновление | Обновление прошивки Modbus-устройств Wiren Board ]] | Более подробно про ручное обновление прошивки читайте в статье [[ WB_Modbus_Devices_Firmware_Update#Ручное_обновление | Обновление прошивки Modbus-устройств Wiren Board ]] | ||
== Известные ошибки == | == Известные ошибки == | ||
[[Bootloader: Errata | Список известных неисправностей]] | [[Bootloader: Errata | Список известных неисправностей]] |