Mysteo 0 April 1, 2024 Posted April 1, 2024 · Report post Да на бареметале тут тоже нормально не сделать, т.к у SPI нет евента от таймера. А если вешать на обработчик прерываний, то не хило ресурсов сожрет. Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 70 April 1, 2024 Posted April 1, 2024 · Report post 33 minutes ago, Mysteo said: А если вешать на обработчик прерываний, то не хило ресурсов сожрет. И джиттер лютый выйдет. Quote Share this post Link to post Share on other sites More sharing options...
Tarbal 4 April 2, 2024 Posted April 2, 2024 · Report post 4 hours ago, Mysteo said: Да на бареметале тут тоже нормально не сделать, т.к у SPI нет евента от таймера. А если вешать на обработчик прерываний, то не хило ресурсов сожрет. Это иначе делают. Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал. К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA. По заполнению буфера вызывать прерывание, в котором переключать буфер, перенастроив DMA. Quote Share this post Link to post Share on other sites More sharing options...
mantech 105 April 2, 2024 Posted April 2, 2024 (edited) · Report post 12 часов назад, Tarbal сказал: Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал. Ну тут все стандартно 12 часов назад, Tarbal сказал: К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA. А вот это каким образом реализовывать?? Да еще и как ТС хочет без использования прерываний... 17 часов назад, Mysteo сказал: Да на бареметале тут тоже нормально не сделать, т.к у SPI нет евента от таймера. А если вешать на обработчик прерываний, то не хило ресурсов сожрет. На бареметале, например в том же Т113, работу с SPI можно тупо возложить на одно из ядер А7, без прерываний и ДМА и малейшей загрузки первого ядра, или вообще переложить всю эту "почетную" обязанность на тот же hifi DSP... Edited April 2, 2024 by mantech Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 70 April 2, 2024 Posted April 2, 2024 · Report post 37 minutes ago, mantech said: переложить всю эту "почетную" обязанность на тот же hifi DSP... ...можно и не на бареметале))) Quote Share this post Link to post Share on other sites More sharing options...
mantech 105 April 2, 2024 Posted April 2, 2024 · Report post 22 минуты назад, aaarrr сказал: ...можно и не на бареметале))) Ну да, но ТСу я намекнул, что сам для подобных задач сначала выбрал бы соотв. железо... Quote Share this post Link to post Share on other sites More sharing options...
Mysteo 0 April 2, 2024 Posted April 2, 2024 · Report post On 4/2/2024 at 3:25 AM, Tarbal said: Это иначе делают. Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал. К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA. По заполнению буфера вызывать прерывание, в котором переключать буфер, перенастроив DMA. А что будет триггером для считывания данных ? На STM32 я просто настраивал таймер нужную частоту и евент от таймера делал триггером для считывания через DMA . А тут никаких триггеров у SPI нету. Quote Share this post Link to post Share on other sites More sharing options...
mantech 105 April 2, 2024 Posted April 2, 2024 · Report post 2 часа назад, Mysteo сказал: А тут никаких триггеров у SPI нету. Да, потому что это не стм32... Quote Share this post Link to post Share on other sites More sharing options...
Tarbal 4 April 2, 2024 Posted April 2, 2024 · Report post 7 hours ago, Mysteo said: А что будет триггером для считывания данных ? На STM32 я просто настраивал таймер нужную частоту и евент от таймера делал триггером для считывания через DMA . А тут никаких триггеров у SPI нету. Я о связи барметала и Линукса писал. Тригер внутри барметала. Там можно на прерывании таймера сделать. Можно подобрать частоту SPI так, чтобы читало без остановки, выдавая с нужной скоростью результат.Как раз время транзакции SPI совпадет с sampling rate. Quote Share this post Link to post Share on other sites More sharing options...
mantech 105 April 3, 2024 Posted April 3, 2024 · Report post 7 часов назад, Tarbal сказал: Тригер внутри барметала. Там можно на прерывании таймера сделать. Нет там триггера, от слова совсем, ни линух ни бареметал тут не помогут))) 7 часов назад, Tarbal сказал: Можно подобрать частоту SPI так, чтобы читало без остановки, выдавая с нужной скоростью результат.Как раз время транзакции SPI совпадет с sampling rate. А кто CSом дергать тогда будет? И ТС сразу отверг использование прерываний... Quote Share this post Link to post Share on other sites More sharing options...
Mysteo 0 April 3, 2024 Posted April 3, 2024 · Report post On 4/3/2024 at 8:30 AM, mantech said: И ТС сразу отверг использование прерываний... Да я не отверг. Просто пока еще не разобрался как в Linux все это организовано. Сейчас сначала попробую на baremetal написать программу. Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 70 April 3, 2024 Posted April 3, 2024 · Report post 1 hour ago, mantech said: ТС сразу отверг использование прерываний... Прерываться на 2.4М - очень так себе идея. 30 minutes ago, Mysteo said: Сейчас сначала попробую на baremetal написать программу. Правильно, вопрос требует исследования. Quote Share this post Link to post Share on other sites More sharing options...
mantech 105 April 3, 2024 Posted April 3, 2024 (edited) · Report post 4 часа назад, aaarrr сказал: Прерываться на 2.4М - очень так себе идея. Точнее не скажешь!))) Особенно когда нет аппаратного векторного контроллера, разве, что на FIQ но тоже есть вопросы... Edited April 3, 2024 by mantech Quote Share this post Link to post Share on other sites More sharing options...
Mysteo 0 April 8, 2024 Posted April 8, 2024 · Report post В общем сделал я на BareMetal всё, но скорости железа не хватает для обработки сигнала, пришлось делать overclock , в общем совсем не годится это железо. А если использовать T113-s3 Cortex-A7, можно будет на нем добиться желаемого под линуксом ? Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 70 April 8, 2024 Posted April 8, 2024 · Report post 19 minutes ago, Mysteo said: А если использовать T113-s3 Cortex-A7, можно будет на нем добиться желаемого под линуксом ? Если задействовать DSP - пожалуй, возможно. Но не уверен, стоит ли оно того. Quote Share this post Link to post Share on other sites More sharing options...