STM32. Быстрый частотомер. Reciprocal counter.

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Леонид Иванович писал(а):Единственное - частотомер должен уметь измерять с высоким разрешением малые частоты порядка 1 Гц с интервалом измерения 1000 сек.
Но это же не проблема...
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Реализовать не проблема, но у готовых частотомеров такой режим - большая редкость.
Контактная информация:
Реклама
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Мы же вещаем не об эталонах... и не о поверочных стойках... а о варианте калибровки в домашних условиях...
"Я не даю готовых решений, я заставляю думать!"(С)
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Все правильно, в домашних условиях. Но какой любительский частотомер имеет время измерения 1000 сек?
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Но ведь ut1wpr ждал же 3 часа... Это больше вопрос "надо или не надо"... Кому надо сделает...
А так да... договорился, поехал, прогрел, померял...если есть где поверить...
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Сообщение SIM31 »

Леонид Иванович писал(а):Реализовать не проблема, но у готовых частотомеров такой режим - большая редкость.
Так и задача редкая, поэтому и функция редкая. Обычно же меряют достаточно высокочастотные сигналы, и тема "быстрый частотомер", упор на высокие частоты.

Если бы мне вдруг предстала задача анализировать длинные интервалы, предложил бы самое простое решение запись на ПК в wav файл, хоть сутки можно записывать. Далее программный анализ, там достаточно просто.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Сообщение DrLivsy »

Как почитать - без бутылки не разберешься!
А между тем все намного проще.
Для измерения частоты цифровой техникой используется всего 2 метода:
1. Прямой отсчет
2. Обратный отсчет. (этот самый замороченный reciprocal counter)
В обоих методах используется два счетчика. В первом методе счетчик генерирует частоту Меньше частоты входного сигнала, а во втором - Больше. Подсчитывается количество импульсов, то входного сигнала, то второго счетчика, соответственно выбранному Методу
Отсюда вывод: время измерения в первом методе Больше периода входного сигнала, а во втором - равно или кратно периоду измеряемого сигнала.
Применение обоих методов зависит от Частоты входного сигнала. Например метод обратного отсчета используется в дозиметрах, там где период сигнала около секунды. А метод прямого отсчета используют для измерения высоких частот.
И "коммерческие" частотомеры делают точно так же. (я это про статью на Бест-Микроконтроллер-Проджектс).
ЗЫ. Хочу дополнить: прямыми отсчетами измеряется Частота, а обратными - Период входного сигнала.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

DrLivsy писал(а):А между тем все намного проще.
Ждем Вашего кода :)
Контактная информация:
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

Сообщение alexf58 »

Я делал эталон на GPS таким образом: AVR управляет собственным кварцем (10 МГц) подавая напряжение на варикап. Таймер работает от максимальной внутреней частоты. Захват по входному секундному импульсу. В зависимости от того больше или меньше, чем должно быть, меняется через PWM напряжение на варикапе. Через примерно пол минуты после включения частота захватывается и поддерживается +/- 1 отсчет. Хотел сделать из этого опору простого частотомера на PIC с прескэйлером, но увидел недорого VCXO 0.1 ppm и зделал на нем для простоты. Но для калибровки этот "эталон" остался.

Учитывая количество таймеров в STM32, наверное можно в одном флаконе и такой эталон, и частотомер.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Делать в одном флаконе не планировал, потому что эталон частоты нужен не только для частотомера. Лучше, если это будет отдельное устройство. Но я хотел получить стабильность повыше, чем 1E-7, в связи с этим конструкция усложняется, управляемый генератор и цепи формирования напряжения подстройки нужно поместить в термостат.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 89
Зарегистрирован: Чт ноя 03, 2011 17:05:03

Сообщение DrLivsy »

Леонид Иванович писал(а):Делать в одном флаконе не планировал, потому что эталон частоты нужен не только для частотомера. Лучше, если это будет отдельное устройство. Но я хотел получить стабильность повыше, чем 1E-7, в связи с этим конструкция усложняется, управляемый генератор и цепи формирования напряжения подстройки нужно поместить в термостат.
Где-то мне попадался эталонный генератор от телевизора. Там тоже передатчики чуть ли не атомным генератором синхронизируются. (по мнению автора)
Вот только реализация мне не понравилась - синхросигнал снимался со строчных катушек, там где 15кГц. Как это потом могло застабилизировать 8МГц - загадка. Ведь с умножением частоты умножается и погрешность... А с делением частоты погрешность делится...
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Относительная погрешность частоты с делением/умножением не меняется. В случае с GPS тоже берется сигнал 1 Гц, а затем фактически умножается до 10 МГц петлей автоподстройки частоты.
Контактная информация:
Электрический кот
Сообщения: 1055
Зарегистрирован: Сб сен 12, 2009 15:43:19

Сообщение khach »

В некоторых старых GPS приемниках была автоподстрока тактовой частоты опорного генератора приемника по сигналу GPS. Т.е использовался VCXO генератор с управлением от ЦАП или ШИМ процессора GPS приемниках. Если вывести в качестве опорной частоты для частотомера именно такой сигнал, проблема 1 PPS отпадет. Но в таких GPS приемниках были нетипичные опорные частоты, так что надо в алгоритм частотомера закладывать работу с произвольной опорной частотой.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Зачем ориентироваться на нестандартные частоты? Лучше выбрать опорную 10 МГц.
Контактная информация:
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

Сообщение alexf58 »

Есть прескейлер на 64. Измеряем частоту порядка 440 МГц. На выходе примерно 6.75 МГц которые успешно измеряет стандартный частотомер на PIC628.
Опорные 10 МГц точные до 0.1 ппм. За секунду получаю примерно такое же разрешение.

Такой вопрос, в основном теоретический. Допустим я возьму вместо PIC628 STM32F1xxx. Как проще всего увеличить разрешение при gate time 0.1 сек.
Т.е. как отслеживать фронты входного сигнала без внешней логики проще всего. Я пока недоразобрался с многочисленными режимами работы таймеров.
Мучитель микросхем
Сообщения: 478
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Сообщение Galizin »

Вот как раз читал по поводу увеличения разр способности.

https://en.wikipedia.org/wiki/Frequency_counter - первая ссылка на литературу дает исторический экскурс развития частотомеров. Johansson, Staffan. "New frequency counting principle improves resolution". Spectracom. Retrieved 24 July 2013..

Если не применен метод обратного счета, то можно применить его. Здесь его активно обсуждали. Разрешающая способность вырастит к прямому методу счета как отношение опорной и измеряемой частоты.

В дальнейшем, исходя из статьи, чисто теоретически, что бы увеличить разрешающую способность нужно сделать аналоговый интерполятор, либо использовать непрерывную обработку (Continuous time stamping and
statistical improvements).

Непрерывная обработка означает проведение нескольких измерений по принципу обратного счета на требуемом интервале. Причем без остановки счетчиков (gate), а с использованием захвата. Разрешающую способность обещают увеличить пропорционально корню из числа измерений. То есть если за 0.1 секунды будет произведено 100 измерений, то разр способность потенциально увеличится в 10 раз . В оригинальной статье есть какие то выкладки по этому поводу, их можно посмотреть. Сохраненные данные обрабатываются по методу наименьших квадратов. Времени на сохранение измерения требуется не очень много, так что увеличение разрешающей способности зависит от памяти контроллера и его быстродействия. Ну это если конечно за требуемые 0.1 секунды придет достаточное число периодов входной частоты, то есть измеряемая частота не очень низкая.

Аналоговый интерполятор увеличивает разрешение в 100-400 раз согласно статье.Аналоговый интерполятор требует в минимальном случае 2 триггера D типа с установкой и сбросом (74ac74) и нескольких транзисторов. Реализацию интерполятора можно посмотреть например у Леонида Ивановича в личном блоге. Он делал это на avr и 2 74 корпусах, а также на ПЛИС (FC-510). Попасть в личной блог Леонида Ивановича можно по ссылке из его профиля на этом сайте.

Я думаю, что этот метод можно применить и для FC-510 Леонида Ивановича. Только нужно использовать непрерывный захват вместо gate и метод наименьших квадратов. Вполне возможно, что задача не впишется в использованную ПЛИС.

Аналоговый интерполятор + непрерывная обработка даст, теоретически, в сумме увеличение разреш способности раз в 1000 (100*10) по сравнению с обычным обратным счетом для частот больше 1-10 килогерц. Как бы увеличить в 1000 раз частоту опорного сигнала.

В оригинальной статье также говорится про девиацию Аллана. При ее учете обещают дальнейшее увеличение разр способности. Только вот несколько непонятно что это такое и как эту самую девиацию использовать. В статье сказано что это можно сделать и сказано что они, умные, уже это сделали в своем приборе. Хотя может я ошибся и они только оценивают девиацию Аллана и отображают на экране. По крайней мере на картинке их частотомера отображена именно оценка девиации. Может у кого есть какие мысли как эту самую девиацию можно использовать?
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

Сообщение alexf58 »

Galizin писал(а):Вот как раз читал по поводу увеличения разр способности.
Если это ответ на мой вопрос, то спасибо за ссылку на страницу ЛИ, но мой вопрос совсем другой.

Теорию я читал и принцип понимаю. Мой вопрос: как проще всего применить таймеры из STM32F1xx *без внешних элементов*.
Но уже придумал.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

alexf58 писал(а):как проще всего применить таймеры из STM32F1xx *без внешних элементов*. Но уже придумал.
Интересно, что Вы придумали. Таймеры STM32F1 для реализации Reciprocal Counter не подходят, его можно реализовать разве что через всякие обходные пути.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Леонид Иванович писал(а): Таймеры STM32F1 для реализации Reciprocal Counter не подходят
Пруф ?
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Докажите обратное.

А не подходят потому, что для реализации этого метода нужен общий Gate для двух таймеров, один из которых должен тактироваться входным сигналом, другой - опорным. Внешняя логика эту проблему решает. А без нее придется прибегать к разным хитростям (со своими ограничениями), типа тех, которые описывал уважаемый HHIMERA.
Контактная информация:
Ответить

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