реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> stm32f100 ацп, сдвиг тактовой относительно CPU
Neekeetos
сообщение Feb 7 2014, 07:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-09-08
Пользователь №: 39 958



Привет всем!

Есть ацп в ф100 , который делает регулярные замеры по таймеру. Тактовая частота ацп равна половине тактовой процессора.
При этом заметил такую вещь - видимо есть зависимость момента выборки ацп от сдвига его тактовой!
Грубо говоря есть два варианта расположения тактов ацп по отношению к выходу таймера, который запускает преобразование -
без сдвига и со сдвигом на 1 такт процессора. При этом если сдвиг равен нулю то все работает замечательно, если же он равен 1 то выборка видимо происходит
в два разных момента времени на соседних тактах процессора!
Измеряю я треугольный периодический сигнал, поэтому сдвиг увх очень важен, а тут такой косяк возник sad.gif.
Собственно кто что посоветует? может сталкивались с такой проблемкой? Я сейчас думаю синхронизировать таймер с тактами ацп, но как это сделать ума не приложу , прескалер ацп по моему недоступен.

ЗЫ Период таймера естественно четный и соотв должен быть фиксирован относительно тактов ацп.
ЗЫЗЫ Все выводы сделаны по результатам замеров, конкретно поймать джиттер на осцилографе я не пытался, возможно сам эффект возникает по каким либо другим причинам, о которых я не в курсе.

Измерения рушатся примерно так:

изменений никаких , просто два графика между которыми происходил сброс процессора.


Сообщение отредактировал Neekeetos - Feb 7 2014, 07:33
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Feb 7 2014, 09:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



может запускать АЦП мерить сигнал, потом сдвигать на 1 такт запуск, мерить сигнал, оценивать шум, и работать в том режиме в котором шум меньше?
Go to the top of the page
 
+Quote Post
Neekeetos
сообщение Feb 7 2014, 09:42
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-09-08
Пользователь №: 39 958



После специального исследования вопрос немного поменялся. Джиттера обнаружено не было, однако эффект возник именно из за того , что фаза тактов ацп может быть со сдвигом относительно начала счета таймера на один такт процессора. В результате в моей схеме иногда измерение ацп завершалось ровно в начале периода таймера и все работало отлично, а иногда было позднее и захватывало переходный процесс, а ошибки соотв результат осреднения этого процесса.

Цитата(Golikov A. @ Feb 7 2014, 13:01) *
может запускать АЦП мерить сигнал, потом сдвигать на 1 такт запуск,

Именно, теперь все сводится к корректной синхронизации тактовой ацп и таймера, чтобы у них взаимно фаза не плавала sm.gif.
Интересно как это лучше сделать в стмке?
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 7 2014, 10:50
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Есть режим запуска одного таймера от другого. Тактируем "запускающий" таймер с частотой проца, при обнаружении сдвига делаем перезапуск таймера АЦП со сдвигом на 1 такт.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Feb 7 2014, 11:31
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



я бы сделал 2 функции запуска АЦП одну простую, другую с NOP в начале.
После того как все стартануло и работает, таймер имеет какой-то стабильный такт запуска относительно тактов проца.
запускаем в этом таймере одну функцию, потом другую, и смотрим как лучше....
Go to the top of the page
 
+Quote Post
Neekeetos
сообщение Feb 7 2014, 11:40
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-09-08
Пользователь №: 39 958



Цитата(scifi @ Feb 7 2014, 14:50) *
при обнаружении сдвига делаем перезапуск таймера АЦП со сдвигом на 1 такт.

Таймер имеет тактирование с точностью тактов процессора, это у ацп тактовая в два раза ниже. Сдвинуть именно таймер на один такт нет проблемы (достаточно уменьшить его период на единицу один раз). Непонятно как обнаружить что есть сдвиг у тактов ацп или задать его жестко при запуске программы.

Цитата(Golikov A. @ Feb 7 2014, 15:31) *
После того как все стартануло и работает, таймер имеет какой-то стабильный такт запуска относительно тактов проца.

Из за того что прескалер ацп нельзя сбросить вариант с ноп не сработает, поскольку изначальное состояние делителя тактовой ацп не определено.
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 7 2014, 11:47
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Neekeetos @ Feb 7 2014, 15:40) *
Непонятно как обнаружить что есть сдвиг у тактов ацп или задать его жестко при запуске программы.

В схеме завести один из выходов таймера на вход АЦП. Тогда сдвиг можно будет измерить.
Go to the top of the page
 
+Quote Post
Neekeetos
сообщение Feb 7 2014, 11:49
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-09-08
Пользователь №: 39 958



Цитата(scifi @ Feb 7 2014, 15:47) *
В схеме завести один из выходов таймера на вход АЦП.

Я сейчас именно такой вариант и делаю, хотя конечно получается довольно коряво sm.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Feb 7 2014, 11:52
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(Neekeetos @ Feb 7 2014, 15:40) *
Таймер имеет тактирование с точностью тактов процессора, это у ацп тактовая в два раза ниже. Сдвинуть именно таймер на один такт нет проблемы (достаточно уменьшить его период на единицу один раз). Непонятно как обнаружить что есть сдвиг у тактов ацп или задать его жестко при запуске программы.


Из за того что прескалер ацп нельзя сбросить вариант с ноп не сработает, поскольку изначальное состояние делителя тактовой ацп не определено.


если у вас есть схема старт АЦП
и схема НОП, Старт АЦП

то эти 2 схемы покрывают все варианты старта АЦП с 0 или задержкой в 1 клок после таймера. Дальше вопрос какой из вариантов выбрать. Я предлагаю выбирать по минимальному шуму, но можно и таймер мерить. Выбрав одну, ее и использовать, не меняя таймер.


Или же в вашем варианте: измерить АЦП, сдвинуть таймер, опять померить. и решить какой вариант лучше.
Go to the top of the page
 
+Quote Post
Neekeetos
сообщение Feb 7 2014, 12:08
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-09-08
Пользователь №: 39 958



Цитата(Golikov A. @ Feb 7 2014, 15:52) *
если у вас есть схема старт АЦП
и схема НОП, Старт АЦП

Кстати это интересный вопрос, сбрасывается ли прескалер ацп если ацп выключать, если так то можно вполне определенно все сделать с нопами без каких либо дополнительных настроек! Либо же замерять фактическое положение фронта на выходе таймера как второй вариант. По шуму сложно что либо определить, те графики которые я привел по куче измерений а не по одному.
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Feb 7 2014, 13:19
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(Neekeetos @ Feb 7 2014, 11:27) *
Измерения рушатся примерно так:

А есть уверенность, что проблема после АЦП, а не до? Хорошо бы сначала посмотреть на антиалиас фильтр и вообще, хоть пару слов о сигнале сказать. Если судить по картинке, то очень похоже на биения. Но лечить их таймерами/прескейлерами - как мертвому припарки.
Go to the top of the page
 
+Quote Post
Neekeetos
сообщение Feb 7 2014, 14:32
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-09-08
Пользователь №: 39 958



Цитата(Tahoe @ Feb 7 2014, 17:19) *
А есть уверенность, что проблема после АЦП, а не до?

Уверенность есть, на картинке не сам сигнал. Сам сигнал примерно такой

, при этом ацп осуществляет выборку напряжения условно говоря на верхушках этих треугольников, так что выборка заканчивается ровно перед сменой направления. После смены там идет переходный процесс из за оу, так что если выборка не точно спозиционирована, то он захватывается и искажает измерения. Самих переходов разное количество в зависимости от измеряемого сигнала, так что эта ошибка измерения зависит от него дискретно. График который я привел в начале это замеры для линейно меняющегося сигнала, видны ступеньки где суммарное количество переходов поменялось.
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Feb 7 2014, 15:38
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(Neekeetos @ Feb 7 2014, 18:32) *
Уверенность есть, на картинке не сам сигнал.

"Оптимизм обоснованный"(с) ?

Цитата(Neekeetos @ Feb 7 2014, 18:32) *
График который я привел в начале это замеры для линейно меняющегося сигнала, видны ступеньки где суммарное количество переходов поменялось.

Информативность ответа потрясает. Видимо, на свете существует всего один линейно меняющийся сигнал и его параметры можно опустить, т.к. они и так всем известны.

Кроме того, ни на графике, ни вокруг него, нет ни слова об антиалиас фильтре. Ни о его частоте и порядке, ни о требуемом кол-ве разрядов. Видимо, для данного случая, Найквист с Котельниковым сделали исключение? Где можно об этом почитать?
Если же измерение производится в т.н. "стробоскопическом режиме", тогда причем тут график с неким линейным сигналом, неизвестной частоты и формы?

Неужели так трудно просто ответить, мол, фильтр такой-то, частота среза такая-то, порядок такой-то. Я понимаю, что все мы тут самые умные и нет времени, а точнее просто лениво, расписывать некие подробности, которые считаем несущественными, к тому же "точно знаю, что дело не в этом". Но тогда зачем идти с вопросами в конфу?
Go to the top of the page
 
+Quote Post
Neekeetos
сообщение Feb 7 2014, 16:00
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 2-09-08
Пользователь №: 39 958



Цитата(Tahoe @ Feb 7 2014, 19:38) *
Информативность ответа потрясает. Видимо, на свете существует всего один линейно меняющийся сигнал и его параметры можно опустить, т.к. они и так всем известны.

Там скрин с осцилографа, все параметры четко видны, какие еще неизвестные пропущены? инструкция пользователя?

Цитата(Tahoe @ Feb 7 2014, 19:38) *
Неужели так трудно просто ответить, мол, фильтр такой-то, частота среза такая-то, порядок такой-то. Я понимаю, что все мы тут самые умные и нет времени, а точнее просто лениво, расписывать некие подробности, которые считаем несущественными, к тому же "точно знаю, что дело не в этом". Но тогда зачем идти с вопросами в конфу?

Так вопрос уже по большому счету решен. Смысл воду в ступе толочь. Фильтр есть, первого порядка в виде рц цепочки, но служит он для согласования увх ацп и выхода оу. Оцифровка как вы верно подметили синхронная, так что найквист и прочие тут не при чем. Схема - это управляемый интегратор, замеры нужны чтобы оценить остаток заряда на нем, по какой траектории движется сигнал между точками измерения абсолютно не важно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Feb 7 2014, 16:55
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



а как вы синхронизируетесь с сигналом? как вы узнаете время и прочее? Сигнал тоже вы генерите?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 05:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.0151 секунд с 7
ELECTRONIX ©2004-2016