№7 / 2018 / статья 2

Управление светодиодным освещением с помощью стека DALI 2.0 для контроллеров XMC1000

Вячеслав Гавриков (г. Смоленск)

Последняя модификация интерфейса для построения автоматизированных систем управления освещением, – DALI 2, – имеет целый ряд значительных улучшений. Развитие этого стандарта усложняет процесс разработки ПО для умных осветительных приборов. По этой причине появление бесплатного программного стека DALI 2 для микроконтроллеров семейства XMC1000 производства Infineon является большим подспорьем для разработчиков.

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

Интерфейс DALI (Digital Addressable Lighting Interface) используется для создания систем управления освещением в широком спектре приложений – от светодиодных светильников до аварийного освещения. Все поддерживаемые классы осветительных приборов, параметры физической шины передачи данных, протоколы, а также другие характеристики DALI описаны в группе стандартов IEC 62386 (МЭК).

DALI 2 представляет собой дальнейшее развитие DALI. Если изначально DALI сосредотачивался на осветительных приборах, то в DALI 2 была добавлена поддержка датчиков движения и освещения, а также кнопок, беспроводных систем управления и так далее [1]. Появившиеся новые классы устройств описываются в новой части стандарта IEC 62386-103.

С учетом перспектив DALI 2 компания Infineon решила облегчить жизнь разработчикам, использующим микроконтроллеры XMC1000, и создала свою реализацию стека DALI 2.0. При этом стек прошел сертификацию в составе отладочного набора XMC LED current control explorer kit.

В первой части данной статьи мы сделаем обзор микроконтроллеров семейства XMC1000 и их особенностей, при этом особое внимание уделим рассмотрению аппаратного блока управления контрастом и яркостью BCCU (Brightness and Color Control Unit). Во второй части статьи узнаем о программном стеке DALI 2.0 от Infineon, а также по пунктам рассмотрим процесс запуска предлагаемых примеров, начиная от подготовки отладочного набора XMC LED current control explorer kit и заканчивая запуском проекта в среде Dave.

Обзор семейства XMC1000

XMC1000 – семейство недорогих компактных микроконтроллеров, построенных на базе 32-битного ядра ARM Cortex™-M0. Достаточно высокая производительность, привлекательная цена, широкие возможности встроенной периферии, наличие моделей с большим объемом памяти и доступность маловыводных исполнений делают представителей XMC1000 отличной альтернативой 8-битным микроконтроллерам.

Семейство XMC1000 включает в себя более ста представителей, объединенных в четыре линейки: XMC11x, XMC12x, XMC13x, XMC14x (рисунок 1, таблица 1) [2]. Все они способны работать с напряжениями питания 1,8…5,5 В в широком диапазоне рабочих температур -40…85°C или -40…105°C

Рис. 1. Линейки 32-битных микроконтроллеров XMC1000 на базе ядра ARM Cortex-M0

Рис. 1. Линейки 32-битных микроконтроллеров XMC1000 на базе ядра ARM Cortex-M0

Таблица 1. Характеристики и периферия различных линеек микроконтроллеров XMC1000 [2]

Наименова-
ние
Математи-
ческий сопро-
цессор
Частота ядра Память Аналоговая периферия Таймеры/ШИМ Интерфейсы Корпус
Частота
ядра, МГц
Частота
пери-
ферии, МГц
Flash/ОЗУ, кбайт 12-бит АЦП /S&D Число кана-
лов
Ком-
пара-
торы
CCU4 CCU8 POSIF BCCU USIC CAN2.0B
XMC11x 32 64 8…64/16 1/1 до 12 1x 2x VQFN-24/40 TSSOP-16/38
XMC12x 32 64 16…200/16 1/2 до 12 до 3 1x + 2x VQFN-24/40 TSSOP-16/28/38
XMC13x + 32 64 8…200/16 1/2 до 12 до 3 1x 1x + + 2x VQFN-24/40 TSSOP-16/38
XMC14x + 48 96 32…200/16 1/2 до 12 до 3 2x 2x + + 4x + VQFN40/48/64 LQFP64
Питание 1,8…5,5 В
Диапазон рабочих температур -40…85/105°C

XMC1100 – младшая линейка семейства с рабочей частотой ядра до 32 МГц, объемом Flash до 64 кбайт, объемом ОЗУ 16 кбайт и самым скромным набором периферийных блоков. Линейка ориентирована в первую очередь на бюджетные приложения.

XMC1200 – линейка, разработанная специально для создания бюджетных светодиодных систем освещения. Главным достоинством этих микроконтроллеров является наличие блока управления яркостью и цветом BCCU (Brightness and Color Control Unit). Блок BCCU позволяет управлять яркостью светодиодов за счет встроенных сигма-дельта-модуляторов. Кроме того, по сравнению с XMC1100, периферия XMC1200 расширилась за счет появления аналоговых компараторов. С помощью этих компараторов удобно, например, реализовывать защиту светильников от перегрузки по току.

Эти микроконтроллеры поставляются в корпусных исполнениях VQFN-24/40 и TSSOP-16/28/38 с объемами Flash до 200 кбайт и ОЗУ – 16 кбайт.

XMC1300 – линейка с расширенным набором периферии. По сравнению с XMC1200 были добавлены: математический сопроцессор, интерфейс датчиков положения POSIF, сверхточный таймер CCU8. Математический сопроцессор значительно повышает производительность ядра ARM Cortex-M0 при выполнении операций деления, вычисления косинуса и синуса и прочих действий. POSIF – блок, позволяющий обсчитывать датчики положения, такие как, например, датчики Холла и энкодеры. CCU8 – специализированный таймер с поддержкой ШИМ, «мертвого времени» и 64-битной разрядности.

Микроконтроллеры XMC1300 выпускаются в корпусных исполнениях VQFN-24/40 и TSSOP-16/38 с объемом Flash 8…200 кбайт и ОЗУ 16 кайт.

XMC1400 – наиболее продвинутая линейка семейства, отличающаяся повышенной рабочей частотой ядра до 48 МГц и максимальной частотой периферии 96 МГц. По сравнению с предыдущими линейками производительность XMC1400 увеличена на 70%. Набор периферии XMC1400 был расширен за счет появления CAN-контроллера, дополнительных таймеров CCU4 и CCU8, аналоговых компараторов и универсальных интерфейсов USIC (рисунок 2).

Рис. 2. Блок-схема микроконтроллеров XMC1400

Рис. 2. Блок-схема микроконтроллеров XMC1400

Как легко понять из представленного краткого описания, для создания интеллектуальных систем освещения больше всего подходят линейки XMC1200/XMC1300/XMC1400, так как в них присутствует блок BCCU, который берет на себя задачи по управлению яркостью и цветом светодиодов.

Управление яркостью и цветом с помощью аппаратного блока BCCU

BCCU – блок управления яркостью и цветом светодиодов. Рассмотрим его особенности на примере XMC1400 [2, 3].

В состав BCCU входят девять независимых каналов и три блока управления яркостью (Dimming Engine), как показано на рисунке 3. Каждый канал имеет свой собственный 12-битный регистр для хранения значения интенсивности света (TCHINT), ΣΔ-модулятор, умножитель, блок линейного изменения яркости, упаковщик выходного сигнала.

Рис. 3. Пример схемы управления цветом и яркостью с помощью блока BCCU [2]

Рис. 3. Пример схемы управления цветом и яркостью с помощью блока BCCU [2]

открыть картинку в полном формате

Каждый из трех блоков управления яркостью (Dimming Engine 1, 2, 3) формирует на выходе 12-битное значение уровня яркости, которое может использоваться любым из девяти каналов.

Принцип формирования выходного сигнала каждым каналом BCCU в общих чертах достаточно прост. 12-битное значение, получаемое от блока управления яркостью (Dimming Engine 1, 2, 3), поступает на вход умножителя. На второй вход умножителя подается собственное 12-битное значение интенсивности (регистр TCHINT). Многоразрядный результат умножения, проходя через ΣΔ-модулятор, преобразуется в битовый поток. Далее битовый поток поступает в упаковщик выходного сигнала, после чего следует на внешний вывод микроконтроллера. Получаемый сигнал может быть использован для модуляции силового транзистора, коммутирующего светодиод.

Каналы BCCU являются независимыми, что позволяет одновременно управлять девятью светодиодами или цепочками светодиодов. Это очень удобно для полноцветных RGB-источников света. Пример такого решения представлен на рисунке 3. Здесь первый канал управляет яркостью красных светодиодов, второй канал управляет яркостью зеленых светодиодов, третий – яркостью синих светодиодов. При этом индивидуальная интенсивность каждого цвета задается содержимым регистров TCHINT, а общая яркость свечения всех светодиодов определяется выходным значением первого блока управления яркостью. Наличие четырех компараторов, входящих в состав микроконтроллера XMC1400, делает возможным автоматический контроль тока и обеспечение защиты от токовых перегрузок.

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

Экспоненциальное изменение яркости

Чувствительность человеческого глаза к яркости света имеет экспоненциальную зависимость. В результате, если линейно увеличивать яркость светодиода, то человеку, наоборот, будет казаться, что яркость меняется неравномерно. Если же требуется, чтобы изменение яркости субъективно казалось равномерным, то следует использовать именно экспоненциальный характер уменьшения или увеличения яркости. К счастью в BCCU эта возможность реализована аппаратно.

Желаемое 12-битное значение общей яркости, задаваемое пользователем и хранящееся в каждом блоке Dimming Engine, дополнительно пересчитывается. На выход поступает уже корректное значение, которое и подается на вход одного из девяти каналов. В результате если пользователь будет линейно менять значение яркости блока Dimming Engine, то реальное изменение яркости светодиода окажется экспоненциальным, а человеческий глаз, в силу описанной выше физиологической особенности, воспримет это изменение как линейное.

Автоматическое изменение яркости

В состав каждого канала входит блок линейного изменения яркости. При его использовании 12-битное значение интенсивности, поступающее на умножитель, меняется не скачком, а автоматически плавно нарастает или уменьшается. Скорость и шаг изменения задаются с помощью соответствующих регистров.

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

Защита от мерцаний

Если в битовой последовательности, формируемой ΣΔ-модулятором, возникают длительные серии из нулей, то это может привести к появлению низкочастотного мерцания, заметного глазу. Однако даже если частота мерцаний относительно высока (до 3 кГц) и они не видны человеку, глаза все равно с течением времени испытывают дискомфорт.

Для автоматической защиты от этого негативного эффекта в состав сигма-дельта-преобразователя входит специальный сторожевой таймер. Он считает число нулевых битов подряд. Если это число превысило пороговое значение, задаваемое в регистре BCCU_GLOBCON.WDMBN, происходит автоматическая вставка единицы в битовую последовательность.

Сравнение качества света при использовании специального сторожевого таймера и без него представлено на рисунке 4. Хотя мерцания с частотой 2…3 кГц явно не фиксируются человеком, тем не менее, видны для камер и способны утомлять глаза с течением времени. После активации функции сторожевого таймера в ΣΔ-модуляторе спектр мерцаний источника света переносится в диапазон 40…50 кГц, что делает такой шум безвредным для глаз (рисунок 4).

Рис. 4. При использовании XMC1200/XMC1300/XMC1400 устраняется проблема мерцания источника света [2]

Рис. 4. При использовании XMC1200/XMC1300/XMC1400 устраняется проблема мерцания источника света [2]

Оптимизация частоты коммутации

Использование высокой частоты коммутации светодиода имеет свои недостатки. В частности, это приводит к дополнительным динамическим потерям силового транзистора и к ухудшению показателей ЭМС, поэтому в ряде случаев требуется «проредить» выходной сигнал сигма-дельта-преобразователя. Для этого используется специальный блок упаковки выходного сигнала (Packer). Работа упаковщика достаточно проста: он считает число фронтов и спадов и формирует сигнал более низкой частоты, но с тем же средним значением.

Стоит отметить, что при создании приборов освещения может потребоваться не только BCCU, но и другие блоки, например, компараторы для контроля тока и таймеры для формирования различных временных эффектов. К счастью, все эти модули присутствуют в составе XMC1300/XMC1400. В результате при использовании внешнего источника питания схема оказывается достаточно простой (рисунок 5). Для реализации протокола DALI можно воспользоваться готовым бесплатным стеком от Infineon.

Рис. 5. Упрощенная схема источника освещения

Рис. 5. Упрощенная схема источника освещения

Обзор стека DALI 2.0 от Infineon

Стек DALI 2.0 от Infineon представляет собой открытую реализацию протокола DALI 2.0. Он поставляется в виде архива, включающего два примера – для XMC1300 (папка DALIxmc1300) и XMC1400 (папка DALIxmc1400) [3]. Архив со стеком DALI 2.0 доступен для бесплатного скачивания после регистрации на сайте Infineon.

В каждой из двух папок, размещенных в архиве, пользователь найдет не только непосредственно проект с примером, но и документацию. В руководстве по работе со стеком подробно рассказывается о его возможностях, ограничениях, требованиях к аппаратной части, составе, работе с шаблонами и API-функциями [4].

Коротко можно отметить, что стек не является законченной библиотекой и требует от программиста некоторой адаптации под потребности конкретного приложения. Во-первых, часть низкоуровневых функций DALI должна быть реализована в пользовательском приложении. Во-вторых, необходимо заполнить файлы конфигурации. Подробная информация о том, как это сделать, присутствует в руководстве.

Таким образом структура конечного пользовательского приложения будет содержать настраиваемую часть стека DALI 2.0, как показано на рисунке 6.

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

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

