Jump to content

    

Измерение интервалов. Один счётчик с Fт vs два счётчика с Fт/2.

Доброго дня!

Требуется измерить интервал между двумя импульсами. Если организовать не один, а два счётчика (один по переднему фронту, другой - по заднему), и потом просуммировать результаты, уменьшится ли погрешность в 2 раза? Предполагается, что скважность счётных импульсов близка к 2.

Возможно, так делают и я изобретаю велосипед, но нет ли подводных камней?

Симуляция, вроде, ошибок не даёт.

Счётчик 100 MHz-1.7z

Edited by MrGalaxy

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

А вы можете использовать один счётчик но произвести не одно а мильен измерений одного импульса? 

Или в вашем распоряжении только ОДИН импульс? 

З. Ы. 

Два измерения повысят точность измерения но не в два раза, а меньше. 

 

Share this post


Link to post
Share on other sites
49 минут назад, ViKo сказал:

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

 

50 минут назад, Lmx2315 сказал:

А вы можете использовать один счётчик но произвести не одно а мильен измерений одного импульса? 

Или в вашем распоряжении только ОДИН импульс? 

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

54 минуты назад, ViKo сказал:

Но лучше между фронтами или срезами, не смешивая. 

Чем? 

55 минут назад, ViKo сказал:

Если измерение однократное, заполняйте интервал разными часстотами. Нониусный метод. 

Ну, в принципе, как вариант, подумаю, хотя не хотелось бы, лишние биения, наводки на приёмник.

56 минут назад, Lmx2315 сказал:

Два измерения повысят точность измерения но не в два раза, а меньше. 

Речь не о двух параллельных измерениях. Будет ли это эквивалентно одному измерению по одному фронту, но с удвоенной частотой?

Share this post


Link to post
Share on other sites
9 minutes ago, MrGalaxy said:

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

А возможное появление метастабильных состояний связанное с нарушением временных параметров "setup" и "hold" как-то учитывается?

Share this post


Link to post
Share on other sites
27 минут назад, blackfin сказал:

А возможное появление метастабильных состояний связанное с нарушением временных параметров "setup" и "hold" как-то учитывается?

Я ничего не понял.:dash3:

Догадываюсь, что это что-то типа состязания фронтов приёмного и счётного импульсов. А как его учтёшь? Никак, счётчик или нарастится, или останется в прежнем состоянии. Зондирующий же импульс сфазирован со счётными, там неопределённостей не будет.

ЗЫ. Я проект прикрепил в первом сообщении, он достаточно простой, там всё видно.

ЗЫЗЫ. И как бы то ни было, к моему вопросу это отношения не имеет.

Share this post


Link to post
Share on other sites
51 минуту назад, MrGalaxy сказал:

Я ничего не понял.:dash3:

Догадываюсь, что это что-то типа состязания фронтов... 

А я сразу не понял, пока код не посмотрел, о каких фронтах речь идёт. Ну да так вы поднимите частоту измерения вдвое. Другое дело что из-за особенностей реализации в плис  есть нюансы вроде как так делать не советуют. 

Надо сделать несколько фаз тактовой частоты на pll и провести входной сигнал через блок cdc (CLOCK DOMEN CROSS).

А о каких частотах измерения идёт речь? 

Share this post


Link to post
Share on other sites
46 minutes ago, Lmx2315 said:

Надо сделать несколько фаз тактовой частоты на pll и провести входной сигнал через блок cdc

Это ничего не даст. Проблема в том, что после CDC, импульс остановки счетчика в ветке с положительном фронтом клока может прийти позже импульса остановки счетчика прошедшего такой же CDC, но в ветке с отрицательным фронтом клока. Так что точность будет +/- 1 импульс клока..

Share this post


Link to post
Share on other sites
47 минут назад, Lmx2315 сказал:

так вы поднимите частоту измерения вдвое. Другое дело что из-за особенностей реализации в плис  есть нюансы вроде как так делать не советуют. 

Вот я и подозреваю, что не просто так, есть нюансы, и халява может не прокатить.:negative:

53 минуты назад, Lmx2315 сказал:

Надо сделать несколько фаз тактовой частоты на pll

Был бы ФАПЧ, не было б вопросов... Микросхемы с фапчом и частоты имеют повыше, можно так как я не извращаться.

Частота 100 МГц, уполовиненная соответственно 50.

38 минут назад, blackfin сказал:

точность будет +/- 1 импульс клока..

Почему 1? Вроде 1/2 должно быть. Счёт идёт 2 раза за период. :unknw:

Share this post


Link to post
Share on other sites

Приветствую!

15 minutes ago, MrGalaxy said:

Был бы ФАПЧ, не было б вопросов... Микросхемы с фапчом и частоты имеют повыше, можно так как я не извращаться.

Точность  положения фронта импульса относительно фронта тактовой можно оценивать  защелкивая вход импульса  несколькими триггерами  с фиксированной задержкой на на D входах.  А счетчиком считать только целое число тактов.

Удачи! Rob.

Share this post


Link to post
Share on other sites
2 hours ago, RobFPGA said:

Точность  положения фронта импульса относительно фронта тактовой можно оценивать  защелкивая вход импульса  несколькими триггерами  с фиксированной задержкой на на D входах. 

Может, у ТС CPLD и никаких регулируемых задержек на входах триггеров нету..

2 hours ago, MrGalaxy said:

 Почему 1? Вроде 1/2 должно быть. Счёт идёт 2 раза за период. 

Ну, вы же не от хорошей жизни понижаете частоту клока в два раза? Значит, можно предположить, что суммарное время "setup"+"hold" для каждого триггера больше времени периода 100 MHz клока. Но если подать один и тот же входной импульс на два триггера со сдвинутыми на 180 град. 50 MHz клоками, то вероятна ситуация, когда в одном триггере будет нарушено время "setup", а во втором триггере будет нарушено время "hold", в результате чего оба триггера окажутся в метастабильном состоянии из которого выйдут только на следующих фронтах своих 50 MHz клоков..

Как-то так, КМК..

Share this post


Link to post
Share on other sites

Приветствую!

13 minutes ago, blackfin said:

Может, у ТС CPLD и никаких задержек на входах триггеров нету..

А какая разница CPLD или FPGA?  задержку (в логике) можно сделать и там и там - вопрос лишь в числе на период клока (минимально реализуемой задержки) и точности.  Если уж так припрет то можно сделать и снаружи линию задержки с отводами на  мелких буферах  и RC цепочках.

Удачи! Rob.

Share this post


Link to post
Share on other sites

Коллеги, вы отвлеклись. Расскажите лучше, плз., про особенности тактирования двух независимых счётчиков передним и задним фронтом одного и того же сигнала.

(Имеется в виду аппаратные особенности, не воспроизводимые симулятором).

Share this post


Link to post
Share on other sites
7 minutes ago, MrGalaxy said:

Расскажите лучше, плз., про особенности тактирования двух независимых счётчиков передним и задним фронтом одного и того же сигнала.

Я бы посоветовал почитать у Xilinx'а XAPP523. Возможно, удастся решить проблему одним счетчиком и одной FSM для определения значения младшего разряда. Нужно будет только воспроизвести в своей ПЛИС схему ISERDES в режиме OVERSAMPLING.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now