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

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

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

33 ответов

11 просмотров

Что-то мне подсказывает: это проще делать на отдельной микрухе + 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 вообще на питоне запилил (автор оригинала не я, я говнокод вычистил)

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

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

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Дорогие любители Прекрасной Джулии! Есть кто-то имеющий практический опыт построения ML для Систем Управления? Нам нужно сделать нейросеть для автоматической подстройки пара...
Roman Timo
4
С той же поддержкой Android в тулчейне, если кому интересно. На Swift Forums шло убогое обсуждение всякой херни годами, но ничего годного так и не появлялось. Пришел vgorloff ...
iMike
1
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Приветствую ребята,у меня база есть,прорешал много задач с литкода,там деревья,списки, бэктрэкинг и все остальное,что мне сейчас делать?есть может куда устроиться поработать,е...
Aקuст Lеתסuд Aקuст Lеתסuд
5
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
4
Anybody want this chat app? If anybody interested dm  me.. Note - Firstly payment then i send you code but i will show work on gmeet.
Rayyan Ahmad
5
Карта сайта