mantech 48 9 апреля Опубликовано 9 апреля · Жалоба 2 часа назад, GenaSPB сказал: Посмотрите на временные диаграммы в даташите АЦП - мне показалось что можно подобрать. Вполне возможно. Никогда не имел дел с этим аудиоинтерфейсом, поэтому и не рекомендовал его... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 9 апреля Опубликовано 9 апреля · Жалоба В общем пока я сделал мост SPI - SPI на STM32F427, он под рукой был. Там даже никакой огород городить не пришлось, т.к SPI имеет железную поддержку TI протокола. Хотел сделать SPI - USB , но у USB_FS пропускной способности не хватило, а для USB_HS нужнен физический интерфейс. Сейчас все практически заработало, проблемы только с разрывами между кадрами, т.к криворукий и не врублюсь как сделать непрерывный прием под Linux. Я использую spidev и по 4кб данных считываю. И вот между вызовами чтения как раз разрыв кадра и происходит. Заказчик не хочет baremetal использовать, нужен именно Линукс. Сейчас буду разбираться плотнее с SPI под линуксом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 9 апреля Опубликовано 9 апреля · Жалоба 30 minutes ago, Mysteo said: как сделать непрерывный прием под Linux Боюсь, никак. Только буферизацией внутри моста можно бороться с разрывами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 10 апреля Опубликовано 10 апреля · Жалоба 12 часов назад, aaarrr сказал: Боюсь, никак. Что, даже i2s не поможет что-ли? 13 часов назад, Mysteo сказал: Заказчик не хочет baremetal использовать, нужен именно Линукс. Если не секрет, чем он это объясняет? Стильно, модно, молодежно, или есть какая-то существенная причина? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 10 апреля Опубликовано 10 апреля · Жалоба 24 minutes ago, mantech said: Что, даже i2s не поможет что-ли? Причем тут I2S? Речь про spidev с мостом на МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 10 апреля Опубликовано 10 апреля · Жалоба Если гора не идёт к Магомету, то может Магомету пойти к горе? Если нельзя отказаться от линуха и он обязательно нужен, то может тогда заменить контроллер на такой, в котором есть подходящая периферия, которая позволит реализовать нужную диаграмму работы SPI? (и при этом не мешать работе линуха на нём же). Или хотя-бы есть отдельное ядро, которое можно выделить исключительно для эмуляции SPI? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 10 апреля Опубликовано 10 апреля (изменено) · Жалоба 6 часов назад, jcxz сказал: Или хотя-бы есть отдельное ядро, которое можно выделить исключительно для эмуляции SPI? Отдельное ядро есть, даже в Т113ом, либо одно кортекса, либо ДСП. Тут уже об этом написано выше и не раз... 7 часов назад, aaarrr сказал: Речь про spidev с мостом на МК. Вы про это "В общем пока я сделал мост SPI - SPI на STM32F427" ? Я то все про то, чтобы еще один МК не городить))) Ну если ТСу так хочется, то пускай городит))) Изменено 10 апреля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 10 апреля Опубликовано 10 апреля · Жалоба 19 minutes ago, mantech said: Вы про это "В общем пока я сделал мост SPI - SPI на STM32F427" ? Да, про это. I2S может помочь, но надо внимательно смотреть на предмет стыкуемости с АЦП. И отдельный драйвер городить придется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 10 апреля Опубликовано 10 апреля · Жалоба Теоретически могу прелставить вариант линуксовский: Полнимается i2s. Штатными средствами. Затем модификациями регистров (что там для их маппинга в память надо сделвть) переводится в режим pcm и получаем поток сэмплов тес же способом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 10 апреля Опубликовано 10 апреля · Жалоба 21 minutes ago, GenaSPB said: Полнимается i2s. Штатными средствами. Затем модификациями регистров (что там для их маппинга в память надо сделвть) переводится в режим pcm и получаем поток сэмплов тес же способом. Достаточно драйвер модифицировать. Но "штатные средства" в виде alsa могут и подавиться таким потоком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 10 апреля Опубликовано 10 апреля (изменено) · Жалоба On 4/10/2024 at 5:41 PM, aaarrr said: Достаточно драйвер модифицировать. Но "штатные средства" в виде alsa могут и подавиться таким потоком. тут больше проблема что штатными средствами для звука мегагерцы не предусмотрены, можно просто например подразумевать вместо этих констант х10 и соотвественно настраивать интерфейс https://elixir.bootlin.com/linux/latest/source/include/sound/pcm.h#L122 alsa может напрямую обращаться к кольцевому буферу драйвера через mmap без копирования - нечем особо давиться, при захвате видео на порядки больше данных, главное чтобы процессор успевал обрабатывать. Изменено 10 апреля пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 11 апреля Опубликовано 11 апреля · Жалоба 8 часов назад, sasamy сказал: alsa может напрямую обращаться к кольцевому буферу драйвера через mmap без копирования Ну а просто прога пользователя разве не может тоже к этому буферу обращаться? 8 часов назад, sasamy сказал: главное чтобы процессор успевал обрабатывать. Вот тут тоже непонятно, что ТС будет делать дальше с этим потоком, разве, что какая-то простая логика обработчика, что-то сложное может и не успеть... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 11 апреля Опубликовано 11 апреля (изменено) · Жалоба On 4/11/2024 at 9:23 AM, mantech said: прога пользователя разве не может тоже к этому буферу обращаться? может конечно - можно напрямую через ioctl взаимодействовать с драйвером без alsa-lib, можно вообще не использовать штатные API ядра и написать свой драйвер со своими ioctl а драйвер i2s из аудиоподсистемы взять за основу Изменено 11 апреля пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 11 апреля Опубликовано 11 апреля (изменено) · Жалоба On 4/11/2024 at 9:23 AM, mantech said: от тут тоже непонятно, что ТС будет делать дальше с этим потоком, разве, что какая-то простая логика обработчика, что-то сложное может и не успеть с этого вообще и надо начинать - от назначения зависит выбор API для какой подсистемы делать драйвер или своё думать, работать с устройствами через /dev/spidev это худшее что можно сделать. Для ацп есть iio - там тоже mmap есть https://wiki.analog.com/resources/tools-software/linux-software/libiio_internals#high-speed_mmap_interface Изменено 11 апреля пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 11 апреля Опубликовано 11 апреля · Жалоба On 4/10/2024 at 8:59 AM, mantech said: Что, даже i2s не поможет что-ли? Если не секрет, чем он это объясняет? Стильно, модно, молодежно, или есть какая-то существенная причина? Да заказчик далекий от встраиваемых систем человек и ему нужен линукс, потому что через него удобно обновлять ПО и ему не объяснить , что на устройстве по хорошему и пакет менеджера быть то не должно. В общем решил пойти по простому для себя пути, в релизе будет мост SPI - SPI , а эти драйвера писать будет уже сторонний человек. Алгоритм обработки сигнала там не особо сложный, около 20 процентов F1C200s грузится от него Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться