Довольно популярной сегодня является тема подключения светодиодных линеек WS2812B к различным микроконтроллерам, а также тема их программирования.
Не буду подробно останавливаться на протоколе. Достаточно сказать, что кодирование бит 0 и 1 осуществляется импульсами разной длительности. Вывод этих импульсов как раз и представляет собой головную боль при программировании MCU (использование готовых библиотек для Arduino в расчёт не беру, так как цель статьи показать именно детали процесса).
Мой выбор микроконтроллера пал на TI Stellaris LM4F120 по двум причинам:
- Был в наличии (недорогая плата LaunchPad от TI);
- Мой проект достаточно требователен к ресурсам, а MCU ARM® Cortex™-M4F c возможностями прямого доступа к памяти (DMA) как раз подходящее решение.