Обновить прошивку модуля или стика можно по последовательному порту через встроенный в микроконтроллеры СС2538 и CC2652 загрузчик (serial bootloader) с помощью утилиты cc2538-bsl.
Важно: для прошивки устройства через последовательый порт устройство должно быть переведено в режим загрузчика. Процедура перевода в режим загрузчика зависит от установленного на устройство ПО и может быть не совместима и не поддерживаться устройствами JetHome. Поэтому не гарантируется работа механизма переключения в режим загрузчика для сторонних прошивок. Используйте только рекомендованные прошивки. См. ПО модулей, основанных на чипе TI CC2538 и ПО стиков и модулей, основанных на чипе TI CC2652P1
Для работы утилиты необходимо установить дополнительные пакеты:
pip3 install pyserial intelhex python-magic
Скачать утилиту можно командой:
git clone https://github.com/JelmerT/cc2538-bsl.git
Для прошивки микроконтроллер должен быть переведен в режим загрузчика (serial bootloader).
Для переключения стика в режим загрузчика необходимо:
Для переключения модуля в режим загрузчика см. Документацию к модулю.
Пример команды для прошивки устройства (из директороии, в которую была установлена утилита для прошивки):
python3 cc2538-bsl.py -p /dev/ttyUSB0 -e -v -w <FIRMWARE>
где:
/dev/ttyUSB0 - файл устройства последовательного порта, соответствующий подключенному. Может отличаться от приведенного в примере в зависимости от операционной системы и количества устройств, подключенных к компьютеру. Для стиков подключенных к компьютеру с ОС Linux - это /dev/ttyUSB*. Для модулей см. документацию к устройству в который установлен модуль;
<FIRMWARE> - имя файла с прошивкой формате bin или hex (необходимо указывать полный путь к файлу с прошивкой).
При указании опции -e производится полное стирание всей внутренней flash-памяти микроконтроллера перед его прошивкой.
Для стиков JetHome предусмотрена возможность автоматического аппаратного сброса и переключения его в режим загрузчика для перепрошивки без необходимости отключать стик от порта USB и нажимать на нем кнопку. Для использования этой возможности необходима модифицированная версия утилиты cc2538-bsl.
В данную версию утилиты добавлена опция командной строки –invoke-bootloader=METHOD, которая устанавливает алгоритм, используемый для переключения в режим загрузчика. Доступные значения параметра METHOD:
Для работы утилиты необходимо также установить дополнительные пакеты:
pip3 install pyserial intelhex python-magic
Для входа в режим загрузчика используется способ «2». Пример команды для прошивки USB-стика JetHome в данном случае будет следующей:
python3 cc2538-bsl --invoke-bootloader=2 -p /dev/ttyUSB0 -e -w CC1352P2_CC2652P_launchpad_coordinator_20210120.hex