Авторизация
Зарегистрироваться

Zigbee модуль CC2538 с усилителем CC2592. Прошивка - подключение - настройка (Homeassistant и zigbee2mqtt).


Модуль был куплен на замену USB-стика на базе СС2531 для решения такого ряда задач:
1. Улучшение производительности Zigbee — координатора (ускоряется прохождение команд и увеличивается число поддерживаемых устройств).
2. Переход к протоколу Zigbee v3.0.
3. Интеграция в корпус контроллера с подключением по UART (у меня только 3 USB).
4. Увеличение дальности связи.

Т.к. продавец шлет модули на базе нового (не шитого ранее) чипа, то есть возможность загрузить прошивку Zigbee координатора используя простейший $1 USB-UART переходник и режим Serial Boot Loader CC2538.
Подробности под катом.


Вводная

У SoC CC2538 есть Serial Bootloader (SBL) — специальный загрузчик, который позволяет загрузить прошивку через UART. Если вы купили «свежий» чип с фабрики, то этот загрузчик включен и доступен по умолчанию. При прошивке какого-либо firmware этот загрузчик как правило отключается.
За механизм включения-выключения отвечает специальный бит конфигурации в CCA (Customer Configuration Area).
Если бит сброшен, то при подаче питания (или сбросе через reset) будет выполняться Application code, если установлен — SBL boot code. При прошивке этот бит обычно сбрасывается, так что в режим SBL больше не попасть и потребуется jtag программатор (j-link, segger и т.п).
Чтобы микроконтроллеру понять куда грузиться, в SBL boot code или Application code, микроконтроллер при включении опрашивает определенный порт. Какой именно порт и какой у него будет активный логический уровень — задается в соответствующих битах конфигурации CCA (Customer Configuration Area), см. Serial Boot Loader for CC2538.

Как сохранить режим SBL

Необходимо слегка модифицировать прошивку, установив бит SBL, порт РАх и требуемый логический уровень.
Смотрим на обратную сторону модуля:

Порты РА0-РА1 у меня будут использованы для подключения по UART, остаются РА2-РА7. Я выбрал «дальний» РА7 и низкий активный уровень, проще всего будет подключить тактовую кнопку между РА7 и GND.

Открываем hex прошивку координатора Zigbee (из готовых с подключением по UART, без линий CTS/RTS мне знакома только такая версия)
и в самом конце файла правим два байта, конфигурационный и контрольной суммы:
В конце файла в строке
:0CFFD400FFFFFFEF000000000000200015
изменяем два байта на
:0CFFD400FFFFFFF700000000000020000D


Пайка и прошивка

Для подключения и прошивки модуля потребуется кусок ~10 см 4-жильного кабеля (у меня это обрезок шнура от iphone), 4 коннектора и кусок термоусадки.


Паяем и оконечиваем кабель (см. первую картинку).


Натягиваем термоусадку (выход шнура дополнительно проклеил герметиком) и подключаем к USB-UART переходнику.
Схема соединения: TX->RX=PA0, RX->TX=PA1, GND->GND, Vcc3.3->3V3 (питание только 3.3В!)


Качаем исходник простейшего прошивальщика для СС2538 под Linux
wget https://github.com/1248/cc2538-prog/archive/master.zip

распаковываем и компилируем:
make

Подключаем собранную связку (на последнем фото) к порту USB и прошиваем:
./cc2538-prog -d /dev/ttyUSB0 -f myfile.hex

где ttyUSB0 — порт переходника
myfile.hex — файл прошивки в формате hex

Модуль готов к использованию.

Подключение

Подключаем полученный модуль координатора к контроллеру Homeassistant (Hass.io) на базе плат renegade- orange- raspberry- banana- (и т.д.).
У меня используется Renegade ROC-RK3328-CC в безвентиляторном корпусе от Asus Tinker board. Корпус полностью алюминиевый, поэтому для подключения внешней антенны к CC2538 потребовался самодельный короткий переходник IPX<->RP-SMA.
На плате ROC-RK3328 каждый пин гребенки подписан, вычислить UART и питание не составляет труда.


Подключаю модуль

Изолирую его вторым куском термоусадки и укладываю вокруг CPU (на него ставится куб теплосъемника)


Подготовка порта UART

На многих мини-ПК типа orange- raspberry- banana- порты UART в системе по умолчанию отключены.
Включить их можно в файле /boot/armbianEnv.txt, добавив строку
overlays=uartX

где Х — номер требуемого порта
Но такой метод сработает при наличии в папке /boot/dtb/ специального overlay- файла с расширением .dts
У меня такого overlay файла нет, поэтому пришлось править конфигурационный dtb (Device Tree Blob) файл моей системы вручную.
Далее все делаю под учетной записью пользователя hassio
Перехожу в рабочую папку
cd /home/hassio/

Копирую исходный dtb файл в рабочую папку
sudo cp /boot/dtb/rockchip/rk3328-roc-cc.dtb /home/hassio/rk3328-roc-cc.dtb

Конвертирую dtb в dts
dtc -I dtb -O dts -o rk3328-roc-cc.dts rk3328-roc-cc.dtb

Запускаю редактор
sudo nano rk3328-roc-cc.dts

