Синхронизация кода и АЦП в STM32

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
FPGAlover
Прорезались зубы
Сообщения: 210
Зарегистрирован: Пн окт 21, 2013 07:33:45

Синхронизация кода и АЦП в STM32

Сообщение FPGAlover »

Доброго дня!

Подскажите, возможно ли синхронизировать выполнение кода с тактами АЦП?

Вопрос возник применительно к следующей задаче:
системная частота 120МГц.
частота тактирования АЦП 30МГц.

Сначала программа выставляет синхроимпульс через GPIO, запускающий физ. процесс. Далее запускается АЦП в трипл моде +дма (в окне 1024 выборки).
И все бы ничего, да вот синхроипульс привязан к 120МГц, а процесс оцифровки к 30МГц.
Соответственно полученные данные могут быть смещены по времени на n/120мгЦ (n = 0..3)сек (до 3х тактов системной частоты) в зависимости от того, как кости лягут.

Единственное, что приходит в голову, сделать основной цикл программы, кратным 4м тактам процессора. Однако это ересь хотя бы по причине отказа от всех прерываний :)
Шоб я польку танцевал..
Реклама
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Синхронизация кода и АЦП в STM32

Сообщение Neekeetos »

FPGAlover писал(а):Единственное, что приходит в голову, сделать основной цикл программы, кратным 4м тактам процессора. Однако это ересь хотя бы по причине отказа от всех прерываний :)
Если именно номер такта не важен а нужно оценить относительную фазу то можно запустить таймер на частоте мк и с периодом кратным 4. Тогда в точке программы где нужна синхронизация можно будет считать счетчик у таймера и узнать в какую из фаз была сделана команда считывания, затем сделать задержку зависящую от этого числа и после нее все что будет выполняться попадет на условно нулевую фазу относительно ацп.
Информация по RLC mini находится >тут<
Реклама
FPGAlover
Прорезались зубы
Сообщения: 210
Зарегистрирован: Пн окт 21, 2013 07:33:45

Re: Синхронизация кода и АЦП в STM32

Сообщение FPGAlover »

Neekeetos
Огромное спасибо! То что надо!
Фаза действительно не важна, лишь бы одинаковая!
А таймеры в STM действительно могут тактироваться SysClk div 1 !!!!
Вот же... был уверен, что 60 для них максимальная частота (при SysClk=120).

Осталось изящную задержку запилить :)
Шоб я польку танцевал..
Ответить

Вернуться в «ARM»