Делать подробный разбор стека DALI 2.0 от Infineon не имеет особого смысла, так как вся информация есть в руководстве, однако следует указать некоторые важные моменты.

Существующие ограничения стека

Стек DALI 2.0 от Infineon не является абсолютно полным и имеет важные ограничения [4]:

  • поддерживается только нормальный режим работы DALI (режим 0);
  • отсутствует поддержка устройств DALI Control Devices;
  • в настоящее время поддерживается только один тип устройств из DALIPart 207 – Type 6 (LED-модуль);
  • стек испытывался только при использовании собственного блока питания. Вариант с питанием от шины DALIне рассматривался и не испытывался.

Необходимая периферия

При создании собственных приложений следует учитывать, что стек занимает некоторые ресурсы [4]. Блок генерации случайных чисел PRNG (Pseudo Random Number Generator) необходим для генерации случайных адресов, для этих же целей используется уникальный серийный номер микроконтроллера (Unique Chip Hardware Serial Number). Для потребностей DALI-трансивера используется таймер CCU4, один выход и один вход.

Стек DALI 2.0 прошел сертификацию в составе отладочного набора XMC LED current control explorer kit. Таким образом, если у разработчика возникает желание оценить работу стека, то имеет смысл воспользоваться этим же отладочным набором. Это позволит сэкономить время и избежать ошибок.

Собираем аппаратную часть, чтобы работать с примерами для DALI 2.0

Для запуска примеров, предлагаемых Infineon, потребуется набор XMC LED current control explorer kit, который включает три платы (рисунок 7) [5, 6, 7]:

Рис. 7. Состав набора XMC™ LED Current Control Explorer Kit

Рис. 7. Состав набора XMC™ LED Current Control Explorer Kit

  • платы XMC1300 Boot Kit или XMC1400 Boot Kit. Эти оценочные платы являются самостоятельными продуктами и могут быть заказаны отдельно. Например, при заказе XMC1300 Boot Kit используется наименование KIT_XMC13_BOOT_001;
  • плата питания светодиодов XMC™ LED Current Control Explorer Card. На данной плате размещены силовые транзисторы BSS306N семейства OptiMOS™, которые и осуществляют коммутацию тока светодиодов;
  • интерфейсная плата для подключения к шине DALI PHY. С точки зрения физической реализации DALI представляет собой двухпроводную шину, к которой может быть подключено до 64 устройств (узлов). Один из узлов является ведущим, остальные – ведомыми. Передача данных выполняется с помощью асинхронного полудуплексного протокола со скоростью передачи 12000 бит/с. Полярность проводников шины значения не имеет: для кодировки «0» используется сигнал ±4,5 В, для кодировки «1» – сигнал ±6,5 В.

XMC1300 Boot Kit – стартовый набор на базе микроконтроллера XMC1300 (рисунок 8). Плата состоит из двух частей – отладчика SEGGER J-LINK и непосредственно платы контроллера.

Наличие встроенного отладчика SEGGER J-LINK максимально упрощает жизнь разработчику, так как отпадает необходимость в покупке внешнего программатора. XMC1300 Boot Kit напрямую подключается к ПК через USB. Кроме того, отладчик в любое время может быть отделен (плата ломается пополам), и использован для работы с другими модулями.

Кроме SEGGER J-LINK на плате контроллера присутствует минимальный набор дополнительных компонентов, таких как светодиоды, штыревые разъемы и краевой разъем для подключения плат расширения (рисунок 8).

Рис. 8. Внешний вид отладочной платы XMC1300 Boot Kit

Рис. 8. Внешний вид отладочной платы XMC1300 Boot Kit

XMC1300 Boot Kit становится аппаратной основой при оценке протокола DALI 2. Сначала к XMC1300 Boot Kit следует подключить плату XMC™ LED Current Control Explorer Card с помощью штыревых разъемов (рисунок 9а). После этого с помощью краевого разъема подключается интерфейсная плата DALI PHY (рисунок 9б).

Рис. 9. Подключение плат расширения к XMC1300 Boot Kit

Рис. 9. Подключение плат расширения к XMC1300 Boot Kit

Далее следует выполнить оставшиеся внешние подключения (рисунок 10):

  • подключение светодиода (или цепочки светодиодов) производится к клеммной колодке Х3 платы XMC™ LED Current Control Explorer Card. Светодиод должен выбираться исходя из напряжения используемого источника питания;
  • подключение к ПК осуществляется с помощью разъема micro-USB;
  • подключение к шине DALIпроизводится с помощью клеммной колодки Х2 платы DALI PHY;
  • внешний источник питания 24 В подключается к силовому разъему J1 (jack). Возможно подключение питания через клеммную колодку X2, на рисунке 9 она располагается сразу под разъемом J Однако следует быть осторожным и соблюдать полярность. При выборе источника питания следует учитывать допустимое напряжение на светодиоде.

На рисунке 10 показана конечная конфигурация отладочного набора.

Рис. 10. Подключение питания и светодиода

Рис. 10. Подключение питания и светодиода

Для запуска программных примеров стека DALI 2.0 разработчик может воспользоваться практически любой популярной средой (IAR, Keil и так далее) либо обратиться к бесплатной платформе DAVE.

Бесплатная программная платформа DAVE™ от Infineon

При работе с микроконтроллерами XMC производства компании Infineon у программиста есть два пути:

  • использовать интегрированные среды разработки сторонних компаний и самостоятельно работать с низкоуровневыми библиотеками (XMC Lib);
  • использовать бесплатную платформуDAVE™ и графические утилиты DAVE™ APPs.

В первом случае разработчик столкнется с некоторыми проблемами, например, с высокой стоимостью средств разработки и необходимость хорошо изучить архитектуры для написания драйверов «с нуля». При выборе DAVE эти проблемы отпадают.

DAVE™ (Digital Application Virtual Engineer) – бесплатная программная платформа, объединяющая программные инструменты и огромное количество библиотек и примеров (рисунок 11).

Рис. 11. Dave – законченная программная платформа для разработки встроенного ПО для микроконтроллеров XMC [2]

Рис. 11. Dave – законченная программная платформа для разработки встроенного ПО для микроконтроллеров XMC [2]

В состав DAVE входят:

  • драйверы нижнего уровня XMC Lib CMSIS/MISRA 2004;
  • аппаратные библиотеки, например, для таймеров, АЦП и так далее;
  • DAVE™ APPs – библиотеки и графические утилиты уровня приложений, например, для создания понижающих преобразователей, приводов двигателя, USB-хостов и прочего;
  • готовые примеры;
  • графический конфигуратор аппаратных ресурсов;
  • кодогенератор;
  • компилятор.

Впрочем, при желании разработчик может воспользоваться и программными средами разработки сторонних производителей — Altium, Atollic, ARM/KEIL, IAR, Rowley и других.

Перед тем как использовать среду Dave, ее нужно скачать и установить (видеоинструкция).

Импорт и отладка примеров в Dave

Чтобы начать работу с примерами, следует импортировать проект в Dave (видеоинструкция 2).

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

Заключение

Семейство микроконтроллеров XMC1000 производства Infineon построено на базе микропроцессорного ядра ARM Cortex™-M0 с рабочей частотой до 48 МГц. Благодаря богатому набору периферии и привлекательной цене они становятся отличной альтернативой устаревшим 8-битным микроконтроллерам в целом ряде приложений.

Линейки XMC1200/XMC1300/XMC1400 имеют встроенный BCCU – блок управления яркостью и цветом, который делает их идеальным выбором при создании интеллектуальных светодиодных приборов освещения.

Новый бесплатный стек DALI 2.0 от Infineon значительно упрощает процесс разработки осветительных приборов на базе микроконтроллеров XMC1300/XMC1400. Его преимущества можно оценить уже сейчас с помощью отладочного набора XMC LED current control explorer kit.

Литература

  1. Marcelo Williams Silva and Georg Huba, Smart lighting control with DALI 2.0 software stack for XMC1000 microcontrollers. Embedded World, 2018;
  2. XMC – 32-Bit Industrial Microcontrollers. One Microcontroller Platform. Countless Solutions. Infineon, 2015;
  3. AP32275. Brightness and Color Control Unit (BCCU) XMC1000.Infineon, 2015;
  4. DALI 2.0 Control Gear Stack library. Infineon, 2018;
  5. Getting Started. XMC™ LED Current Control Explorer Kit. Product Introduction. Infineon, 2016;
  6. DALI PHY for XMC™ Boot Kits Board User Manual. Infineon, 2016;
  7. XMC™ LED Current Control Explorer Board User Manual. Infineon, 2016;
  8. http://www.Infineon.com/.

Наши информационные каналы

О компании Infineon

Компания Infineon является мировым лидером по производству силовых полупроводниковых компонентов, а также занимает ведущие позиции по производству автомобильной полупроводниковой электроники и смарт-карт.  В 2015 году компания Infineon приобрела компанию International Rectifier, тем самым значительно усилив свои лидирующие позиции в области силовой электроники. Это сочетание открывает новые возможности для клиентов, так как обе компании превосходно дополняют друг друга благодаря высокому уровню ...читать далее