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