8-900-374-94-44
[email protected]
Slide Image
Меню

Cc2530 примеры программирования: Пишем прошивку под TI cc2530 на Z-Stack 3.0 для Zigbee реле Sonoff BASICZBR3 с датчиком ds18b20 / Хабр

ZigBee – LetsMakeRobot

Вот что получилось.

ZibGee – Tasmota – MQTT Координатор.

 

ZigBee 4 симистора и 4 входа, 4x5v Выходов, DS18B20

Коричневый.

Коричневый+красный

VCC = 3.3V

ZigBee координатор: Rule ON System#Boot do TCPStart 8888 endon

Прошивка https://ptvo.info/

Прошивка: RomikZigBeeSwitch

Как прошить: https://zigbee.blakadder.com/flashing_ccloader.html

Прошивка: objcopy –gap-fill 0xFF –pad-to 0x040000 -I ihex Romik.Switch.V1.hex -O binary Romik.Switch.V1.bin
./ccloader /dev/ttyUSB0 Romik.Switch.V1.bin 1

Выходные контакты:
P20: Выход 1, GPIO, Внешняя подтяжка к +
P21: Выход 2, GPIO, Внешняя подтяжка к +
P22: Выход 3, GPIO, Внешняя подтяжка к +
P13: Выход 4, GPIO, Внешняя подтяжка к +
P12: Выход 5, GPIO, Внешняя подтяжка к +

P17: Выход 6, GPIO, Внешняя подтяжка к +
P16: Выход 7, GPIO, Внешняя подтяжка к +
P15: Выход 8, GPIO, Внешняя подтяжка к +

Входные контакты:
P00: Вход 1, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 1
P01: Вход 2, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 2
P04: Вход 3, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 3
P05: Вход 4, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 4
P06: Вход 5, DS18B20, Внешняя подтяжка к +

Схема – повторять не нужно – много недоработок.

DipTrace Schematic – zigbee-relay-v1.0

HA

sensor:

  - platform: mqtt
    unique_id: ZigBeeTempDS18B20
    name: "ZigBeeTest Temperature"
    state_topic: "tele/ZigBeeTest/SENSOR"
    value_template: "{{ value_json.ZbReceived['0xCE98'].AnalogValue | float }}"

    unit_of_measurement: "°C"
    availability_topic: "tele/ZigBeeTest/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    device_class: temperature

 

- platform: mqtt
    unique_id: ZigBeeV1Switch_4
    name: ZigBeeV1Switch_4
    state_topic: "tele/ZigBeeTest/SENSOR"
    value_template: |-
      {%- if value_json.ZbReceived is defined and value_json.ZbReceived['0xCE98'] is defined -%}
      {%- if value_json.ZbReceived['0xCE98'].Endpoint == 4 -%}
      {%- if value_json.ZbReceived['0xCE98'].Power == 1 -%}
      ON
      {% else %}
      OFF
      {% endif %}
      {% endif %}
      {% endif %}
    state_on: "ON"
    state_off: "OFF"
    command_topic: "cmnd/ZigBeeTest/ZbSend"
    payload_on: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"on"} }'
    payload_off: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"off"} }'

    availability_topic: "tele/ZigBeeTest/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    retain: false

Координатор работает прекрасно.

p.s. В исполнительном устройстве нужно отрезать от МОДУЛЯ ножки P24,P23 так как они используются для входа кварца 32.768 и на плате (с нижней стороны) соединить P23-P13,P24-P12.

Координатор Tasmota-ZigBee:

LWT: Для Home-Assistant – Над правилами нужно еще поработать.

Rule 
ON zbstate#Status==30 DO publish tele/ZigBeeTest/LWT Online ENDON
ON zbreceived#?#Reachable==false DO publish tele/ZigBeeTest/LWT Offline ENDON
ON zbreceived#0xCE98 DO publish tele/ZigBeeTest/LWT Online ENDON

Включение PerminJoin по кнопке BOOT=GPIO0

rule2 ON Switch2#State=2 DO zbpermitjoin 1 ENDON

p.s. Управление ключами с другой Tasmota:

publish cmnd/ZigBeeTest/zbsend { “device”:”0xCE98″, “Endpoint”:4, “send”:{“Power”:”off”} }

Схема дополнительного модуля: DipTrace Schematic – Replace-CC2530-to-ESP07s

Последняя прошивка 15-06-2022 года.

Zigbee 101: руководство для начинающих

Умный дом: автоматизация, протоколы, устройства, экосистемы и открытое ПО. Так много вопросов и так мало ответов. Приоткроем же завесу тайны одного из популярнейших IOT протоколов — Zigbee.

Что такое Zigbee?

Zigbee — технология, которая основана на радио стандарте IEEE 802.15.4 и предназначена для стандартизации маломощных M2M устройств разных производителей. Из особенностей сети можно выделить высокую отказоустойчивость, длительный срок службы конечных устройств от одной батареи, поддержку большого количества подключений и совместную работу устройств разных производителей.

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

ZigBee предусматривает передачу информации в радиусе от 5 до 75 (на открытой местности до 200) метров с максимальной скоростью 250 кбит/с. Поддерживает работу в 27 каналах трех частотных диапазонов:
2,4 ГГц (16 каналов)
915 МГц (10 каналов)
868 МГц (1 канал)

Занимательный факт:
Согласно одной из версий, название ZigBee происходит от зигзагообразного танца пчел, которым они указывают своим соседям путь к следующему источнику пищи, аналогично, как и пакеты данных стандарта должны найти свой путь в mesh сети.

Что нового в Zigbee 3.0

Direct binding, или прямое соединение позволяет конечным устройствам разных производителей работать напрямую без участия координатора и роутера. Это позволяет гибко настраивать сценарии поведения устройств и увеличить скорость срабатывания.
Green Power — набор технологий, которые минимизируют использование ресурсов батареи устройством, а также могут ее собирать за счет кинетической, световой, и тепловой энергии. Немного непонятно звучит; говоря иначе, переключатель сможет передать сообщение за счет того, что вы к нему прикоснулись. Детальнее тут
Унификация. Раньше существовало множество так называемых профилей. Например, Home Automation, Building Automation, Health. Zigbee 3.0 — это единый профиль приложений.
Обратная совместимость со всеми продуктами выпущенными до v3.0

Зачем это нужно?

Если кратко — для измерения показаний и автоматизации.

Сфер применения этой автоматизации много. И хотя в последнее время прослеживается тенденция унификации, технология поддерживает различные профили, которые делятся по сфере применения. Вот некоторые из них.
Home Automation — управление домашними устройствами и создание сценариев.
Remote Control — управление устройствами дистанционного управления.
Smart Energy — контроль и автоматизация доставки и использования энергии.
Green Power — поддержка устройств генерации электроэнергии.
Light Link — управление освещением.
Health Care — управление устройств медицинского и около медицинского (браслеты измерения показаний, кнопки “sos”) назначения.

Много ли устройств Zigbee?

Приблизительно 2600 устройств (список сертифицированных устройств). Стоит уточнить, что в большинстве случаев каждый производитель имеет свое приложения для подключения только своих устройств, но, используя стороннее программное обеспечение, их можно подружить.

Об этом ниже.

Средняя цена одного конечного устройства варьируется в районе 10$.
Вот пример конечных устройств нескольких популярных производителей:
Xiaomi Aqara — около 50 устройств разного назначения (Mi Home приложение не работает с устройствами Aqara).
Philips Hue — около 100 устройств, (большинство светильники),
Ikea trådfri — около 40 устройств (большинство светильники),
Tuya — около 30 устройств,
SONOFF — около 10 недорогих реле.

Zigbee USB устройства (стики)

Для чего нужны Zigbee стики?
Если вы используете стороннее решение, стик удобно использовать как координатор сети, подключив к компьютеру как роутер, чтобы достичь отдаленных от координатора мест.

