Пожалуйста, подождите...
Перейти к содержимому
modkam.ru
  • Telegram
  • Главная
  • Обмен опытом
  • Инструкции

Прошивка стиков EFR32

Опубликовано 28.02.2021Обновлено на 20.09.2021от Илья Киров

Сегодня я расскажу вам о том, как прошить еще один вид zigbee-стиков (кроме стиков на базе чипов TI ccXXXX). Эти стики пока не очень популярны в zigbee-тусовке, но возможно это изменится со временем.

Стики

В продаже на различных площадках можно найти стики/платы на базе модулей SiliconLabs EFR32, которые могут работать со стеками Zigbee, BLE и Thread.

Среди них есть уже полноценные устройства, например:

  • https://spruthub.ru/device/defaro-sprut-stick-2-pro
  • https://elelabs.com/products/elelabs-usb-adapter.html

Есть устройства, которые можно перепрошить и использовать:

  • https://www.itead.cc/sonoff-zbbridge.html

А есть для “домашнего творчества”, например такие:

  • https://aliexpress.ru/item/4001019552844.html
  • https://aliexpress.ru/item/4000531916570.html

На текущий момент нас интересует работа с Zigbee, поэтому будем делать из этих устройств координаторы.

Для запуска координатора на этих чипах, нужно прошить соответствующую NCP прошивку. Осталось выбрать прошивку и научиться прошивать.

Для выбора прошивки надо понять какой чип используется в модуле.

Чипы

В модуле Ebyte E180-ZG120B чип имеет маркировку EFR32MG1B232F256GM48
А в модуле SM-011 (кстати, точно такой же модуль используется в Sonoff Zigbee Bridge) — EFR32MG21A020F768IM32.

Что это означает?

Расшифровка основной части маркировки MG1B232F256GM48

M - family code
G - Gecko
1 - series 1
B - type: P (Performance), B (Basic), V (Value)
2 - Feature Code reserved
3 - Feature Code TXRX
2 - Feature Code Band 2.4GHz
F256 — Flash 256K

DataSheets:
https://www.silabs.com/wireless/zigbee/efr32mg1-series-1-socs/device.efr32mg1b232f256gm48
https://www.silabs.com/documents/public/data-sheets/efr32mg1-datasheet.pdf

Расшифровка основной части маркировки EFR32MG21A020F768IM32

M - family code
G - Gecko
21 - series 2 mod 1
A - Secure Vault (A - no, B - yes)
020 - 20dBm maximum power output
F768 — Flash 768K

DataSheets:
https://www.mouser.sg/datasheet/2/368/efr32mg21-datasheet-1627395.pdf
https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-socs/device.efr32mg21a020f768im32

Чип MG1B232F256GM48 EFR32MG21A020F768IM32
MCU Core ARM Cortex-M4 ARM Cortex-M33
Core Frequency (MHz) 40 80
RAM (Kb) 32 64
Flash (Kb) 256 768
Tx (dBm) 19.5 20
Rx (dBm) -101 -104

Видим, что во втором модуле используется более новое и производительное поколение чипа, с большим количеством памяти..
Различия между чипами весьма существенные, по этой причине прошивки будут разные.

Прошивка bootloader’а

Для прошивки модуля, нам нужно сперва загрузить bootloader. Возможно, какие-то модули будут уже с прошитым bootloader, но пока будем прошивать.

