![](https://catcatcat.d-lan.dp.ua/wp-content/uploads/2015/02/Cat_APA102.jpg)
Views: 3264
APA102
В 2014 году фирма Shenzhen Led Color Optoelectronic Co., Ltd http://www.szledcolor.com/ начала производство светодиодов на драйвере APA102. Это серия так называемых светодиодов со встроенным драйвером. Основной особенностью этих светодиодов, что в них применен упрощенный вид SPI интерфейса, шина данных и тактовая шина. Особенностью драйвера, это встроенный в данный драйвер, это 5 битовый регистр общей яркости, т.е. эти светодиоды уже наиболее близко подошли к настоящим драйверам светодиодных экранов. Максимальная тактовая частота заявленная производителем 1,2 МГц, первые испытания на ленточки длиной из 30 светодиодов, подаренных мне производителем, показали довольно внушительные результаты, на тестовом столе они нормально работают на тактовой в 2,5 МГц. Если их сравнивать с такими светодиодами как WS2812B , то по скорости выигрыш более чем в 5 раз (на 2,5 МГц)!!!
У WS2812B проблема в том, что чем больше длин цепочки, тем уменьшается скорость передачи, это связано с тем, что необходимо формировать импульс сброса такой длины, чтобы его времени хватило на распространения через всю группу светодиодов.
По мере дальнейшей разработки конструкций, протестирую максимальную тактовую на большем количестве светодиодов, чтобы определить реальные характеристики.
ФИЗИЧЕСКИЕ РАЗМЕРЫ
Светодиоды упаковываются в стандартный SMD 5050. Расположение выводов сделано грамотно, для подвода питания и прокладки шины данных и синхронизации.
Какая больше всего особенность меня поразила, что на ленточках нет не единого блокирующего конденсатора по питанию, и все работает. Тут только можно сказать Браво разработчикам чипов. И что самое главное (на что страдают WS2812B) входные сигналы – ТТЛ логики, т.е я подключил к контроллеру, с 3,3 вольтовым питанием, ленточку, работает идеально (лента питается от 5 вольт).
Управление Светодиодом “по двум проводам”
Принцип управления прост, тактовая шина Clock проходит напрямую через драйвер светодиода (внутри используется повторитель), задержка на передачу тактовой, скажем так минимальная. По шине DATA принцип работы следующий, если на вход поступило от 4 последовательных байт (32 бита) с нулями, то драйвер переключается в режим приема. Если в режиме приема первый байт “0” то он работает как ретранслятор передает нулевые байты на выход, тем самым инициализируя следующие драйверы светодиодов.
Если следующий байт не нулевой и самое главное в нем должны быть 7, 6, 5 бит = “1”, это значит, что эти следующие 4 байта данных будут “поглощены” этим драйверов, при этом в этот момент на выходе он также формирует нулевые байты. Если следующие 4 байта тоже несут информацию (первый байт не равен нулю и имеет три единицы в старших битах), то они теперь будут на прямую транслироваться на выход.
Итог. Для управления светодиодами в цепочке, необходимо:
- передать в начале 4 байта синхронизации.
- передавать данные по 4 байта на каждый светодиод который есть в цепочке.
Графически это можно представить так:
Программирование
В этом разделе я опишу вариант на котором я остановился, для управления этими светодиодами. Скорость на которую рассчитаны APA102 позволяют на них строить небольшие видеоэкраны. Предлагаемый вариант для такого видео экрана. Массив для передачи удобно формировать так:
#define height 1 // высота дисплея, в настоящем примере просто полоска #define width 31 // длина дисплея, 30 светодиодов + 1 "синхро байт" (первые 4 байта всегда нули, это Start Frame) #define SRGB 4 // глубина дисплея яркость, синий, зеленый, красный // для удобства описания выбранного цвета #define BRI 0 // задание яркости 0b111xxxxx где х - яркость #define CBL 1 // адрес для синего цвета #define CGR 2 // адрес для зеленого #define CRE 3 // адрес для красного volatile unsigned char APADISP[height][width][SRGB]; // массив яркостных режимов
Для инициализации массива удобно применить цикл:
// инициализация массивов brightness=brightness|0b11100000; // настройка регистра яркости // загрузка буфера для тест for (cyhei=0;cyhei<height;cyhei++) // высота { for (cywid=0;cywid<width;cywid++) // количество светодиодов в строке { for (cyrgb=0;cyrgb<SRGB;cyrgb++) { if(!cyhei && !cywid)APADISP[cyhei][cywid][cyrgb]=0; // первые 4 байта инициализация всегда нулями. else if (!cyrgb)APADISP[cyhei][cywid][cyrgb] = brightness; // каждый 0 байт загрузка параметра яркость else APADISP[cyhei][cywid][cyrgb] = 0; // установка яркости в 0 } } }
Один из вариантов загрузки массива в SPI2 модуль, для PIC32:
while(SPI2STATbits.SPITBF); SPI2BUF=0x0; // start frame while(SPI2STATbits.SPITBF); SPI2BUF=0x0; // while(SPI2STATbits.SPITBF); SPI2BUF=0x0; // while(SPI2STATbits.SPITBF); SPI2BUF=0x0; // for (scikl=0;scikl<LENDIS;scikl++) { while(SPI2STATbits.SPITBF); SPI2BUF=brightness; // Global while(SPI2STATbits.SPITBF); SPI2BUF=BLUELED[scikl]; // transmit BLUE while(SPI2STATbits.SPITBF); SPI2BUF=GREENLED[scikl]; // transmit GREEN while(SPI2STATbits.SPITBF); SPI2BUF=REDLED[scikl]; // transmit RED }
Светодиоды в упаковке, черная ленточка для светомузыкальных устройств более подходит, чем белого света.
Схема соединения светодиодов
Диаграмма прохождения данных, через три драйвера, видно, что драйвер после прихода на его вход последовательно 4 нулевых байт переключается в режим инициализации, при этом пока он не примет, первые данные, его выход находиться в низком состоянии, тем самым синхронизируя, драйвер следующего светодиода.
Кадр синхронизации отличается от кадра данных, тем, что первый байт равен “0”.
Видео тестирования ленточки из 30 светодиодов, тактовая 2,5 МГц
Габаритные размеры светодиодных лент
Внешний вид соединителей идущих в комплекте с лентами
Описание на ленту:
![Значок](https://catcatcat.d-lan.dp.ua/wp-content/plugins/download-manager/assets/file-type-icons/PDFFileNEW.png)
APA102 - светодиоды со встроенным драйвером и SPI интерфейсом 1,015.55 KB 490 downloads
APA102 - светодиоды со встроенным драйвером и SPI...пример использования светодиодов на драйвере APA102
Это может быть интересно
Altium Designer my Libraries, Project templates, System settings by Catcatcat V23.04
Views: 205 Смотри как установить и подключить библиотеку тут. V. – 23_04 – Component Database Update. – configuration file name – DXPPreferences1.DXPPrf. – Added two projects for audio amplifier …PIC18 – модуль DMA
Views: 1169 Введение Модуль прямого доступа к памяти (DMA) предназначен для обслуживания передачи данных непосредственно между различными областями памяти без вмешательства процессора. Исключив при этом необходимость в интенсивной обработки …Часы + Календарь + Термометр + …
Views: 2694 Часы + Календарь + Термометр + Индикатор влажности + Секундомер + Дистанционное управление на ИК лучах (пульты на RC-5 протоколе) + Автоматическая регулировка яркости + Возможность вывода данных через USB, …Просто о структурах и объединениях в Си
Views: 2162 Какие задачи нам позволяют решать структуры и объединения? Для разработчика встроенных систем эффективность и компактность кода всегда на первом месте. Если программировании на Ассемблере ты сам определяешь как …CLUBBEST-50-Light
Views: 251 CLUBBEST-50-LIGHT Зміст Короткий опис проекту. 1 Опис схемотехніки візуалізатора музики. 2 Аудіо вхід. 3 MCU. 4 Цифровий вихід. 5 Схема живлення MCU. 6 Складання пристрою. 7 Список …Audio-bluetooth modules F-6188 (BK8000L)
Views: 2285Следующий модуль на чипе BK8000L. Заводское обозначение F-6188 также основным производителем не выпускается и отдан на тиражирование. с нижней стороны имеет маркировку В этом варианте мне попалась вроде полноценная …AD9833 – Programmable Waveform Generator – part two
Views: 1750 Прошло время и появилась тема, что-бы закончить проект AD9833 – Programmable Waveform Generator. Приехали печатные платы. В этот раз я печатные платы заказывал в https://jlcpcb.com/ делал это в …MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ
Views: 1120 Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые …Ссылки на интересные источники
Views: 839 Сбор 3D моделей от André L’Hérault конденсаторы, резисторы, индуктивности dropbox IPC-SM-782 Surface Mount Design and Land Pattern Standard Видео уроки по Altium designer Alexey Sabunin https://www.youtube.com/channel/UCG7N5CqXpyK8nQjr1EmMgng Сергей Булавинов https://www.youtube.com/channel/UCISAMXRnN_Qw9UTjUwZI1Jw Robert Feranec https://www.youtube.com/user/matarofe …Arduino LCD + STONE STVI056WT-01 + Strain gauge
Views: 448 Author li grey email: greyli1987@outlook.com The strain assessment instrument is used to assess the degree of corresponding muscle strain by obtaining the muscle surface action potential through silver …