Перейти к содержанию
    

Да на бареметале тут тоже нормально не сделать, т.к у SPI нет евента от таймера. А если вешать на обработчик прерываний, то не хило ресурсов сожрет. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 minutes ago, Mysteo said:

А если вешать на обработчик прерываний, то не хило ресурсов сожрет.

И джиттер лютый выйдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Mysteo said:

Да на бареметале тут тоже нормально не сделать, т.к у SPI нет евента от таймера. А если вешать на обработчик прерываний, то не хило ресурсов сожрет. 

Это иначе делают. 
Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал. К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA.
По заполнению буфера вызывать прерывание, в котором переключать буфер, перенастроив DMA. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, Tarbal сказал:

Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал.

Ну тут все стандартно

12 часов назад, Tarbal сказал:

К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA.

А вот это каким образом реализовывать?? Да еще и как ТС хочет без использования прерываний...

17 часов назад, Mysteo сказал:

Да на бареметале тут тоже нормально не сделать, т.к у SPI нет евента от таймера. А если вешать на обработчик прерываний, то не хило ресурсов сожрет. 

На бареметале, например в том же Т113, работу с SPI можно тупо возложить на одно из ядер А7, без прерываний и ДМА и малейшей загрузки первого ядра, или вообще переложить всю эту "почетную" обязанность на тот же hifi DSP...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 minutes ago, mantech said:

переложить всю эту "почетную" обязанность на тот же hifi DSP...

...можно и не на бареметале)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, aaarrr сказал:

...можно и не на бареметале)))

Ну да, но ТСу я намекнул, что сам для подобных задач сначала выбрал бы соотв. железо...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/2/2024 at 3:25 AM, Tarbal said:

Это иначе делают. 
Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал. К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA.
По заполнению буфера вызывать прерывание, в котором переключать буфер, перенастроив DMA. 

А что будет триггером для считывания данных ? На STM32 я просто настраивал таймер нужную частоту и евент от таймера делал триггером для считывания через DMA . А тут никаких триггеров у SPI нету.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Mysteo сказал:

А тут никаких триггеров у SPI нету.

Да, потому что это не стм32...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, Mysteo said:

А что будет триггером для считывания данных ? На STM32 я просто настраивал таймер нужную частоту и евент от таймера делал триггером для считывания через DMA . А тут никаких триггеров у SPI нету.

Я о связи барметала и Линукса писал. Тригер внутри барметала. Там можно на прерывании таймера сделать.
Можно подобрать частоту SPI так, чтобы читало без остановки, выдавая с нужной скоростью результат.Как раз время транзакции SPI совпадет с sampling rate.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, Tarbal сказал:

Тригер внутри барметала. Там можно на прерывании таймера сделать.

Нет там триггера, от слова совсем, ни линух ни бареметал тут не помогут)))  

7 часов назад, Tarbal сказал:

Можно подобрать частоту SPI так, чтобы читало без остановки, выдавая с нужной скоростью результат.Как раз время транзакции SPI совпадет с sampling rate.

А кто CSом дергать тогда будет? И ТС сразу отверг использование прерываний...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/3/2024 at 8:30 AM, mantech said:

И ТС сразу отверг использование прерываний...

Да я не отверг. Просто пока еще не разобрался как в Linux все это организовано. Сейчас сначала попробую на baremetal написать программу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

ТС сразу отверг использование прерываний...

Прерываться на 2.4М - очень так себе идея.

 

30 minutes ago, Mysteo said:

Сейчас сначала попробую на baremetal написать программу.

Правильно, вопрос требует исследования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, aaarrr сказал:

Прерываться на 2.4М - очень так себе идея.

Точнее не скажешь!))) Особенно когда нет аппаратного векторного контроллера, разве, что на FIQ но тоже есть вопросы...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем сделал я на BareMetal всё, но скорости железа не хватает для обработки сигнала, пришлось делать overclock , в общем совсем не годится это железо. 
А если использовать T113-s3 Cortex-A7, можно будет на нем добиться желаемого под линуксом ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, Mysteo said:

А если использовать T113-s3 Cortex-A7, можно будет на нем добиться желаемого под линуксом ?

Если задействовать DSP - пожалуй, возможно. Но не уверен, стоит ли оно того.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...