Вот пример нескольких популярных устройств:
cc2530/2531 — дешевый и популярный стик. Неплохой выбор для начинающих. Из минусов: небольшой радиус покрытия (10-15 м без антенны) и ограничения по количеству подключаемых устройств.
cc2538 стик разработанный энтузиастами проекта modkam.ru. По сравнению с 2531, обладает большим радиусом действия и не имеет ограничений по количеству подключений (тесты показали больше 200 устройств).
deCONZ Conbee стик также поддерживает большое количество систем умного дома. Из минусов родной прошивки — иногда отваливаются конечные устройства.
Также примеры менее популярных:
nRF52840 Dongle — универсальный стик с поддержкой Bluetooth 5, Bluetooth mesh, Thread, ZigBee, 802.15.4 и ANT и удобной средой разработки.

Zigbee шлюзы

Готовые решения
Xiaomi/Aquara три самых популярных устройства — Xiaomi Gateway 2 и 3 версии и Aqara Hub. Gateway 2 не совместим с homekit и имеет 2 версию протокола Zigbee. Третья версия имеет на борту Zigbee 3.0 и Bluetooth Mesh 5.0. С дополнительными различиями поможет разобраться краткий ролик.

Менее популярные zigbee концентраторы просто перечислю
Orvibo
livolo
Wemo
Vera
Fibaro

Zigbee+ Zvawe
Athom Homey
Wink hub 2
SmartThings Hub
VeraPlus

DIY, или сделай сам
SLS шлюз — Устройство на основе СС2538+СС2592 и ESP32-Wrover-B. Поддерживает Zigbee 3.0 и в отличие от Xiaomi он не ограничен одной экосистемой. А в отличие от стиков CC2531, CC2538 и Deconz — он является готовым устройством и может работать как самостоятельно, так и в системе домашней автоматизации Home Assistant. На данный момент поддерживается 113 устройств. Видео обзор

ZESP32 — Zigbee&ESP = ZESP. ZESP — это прошивка для шлюза Xiaomi Gateway. Точно так же как и SLS он рассчитан на подключение Zigbee устройств разных производителей. Основная концепция — упрощение добавления нового устройства в сеть при помощи изменяемых шаблонов.
cc25хх + комп’ютер удобный вариант если у вас уже имеется raspberry pi, или старенький пк, который будет выступать в роли сервера. В этом случае вы можете выбрать любую удобную систему домашней автоматизации, о которых ниже.

Что по экосистемам?

Apple home — программное решение от Apple. Количество поддерживаемых устройств невелико, но функционал можно расширить с помощью homebridge и aqara hub. Вы можете использовать Apple home в домашней сети используя только Iphone и хаб (Zigbee), но для удаленного управления нужен домашний центр в роли которого могут выступать iPad (iOS 10 или выше), HomePod, или Apple TV.
Google home — также не работает с Zigbee устройствами напрямую, но имеет совместимость с Alexa.
Amazon ассистенты Echo Show, Spot и Plus умеют работать напрямую поскольку имеют встроенный zigbee координатор. Тем не менее проблемой является ограниченное количество совместимых устройств и непопулярность решения в странах СНГ.
Xiaomi/Aqara — шлюзы компаний Xiaomi и Aqara поддерживают только свои zigbee устройства. В отличие от Xiaomi Gateway у Aqara Hub не предусмотрена возможность интеграция с альтернативными системами домашней автоматизации.
Samsung SmartThings позиционируется как универсальный хаб. Работает с большим количеством устройств Z-Wave и Zigbee. Пользователи часто жалуются на падение облака (отсутствие подключения к серверу) и отсутствие интереса в развитии проекта со стороны разработчиков.
Яндекс дом. Диалоги Яндекс Станции и для телефона это разные вещи. Для колонки диалогов меньше, они примитивные. Заявлена поддержка ZigBee и Bluetooth устройств, но не работает с ними напрямую. Многие сценарии зависят от наличия интернет соединения, но решением может быть подключение сторонних контроллеров умного дома, например с помощью yandex2mqtt.

Как там с программной поддержкой?


Для удобства разделю программные решения на категории.
Домашняя автоматизация
Homebridge сервер NodeJS, для интеграции устройств без поддержки HomeKit.
HomeAssistant система с открытым кодом с акцентом на конфиденциальность.
OpenHAB opensource проект с акцентом на удобство настройки
MajorDoMo система интеграции с открытым кодом.

