189 похожих чатов

Коллеги, а никто не подскажет в какую сторону копать насчет

драйвера для ядра линукса на WS2811 RGB LED Strip?

33 ответов

35 просмотров

Что-то мне подсказывает: это проще делать на отдельной микрухе + UART или отдельном Cortex-M ядре. Такой ногодрыг (GPIO) не для ядра.

почитателям раста) https://github.com/phip1611/ws2818-rgb-led-spi-driver

Eugene-Kotsareu Автор вопроса
Eugene Kotsareu
да вот не могу понять надо ли пвм на ноге

Так посмотри на протокол. Там ШИМ не поможет. Самое простое взять ардуинку/синею таблетку/... и через UART/i2c/... отправлять данные с Linux на неё. А потом уже управлять светодиодами. Написать драйвер для Linux, который с микросекундной точностью будет дёргать GPIO не реально и неразумно. Эксперименты с чем-то другим отнимут много времени и нафиг не нужны.

Из ядра такое не стоит. Если прям не охото лишних железок то из юзерспейс можно замутить.

Eugene Kotsareu
Напрямую пин выкинуть?

если такое ногодрыгом будешь проворачивать - у тебя ядро колом станет или уронится. Можно в теории, шим кормить по таймеру ДМА, я думаю. Если таблицу приготовить. Но какой в этом смысл?

Alexandr Rudalev
Так посмотри на протокол. Там ШИМ не поможет. Само...

тем менее есть драйвера, которые умеют дергать ноги с микросекундной точностью, не уверен правда, что это можно делать на любом проце, но на малине можно

Konstantin Akmarov
тем менее есть драйвера, которые умеют дергать ног...

тут еще зависит что он хочет. Просто выставить цвет или со всякими фейдами красивые переливы вываливать

Leonid Zaliubovskyi
если такое ногодрыгом будешь проворачивать - у теб...

если в другом месте не надо так активно дергать ногами, то всё ок, ядро держит)

Konstantin Akmarov
если в другом месте не надо так активно дергать но...

мы этого не знаем, исходим из худшего варианта. Все как в реальной жизни 😀

Eugene Kotsareu
Напрямую пин выкинуть?

Да, через sys , хотя это вроде уже устаревший способ.

Leonid Zaliubovskyi
тут еще зависит что он хочет. Просто выставить цве...

я не знаю точностей как оно работает, но все вот эти переливы не фризят ядро

Leonid Zaliubovskyi
мы этого не знаем, исходим из худшего варианта. Вс...

я довольно долго тестировал ядро в таких условиях, вроде никаких подвисаний не заметил

Eugene Kotsareu
А какой актуальный?

Нужно доки смотреть. Но устаревший не значит, что его нельзя использовать. Просто новый более "безопасный".

Владимир
Да, через sys , хотя это вроде уже устаревший спос...

через sysfs дергать норгами можно конечно, но это как раз не оптимальный способ

Eugene-Kotsareu Автор вопроса
LexsZero
libgpiod

Вот его и думал, когда говорил «напрямую пин»

есть драйвера для конкретных борд, абьюзящие ту или иную периферию. ногодрыгом софтварным не выйдет.

Eugene-Kotsareu Автор вопроса
LexsZero
есть драйвера для конкретных борд, абьюзящие ту ил...

Ну нога свободна, с этим проблем не должно быть

Eugene Kotsareu
Ну нога свободна, с этим проблем не должно быть

дело не в свободности ноги, а в том что линукс это не ртос.

Konstantin Akmarov
через sysfs дергать норгами можно конечно, но это ...

Не совсем так. Он как раз более быстрый без оверхеда от библиотеки. Но можно накосячить.

Владимир
Не совсем так. Он как раз более быстрый без оверхе...

не, тормозной он. библиотека это очень тонкий враппер над йоктлом.

LexsZero
есть драйвера для конкретных борд, абьюзящие ту ил...

А что межает залейтвовать таймер в шиме

Иван
А что межает залейтвовать таймер в шиме

потому что надо менять скважность шима на каждый бит

Иван
Тогда нахрена линукс

чтоб крутить другой софт

LexsZero
потому что надо менять скважность шима на каждый б...

Собственно для STM32 я так и делал. DMA пишет из массива в регистр сравнения таймера, по half transfer рассчитывается новый буфер.

Konstantin Akmarov
я не знаю точностей как оно работает, но все вот э...

Даже если ты на лету ШИМ в драйвере перестраиваешь без дма? Хмм, мне всегда казалось что адекватный способ, при наличии чего либо, чем моргание ws281x, это готовить таблицу и напихивать ее в таймер ШИМ через дма. Если периферия так может конечно.

https://github.com/e-yes/ws2812-spi вообще на питоне запилил (автор оригинала не я, я говнокод вычистил)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта