Прошивка модулей и стиков на чипах Silicon Labs
Подсказка
Если загрузчик уже есть (модуль был предварительно прошит), то можно переходить к Записи основной прошивки.
Прошивка загрузчика
Прошивка загрузчика происходит через JTAG интерфейс.
Для прошивки загрузчика можно воспользоваться утилитой Simplicity Commander.
Версия утилиты для Linux: Simplicity Commander Linux.
Распакуйте архив и запустите утилиту. Если процедура прошивки производится с помощью отладочной платы Silicon Labs, то в окне Kit должна отобразиться информация о ней, например:
Kit: EFR32xG21 2.4 GHz Mesh Network Kit
WSTK6006 Rev. B04
Firmware version: 1v3p4b1088
JLink serial number: ...
VCOM port: ttyACM1
Для прошивки загрузчика откройте вкладку Flash, выберите нужный файл для прошивки кнопкой Browse… и прошейте загрузчик кнопкой Flash.
Запись основной прошивки
Если в микроконтроллер уже записан загрузчик, обновить прошивку можно с помощью утилиты Elelabs EZSP Firmware Update Utility.
Установка утилиты:
git clone https://github.com/Elelabs/elelabs-zigbee-ezsp-utility.git
cd elelabs-zigbee-ezsp-utility
Создание виртуального окружения Python:
python3 -m venv .venv
source .venv/bin/activate
Подсказка
Возможно, потребуется установить пакет python3-venv
командой apt install python3-venv
.
Установка зависимостей:
pip3 install -r requirements.txt
Переведите прошиваемое устройство в режим загрузчика.
Подсказка
Для перевода в режим загрузчика см. документацию на устройство: Zigbee USB стики и Zigbee модули PCBA.
Проверить подключение к плате можно с помощью команды:
python3 Elelabs_EzspFwUtility.py probe -p <PORT>
где PORT
- имя последовательного порта, к которому подключена плата, например /dev/ttyUSB0.
Пример вывода программы в режиме загрузчика:
2021/12/01 01:01:01 Elelabs_EzspFwUtility: EZSP adapter in bootloader mode detected:
2021/12/01 01:01:01 Elelabs_EzspFwUtility: Gecko Bootloader v1.12.00
Обновление прошивки производится командой:
python3 Elelabs_EzspFwUtility.py flash -f <FW_FILE> -p <PORT>
где
FW_FILE
- файл прошивки, например ncp-uart-sw.gbl.PORT
- имя последовательного порта, к которому подключена плата, например /dev/ttyUSB0.
Примерный вывод программы:
2021/12/01 01:01:01 Elelabs_EzspFwUtility: EZSP adapter in bootloader mode detected:
2021/12/01 01:01:01 Elelabs_EzspFwUtility: Gecko Bootloader v1.12.00
2021/12/01 01:01:01 Elelabs_EzspFwUtility: Allready in bootloader mode. No need to restart
2021/12/01 01:01:02 Elelabs_EzspFwUtility: Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
.....
2021/12/01 01:01:52 Elelabs_EzspFwUtility: Firmware upload complete
2021/12/01 01:01:52 Elelabs_EzspFwUtility: Rebooting NCP...
2021/12/01 01:01:57 Elelabs_EzspFwUtility: Generic EZSP adapter detected:
2021/12/01 01:01:57 Elelabs_EzspFwUtility: Firmware: 6.9.2-0
2021/12/01 01:01:57 Elelabs_EzspFwUtility: EZSP v8
После успешной прошивки если проверить статус платы:
python3 Elelabs_EzspFwUtility.py probe -p /dev/ttyUSB0
Будет выведено:
2021/12/01 01:01:57 Elelabs_EzspFwUtility: Generic EZSP adapter detected:
2021/12/01 01:01:57 Elelabs_EzspFwUtility: Firmware: 6.9.2-0
2021/12/01 01:01:57 Elelabs_EzspFwUtility: EZSP v8