Включаю UART1 (по документации это serial@ff120000) заменяя значение status с «disable» на «okay»
serial@ff120000 {
                compatible = "rockchip,rk3328-uart\0snps,dw-apb-uart";
                reg = < 0x00 0xff120000 0x00 0x100 >;
                interrupts = < 0x00 0x38 0x04 >;
                clocks = < 0x02 0x27 0x02 0xd3 >;
                clock-names = "baudclk\0apb_pclk";
                reg-shift = < 0x02 >;
                reg-io-width = < 0x04 >;
                dmas = < 0x0c 0x04 0x0c 0x05 >;
                dma-names = "tx", "rx";
                pinctrl-names = "default";
                pinctrl-0 = < 0x39 0x3a 0x3b >;
                status = "okay";
                phandle = < 0xa1 >;
        };

Конвертирую dts в модифицированный dtb (uart)
dtc -I dts -O dtb -o rk3328-roc-cc_uart.dtb rk3328-roc-cc.dts

Делаю резервную копию оригинального dtb файла
sudo cp /boot/dtb/rockchip/rk3328-roc-cc.dtb /boot/dtb/rockchip/rk3328-roc-cc.dtb.back

И копирую модифицированный dtb на его законное место под старым именем
sudo cp rk3328-roc-cc_uart.dtb /boot/dtb/rockchip/rk3328-roc-cc.dtb


На всякий случай добавляем вашего пользователя в группу для доступа к /dev/ttyS1
sudo adduser $USER dialout


Перезагрузка
sudo reboot


И в системе появляется /dev/ttyS1

Убираем старый USB стик на базе СС2531 и из системы исчезает /dev/ttyACM0, потребуется перенастройка модуля zigbee2mqtt на новый порт /dev/ttyS1. В Hass.io это делается в секции serial и advanced:

serial:
  port: /dev/ttyS1
advanced:
  baudrate: 115200
  rtscts: false


Далее, очень желательно в этой же секции advanced заменить encryption key (Zigbee Transport Key) который установлен по умолчанию.
В настройках он представлен рядом из 16 десятичных чисел из диапазона 0..255, например
network_key: [1, 3, 5, 7, 9, 11, 13, 15, 0, 2, 4, 6, 8, 11, 12, 13]

Для лучшей приватности нужно рандомизировать этот ряд вручную или использовать скрипт
dd if=/dev/urandom bs=1 count=16 2>/dev/null | od -A n -t u1 | awk '{printf "["} {for(i = 1; i< NF; i++) {printf "%s, ", $i}} {printf "%s]\n", $NF}'


Который выдаст более приличный ключ, например
network_key: [83, 58, 101, 176, 134, 235, 98, 89, 17, 9, 228, 220, 18, 175, 149, 140]


И последний штрих: необходимо уменьшить таймаут команд до 5 мсек в секции queue

queue:
   delay: 5


После замены Zigbee Transport Key и задержки необходимо перезагрузить zigbee2mqtt и заново провести сопряжение zigbee устройств с вашим координатором. Страшного в этом ничего нет: ID устройств не меняются, сопоставленные имена, принадлежность к зонам, автоматизации — все останется на месте.

Смотрим логи: все ок.
> zigbee2mqtt@1.8.0 start /zigbee2mqtt-1.8.0
> node index.js
zigbee2mqtt:info  2020-05-11 12:11:23: Logging to console and directory: '/share/zigbee2mqtt/log/2020-05-11.12-11-23'
zigbee2mqtt:info  2020-05-11 12:11:24: Starting zigbee2mqtt version 1.8.0 (commit #unknown)
zigbee2mqtt:info  2020-05-11 12:11:24: Starting zigbee-herdsman...
zigbee2mqtt:info  2020-05-11 12:11:27: zigbee-herdsman started
zigbee2mqtt:info  2020-05-11 12:11:27: Coordinator firmware version: '{"type":"zStack30x","meta":{"transportrev":2,"product":2,"majorrel":2,"minorrel":7,"maintrel":2,"revision":20200327}}'


И под конец немного дегтя: продавцы акцентируют внимание на высокой выходной мощности СС2592 (до +22дБ), умалчивая что на прием у него стоит LNA (Low Noise Amplifier), который улучшает чувствительность всего на 3дБ.
То есть этот координатор будет «просто немного лучше слышать» удаленные маломощные устройства.
Планирую купить +66 Добавить в избранное +47 +99
свернуть развернуть
Комментарии (120)
RSS
+
avatar
+38


Написали бы в общих словах, что это за модуль и для чего.
+
avatar
+9
Ну я не знаю как простыми словами написать…
Модуль состоит из SoC на базе СС2538, в котором интегрирован процессор Cortex M3, RAM 32Kb, Flash 512Kb, несколько групп портов разного назначения, АЦП, и RFcomm. Второй чип это усилитель мощности, предусилитель, коммутаторы.
Вот
+
avatar
  • BeStas
  • 11 мая 2020, 13:03
+43
А. Ну так бы сразу и сказали.
Сейчас всё стало понятно.
+
avatar
  • 3r1s0n
  • 11 мая 2020, 11:32
+17
Обычно на такой вопрос всегда следует ответ — если вы не знаете что это, то оно вам и не нужно.
+
avatar
+9
Это заблуждение и глупо так считать.
+
avatar
+25
В общих словах — этот модуль предназначен для управления различными устройствами умного дома по протоколу Zigbee в рамках самосборной системы умного дома.
+
avatar
+27
Во! Вот эта фраза должна быть в самом начале обзора.
+
avatar
+2
Ну, можно собрать снифер сети zigbee, постановщик помех, какой нибудь умный девайс с кнопками, аналоговыми датчиками, выходами — входами и тд
+
avatar
-2
Автор сам с собой разговаривает.ведь приятно разговаривать с умным человеком.Шутка. обзор интересен хотя и не моя тема.
+
avatar
0
отчёт просто класс.
всё чётко, что куда как когда.

(правда, у меня домотикз, но там просто добавить контроллер, скорее всего )
+
avatar
0
Если прошить USB-версию координатора в этот модуль и просто заменить старый USB-координатор на этот СС2538, то ничего менять не надо: порт /dev/ttyACM0 останется тот же.
Питание — только 3,3в.
Jager здесь вроде выкладывал схемы, stl и печатные платы для сборки координатора версии v.3
+
avatar
  • Jager
  • 11 мая 2020, 12:11
0
Jager здесь вроде выкладывал схемы, stl и печатные платы для сборки координатора версии v.3
Здесь нет, на сайте да modkam.ru/?p=1112
Вы есть в чате зигби? t.me/zigbeer
+
avatar
0
Перелопачивал все источники, почему-то подумал что здесь видел.
На modkam.ru читал все статьи начиная с 1 версии.
В чате зигби меня нет. А там уже писали про все это?
+
avatar
  • Jager
  • 11 мая 2020, 12:52
0
Да, линк на эту статью дали. Сам способ прошивки через уарт описан в комментариях к статье о V3 еще в марте.
+
avatar
0
Надо было сюда еще запостить :)
+
avatar
  • DSLTIP
  • 11 мая 2020, 12:28