Dashboard
RoboDomo фреймворк, на MQTT с привлекательным графическим интерфейсом.
node-red-dashboard модуль node-red для создания панели управления, интегрируется в
Интеграция
Zigbee2mqtt позволяет использовать вместе устройства разных поставщиков без шлюза, транслируя команды zigbee в mqtt.
MQTT Explorer удобный mqtt клиент
Разработка
IAR Embedded Workbench среда с дружественным интерфейсом и поддержкой большого количества микроконтроллеров
Simplicity Studio IDE и набор инструментов для разработки приложений на базе процессоров Silicon Labs
SimpleLink SDK среда разработки для чипов разработки Texas Instruments, включающий API, TI-RTOS и прочее.
Red-node блочный инструмент программирования для соединения аппаратных устройств, API и онлайн-сервисов.
Тестирование и аудит
KillerBee — инструмент для тестирования Zigbee сетей.
SecBee — тестирование реализаций ZigBee на проблемы безопасности.
Z3sec — основная цель фреймворка тестирование сертифицированных устройств, реализующие ZigBee Light Link (ZLL), или стандарт ZigBee 3.0.
pwnrf — инструмент для тестирования безопасности в сетях Wi-Fi, Bluetooth и Zigbee.

Что выбрать: Wi-Fi, Bluetooth, ZigBee или Z-Wave?


На рынке существуют десятки IOT технологий, но самыми популярными решения являются Wi-Fi, Bluetooth, ZigBee и Z-Wave.

WiFi очень популярная технология, она удобна и идеальна для голосовых помощников, систем видеонаблюдения, телевизоров, или в случае если у вас небольшое количество умных устройств. Но WiFi сильно энерго затратен и если умных устройств десятки, или сотни постоянно заряжать их проблематично. К тому же WiFi роутер не рассчитан на большое количество подключений. Конечно есть решения и на такой случай, но тогда цена развертывания сети вырастет в разы. WiFi имеет единую точку отказа — роутер.

Bluetooth LE (Low Energy) не менее популярная технология с низким энергопотреблением, что позволяет более года не менять батарейку и высокой скоростью передачи 1-2 Мбит. Имеет функцию маячка (настраиваемое поведение устройств при приближении) и работает с устройствами напрямую. Из минусов работа в диапазоне 2,4 ГГц, и небольшой радиус действия в помещении с другими устройствами. Также большинство BLE устройств работают по принципу «точка-точка», что плохо подходит для создания продвинутых сценариев автоматизации. Но решение данной проблемы можно считать спецификацию Bluetooth mesh.

ZigBee открытый стандарт с низким энергопотреблением конечных устройств (1-2 года), поддержкой ячеистой (mesh) топологии, высокой помехоустойчивостью, хорошей масштабируемостью (в теории до 65000 узлов) и большим проникновением на рынок. Из минусов: Zigbee работает в загружённом диапазоне 2,4 ГГц, что при сильных помехах может привести к снижению помехоустойчивости, и уменьшению радиуса действия. Каждый производитель создает отдельное приложение для поддержки только своих продуктов. Но как по мне самый большой минус это то, что устройства разных производителей не могут “общаться» между собой “из коробки”. Их можно объединить при использовании стороннего ПО, но отсутствие общих решений приводит к относительно высокому порогу вхождения. Альянс знает об этих проблемах и для устранения работает над DotDot и Connected Home over IP.

Z-Wave — зарекомендовавший себя закрытый стандарт. Обладает высоким уровнем совместимости устройств, низким энергопотреблением, поддержкой ячеистой топологии, имеет стабильный сигнал в диапазоне 800–900 МГц, что позволяет лучше огибать препятствия (чем больше длина волны (ниже частота), тем лучше она преодолевает препятствия). Поддерживает до 232 устройств в одной сети и скорость до 100 кбит/с. Из недостатков стоит указать, что в разных странах для устройств малого радиуса действия выделены разные частоты. И устройства созданные для одной страны могут быть несовместимы для другой. Также Z-Wave несколько дороже ZigBee устройств.

С чего начать, если вы новичок?

