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

Сревнение двух частот

Есть два кварцевых генератора, частота 28мГц, с точностью/стабильностью 50ррм.

Процессор STM32F103 должен определить у какого генератора частота выше.

Абсолютное значение не интересует.

Я пока ничего умнее не придумал, чем подать на два счетчика, запустить их одновременно, через какое-то время остановить и посмотреть на разницу в показаниях.

Какое достаточное время для измерения?

Или может есть другой способ?

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


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

Можно из одного сигнала сделать некий интервал, скажем, 1-2с, и за это время посчитать другой сигнал. Должно быть точнее.

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


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

Можно из одного сигнала сделать некий интервал, скажем, 1-2с, и за это время посчитать другой сигнал. Должно быть точнее.

Почему?

 

Имея точность +-50ppm, предположив худший случай, что частоты разошлись в разные стороны, можно определить, за сколько периодов частоты разбегутся на целый такт. Если же нужно найти более тонкое различие, время придется увеличить. Опять же, легко считается.

 

Можно период измерять, заполнив чем-то высокочастотным. Не один период, а кучу. Побыстрее будет, чем частоту считать.

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


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

Если допустимо добавление компонентов, тогда наверное лучше будет измерять фазу.

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

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


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

Если допустимо добавление компонентов, тогда наверное лучше будет измерять фазу.

 

 

Добавлять не хотелось бы (как сделать все это на расссыпухе я знаю).

 

Можно посчитать длительность миллиона периодов каждого сигнала, но не вижу как это сделать одновременно, чтобы не вносить погрешностью.

Считать количество импульсов за определенное время наверное проще и нет проблем точно одновременно запускать и останавливать счет.

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


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

Если нужна только долговременная разница, то это "Велосипед". Зависит только от возможности проца.

Необходимая точность определяет время замера...

Ну а если надо и кратковременную мерить, то это метод скорее всего не подойдёт. ИМХО.

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


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

Если нужна только долговременная разница, то это "Велосипед". Зависит только от возможности проца.

Необходимая точность определяет время замера...

Ну а если надо и кратковременную мерить, то это метод скорее всего не подойдёт. ИМХО.

 

Во 1-х, нужна долговременная.

во 2-х - сама разность вообще не нужна, нужен толко ее знак.

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


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

Во 1-х, нужна долговременная.

во 2-х - сама разность вообще не нужна, нужен толко ее знак.

Всё страньше и страньше... Какая-то загадочная задача. Вам не кажется, что первое другому противоречит? Если частоты достаточно близки, то возможны биения, где знак будет меняться. В какой-то момент можно будет определить какой-то знак. Но это совершенно не говорит о том, каким он (знак) будет в момент следующий. Тем более в долговременной перспективе.

ИМХО, кроме знака обязательна разность, чтобы быть уверенным (или хотя бы с достаточной вероятностью утверждать), что знак этот сейчас же не изменится. :rolleyes:

Ну, а Вам видней, конечно.

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


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

Абсолютное значение не интересует.

Я пока ничего умнее не придумал, чем подать на два счетчика, запустить их одновременно, через какое-то время остановить и посмотреть на разницу в показаниях.

Какое достаточное время для измерения?

Или может есть другой способ?

Без абсолютного не обойтись, если интересует точность. А так, вполне нормальное решение, непонятно чем вам не нравится ? Проведите, скажем 5-10 измерений длительностью в одну секунду, найдите статистическую погрешность и радуйтесь.

"Зачем просто, если можно сложно" :rolleyes:

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


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

Можно просто запустить счётчики, периодически считывать, не сбрасывая.

А дальше делай с ними что хочешь!

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


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

Всё страньше и страньше... Какая-то загадочная задача. Вам не кажется, что первое другому противоречит?

 

Нет, на кажется - мне не нужно знать разность частот на основании анализа одного периода, да это и невозможно.

Если частоты достаточно близки, то возможны биения,

 

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

Можно даже посчитать частоту этих биений, зная что тастота сигналов 28МГц а их разность в худшем случае 100ррм.

 

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

 

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

 

ИМХО, кроме знака обязательна разность, чтобы быть уверенным (или хотя бы с достаточной вероятностью утверждать), что знак этот сейчас же не изменится. :rolleyes:

Ну, а Вам видней, конечно.

 

Если он "когда-то там" изменится - это не страшно, главно в первый момент определить какой кварц быстрее.

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


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

Можно просто запустить счётчики, периодически считывать, не сбрасывая.

А дальше делай с ними что хочешь!

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

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


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

Если он "когда-то там" изменится - это не страшно, главно в первый момент определить какой кварц быстрее.

С чего бы ему меняться ? Вообще непонятно с какого вдруг зашел разговор о знаке ? Все вдруг резко забыли как работает таймер от внешнего источника ? Или про необходимость формирователя для измерительного подключения кварца ? Тут главный вопрос - в обеспечении синхронности старта или вычислении набегающей разницы за счет несинхронного старта\считывания показаний таймеров.

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


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

С чего бы ему меняться ?

 

Ну мало ли, все-таки надпись "100ррм" на кварце это не только его точность, но еще и стабильность.

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

 

Вообще непонятно с какого вдруг зашел разговор о знаке ?

 

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

 

Все вдруг резко забыли как работает таймер от внешнего источника ?

 

Так напомните.

 

Или про необходимость формирователя для измерительного подключения кварца ?

 

Тут действительно моя вина, неточно выразился. Никакого "измерительного подключения кварцев" нет, есть уже два готовых сигнала, полученные от двух кварцев.

 

 

Тут главный вопрос - в обеспечении синхронности старта или вычислении набегающей разницы за счет несинхронного старта\считывания показаний таймеров.

 

Подумав, я пришел к выводу что это вооще не важно, т.к. погрешность не иснхронногго статра при тактовой процессора 72мгц - меньше итоговой разницы и существенно меньше минимального времени измерения (сотни миллисекунд).

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


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

Если разница большая, то засечь её можно быстро.

А если маленькая, то ждать придётся относительно долго.

Обязательно нужно засечь разницу или нет?

Зачем вообще всё это надо?

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


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

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...