Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измерение частоты на МК
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
krdmitry
Всем доброго дня!
Появилась задача измерения частоты на МК, прошу совета.
Исходные условия:
* LC-контур генерирует частоту около 8 кГц, сенсор - катушка. Изменение частоты резонанса при приближении предмета используется для дальнейших вычислений.
* Надо обеспечить разрешение по частоте не хуже 10-3 Гц, лучше - 10-4.
* Измерение всегда проводится в два этапа: без предмета и сразу же с предметом, чтобы исключить влияние long-term stability у кварца, а также термоэффектов у катушки и конденсатора.

Предполагается реализовать на STM32 с 32-битным таймером в input/capture, с накоплением некоего кол-ва периодов входного сигнала в течение 1-5 сек.

Вопросы:
1. Как правильно выбрать тактовый генератор для МК под эту задачу? Предполагаю TCXO, на 24 Мгц.
2. Какие погрешности и как надо учитывать для данной задачи? Со систематической (дискретность таймера) понятно, как правильно учесть джиттер TCXO и аналоговые шумы?
3. Рекомендации по защите от шума?

Спасибо!
Vishv
На мой взгляд Вам нужно делать автономный измеритель периода с тактовой частотой 10-100 МГц а МК будет только управлять измерениями и соответственно считывать результат.
Тогда и задирать частоту процессора не потребуется.
krdmitry
Цитата(Vishv @ Oct 21 2015, 06:59) *
На мой взгляд Вам нужно делать автономный измеритель периода с тактовой частотой 10-100 МГц а МК будет только управлять измерениями и соответственно считывать результат.
Тогда и задирать частоту процессора не потребуется.


Т.е. просто внешний КМОП-счетчик с тактовым генератором для него?

Не подскажете, как правильно рассчитать погрешность для такого измерения? С систематической мне понятно, а вот как правильно учесть шумы измерительного контура и тактового генератора?
Vishv
Вы правильно поняли насчет простейшего счетчика.
Однако точность измерений будет определяться зашумленностью входного сигнала в случае измерения 1 периода сигнала, ну и стабильностью тактового генератора для счетчика и точностью схем формирования.
Если Вас устроит быстродействие, то я бы предложил считать импульсы за 1000 сек и соответственно иметь точность 10-3 при нестабильности тактового генератора порядка 30-40ppm.
krdmitry
Цитата(Vishv @ Oct 22 2015, 07:05) *
Вы правильно поняли насчет простейшего счетчика.
Однако точность измерений будет определяться зашумленностью входного сигнала в случае измерения 1 периода сигнала, ну и стабильностью тактового генератора для счетчика и точностью схем формирования.
Если Вас устроит быстродействие, то я бы предложил считать импульсы за 1000 сек и соответственно иметь точность 10-3 при нестабильности тактового генератора порядка 30-40ppm.


К сожалению, 1000 сек совершенно неприменимо. Максимум - 10 сек, не более.
blackfin
Цитата(krdmitry @ Oct 22 2015, 11:39) *
Максимум - 10 сек, не более.

Миноискатели опять в цене? biggrin.gif
alexkok
Цитата(krdmitry @ Oct 22 2015, 11:39) *
К сожалению, 1000 сек совершенно неприменимо. Максимум - 10 сек, не более.

Ну так считайте длительность 8000 периодов с разрешением хотя бы 100нс (~1сек) и пересчитывайте в частоту.
Как раз и получите 1е-3Гц.
А для повышения С/Ш - узкополосный фильтр на ОУ.
alexunder
Цитата(blackfin @ Oct 22 2015, 10:42) *
Миноискатели опять в цене? biggrin.gif

Предложите автору Вашу разработку! sm.gif
iDiode
Цитата(krdmitry @ Oct 20 2015, 17:17) *
... Надо обеспечить разрешение по частоте не хуже 10-3 Гц, лучше - 10-4 ...

Ваш проект коммерческий? Есть одно симпатичное решение, пылится без дела
blackfin
Цитата(krdmitry @ Oct 20 2015, 18:17) *
* Надо обеспечить разрешение по частоте не хуже 10-3 Гц, лучше - 10-4.
Цитата(Vishv @ Oct 22 2015, 08:05) *
Если Вас устроит быстродействие, то я бы предложил считать импульсы за 1000 сек и соответственно иметь точность 10-3 при нестабильности тактового генератора порядка 30-40ppm.
ТС хочет измерять частоту с абсолютной точностью: 10-3 Гц, (лучше 10-4 Гц),
что соответствует относительной точности: 10-3[Гц]/10[КГц] = 10-7 == 0,1 ppm, (лучше 0,01 ppm).
Это предполагает, что "нестабильность тактового генератора" должна быть, соответственно, не хуже: 0,1 ppm, (лучше 0,01 ppm)..
mcheb
Цитата(blackfin @ Oct 23 2015, 06:59) *
ТС хочет измерять частоту с абсолютной точностью: 10-3 Гц, (лучше 10-4 Гц),
что соответствует относительной точности: 10-3[Гц]/10[КГц] = 10-7 == 0,1 ppm, (лучше 0,01 ppm).
Это предполагает, что "нестабильность тактового генератора" должна быть, соответственно, не хуже: 0,1 ppm, (лучше 0,01 ppm)..

Автору надо матанализ выучить, а Вы ему про пипиэмы говорите. biggrin.gif
iDiode
Автор темы вроде бы ясно пишет, что его интересует кратковременная стабильность. Авторы двух последних постов объясните, пожалуйста, в чем суть вашей иронии
blackfin
Цитата(iDiode @ Oct 23 2015, 16:00) *
Автор темы вроде бы ясно пишет, что его интересует кратковременная стабильность. Авторы двух последних постов объясните, пожалуйста, в чем суть вашей иронии

Встречный вопрос: сможете указать значение для "кратковременной стабильности частоты" обычных ширпотребовских кварцевых генераторов?

Цифру назовите, если можно.. И желательно, со ссылкой на datasheet производителя.. wink.gif

Для OCXO, я знаю, производители такие цифры (для short term stability, aka Allan deviation) обычно указывают, но как быть с дешевыми TCXO?

Или, как обычно, предлагаете положиться на русское "авось" и сослаться на гиганский опыт разработчика?

И будет ли ТС каждый раз ждать прогрева своего устройства в течение 30 минут после его включения?
mcheb
Для погрешности измерения частоты 10^-3 Герц сигнал необходимо измерять 1/10^-3 Герц == 10^3 секунд со всеми вытекающими последствиями
iDiode
Предлагаю вам, blackfin, и вам, mcheb, еще раз прочесть пост автора темы, свои реплики; сделать выводы самостоятельно. Возможное решение можно посмотреть тут:
http://www.ti.com/lsds/ti/data-converters/...aramCriteria=no

krdmitry
Цитата(blackfin @ Oct 23 2015, 06:59) *
ТС хочет измерять частоту с абсолютной точностью: 10-3 Гц, (лучше 10-4 Гц),
что соответствует относительной точности: 10-3[Гц]/10[КГц] = 10-7 == 0,1 ppm, (лучше 0,01 ppm).
Это предполагает, что "нестабильность тактового генератора" должна быть, соответственно, не хуже: 0,1 ppm, (лучше 0,01 ppm)..


Внимательно посмотрите исходный пост: не с абсолютной точностью, а с разрешением.



Цитата(iDiode @ Oct 23 2015, 03:25) *
Ваш проект коммерческий? Есть одно симпатичное решение, пылится без дела


Расскажите в двух словах, что за решение?
Лучше в личку.

Цитата(blackfin @ Oct 23 2015, 16:49) *
Встречный вопрос: сможете указать значение для "кратковременной стабильности частоты" обычных ширпотребовских кварцевых генераторов?

Для OCXO, я знаю, производители такие цифры (для short term stability, aka Allan deviation) обычно указывают, но как быть с дешевыми TCXO?

Или, как обычно, предлагаете положиться на русское "авось" и сослаться на гиганский опыт разработчика?

И будет ли ТС каждый раз ждать прогрева своего устройства в течение 30 минут после его включения?


Для TCXO условно общепринятыми значениями считаются 10-10 для short-term stability. Оно, конечно, нигде официально не указывается...
Видел то ли у KDS, то ли у NDK, уже не помню.