Если вы пытаетесь выбрать на чем построить свой умный дом начните с этой занимательной схемы. Также лично для меня вдохновляющими была статья Дом Дурачок 2.0
Если у вас возникают трудности в настройке своего умного дома, вы можете попросить совета в группе SmartHome
Если вы хотите купить SLS шлюз и другие Zigbee устройства вам в Zigberu
Обсуждение устройств, прошивок и прочего софта, работающего с Zigbee — Вокруг да около Zigbee и
Zigbee

Вместо заключения

Тяжело сказать кто победит в войне протоколов умного дома. Zigbee не лишен недостатков, имеет сильных конкурентов, но вместе с тем его сильная сторона это большое заинтересованное сообщество (Zigbee Альянс, энтузиастов и гиков). Интерес к Zigbee проявляют как именитые бренды, так и молодые компании.
Стоит отметить, что не существует универсального решения на все случаи жизни. Выбирайте, то что подходит именно вам, именно в вашем случае. WiFi и Bluetooth хотя и громоздки, но есть случаи, когда их использование оправдано.

ZigBee 3.0 Часть 1: начало работы с CC2530

ZigBee — это набор протоколов, предназначенный для того, чтобы устройства IoT могли легко формировать ячеистые сети и взаимодействовать друг с другом по беспроводной сети. Я уже давно очарован платформой ZigBee, но меня всегда отталкивала корпоративность этой технологии (и, черт возьми, я был прав).

Пару лет назад я решил купить несколько дешевых плат CC2530 на AliExpress. CC2530 — это SoC от Texas Instruments, содержащий клон 8051 в качестве основного процессора, с ОЗУ (128 КБ или 256 КБ) и флэш-памятью, а также PHY для IEEE 802. 15.4.

Как и все дешевое китайское оборудование, существует несколько версий дизайна, которые затем клонируются всеми другими продавцами. К ним относятся:

  • Компактная плата с внешней антенной
  • Компактная плата со встроенной антенной и антенным разъемом
  • Компактная плата с внешней антенной и выделенным ВЧ-интерфейсом (CC2591)
  • Плата с дополнительным микроконтроллером, который, похоже, является C8051F320 (клон 8051 с поддержкой USB от Silicon Labs — эта версия, вероятно, используется любителями для каких-то специальных целей)
  • Плата со встроенной антенной и разъемом для программирования (то, что есть у меня)

Мои платы выглядят так:

Вы также можете получить платы CC2531, которые имеют интерфейс USB, на котором устройство CDC выставляется на функциональность, идентичную CC2530 UART. Кажется, их предпочитают люди, взламывающие с помощью RPi, но я не могу дать о них много информации, так как у меня их нет.

Итак, с чего начать?

Ха! Хороший вопрос. И как оказалось, не простой.

Проблема в том, что вы не можете просто подключить модуль к вашему Arduino/RPi/Serial Terminal и продолжать передавать кадры. TI документирует два режима работы для SoC CC253x, ни один из которых не доступен «из коробки»:

  • Автономный, где вы пишете и компилируете свое приложение ZigBee с использованием библиотек ZigBee и HAL от TI, прошить его на плату CC253x и он там запустится;
  • С хост-MCU, когда вы прошиваете CC253x специальной прошивкой один раз, а затем отправляете ему команды с хост-устройства, на котором запущены ваши приложения.

Первый режим работы — это то, что вы должны сделать, чтобы создать продукт ZigBee. Он лучше с точки зрения компактности и экономичности. Однако у него есть большой недостаток: вам нужно изучать SDK и инструменты от TI, что, как вы увидите, не особенно привлекательно.

При втором режиме работы у вас есть то, что TI называет сетевым процессором ZigBee (ZNP) , который представляет собой CC253x с прошивкой Z-Stack ZNP, а затем вы пишете свое приложение на любой платформе, на которой работаете. уже знакомы, и вы заставляете его общаться с ZNP через UART. В оставшейся части этой статьи объясняется, как начать работу с этим режимом работы. Чтобы подготовить платы, вам понадобится аппаратное обеспечение и некоторое программное обеспечение.

