ЭЛЕКТРОНИКА Управление адресной светодиодной лентой 1200 светодиодов с обновлением 20мс

AZM

✩✩✩✩✩✩✩
17 Сен 2023
22
5
Обычно для управления светодиодной лентой используют avr контроллеры. Недостаток в следующем: когда идет вывод информации на ленту контроллер ничего иного делать не может, полностью задействан програмно на вывод. Это недостаток. В STM32 можно использовать для этого SPI DMA Tаймер и немного логики внешней 1533ЛА3 например 2 элемента. Или более современную микросхему 4 элемента И-НЕ . Все работает через SPI и DMA. Можно использовать SPI1 и SPI2.
Процессор каждые 20мс запускает этот процесс и далее свободен. Можно использовать stm32f103c8t6 микроконтроллер с готовой китайской платой. Менее 150руб все это стоит. В свободное время процессор может формировать световые эффекты или иную программу крутить. Каждый канал может поддерживать 600 светодиодов при времени обновления 20мс, то есть 50 раз в секунду. Если 2 канала SPI то это уже 1200 светодиодов будет. Реально можно и 640 светодиодов на канал. Так же на этом принципе можно создать ЦМУ с разными эффектами. Возможности болше чем на avr адурнинах. Сейчас занимаюсь этими разработками.
Кроме этого можно подключить DMX512 к этому контроллеру и RS485 для связи с компом.
 

AZM

✩✩✩✩✩✩✩
17 Сен 2023
22
5
А это зачем тут?
в памяти хранится массив байтов GRB. зеленый -красный - синий. И никакой лишней информации. И эти байты последовательно через spi выдаются наружу. С помощью 2 элементов логики и сигналов таймера формируется нужная временная диаграмма аппаратно полностью.
 

AZM

✩✩✩✩✩✩✩
17 Сен 2023
22
5
на каждый бит информации тут потребуется целый байт или даже 2 байта кода в делитель счетчика. Памяти нужно в 8 или 16 раз больше. и туда нужно много что запихнуть. Экономия двух элементов логики ценой раздувания памяти в 8 или 16 раз. Проще микросхему добавить логики чем так извращаться
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,971
632
45
@AZM, Да, вы правы, почитал внимательней. На маленьких лентах такой способ вполне рабочий, но не на больших. На больших иногда разумней выделить отдельный контроллер чтобы занимался только выводом данных на ленту, можно даже с параллельным выводом. Например в RP2040 через PIO это очень просто делается, да и сам контроллер дешевый.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
@AZM, вы в движек i2s под есп32 не смотрели? Он дает до 24-х параллельных каналов через DMA. Память под буфер тоже получается с переподпиской, но на еспхе ее навалом.
 

AZM

✩✩✩✩✩✩✩
17 Сен 2023
22
5
сх1.jpg

Это схема, запустил на макетке работает на 2 ленты сразу. в каждой может быть 600светодиодов. обновление картинки 50раз в секунду. spi тактируется от таймера в передатчик режиме слейв. кроме токо связь с компом rs485 есть для синхронизации всех контроллеров если их будет несколько. и выход dmx512 для прожекторов. rs485 гальванически развязан на всякий случай.
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,410
976
58
Марий-Эл
Буковки плохо читаются. Я так понял, что вывод MISO используется.
Тактирование TIM4_CH3? Тогда он должен на CLK для SPI Поступать. Или как то по другому?
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
на макетке работает на 2 ленты сразу. в каждой может быть 600светодиодов.
Это все давным давно известно(в узких кругах:), поищите в гугле параллельный вывод на адресную ленту. Например с Дуе можно одновременно выводить до 11 каналов, что позволят обновлять порядка 7000 пикселей 50раз в секунду. Кроме Дуе такой режим доступен на многих других платах, в том числе на stn32f1 и stm32f4