Цитата(mcheb @ Oct 23 2015, 17:17) *
Для погрешности измерения частоты 10^-3 Герц сигнал необходимо измерять 1/10^-3 Герц == 10^3 секунд со всеми вытекающими последствиями


Поясните плз, исходя из каких предпосылок необходимо такое большое время накопления?

Цитата(iDiode @ Oct 24 2015, 02:00) *
Предлагаю вам, blackfin, и вам, mcheb, еще раз прочесть пост автора темы, свои реплики; сделать выводы самостоятельно. Возможное решение можно посмотреть тут:
http://www.ti.com/lsds/ti/data-converters/...aramCriteria=no


Мы уже попробовали LDC1612, для данной задачи не подходит. В теории - красиво, но в реальности шумы заметно больше ожидаемых. Нужного разрешения с этой микросхемой добиться не получилось.
blackfin
Цитата(krdmitry @ Oct 24 2015, 14:06) *
Расскажите в двух словах, что за решение?

Вот тут почитайте: измерение параметров (комплексной) синусоиды..

Возможно, это то, что вы ищете..
mcheb
Цитата(krdmitry @ Oct 24 2015, 14:06) *
Внимательно посмотрите исходный пост: не с абсолютной точностью, а с разрешением.

Абсолютная точность есть - 0 Герц
krdmitry
Господа, спасибо за ссылки. Не разбираюсь в ЦОС, попробую найти готовый алгоритм под задачу.
Подскажите, с помощью БПФ реально ли реализовать требование по точности в 10-3 ... 10-4 Гц, при частоте сигнала 8 +- 2 кГц?
Какие при этом предъявляются требования к АЦП? Какую разрядность / частоту сэмлирования надо обеспечить?
iDiode
Цитата(krdmitry @ Oct 24 2015, 15:06) *
Мы уже попробовали LDC1612, для данной задачи не подходит. В теории - красиво, но в реальности шумы заметно больше ожидаемых. Нужного разрешения с этой микросхемой добиться не получилось.

Думаю, ваш отрицательный опыт в применении этого чипа был бы весьма полезен здешнему сообществу. Не могли бы вы сообщить больше деталей? Какие возникли проблемы?
controller_m30
Может использовать преобразователь "частота-напряжение"? Например LM331.
А уже это напряжение мерить хоть АЦП контроллера, хоть каким-нить сигма-дельта 24 бита.
TI хвалятся, что можно достичь нелинейности всего 0.01% на 10кHz.
krdmitry
Цитата(controller_m30 @ Oct 26 2015, 11:54) *
Может использовать преобразователь "частота-напряжение"? Например LM331.
А уже это напряжение мерить хоть АЦП контроллера, хоть каким-нить сигма-дельта 24 бита.
TI хвалятся, что можно достичь нелинейности всего 0.01% на 10кHz.


Предполагал и такой вариант, но зачем тут двойное преобразование?


2All: Подскажите схему стабильного LC генератора на ОУ плиз!
Собрал на макетке по схеме Колпитца (Colpits), почему-то выдает не совсем синус, и частота заметно скачет от напряжения питания.
Major
Частоту сигнала с базой более 100 (сто полных периодов) можно измерить с разрешением 0.01%-0.001% (при SNR=5 и более).
Для 8кГц это даст 0.8Гц-0.08ГЦ.
На малых базах около 10, получается 0.1%. На базах менее 1 точность от 1% до 100% (-20..+100% на базе 0.01).

Если SNR очень хороший (1000 и более), можно попоробовать вытащить еще точнее (есть класс алгоритмов).
Важна еще стационарность, если есть перестройка частоты во время наблюдения, шансов почти нет.

Нужен образец сигнала, для оценки, лучше два разнесенных по частоте на 0.01-0.001Гц.
Сигнал можно получить с помощью DDS на хорошем TCXO.
Если все окажется легко и известно (по существующим публикациям), подскажу алгоритм.
rx3apf
Цитата(krdmitry @ Oct 26 2015, 15:47) *
2All: Подскажите схему стабильного LC генератора на ОУ плиз!
Собрал на макетке по схеме Колпитца (Colpits), почему-то выдает не совсем синус, и частота заметно скачет от напряжения питания.

Попробуйте тот вариант на компараторе, который используется в самодельных "генераторных" LC-метрах - сам по себе генератор исключительно надежный, сохраняет работоспособность при изменении номиналов L/C до четырех порядков, выход компаратора сразу на вход счета/захвата и ничего лишнего не потребуется. требуемые (для начала) ~1E-7 разрешения можно получить и за секунду измерения (с опорником от 10 MHz) и о стабильности опорника (TCXO, впрочем, не повредит по-любому, и на популярные частоты такие опорники доступны и дешевы) надо думать уже после того, как будет оценена стабильность генератора. А тут, IMHO, все в первую очередь зависеть от внешнего воздействия на контурный индуктор (понятное дело, от температуры будет ползти, от положения звезд на небе, но, подозреваю, найдутся и куда более весомые факторы). Начните с простого, наберите хоть какую-то статистику...

Ах, да - индуктивность датчика (примерно) ?
Принципиально важно именно измерение на частотах порядка 8 kHz ?
И именно резонансным методом ?
blackfin
Цитата(krdmitry @ Oct 26 2015, 16:47) *
2All: Подскажите схему стабильного LC генератора на ОУ плиз!

Если бы так просто было сделать на обычных LC стабильный генератор с ошибкой по частоте в 20 ppm,
производители кварцевых генераторов уже давно бы обанкротились.. biggrin.gif
krdmitry
Цитата(iDiode @ Oct 26 2015, 05:11) *
Думаю, ваш отрицательный опыт в применении этого чипа был бы весьма полезен здешнему сообществу. Не могли бы вы сообщить больше деталей? Какие возникли проблемы?


Проблем с LDC особенно никаких не было, "завелась" сразу же. Потребовалось только выставить ток накачки контура, чтобы не перегружался.
Однако, шумы оказались заведомо выше ожидаемых.
Тем, кто планирует использовать LDC в своем проекте: смотрите внимательно даташит в разделе Application Information. В частности по требованию к установке периода накопления (RCOUNT), а также по времени измерения. Для наших частот время измерения при максимальном разрешении получилось около 20 сек, что явно находится за гранью разумного.


Цитата(rx3apf @ Oct 27 2015, 17:18) *
Попробуйте тот вариант на компараторе, который используется в самодельных "генераторных" LC-метрах - сам по себе генератор исключительно надежный, сохраняет работоспособность при изменении номиналов L/C до четырех порядков, выход компаратора сразу на вход счета/захвата и ничего лишнего не потребуется. требуемые (для начала) ~1E-7 разрешения можно получить и за секунду измерения (с опорником от 10 MHz) и о стабильности опорника (TCXO, впрочем, не повредит по-любому, и на популярные частоты такие опорники доступны и дешевы) надо думать уже после того, как будет оценена стабильность генератора. А тут, IMHO, все в первую очередь зависеть от внешнего воздействия на контурный индуктор (понятное дело, от температуры будет ползти, от положения звезд на небе, но, подозреваю, найдутся и куда более весомые факторы). Начните с простого, наберите хоть какую-то статистику...


Спасибо за совет.
Если правильно понял, рекомендуется схема вроде этой: http://coolref.ru/files/1/d1e7dc7708ad2c65...ml_files/66.png ?

Цитата(rx3apf @ Oct 27 2015, 17:18) *
Ах, да - индуктивность датчика (примерно) ?
Принципиально важно именно измерение на частотах порядка 8 kHz ?
И именно резонансным методом ?


Индуктивность датчика - вопрос обсуждаемый. Сейчас на примете - 100 мГн, конечно, если есть возможность - лучше сделать поменьше.
Да, важно измерение на частотах порядка 5-10 кГц. Резонансным методом - да, крайне желательно, из соображений минимизации гармоник.



Цитата(blackfin @ Oct 27 2015, 17:44) *
Если бы так просто было сделать на обычных LC стабильный генератор с ошибкой по частоте в 20 ppm,
производители кварцевых генераторов уже давно бы обанкротились.. biggrin.gif


Да, разумеется.
Кстати, как-то нашлись м/сх интегрированных высокочастотных LC-генераторов с точностью порядка 100 ppm, допускающие подстройку напряжением. Насколько понял, выходят дешевле, чем кварцевый генератор.

В данной схеме идет речь только о высокой кратковременной стабильности генератора и низких шумах в пределах 1 сек .. 1 минуты.
Насколько понимаю, в диапазоне выше 10 Гц плотность шума может быть больше, т.к. используется измерение периода с накоплением от 1 сек.
Уход частоты на 0.001 Гц в течение более чем 1 мин также не скажется отрицательно на результате.
rx3apf
Цитата(krdmitry @ Oct 27 2015, 20:52) *
Если правильно понял, рекомендуется схема вроде этой: http://coolref.ru/files/1/d1e7dc7708ad2c65...ml_files/66.png ?

Да, в упрощенном виде это она самая.
Цитата
Индуктивность датчика - вопрос обсуждаемый. Сейчас на примете - 100 мГн, конечно, если есть возможность - лучше сделать поменьше.
Да, важно измерение на частотах порядка 5-10 кГц.

Это я к тому, что есть интересная работа на тему прецизионного измерения малых индуктивностей (авторы Vojko Matko и Karel Jezernik), но там другие порядки индуктивностей и частот...
blackfin
Цитата(krdmitry @ Oct 27 2015, 20:52) *
В данной схеме идет речь только о высокой кратковременной стабильности генератора и низких шумах в пределах 1 сек .. 1 минуты.
Насколько понимаю, в диапазоне выше 10 Гц плотность шума может быть больше, т.к. используется измерение периода с накоплением от 1 сек.
Уход частоты на 0.001 Гц в течение более чем 1 мин также не скажется отрицательно на результате.

Цитата(ledum @ Oct 12 2014, 10:25) *
В трехточке нагруженная добротность порядка 20-40% от ненагруженной. Далее, по формуле Leeson расчитываете фазовый шум (а еще лучше меряете на чем-нибудь типа E5052) и по формулам 3.3-3.6 http://cdn.rohde-schwarz.com/pws/dl_downlo...69/1EF69_E3.pdf прикидываете осреднённую нестабильность за любой удобоваримый интервал времени.

krdmitry
Цитата(rx3apf @ Oct 27 2015, 21:00) *
Да, в упрощенном виде это она самая.

Это я к тому, что есть интересная работа на тему прецизионного измерения малых индуктивностей (авторы Vojko Matko и Karel Jezernik), но там другие порядки индуктивностей и частот...


Нет ли у Вас более полного варианта и правила расчета резистора в обратной связи?
rx3apf
Сошлюсь на оригинальную схему с www.aade.com - http://www.aade.com/manuals/lcm2b%20kit.pdf

[offtopic ON]
Гениальная в своей простоте конструкция. Уж сколько народу ее повторяло, копировало и усовершенствовала. К сожалению, автор недавно умер. RIP.
[offtopic OFF]
iDiode
Цитата(krdmitry @ Oct 27 2015, 20:52) *
Проблем с LDC особенно никаких не было, "завелась" сразу же. Потребовалось только выставить ток накачки контура, чтобы не перегружался.
Однако, шумы оказались заведомо выше ожидаемых.
Тем, кто планирует использовать LDC в своем проекте: смотрите внимательно даташит в разделе Application Information. В частности по требованию к установке периода накопления (RCOUNT), а также по времени измерения. Для наших частот время измерения при максимальном разрешении получилось около 20 сек, что явно находится за гранью разумного.

Не худо было бы увидеть нам, советчикам, фотографию вашего прототипа, чтобы советы стали более предметными и полезными для вас. Вы, вроде бы, использовали EVM для этого чипа? Нельзя ли показать вид вашего девайса? Это, разумеется, чисто для оценки всяческих подводных камней вашего проекта и большей эффективности дальнейшей беседы.
krdmitry
Цитата(iDiode @ Oct 28 2015, 02:33) *
Не худо было бы увидеть нам, советчикам, фотографию вашего прототипа, чтобы советы стали более предметными и полезными для вас. Вы, вроде бы, использовали EVM для этого чипа? Нельзя ли показать вид вашего девайса? Это, разумеется, чисто для оценки всяческих подводных камней вашего проекта и большей эффективности дальнейшей беседы.


iDiode, нет, пока нельзя. Ответьте на личку!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.