Аппаратное обеспечение

Для программирования ваших плат CC253x вам понадобится либо CC-DEBUGGER, либо оценочная плата SmartRF04.

CC-DEBUGGER стоит ~50 евро, а SmartRF04EB стоит несколько сотен евро. Вы можете приобрести оба у одного из крупных реселлеров TI (например, Mouser или Digi-Key). Первый представляет собой отладчик/программатор, а второй представляет собой полноценную оценочную плату с ЖК-дисплеем, кнопками, контроллером батареи и другими подобными удобствами.

Как и все электронику, вы также можете купить дешевые клоны из Китая. Приблизительно за 5 евро с доставкой вы можете получить что-то, что распознается программным обеспечением TI как SmartRF04EB, но напоминает и работает как CC-DEBUGGER. Выглядит он так и обычно включает в себя кабель:

Теоретически вы также можете использовать Arduino/ATmega328P (или любой другой микроконтроллер, который вам может понравиться, если у вас есть навыки!) для программирования CC253x, используя специальную прошивку, что я и планировал сделать изначально . Тем не менее, соответствующее программное обеспечение для загрузки, похоже, работает очень ненадежно, и после многих потраченных впустую часов я решил просто потратить 5 евро, чтобы продолжить свою жизнь.

Программное обеспечение

Вам необходимо загрузить следующее программное обеспечение от TI:

  • Программатор SmartRF Flash Programmer (версия 1, а не 2!)
  • Z-Stack 3.0.2 (на сегодняшний день это последняя версия; использование другой версии может не сработать, так как они часто вносят критические изменения — в таком случае более старые версии доступны для загрузки)

Вам также потребуется IAR Embedded Workbench для 8051 , которое является платным программным обеспечением от IAR Systems. Это, вероятно, стоит много, и я уверен, что они даже не продали бы его вам. К счастью, с пробной версией все в порядке, но вы должны обязательно выбрать версию с ограниченным сроком действия, а не версию с ограниченным размером. Я использовал версию 10, но любая версия после версии 8 должна работать нормально.

К сожалению, все вышеупомянутое программное обеспечение работает только в Windows. К счастью, вам это нужно только для подготовки (и, возможно, тестирования) плат, а затем вы можете забыть об этом!

Перекомпиляция прошивки

Теперь, более предприимчивые читатели, вероятно, уже узнали, что TI поставляет предварительно скомпилированных бинарных файлов прошивки ZNP в Z-Stack 3.0.2. Так почему же я попросил вас установить IAR Embedded Workbench, когда мы могли бы просто прошить их?

Очень просто: двоичные файлы, предоставленные TI, скомпилированы с обязательным контролем потока UART, который очень плохо документирован и, похоже, плохо работает с адаптерами FTDI (которые я использую). Кроме того, есть пара флагов компиляции, которые вы можете изменить, в зависимости от того, какие у вас платы и как вы планируете их использовать.

Итак, запустите IAR Embedded Workbench, при необходимости активируйте/запросите пробный код, а затем откройте проекты прошивки ZNP из File > Open Workspace . Проект, который нам нужно перекомпилировать, находится в каталоге Z-Stack по адресу \Projects\zstack\ZNP\CC253x\znp.eww. После загрузки проекта перейдите в Project > Edit Configurations и выберите конфигурацию «ZNP-with-SBL».

В списке файлов слева разверните каталог Tools и дважды щелкните файл znp.cfg. Добавьте в его конец следующую строку:

-DZNP_ALT

Этот флаг нигде не документирован. Он включает то, что в официальной документации называется «Альтернативная конфигурация выводов», а также отключает аппаратное управление потоком. Вы можете увидеть, как он отключает управление потоком в исходном файле znp_app. c (в разделе «Приложение»). Я понятия не имею, как ему удается изменить распиновку, и grep для всего SDK вообще не помог.

Если на вашей плате есть интерфейс RF, также добавьте следующую строку:

-DHAL_PA_LNA

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

Если вы уже знакомы с протоколом ZigBee 3.0, вам также следует ознакомиться с файлами f8wConfig.cfg и f8wZCL.cfg, которые содержат различные флаги конфигурации.

