
Witam.
Chciałbym przedstawić sposób własnego pomysłu na w pełni sprzętowe sterowanie LEDów WS2812B za pomocą mikrokontrolera STM32F030. Nie trzeba nic konwertować, marnować cenny RAM czy cykle procesora, wystarczy dane RGB (3 bajty/led) wysłać jak po SPI. Można też do tego użyć DMA. Sposób nie wymaga stosowania żadnych dodatkowych elementów. Wystarczy kilka dodatkowych połączeń między pinami STMa.
Jak to działa?
Dane za pomocą SPI są konwertowane z równoległych na szeregowe. Zegar SPI wyzwala timer generujący impulsy dla LEDów. Szerokość impulsów reguluje przeładowanie licznika timera wartością z portu F (MOSI) za pomocą DMA wyzwalanego jednym z kanałów timera.
Prawda że proste




Na schemacie dodałem kilka elementów "na przyszłość" (sw1, led1, ir, eeprom).
Cool? Ranking DIY