Для этого понадобиться:

  • программатор Jlink v9 (версия v8 позволит прошить Cortex-M4, а вот для прошивки Cortex-M33 понадобиться версия v9 https://wiki.segger.com/Software_and_Hardware_Features_Overview).
    Возможно получится прошить и другими программаторами, например STLink, но я не проверял.
  • утилита Simplicity Commander (скачать тут https://www.silabs.com/mcu/programming-options).
  • прошивки bootloader’а

Для стика SM-011 bootloader можно взять тут:

файл BTL_STD_S2_768.s37 в каталоге https://github.com/grobasoz/zigbee-firmware/tree/master/EFR32MG2x-768k

Для платы Ebyte bootloader можно взять тут:

файл BTL_STD_MG1B232_TX-PA0_RX-PA1_BT-PB11-combined.s37 в каталоге https://github.com/grobasoz/zigbee-firmware/tree/master/EFR32%20Series%201/EFR32MG1B-256k/Bootloaders

Подключаем Jlink к модулям, контакты подписаны на модулях.

Достаточно соединить 4 контакта:

VTref --- +
  GND --- -
SWDIO --- SWO
SWCLK --- SWK
(на фото показан еще контакт rst, но это не обязательно)

Запускаем Simplicity Commander и подключаемся к Jlink. Должен определиться чип и можно посмотреть информацию.

На странице Flash можно стереть чип и, выбрав файл с прошивкой bootloader, прошить его.

Результат прошивки можно увидеть в Device Info нажав кнопку Map.

Дополнение от 20.09.2021:

Иногда для прошивки bootloader, необходимо стереть чип, иначе не получиться даже подключиться к нему. Стирание можно выполнить из командной строки:

commander device recover --device=EFR32MG21A020F768IM32
commander device masserase --device=EFR32MG21A020F768IM32

где EFR32MG21A020F768IM32 — маркировка чипа, который стираем.

Прошивка NCP

Теперь понадобиться gbl-прошивка.
Рекомендуется брать прошивку на базе текущего протокола EmberZNet v8 и прошивки старше 6.7.8 (где по словам разработчиков исправлены важные баги).

Для стика SM-011 прошивку можно взять тут:

файл NCP_USW_115k2_ZBBridge_678.gbl в каталоге https://github.com/grobasoz/zigbee-firmware/tree/master/Sonoff-ZBBridge

Для платы Ebyte bootloader можно взять тут:

файл NCP_UHW_MG1B232_678_PA0-PA1-PB11_PA5-PA4.gbl в каталоге https://github.com/grobasoz/zigbee-firmware/tree/master/EFR32%20Series%201/EFR32MG1B-256k/NCP

Можно прошить NCP прошивку также через Simplicity Commander и Jlink:

Но, с появлением у нас bootloader, можно шить и обновлять прошивки через USB.
Например, с помощью этой утилиты https://github.com/Elelabs/elelabs-zigbee-ezsp-utility

После прошивки bootloader, подключив стик к USB, узнав порт (у меня это COM9), выполним команду:

>python Elelabs_EzspFwUtility.py probe -p COM9
2021/02/25 21:21:58 Elelabs_EzspFwUtility: EZSP adapter in bootloader mode detected:
2021/02/25 21:21:58 Elelabs_EzspFwUtility: Gecko Bootloader v1.A.3

Т.е. успешно работает bootloader — можно прошивать. Выполняем команду flash указав файл соответствующей прошивки:

>python Elelabs_EzspFwUtility.py flash -f ../NCP_UHW_MG1B232_678_PA0-PA1-PB11_PA5-PA4.gbl -p COM9
2021/02/25 21:46:40 Elelabs_EzspFwUtility: EZSP adapter in bootloader mode detected:
2021/02/25 21:46:40 Elelabs_EzspFwUtility: Gecko Bootloader v1.A.3
2021/02/25 21:46:40 Elelabs_EzspFwUtility: Allready in bootloader mode. No need to restart
2021/02/25 21:46:41 Elelabs_EzspFwUtility: Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.....
.
2021/02/25 21:47:12 Elelabs_EzspFwUtility: Firmware upload complete
2021/02/25 21:47:12 Elelabs_EzspFwUtility: Rebooting NCP...
2021/02/25 21:47:20 Elelabs_EzspFwUtility: Generic EZSP adapter detected:
2021/02/25 21:47:20 Elelabs_EzspFwUtility: Firmware: 6.7.8-117
2021/02/25 21:47:20 Elelabs_EzspFwUtility: EZSP v8

После окончания прошивки, стик переключится в обычный режим и будет выведена версия прошивки: 6.7.8 EZSP v8.

Софт для работы

Что теперь с этим всем делать?

Я не знаю всё программное обеспечение, которое может работать с чипами EFR32, но применительно к теме Умного дома вы можете использовать эти прошитые стики в следующих приложениях:

Home Assistant — ZHA

Этот модуль изначально работал с чипами EFR32 и протоколом EmberZNet. В прошлом году его доработали для поддержки протокола EmberZNet v8 и теперь он тоже поддерживает современные прошивки NCP.

Tasmota

Эта прошивка для ESP8266/32 также может работать с этими чипами, достаточно подключить к ESP модуль с EFR32 проводами (например, как тут https://github.com/zigpy/zigpy/discussions/584) и запустить в режиме Sonoff ZBBridge.

SprutHub

Это новая разрабатываемая система Умного дома также успешно поддерживает работу со zigbee-стиками и протоколом EmberZNet.

Zigbee2MQTT

Работы ведутся и уже совсем скоро, протокол EmberZNet v8 будет доступен и на этом популярном решении. Обсуждение и тестирование ведется пока тут.

Дополнительные ссылки

  • https://github.com/SillyDay/EFR32/
  • https://mysku.ru/blog/diy/84501.html
  • https://github.com/zigpy/zigpy/discussions/584
  • https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html?m=1
  • https://notenoughtech.com/home-automation/flashing-tasmota-on-sonoff-zigbee-bridge/

Постскриптум

Первые тесты показывают, что эти стики достаточно производительны, у них большая зона покрытия и чувствительность. Не хуже, чем стики на базе чипов от TI (модуль eByte можно сравнить с чипом cc2538, а SM-011 с cc2652p). Но многое также зависит от используемого программного обеспечения.

При относительно небольшой цене (около 800руб за плату eByte и 1500руб за стик SM-011), они могут составить конкуренцию другим решениям.
А скорое появление аналогичного стика от Sonoff позволит сделать их более доступными и распространенными.

Будем дальше использовать и набираться опыта работы с этими чипами в чате https://t.me/zigbeer.

Отдельное спасибо за участие телеграм-пользователям http://t.me/AFaron0v и http://t.me/lmahmutov

Поделиться ссылкой:

  • Telegram
  • WhatsApp
  • Reddit
  • Pinterest

Понравилось это:

Нравится Загрузка...
Рубрики:Обмен опытом

15 комментариев для “Прошивка стиков EFR32”

  1. ABATAPA:
    28.02.2021 в 12:43

    А ещё EFR32 есть в роутере Smart Box Turbo+, и его уже научились использовать:
    https://mysku.ru/blog/diy/84501.html

    Загрузка...
    Ответить
    1. Илья Киров:
      28.02.2021 в 14:45

      Да, я указал ссылку на эту стаью

      Загрузка...
      Ответить
  2. Уведомление: #Обмен опытом | Всё чем хочется поделиться…
  3. vkozlov:
    28.02.2021 в 15:28

    Китайские клоны JLink v9 с алиэкстпресса справятся с Cortex-M33?

    Загрузка...
    Ответить
    1. Илья Киров:
      28.02.2021 в 15:39

      Да. У меня как раз справился.

      Загрузка...
      Ответить
  4. Алексей:
    04.03.2021 в 21:43

    Было бы неплохо для коллекции пинаут efr32 добавить. Обязательно использую эту статью. Илье большое спасибо

    Загрузка...
    Ответить
    1. ABATAPA:
      04.03.2021 в 21:46

      Легко же гуглится даташит…

      Загрузка...
      Ответить
  5. Vladimir Kozlov:
    10.04.2021 в 10:04

    Мне пришли залоченные стики, на них уже был какой-то древний бутлоадер 🙂 JLink не хотел коннектиться к ним.

    Чтобы разлочить, нужно из командной строки выполнить:

    ./commander device recover —device=EFR32MG21A020F768IM32
    ./commander device masserase —device=EFR32MG21A020F768IM32

    Загрузка...
    Ответить
  6. Алексей:
    22.04.2021 в 15:16

    STLink не цепляется программой Simplicity Commander

    А тасмота выдала о модуле такую инфу:
    Project tasmota Tasmota Version 9.4.0(zbbridge)-2_7_4_9(2021-04-21T16:23:53)
    12:51:30.439 ZIG: Resetting EZSP device
    12:51:31.612 RSL: RESULT = {«ZbState»:{«Status»:1,»Message»:»EFR32 booted»,»RestartReason»:»Power-on»,»Code»:2}}
    12:51:31.665 ZIG: specific frame_control 0xFF80
    12:51:31.668 RSL: RESULT = {«ZbState»:{«Status»:55,»Version»:»0.0.0.0″,»Protocol»:0,»Stack»:0}}
    12:51:31.669 RSL: RESULT = {«ZbState»:{«Status»:98,»Message»:»Only EZSP protocol v8 is currently supported»}}
    12:51:31.670 RSL: RESULT = {«ZbState»:{«Status»:99,»Message»:»Abort»}}

    Загрузка...
    Ответить
  7. Vladimir Kozlov:
    22.04.2021 в 15:23

    Simplicity Commander кмк вообще не знает про STLink, он только в JLink умеет. По идее можно попробовать через OpenOCD если найти к нему конфиг под этот чип.

    Загрузка...
    Ответить
    1. Алексей:
      27.04.2021 в 12:42

      Да, точно. STM прошил в j-link. Подключился к модулю zigbee. Прошивается только segger утилитами.
      Как подключить к sonoff так и не получилось. Ребутается, после нескольких попыток ресетить esp.

      Загрузка...
      Ответить
      1. Vladimir Kozlov:
        27.04.2021 в 13:01

        А зачем подключать его к sonoff? Чтобы на пути сигнала был еще один дополнительный бридж? Проще воткнуть его в USB и он отлично подхватывается через ZHA.

        Загрузка...
        Ответить
        1. Алексей:
          28.04.2021 в 15:07

          Тот модуль что в руках у меня, совсем не то что было перечислено в статье. Это «совсем другая история» просто чип такой же. Знать бы пинаут что бы втыкать в USB )))

          Загрузка...
          Ответить
          1. Vladimir Kozlov:
            28.04.2021 в 15:15

            А, в таком случае нужно что-то типа CP2102 или CHM340, у самого чипа USB внутри нет, те стики что в статье как раз имеют на борту CP2102.

            Загрузка...
  8. Уведомление: Делаем свой персональный Home Assistant SkyConnect — modkam.ru

Добавить комментарийОтменить ответ

Подписаться на блог по эл. почте

Укажите свой адрес электронной почты, чтобы получать уведомления о новых записях в этом блоге.

Перевести

Свежие записи

  • Sovol SV08 управление с клавиатуры.
  • Sovol SV08, дополнительный контроллер.
  • Делаем свой персональный Home Assistant SkyConnect
  • #Обмен опытом
  • IKEA VINDRIKTNING

Метки

3D 3D принтер CNC DipTrace EasyEDA ESPHome Home Assistant HOMEd Klipper Mach3 MajorDoMo SolidWorks Sovol SV08 ZHA zigbee zigbee2mqtt Дерево Дом Лазер М-Платформа Самоделка Фото Электроника

Мета

  • Войти
  • Лента записей
  • Лента комментариев
  • WordPress.org
  • Главная
  • Обмен опытом
  • Инструкции
© modkam.ru. Все права защищены.
Вернуться наверх
%d