Поскольку вы будете использовать модуль с внешним MCU, вам также следует удалить POWER_SAVING из опций проекта, иначе в некоторых случаях устройство перейдет в спящий режим сразу после ввода в эксплуатацию, что сделает интерфейс UART непригодным для использования. Для этого щелкните правой кнопкой мыши имя решения в проводнике рабочей области (как показано ниже) и выберите Параметры > Компилятор C/C++ . Затем откройте вкладку «Препроцессор» и удалите POWER_SAVING из списка Определенные символы .

Теперь нажмите F7, чтобы сделать.

Код, скомпилированный для меня нормально, но шаг публикации для создания 9Ошибка файла 0109 hex (к счастью, с сообщением об ошибке). Чтобы сделать это вручную, я перешел в каталог Projects\zstack\ZNP\tools, открыл окно PowerShell и набрал следующую команду:

.\znp.bat . «CC2530-ZNP-with-SBL» (при необходимости замените CC2530 на CC2531)

К вашему сведению, этот скрипт изменяет каталог, переданный в качестве первого параметра (в нашем случае только текущий каталог), а затем выполняет znp. js , передав ему второй параметр. Да, это сценарий JavaScript, выполняемый внутри Windows Script Host в качестве перехватчика после компиляции. Я в таком же ужасе, как и ты. Давайте продолжим с этим.

После всего этого у вас должен быть новый файл Projects\zstack\ZNP\CC253x\dev\CC2530-with-SBL. hex (или CC2531). Сценарий также иногда (но не всегда, поймите) показывает всплывающее окно об успешном завершении. Пожалуйста, проверьте Дата изменения шестнадцатеричного файла. Если файл не был обновлен (т. е. датирован той же датой, что и другие файлы), что-то пошло не так, и вам необходимо исправить это, прежде чем продолжить.

Если все прошло по плану, поместите файл в безопасное место и переходите к следующему шагу!

Предыдущие версии SDK содержали документ под названием «Параметры компиляции Z-Stack», в котором подробно описывались некоторые флаги компиляции, упомянутые в этом разделе. Хотя технически он больше не действителен для Z-Stack 3.0.2, вы можете загрузить его из Интернета и сохранить.

Прошивка

Теперь у вас должна быть прошивка CC253x-with-SBL.hex, скомпилированная с соответствующими флагами. Прошиваем !

Если на вашей плате есть отладочный разъем , просто подключитесь к нему ленточным кабелем. В противном случае вам придется использовать соединительные кабели в соответствии со следующей распиновкой:

Откройте SmartRF Flash Programmer и убедитесь, что ваш программатор отображается на вкладке «System-on-Chip» в таблице рядом с «Interface:» этикетка. Если это не так, у вас есть проблема с программатором, и вы должны разобраться, прежде чем продолжить.

Теперь попробуйте нажать кнопку «Читать IEEE». Если вы видите, что MAC-адрес появляется в текстовом поле, вы готовы к работе! В противном случае проверьте все подключения и повторите (также проверьте ориентацию отладочного разъема, если он у вас есть, и не забывайте, что вам нужно подключить плату извне, если у вас ее нет).

Выберите «Стереть, запрограммировать и проверить» в разделе «Действия», а затем выберите только что скомпилированную прошивку рядом с «Flash image:»; наконец, нажмите «Выполнить действия» и дождитесь завершения процесса. Если что-то пойдет не так, отключите питание от платы, снова подключите и повторите попытку.

Повторите эти шаги для всех плат, которые вы хотите запрограммировать.

Готово! Почти.

Несколько заключительных слов.

Во-первых, вы должны прочитать документ «Спецификация интерфейса Z-Stack ZNP» в разделе «Документы\API». Это говорит о физическом интерфейсе. Некоторые примечательные разделы:

  • 2.2.1 CC2530, где можно найти распиновку для альтернативной конфигурации;
  • 2.2.3, 2.2.4 UART Транспорт и кадрирование;
  • 2.2.5 Инициализация и сброс;
  • 3 Командный интерфейс