0
«продавцы акцентируют внимание на высокой выходной мощности СС2592 (до +22дБ), умалчивая что на прием у него стоит LNA (Low Noise Amplifier), который улучшает чувствительность всего на 3дБ.
То есть этот координатор будет «просто немного лучше слышать» удаленные маломощные устройства»
Jager, вы в эти слова автора верите?
+
avatar
0
После установки в корпус подключил антенну с КУ 5дБ и провел серию тестов с датчиком температуры+влажности (старый круглый) по логам zigbee2mqtt, топик linkquality, ну и прямо особенных улучшений уровня приема не заметил.
+
avatar
  • DSLTIP
  • 11 мая 2020, 12:59
0
Я тоже не заметил, у меня даже чуток хуже стало. Мы просто с Jager это уже обсуждали здесь. Решил его снова спросить, спустя время)
+
avatar
0
А есть возможность замерить напряжение на выводе LNA-EN CC2592?
Может быть он выключен?
Кстати я сравнивал с предыдущим модулем на СС2531 (зеленый текстолит, гребенка jtag, без усилка) с тем же самым пигтейлом и той же антенной.
Радиоэфир на 2,4 тут сильно загажен.
+
avatar
  • DSLTIP
  • 11 мая 2020, 13:12
0
Сейчас уже нет такой возможности, но когда тестировал модуль с CC2592 конечно всё проверял, всё было включено. Возможно усилитель вносит небольшие доп. помехи на приём.
+
avatar
  • Jager
  • 11 мая 2020, 13:02
0
Jager, вы в эти слова автора верите?
Большее влияние на качество приема оказывает чистота эфира. Я год назад делал тест в чистом поле, координатор на сс2530 и с точно таким же усилителем сс2592 «слышит» круглую кнопку сяоми за 800 метров. В городе это расстояние падает до 15-30 метров, в зависимости от количества wifi сетей.
+
avatar
  • DSLTIP
  • 11 мая 2020, 13:08
0
Согласен, я себя дома специально разнёс каналы Zigbee и Wifi, стало заметно лучше.
+
avatar
  • zrain
  • 11 мая 2020, 14:21
0
Можно сюда написать какие частоты используются в 2.4?
+
avatar
  • DSLTIP
  • 11 мая 2020, 14:39
0
Не совсем понял вопрос. Wifi 2.4GHz у меня настроен на 1й канал(2401MHz), а Zigbee на 25й канал(2475MHz)
+
avatar
  • zrain
  • 11 мая 2020, 15:44
0
Ну да, я имел ввиду zigbee. Т.е. 2475 это частота используемая в диапазоне 2.4 (насколько я знаю эта технология рассчитана на работу в нескольких диапазонах), а какая там ширина канала в этом диапазоне, видимо совсем узкая?
+
avatar
  • DSLTIP
  • 11 мая 2020, 15:59
0

Вот, снизу подписаны zigbee каналы, 5MHz ширина канала
+
avatar
  • Z2K
  • 11 мая 2020, 16:19
0
В городе работа на 2.4Г не имеет никакой перспективы — нужен субгерцовый 886М
+
avatar
  • zrain
  • 11 мая 2020, 16:39
0
Понятненько. У меня просто УД построен на сяомишных шлюзах, поэтому менять канал (или узнать его) мне не дано.
+
avatar
  • DSLTIP
  • 11 мая 2020, 16:51
+1
Так тема как раз о способе отказа от сяомишных шлюзов)
+
avatar
0
но можно взять сяомишный шлюз и прошить как нужно…
+
avatar
+2
крутой обзор. нефига не понятно с моим уровнем знаний. но плюсую однозначно.
его можно както в горизонтальную ролету присобачить?
+
avatar
+1
в горизонтальную ролету присобачить?
Это модуль является центральным в беспроводной zigbee сети.
В ролеты ставят исполнительные модули, более простые по начинке но с дополнительными драйверами моторов и датчиками положения штор.
Только собираюсь их делать, но на базе wifi (модули ESP8266).
+
avatar
+1
вот такой обзор я жду не дождусь. и даже буду розбирать и повторять. так как есть желание приучить ролеты к умному дому, но жаба давит платить минимум по 50$ за одну ролету.
+
avatar
0
Так вот же Асе выкладывал статью, может он продает готовые наборы.
+
avatar
0
Попробуйте заюзать внутривальные моторы 35 мм диаметром под 40 трубу. Стоят от 2300 рублей примерно, управляются переключением фазы- т.е можно сделать зигби приемник с 2-мя реле внутри. Правда есть пробема с крепежем для таких двигателей- крепление тоже тысячи в 2.5 обойдется (хотя при наличии 3д принтера, или просто при наличии прямых рук и времени это делается и самостоятельно). В качестве трубы для намотки шторы- 40 труба алюминиевая из леруа. Из плюсов таких приводов- сразу внутри встроены концевики- один раз настроил конечные точки и не боишься что они слетят при отключении электричества. Гуглить например у doorhan, alutech, tube motor, somfy (но это уже дорогие приводы). Сразу на все окно выйдет штора.
+
avatar
0
А v3 в двух словах на сколько актуальный? Или это на вырост?
+
avatar
0
В принципе да, вырост.
Но есть дополнительные фишки:
— сам по себе процессор в разы шустрее 8051, который применяется в СС2530/31.
— прошивка выше классом, например не требуется постоянное клацанье кнопками для первичного сопряжения (маялся с кубиками).
— больше памяти (вроде 200 устройств тянет)
— именно в нем есть USB и UART (в CC2530 — только UART, в CC2531 — только USB).
— лёгкое обновление (зажал пинцетом РА7 на землю и прошил прямо на месте)
+
avatar
  • urikst
  • 11 мая 2020, 14:41
0
например не требуется постоянное клацанье кнопками для первичного сопряжения (маялся с кубиками).
Буквально два дня назад подключал кубик. Смог добиться сопряжения только клацая кнопку на кубике (5 сек. кнопка + 2 сек. пауза + кнопка + кнопка + кнопка ...). При попытке сопряжение маханием кубика — ошибка «interview_failed» when pairing.
Без проблем подключился датчик MiJia light intensity sensor ( GZCGQ01LM ). Он на протоколе подключения ZigBee 3.0
+
avatar
  • vp7
  • 11 мая 2020, 17:44
0
Есть смысл заморачиваться с UART версией или USB будет более универсально?
Я ведь верно понимаю, что кроме USB вы больше ничего использовать не будете при подключении к своему серверу?
+
avatar
+1
У меня довольно редкая плата (название и ссылку на описание я давал). У нее отсутствует WiFi и Bluetooth, один порт USB 3.0 и два USB 2.0 (в один включен Bluetooth донгл для трекера телефона+браслета, ко второму прямо внутри корпуса был подпаян свисток СС2531).
Вот и возникла идея сэкономить USB порт, упростить подключение — без всяких плат напрямую к гребенке, с нее же получить готовое питание 3,3в.
Этот вариант годится для любых raspberry- orange- подобных плат, но активация UART может быть нетривиальной (специально для этого и делал эту статью).

Чуть выше Jager дал ссылку на его ресурс, где используется USB вариант подключения.
+
avatar
0
А обзор на русском написан?))))
+
avatar
+1
Yeah :)
+
avatar
0
О! Вовремя. Только я добавил в корзину cc2531…
Выглядит интереснее, конечно. Даже в связке со «старыми» sonoff (а их у меня куча). К тому же, для него ничего не надо, в принципе: встроенная антенна есть, внешнюю тоже не сложно прицепить.
«Надо брать!» Спасибо!
Доставка только стала дорогой… С другой стороны, бестрековые теперь в половине случаев не доходят…
+
avatar
  • Mach
  • 11 мая 2020, 14:40
0
Старые SonOff же по WiFi работают. Zigbee у них не так давно появились.
+
avatar
0
Точно. :) Заговорился. Xiaomi. С Sonoff всё и так неплохо (ну, кроме 2.4 GHz).
+
avatar
0
В итоге, я так понимаю, дергаться и менять повально свои 2531 на 2538 с усилителем особенно смысла нет.
И тем более до конби и распби от Дрезден Элекроникс вообще не дотягивает по дальности и скорости?
+
avatar
0
менять повально свои 2531 на 2538 с усилителем особенно смысла нет.
Именно ради усилителя — смысла менять нет. Но вариант: перешить 2531 роутерами и улучшить покрытие (если не хватает розеточных и релейных роутеров).

Конби это — USB, распби это — UART карта расширения на 'классическую' гребенку RPi.
Антенны: либо SMD керамическая, либо травленая на плате Inverted F. Припаять IPX гнездо можно, но зачем?
Я не сравнивал их вживую, но посмотрел спецификации и картинки. Не увидел там третьей версии протокола и особой дальности.
СС2538 более универсальна и лучше по цене/качеству как мне кажется.
+
avatar
0
Основное отличие: конби/распби работают с УД напрямую, а все «cc» через mqtt, который в любом случае имеет определенные задержки. Ну или мне так кажется ))
+
avatar
0
Напрямую — это как?
+
avatar
0
Нативная компонента deCONZ.
Одни и те же икеевские зигби лампы посредством деконза откликаются быстрее, нежели через zigbee2mqtt.
Повторюсь — наблюдаю у себя такое. Понятия не имею как у других. Это при том, что mqtt брокер царствует на отдельной персональной малине rp3b+ в одиночку.
И да, это не означает, что по mqtt задержка на минуту )) просто по деконзу мгновенно, по mqtt — на сек. позже (может чуть больше, когда как).
+
avatar
0
Пошел читать про deCONZ
А если сделать группу икеевских ламп (скажем десяток) и замерить время включения-выключения?
+
avatar
0
Да мгновенно. Никакого отличия по ощущениям от настенного проводного выключателя.
Я использую conbee II и raspbee. Практически одинаковая скорость, но первый, за счет того, что на шнурке-удлинителе вынесен на метр от сервера, ловит куда дальше.

Кстати, сс2531 в роли роутера полная чушня. Прошил 3 штуки под роутеры, расставил в слабых местах покрытия для усиления меш-сети. Практически ничего не изменилось. Датчики радостно цепляются к чему угодно, но не к ним. А те кто вынужденно цепляются, параметры практически не изменяют. Вероятно я их готовить не умею ))
+
avatar
  • xneo
  • 12 мая 2020, 08:52
0
Поделитесь опытом приобретения conbee II. Заказывали с Amazon или как то локально удалось достать? есть ли возможность собрать самостоятельно?
+
avatar
0
Заказывал на амазоне ком (там дешевле всего). Пришло за неделю (рекорд, правда было пол года назад).
Насчет самосборки — думаю маловероятно. Это ноу-хау Дрезден Электроникс.
Мне не совсем понятно почему они до сих пор Raspbee выпускают, тем более модернизируют и есть вторая версия.
В любом случае даже для малины Conbee II лучше подойдет, так как при помощи доп. USB кабеля свисток отводится от паразитных эл/магнитных полей одноплатника или компа, тем самым увеличивая дальность и повышая надежность соединения датчиков.
+
avatar
0
самым увеличивая дальность и повышая надежность соединения датчиков.
Сегодня с утра просканировал эфир и 'отвел' zigbee на 25 канал (см картинку DSLTIP) — стало заметно лучше.
+
avatar
0
Ежели только думать про стики начинаешь, имея акаровский парк (выключатели с нейтралью, розетки под квадратный монтаж, дачтики влажности etc) — имеет смысл сразу брать 2538, а не 2531?
+
avatar
0
2538 будет проще прошить, для 2531 нужен будет программатор.
+
avatar
+1
для 2531 нужен будет программатор.
Или прошить 'малинкой', весь процесс минут пять.
СС2538 шилась секунд за 40
+
avatar
  • DSLTIP
  • 11 мая 2020, 14:48
+1
Или ардуинкой
+
avatar
  • BeJIuk
  • 11 мая 2020, 22:50
0
Вот я пытался прошить, и не вышло. Использовал при этом правда не малинку а OrangePi, но по идее это не должно повлиять.
Чип-ид постоянно 0. Все контакты прозванивал, контакт был.
Пробовл так же ардуинкой. Раза с 10 как-то прошилось. Но github.com/ioBroker/ioBroker так и не увидел.
Заказал СС-дебагер. Проверю была ли проблема с 2531 или с руками.
P.S. Если у когото есть идее как пофиксить, напишите =)
+
avatar
+1
Читал что у Orange есть проблемы с wiring pi, что-то с рассинхроном связано. Рекомендации были зафиксировать частоту процессора.
+
avatar
  • BeJIuk
  • 12 мая 2020, 08:31
0
Хм… Спасибо. Попробую.
Раньше пробовал ds18b20 к этому же OrangePi подключать, всё работало.
+
avatar
  • BeJIuk
  • 12 мая 2020, 19:24
0
Попробовал зафиксировать частоту. Не помогло (хотя я не уверен правильно ли я это делал).
В любом случае сегодня получил cc-debugger. Прошилось с первого раза. И в системе обнаружилось сразу.
+
avatar
0
Если про CC-Debugger, то это не просто программатор, а прежде всего переходник для отладки. Прошить-то можно чем угодно, но код на самом девайсе в IDE отлаживать может быть весьма полезно.
+
avatar
0
вообще-то CC2530/2531 тоже поддерживает SBL (прошивку через USB-UART), главное, чтобы с завода загрузчик прошили (обычно конторы типа Waveshare и тп его как раз прошивают, насколько помню).
+
avatar
0
Где на 2531 UART?
+
avatar
0
UART есть и на CC2530, и на CC2531 (версии чипа с USB). Если чип идет в составе XBee shield'а, то RXD/TXD и тд попадают куда надо и можно напрямую стыковать shield с UART ардуины. Я UART использовал с XBee-USB платой (на CP2102) и USB-кабелем — так удобнее.

Если CC2531 на USB-свистке — то тоже должны эти ноги выводить, у меня на CC2531 USB Dongle была колодка контактов. RX и TX там — ноги P1.4 и P1.5, по идее тоже есть на этой колодке.
+
avatar
0
Что народ скажет про это

https://aliexpress.ru/item/4000522367679.html

я так понял это то же самое, только в окультуренном варианте, без необходимости паять мелкие контакты модуля. Или тут что-то не так?
+
avatar
0
Ну да, это контика — отладочный модуль.
Но его не впихнуть в корпус Малинки.
+
avatar
  • dts
  • 11 мая 2020, 20:26
0
а что, если просто в usb воткнуть, то работать не будет?
Обязательно что-то шить в модуль zigbee надо? Без этого HA или домотикс не увидит?
Думал xiaomi gateway сменить на usb-стик zigbee
+
avatar
+2
Не будет. Эта плата продается с пустой флешкой в СС2538.
В нее нужно прошить необходимый вид прошивки с требуемым вариантом интерфейса.
Подавляющее большинство шьют USB вариант, после чего все видится и работает.
+
avatar
0
Всё-же я бы 3.3В и землю подвел бы проводами потолще, да танталл или электролит бы добавил бы возле модуля… Глядишь и лучше станет работать…
+
avatar
0
Это оригинальный лайтинг кабель, у него сечение жил питания заметно больше.
Можно еще дроссель впаять ;)
+
avatar
0
Ну хотя-бы кондёр, плиз. Для передатчиков с усилителями нет ничего хуже чем просадки питания… Тем более, когда речь идет о таком низком напряжении как 3.3В
+
avatar
0
Ок.
Керамики на 10мкФ думаю хватит, через дроссель smd.
+
avatar
0
Дроссель можно и не ставить, можно им навредить, если он имеет высокое сопротивление по постоянному току.
Хватит или нет — лучше сказать глянув осциллографом.
Тут как-то с enjoyneering смотрели что творится по 3.3В питанию ESP, так осциллографом было видно провалы по 0,4В, которые получилось устранить только танталлом.
+
avatar
  • newcss
  • 12 мая 2020, 23:10
0
Все три поставленные задачи успешно получилось решить?
Про дальность — разве устройства Zigbee не объединяются в Mesh-сеть? На сколько мне известно данные чипы могут выступать ретрансляторами — тем самым усиливая дальность (есть усиленные с выносными антенами)… Usb — сборку можно воткнуть в любой блок питания, а его в розетку — вуаля — ретранслятор без каких либо банана, малин и прочего…
+
avatar
0
Да, все успешно.
Насчёт увеличения дальности я не расстроился, т.к. перед покупкой скачал и почитал даташиты на оба чипа.
Ретрансляторами (роутерами) в zigbee сети могут выступать только устройства с постоянным питанием (сетевые реле, умные розетки, лампы освещения и и т.п), именно они образуют mesh сеть. У меня всего пара таких устройств, поэтому пришлось прошить пару 'синеньких' свистков на 2531 — воткнуть в старый зарядник и поискать удачное место.
Но для 2538 прошивки — роутера я не видел, кмк это слишком жирно :)
+
avatar
0
Добрый день.
Купил ворох E18-MS1PA1-PCB для исполнительных устройств.
Есть ли инструкции как работать с ними? Готовые прошивки, подключения?
+
avatar
0
Добрый день.
Да, есть ресурс например у Jager, см сообщение выше
Здесь нет, на сайте да modkam.ru/?p=1112
Вы есть в чате зигби? t.me/zigbeer
На E18-MS1PA1-PCB у него версия 2 как помнится
+
avatar
0
Это классный ресурс, его смотрел. Но там все устройства разведены на платы.
Хотелось бы для теста навесной монтаж или макетку с типовыми модулями реле, температура…
Вот такое бы…
Про сборку прошивки кстати недавно на Хабре классная статья вышла. Про Sonoff zigbee.
+
avatar
0
Ну да, там все на платах и причем два класса прошивок: координатор и роутер.
Именно для исполнительных устройств все-таки лучше развести/найти заказать свою универсальную плату (вывести пучок gpio, usb, usart, debug, питание организовать). И к ней добавлять реле, оптроны, сенсоры, дисплеи и тд.
Отладочные не пойдут — здоровенные.
Ну и софт — отдельная тема.
+
avatar
0
Спасибо за статью!

Сам пользуюсь парой модулей CC2530, у меня меш-сеть порядка 30 устройств, и пришлось шить на core router, новые устройства начинали вываливать старые из сети, сыпались ошибки маршрутов.

Сей девайс согласно спеке Z-Stack firmware может держать в 10 раз большую нагрузку, возможно заменю подобным в каком-то будущем.

Вопросы:

1. Сколько у вас устройств в сети, нормально ли тянет нагрузку?

2. Согласно той же спеке, данный девайс не рекомендуется для Zigbee 3.0:
Zigbee 3.0 coordinators are only recommended for CC26X2R1 and CC1352P_2 (other devices might not be powerful enough)
Нет ли у вас проблем с производительностью?
+
avatar
0
Именно zigbee устройств пока 17 штук, из них один — это usb свисток-роутер.
Тормозов нет.
Сеть смешанная, на zigbee работают в основном автономные батарейные датчики-сенсоры.
Примерно столько же wifi исполнительных модулей (закупил в свое время esp8266 и sonoff с очень большой скидкой и прошил 'тасмоту').
+
avatar
0
Использую Zigbee USB стик CC2538 с усилителем CC2592. Сейчас подключено 34 устройства. Из них 10 Aqara термометров, 11 Aqara выключателей (работают в сети как роутеры), остальное датчики движения, открытия.
Стоит прошивка стика от 11.02.2020. Заметил, что термометры все подключаются только к роутеру. На некоторых связь 1 lqi, хотя рядом есть роутеры, к которым термометры не хотят подключаться.
Стик подключен к Raspberry Pi4. Заметил, что после перезагрузки устройства (любые в сети устройства) перестают видеться. Через несколько часов они могут появиться, а некотоыре роутеры вовсе не появляются.
Не могу понять что нужно поменять. Стоит ли менять прошивку? Все эти устройства с 2 гетвеями Xiaomi работали отлично.
+
avatar
0
Стоит прошивка стика от 11.02.2020
А чья именно?
На вид — проблемы именно с координатором, может быть стоит подобрать рабочую прошивку.
+
avatar
0
Стоит эта прошивка:
github.com/reverieline/CC2538-CC2592-ZNP

Кажись частично со своей проблемой разобрался. У меня WiFi и стик работали на одном канале. Когда вайфай переключил на другой канал, то конечные устройства переподвязались на роутеры.
+
avatar
0
Посоветуйте где купить готовый к использованию в составе HomeAssistant USB-стик на данном модуле?
+
avatar
+1
Думаю проще всего купить на авитоподобных площадках.
Видел не раз объявления о продаже шитых zigbee свистков.
+
avatar
0
Спасибо.
Почему их в принципе не продают готовыми? Неужели из-за разнообразия прошивок? Или лицензии не предполагают коммерческого использования?
+
avatar
0
Скорее всего и разнообразие, и неохота заморачиваться с jlink программатором — это же каждый модуль проверять потом надо.
+
avatar
  • desper
  • 10 июня 2020, 15:50
0
Пришел модуль. Пробую прошить через usb-uart, но cc2538-prog выдает «No bootloader found». Подключение TX и RX проверил. Может мой модуль совсем без прошивки пришел? Заказывал у другого продавца =(
+
avatar
0
Может мой модуль совсем без прошивки пришел
Так он и идет без прошивки, SBL вшит в ROM.
cc2538-prog 'видит' сам чип сс2538?
Скоростями прошивки поиграться может?
+
avatar
  • desper
  • 11 июня 2020, 16:52
0
cc2538-prog 'видит' сам чип сс2538?
А как это проверить? У cc2538-prog вроде нет ничего в хелпе про это

CC2538 serial loader (swru333a)
cc2538-prog -d /dev/ttyXYZ [-c] [-f file.hex]
--help -h This help
--console -c Connect console to serial port on device
--flash=file.hex -f file.hex Reflash device with intel hex file
--timeout=n -t n Search for bootload string for n seconds
Или это через консоль делать? Что тогда в нее отправить?
+
avatar
0
А как это проверить
У меня при прошивке в начале писалось что-то типа девайс найден, айди выводился.
Консоль — это подключение по UART к уже прошитому модулю (наверное).

Скоростями играть получается?
Или сократить время между подачей питания на модуль и началом прошивки?
+
avatar
  • desper
  • 13 июня 2020, 08:57
0
Скоростями играть получается?
Я использую usb-uart переходник на cp2102, вроде как скорость должна настраиваться в приложении, которое использует порт, но у cc2538-prog таких параметров нет.

Или сократить время между подачей питания на модуль и началом прошивки?
Попробую…

А кнопка между РА7 и GND для первой прошивки ведь не нужна?
+
avatar
0
У меня переходник на FTDI.
Кнопка при первой прошивке не нужна — нет поддержки входа.
+
avatar
0
Здравствуйте, при прошивке cc2538 по UART вылезла такая же проблема «No bootloader found».Уже все перепробовал и переходник на FTDI использовал. Может кто решил проблему?
+
avatar
0
Шитый чип наверное.
В терминал при подключении что то выдает?
+
avatar
0
По UART только это No bootloader found и вы не знаете случайно, cc debuger можно его прошить будет?
+
avatar
0
CC debugger это флешер-отладчик SWD.
Для 2538 нужен j-link, он более 'навороченный' и использует больше сигналов.
+
avatar
0
Спасибо, Кстати заказывал у того же продавца, где и вы, видимо это лотерея
+
avatar
0
Мда, выходит повезло мне о_О
+
avatar
0
Привет! Тоже заказал у этого продавца 2 платы, и — No bootloader found. Видимо прикрылась лавочка.
+
avatar
0
Неужели идут шитые…
+
avatar
+2
Добрый день. Получил платку, программатор не покупал, надеялся прошить через uart. Мучался. Прошил. Напишу что делал, может кому пригодится. Есть статья по очистке конфигурации с помощью openocd и raspbery pi, что бы включить sbl gist.github.com/hwhw/fc43892785aa84913d03495c97b0f25a. Собрал, ввел команды как статье, меня sbl не заработал.
Как я прошил:
Нужен raspberry, провода для подключения — лучше короче.
На raspberry установлен raspbian.
cd ~
sudo apt-get update
sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev
git clone git.jim.sh/jim/openocd тут есть поддержка flash cc2538
cd openocd/
./bootstrap && ./configure --enable-sysfsgpio --enable-bcm2835gpio && make (не делал make install)
nano tcl/interface/raspberrypi-native.cfg настраиваем jtag
sudo src/openocd -f tcl/interface/raspberrypi-native.cfg -f tcl/target/cc2538.cfg -s tcl/ -c «program {/home/pi/MODKAMRU_V3_USB.hex}»
Прошивка модифицированная по этой статье, после прошивки появилась возможность зайти в режим bootloader uart замкнув PA7 на землю.
Как то так.
+
avatar
  • ABATAPA
  • 09 августа 2020, 15:23
+1
Спасибо, помогло. Прошился и подключил за несколько часов (включая установку и настройку среди на RPi 1) на прошлой неделе.
+
avatar
  • amib
  • 15 августа 2020, 09:33
0
Посмотрите комментарий amib ниже, не туда прикрепил.
+
avatar
  • amib
  • 15 августа 2020, 09:18
0
Добрый день. У меня Raspberry 4 с Raspbian. Пробую второй вариант с openocd. Напишите поподробнее как настроить jtag (tcl/interface/raspberrypi-native.cfg). При запуске openocd с исходным raspberrypi-native.cfg выполнение идет с ошибками.
+
avatar
  • skanatt
  • 16 августа 2020, 19:41
0
Добрый день, для Raspberry 2 и выше нужно использовать raspberrypi2-native.cfg, так же его надо настроить на использование jtag.
+
avatar
  • amib
  • 17 августа 2020, 11:11
0
Насчет raspberrypi2-native.cfg понятно. А конкретно с кодом можете написать, что вы поправили и/или добавили в свой raspberrypi-native.cfg
+
avatar
  • skanatt
  • 19 августа 2020, 15:14
0
Добрый день. Я удалил уже все. Насколько помню просто закоментировал то что не относится к jtag
Вроде так, и частота Raspberry должна быть 700MHz:
adapter driver bcm2835gpio
bcm2835gpio_peripheral_base 0x3F000000
bcm2835gpio_speed_coeffs 146203 36
# Each of the JTAG lines need a gpio number set: tck tms tdi tdo
# Header pin numbers: 23 22 19 21
bcm2835gpio_jtag_nums 11 25 10 9
+
avatar
  • svadel
  • 28 августа 2020, 00:59
0
Доброго времени суток,
Получил ту же ошибку что и уважаемый amib, из вашей переписки не понятно, получилось ли у него решить проблему и какие действия для этого необходимы. Через линуксовые команды я прошел и не думаю что проблема там, а вот фраза «провода для подключения — лучше короче» не информативна. можно минимальную схему? Заранее спасибо.
+
avatar
  • skanatt
  • 04 сентября 2020, 22:20
+1
Добрый день. Провода около 25см (кусок USB кабеля). Питание с Raspberry 3.3V.
В конфиге raspberrypi-native.cfg описано какие gpio используются.
jtag tck tms tdi tdo
пины 23 22 19 21
gpio 11 25 10 9
Подключаете к аналогичным jtag пинам на сс2538.
На английском тут:
gist.github.com/hwhw/fc43892785aa84913d03495c97b0f25a#wiring-up-the-cc2538-for-cjtag
+
avatar
  • Ronan7
  • 28 августа 2020, 17:33
0
Тупой вопрос задам. При выполнении команды «Make» выходит ошибка «make: *** Не заданы цели и не найден make-файл. Останов.»
Что можно сделать?
+
avatar
  • Harwest
  • 28 августа 2020, 17:41
0
Проверить в какой директории дается команда, может куда-то надо сделать cd
+
avatar
  • Ronan7
  • 28 августа 2020, 18:12
0
Помогло, спасибо. Жаль что чип видимо шитый так как «no bootloader»
+
avatar
  • minorik
  • 13 сентября 2020, 16:55
0
Может кто-то сталкивался с такой ошибкой и знает что делать
Open On-Chip Debugger 0.10.0+dev-01404-g393448342-dirty (2020-09-10-19:06)
Licensed under GNU GPL v2
For bug reports, read
openocd.org/doc/doxygen/bugs.html
BCM2835 GPIO config: tck = 11, tms = 25, tdi = 10, tdo = 9

Info: auto-selecting first available session transport «jtag». To override use 'transport select '.
Info: BCM2835 GPIO JTAG/SWD bitbang driver
Info: clock speed 100 kHz
Info: JTAG tap: cc2538.jrc tap/device found: 0x8b96402f (mfg: 0x017 (Texas Instruments), part: 0xb964, ver: 0x8)
Info: JTAG tap: cc2538.cpu enabled
Info: cc2538.cpu: hardware has 6 breakpoints, 4 watchpoints
Info: starting gdb server for cc2538.cpu on 3333
Info: Listening on port 3333 for gdb connections
Info: JTAG tap: cc2538.jrc tap/device found: 0x8b96402f (mfg: 0x017 (Texas Instruments), part: 0xb964, ver: 0x8)
Info: JTAG tap: cc2538.cpu enabled
Warn: Only resetting the Cortex-M core, use a reset-init event handler to reset any peripherals or configure hardware srst support.
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0000136c msp: 0x20008000
** Programming Started **
flash
flash bank bank_id driver_name base_address size_bytes chip_width_bytes
bus_width_bytes target [driver_options ...]
flash banks
flash init
flash list
gdb_flash_program ('enable'|'disable')
nand
program [address] [pre-verify] [verify] [reset] [exit]
Error: invalid subcommand «write_image erase /openocd-jim/openocd/src/openocd/CC2538.hex»
embedded:startup.tcl:530: Error: ** Programming Failed **
in procedure 'program'
in procedure 'program_error' called at file «embedded:startup.tcl», line 595
at file «embedded:startup.tcl», line 530
+
avatar
0
Появилась другая версия, с ДРУГОЙ РАСПИНОВКОЙ. Заметил, когда разглядывал, как припаян резистор конденсатор выбора антенны. Фото и распиновка:


Прошивал через ubuntu без установки: дополнительно надо доставить make, install, gcc(в первый раз подскажет команду, а дальше просто подставлять необходимое в эту команду) и прошивку выполнять через sudo
+
avatar
  • hawkeye
  • 10 апреля 2021, 23:45
0
Скажите, какую прошивку сейчас актуальную прошить?

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.