Evgeniy
особенно это круто делается на stm32, шим через дма
Только так и делается. Только китайцы клепают эти драйверы на GD32
Ruslan
Только так и делается. Только китайцы клепают эти драйверы на GD32
ну, будем честны, сделать можно всяко но максимально производительно и надёжно будет через DMA, а для этого надо хорошо понимать, что происходит "внутри неонки"
Evgeniy
особенно это круто делается на stm32, шим через дма
Какой ШИМ, алё? ШИМ для RGB лент, только не адресных. Только на SPI можно сделать.
Ruslan
А контейнер зачем?
чтобы дерьмища не ставить, ну и М1 у меня
Dr Zlo
У меня нативно все, M1 pro
Evgeniy
Адресные тоже нормально управляются через шим
Бред абсолютный. Отличия ШИМ от цифрового интерфейса не понимаешь 😁
Dr Zlo
Генеришь таймером управляющую последовательность просто
Ruslan
тихо, не рассказывай, пусть подумает )))
Dr Zlo
https://narodstream.ru/stm-urok-119-ws2812b-lenta-na-umnyx-svetodiodax-rgb-chast-2/
Dr Zlo
Например
Ruslan
всё испортил
Evgeniy
Генеришь таймером управляющую последовательность просто
Извините, доктор зло, но у вас непонимание основ. Скорее всего на практике вы этого не делали. Я уже объяснял коллеге, который безуспешно пытался собрать решение на базе таймера и ШИМ, почему этот вариант нестабильно работает, слишком сильно грузит проц и излишне переусложнен. Ещё и плохо повторяем на разных процах. Все дело в весьма малых длительность импульсов на интерфейсе адресных лент. Единственный надёжный способ - управление через SPI.
Ruslan
Evgeniy
Именно так работают все серийные драйверы адресных лент. Потому что современные ленты - это переход от старого варианта, где было 2 линии: clock & data к варианту с одной линией данных. Для совместимости как был там SPI, так и остался.
Evgeniy
@ruslanpopov вы тоже не работали с адресными LED лентами, если эту чушь про ШИМ рассказываете. Это как велосипед на квадратных колесах. Ещё и с плохой повторяемостью, излишней сложностью и загрузкой проца.
Ruslan
WS2812B - я вот с этим работал
Evgeniy
@Dr_Zlo13 только не надо рассказывать, что все дураки и потому используют SPI 😁https://ledstripstudio.com/spi-led-controller/ Любые драйверы адресных лент как были на SPI, так и остались.
Evgeniy
Впрочем, нет ни одного драйвера адресной ленты в продаже, где применены таймеры для генерирования цифрового кода. Потому что у лент цифровой интерфейс 😁
Ruslan
WS2812B - я вот с этим работал
это адресная лента?
Evgeniy
Любая лента, где можно управлять каждым пикселем - это адресная лента с цифровым интерфейсом
Dr Zlo
Извините, доктор зло, но у вас непонимание основ. Скорее всего на практике вы этого не делали. Я уже объяснял коллеге, который безуспешно пытался собрать решение на базе таймера и ШИМ, почему этот вариант нестабильно работает, слишком сильно грузит проц и излишне переусложнен. Ещё и плохо повторяем на разных процах. Все дело в весьма малых длительность импульсов на интерфейсе адресных лент. Единственный надёжный способ - управление через SPI.
Чего? Какая малая длительность, какая нагрузка, какой проц? Там микросекунды, для таймеров которые дискретизируются в десятки наносекунд проблем нет. А про нагрузку - у меня есть проект в котором процессор не делает вообще ничего, но при этом управляет адресными ледами. Вы про dma слышали когда-нибудь?
Alex
ардуино сразу забудь, если у тебя не мелкая лента светодиодов
А чем плох ардуино? У меня 3 ленты, 5м rgb, 5m cct и 100шт адресных ws2811. К последним не сильно большие требования, рандомная гирлянда или что то типа как у дешёвых китайских контроллеров с пультом
Ruslan
https://vk.com/wall19523249_3251
Ruslan
вот, WS2812B PWM over DMA ))) лично делал
Ruslan
ЭТО НЕВОЗМОЖНО
тоже так думаю, поэтому код не выкладываю )
Dr Zlo
Конечно, но зачем, если есть аппаратный интерфейс для ленты.
Так "только на spi возможно сделать", или "на таймерах можно, но лучше на spi"?
Ruslan
код лет пять назад писал, запамятовал
Ruslan
я вроде на прерывании сделал, надо будет глянуть, но пока таких задач нет
Evgeniy
Один таймер на 4 линии светодиодов, без прерываний.
Адресная rgb лента? На самом деле на SPI на всегда проще получается и переносимее, на те же ESP и куда угодно
Ruslan
я там считал, обычный F100 мог дохрена пикселей обеспечить
Evgeniy
Фишка же в том, что отказавшись от "не нужной" линии clock производители лент сохранили совместимость с существующими драйверами лент. Где только ПО поправить понадобилось.
Ruslan
а есп вроде побыстрее в разы
Evgeniy
Мне просто хочется понять, переобувка была или нет.
Не было, потому что решение на таймерах всегда сложнее и менее переносимо между железом. Интерфейс же как был spi, так и остался.
Evgeniy
Потому на любом хламе запускается на SPI и обычно, с решением на таймерах - возня.
Evgeniy
В том числе на esp, и на stm32f030, может даже на ардуино
Ruslan
Адресная
мне красота решения понравилась, я помню тогда офигел и долго не мог понять как оно вообще работает
Evgeniy
Да ладно!
Evgeniy
RAM жрет, да?
Dr Zlo
Да ладно!
Посчитайте мне fps на дисплее в 20к светодиодов?
Evgeniy
А зачем? Для этого pixel pusher ставишь и управляешь
Dr Zlo
Учитывая что блок spi в лучшем случае в камне один
Evgeniy
Так суть в том, чтобы грузить порциями через DMA данные туда в любом кол-ве
Dr Zlo
А зачем? Для этого pixel pusher ставишь и управляешь
Вам чтобы обновить 20к светодиодов по одному поводу надо их обновить все
Dr Zlo
Тайминги известны, посчитайте сколько времени будет нужно
Evgeniy
Для этого ставят специализированные контроллеры и не заморачиваются. В том числе на несколько выходов.
Dr Zlo
Я понял, вы не работали с промышленным проектами таких дисплеев, вопрос исчерпан.
Ruslan
У меня нативно все, M1 pro
как настраивал? я с контейнером возился, чтобы CICD организовать на сервере для прошивок
Dr Zlo
как настраивал? я с контейнером возился, чтобы CICD организовать на сервере для прошивок
На гитхабе есть готовые воркеры под это, глянь https://github.com/flipperdevices/blackmagic-esp32-s2
Dr Zlo
Я там настраивал выгрузку билдов
Evgeniy
Я понял, вы не работали с промышленным проектами таких дисплеев, вопрос исчерпан.
Для промышленых решений используются вот такие контроллеры. https://www.illumn.com/pixelpusher-nanoleaf-rgb/pixelpusher-and-led-strips/heroic-robotics-pixelpusher.html Потому что бюджет позволяет 😁 8 led strips
Dr Zlo
как настраивал? я с контейнером возился, чтобы CICD организовать на сервере для прошивок
https://pronoy.in/clion/c/c++/esp32/microcontrollers/applem1/2022/01/01/setting-up-esp-idf-on-clion-for-esp32-development-on-apple-m1.html idf по этой статье ставил
Dr Zlo
И потом просто vscode обмазал плагинами
Dr Zlo
Для промышленых решений используются вот такие контроллеры. https://www.illumn.com/pixelpusher-nanoleaf-rgb/pixelpusher-and-led-strips/heroic-robotics-pixelpusher.html Потому что бюджет позволяет 😁 8 led strips
Очень интересный процессор с 8 линиями spi, да. Удивительно как они это сделали. Ещё удивительно что это единственный такой драйвер, и в мире точно нет драйверов которые на голом процессоре и таймерах драйвят гораздо большие экраны.
Dr Zlo
Табличка сарказма отвалилась, если что.
Ruslan
Я там настраивал выгрузку билдов
не, я про М1, CICD я настроил
Ruslan
там CLion 🙁
Anonymous
Эксперты. Имеется строка (очень длинная). Заливаю код на ноуте, отрабатывает идеально. На ардуинке бред какой-то. Самое странное, что это обычная конкатенация строк...
Anonymous
нужно код глянуть, может строки на стеке
Тут 10 строк, скрином норм будет?
Dr Zlo
там CLion 🙁
Какая разница для чего устанавливать idf?
Ruslan
Какая разница для чего устанавливать idf?
Install the Microchip cryptoauthlib library - а это зачем?
Сергей
Вопрос : плату с есп32 nodemcu просто подключаешь к компу по юсб и заливаешь прошивку, а можно вот такой модуль прошить простым переходником юсб уарт?
Сергей