Обратите внимание, что перед подачей питания необходимо соединить контакт P2_0 (CFG1) с GND, чтобы включить UART. Слышишь, слышишь… не задокументировано. Это самая большая ошибка документации, так как весь смысл прошивки ZNP заключается в том, чтобы иметь командный интерфейс UART, и они не говорят вам, как его включить в документе, в котором говорится о физическом интерфейсе (или где-либо еще, по-видимому) .

Вам также следует ознакомиться с документом «Z-Stack Monitor and Test API», в котором описаны все доступные команды, разделенные по интерфейсам. Довольно любопытно, что он называется Monitor и Test . Похоже, что командный интерфейс изначально предназначался для использования только с инструментами отладки и тестирования, а затем некоторые подсистемы были задокументированы апостериори как часть режима работы ZNP. Я предлагаю некоторые мелочи по этому поводу в следующем разделе.

Z-Tool

В Tools\Z-Tool вы можете найти небольшую программу, которую можно использовать для тестовых команд . Удобно, что он работает именно с теми МТ-командами, которые предоставляет прошивка ZNP. Не все подсистемы, задокументированные в «Z-Stack Monitor and Test API», доступны в Z-Tool, но 5 подсистем, перечисленных в «Спецификации интерфейса Z-Stack ZNP», доступны.

Когда вы запускаете программное обеспечение в первый раз, вы должны перейти в Инструменты > Настройки и отключить все ненужные COM-порты (или автоматическое сканирование), чтобы Z-Tool не отправлял мусор на все ваши последовательные устройства каждый раз, когда вы запускаете его. Вы также должны выбрать соответствующие COM-порты один за другим и нажать «Изменить», чтобы выбрать правильную скорость передачи (если вы не изменили ее во время компиляции, это 115200) и убедиться, что рукопожатия отключены, иначе это не будет работать. Как только вы начнете возиться с более чем одной платой одновременно, я предлагаю вам изменить номера последовательных портов в диспетчере устройств.

Z-Tools также поддерживает скрипты на проприетарном языке с классами, перечислениями и пространствами имен, что, да, абсолютно логично.

Общая информация: скрипты имеют расширение zjs , но язык совсем не похож на JavaScript.

Еще мелочи: если вы внимательно прочитаете документ «Z-Stack Monitor and Test API», вы найдете подсказки, указывающие на его раннюю версию, которая, вероятно, была частью технической спецификации Z-Tool.

Еще больше мелочей: «Z-Stack Monitor and Test API» определяет длину полезной нагрузки кадра [3, 256] байт, а «Спецификация интерфейса Z-Stack ZNP» определяет ее длину [3, 253] байт. 8-1 макс. байт для всего кадра. В первом документе также указана полезная нагрузка длиной 1+2+[0, 250] байт, что противоречит самому себе и согласуется с другим документом.

Заключение

Теперь у нас есть сетевой процессор ZigBee. В следующей статье мы собираемся изучить основы ZigBee 3.0, а после этого собираемся, наконец, обмениваться данными между узлами.

Пример для CC2530 ZigBee — Zigbee

Александр-бит (Александр Бит)

#1

Привет, у кого-нибудь есть практический код примеры для ZigBee CC2530 и библиотеки для Keil или IAR для 8051. Трудно найти примеры для этого чипа. примеры в дальнейшем развитии моего дипломного проекта много значили бы для меня. Чтобы увидеть пример и понять, как его использовать в моем проекте

Большое спасибо, всего наилучшего.

le_top

#2

Сайт TI не очень хорошо организован, чтобы найти все на странице продукта, но:

  1. См. страницу продукта — вы найдете ссылку на запись на форуме со списком изменений, которые вы должны внести в последнюю версию ZStack;
  2. Загрузите последнюю (и последнюю) прошивку со страницы TI Z-STACK. Всплывающее окно показывает, что это совместимо с CC2530, поэтому я думаю, что это последняя версия (я не загружаю ее снова…). Там есть примеры (но они не готовы к «производству», поскольку не соответствуют всем требованиям Zigbee, таким как хранение данных в энергонезависимой памяти);
  3. Посетите форум TI.
  4. Есть несколько публичных проектов: