Прошивка модулей и стиков на чипах Silicon Labs

Подсказка

Если загрузчик уже есть (модуль был предварительно прошит), то можно переходить к Записи основной прошивки.

Прошивка загрузчика

Прошивка загрузчика происходит через JTAG интерфейс.

Распакуйте архив и запустите утилиту. Если процедура прошивки производится с помощью отладочной платы 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