Но это же не проблема...Леонид Иванович писал(а):Единственное - частотомер должен уметь измерять с высоким разрешением малые частоты порядка 1 Гц с интервалом измерения 1000 сек.
STM32. Быстрый частотомер. Reciprocal counter.
Re: STM32. Быстрый частотомер. Reciprocal counter.
"Я не даю готовых решений, я заставляю думать!"(С)
- Реклама
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Реализовать не проблема, но у готовых частотомеров такой режим - большая редкость.
Re: STM32. Быстрый частотомер. Reciprocal counter.
Мы же вещаем не об эталонах... и не о поверочных стойках... а о варианте калибровки в домашних условиях...
"Я не даю готовых решений, я заставляю думать!"(С)
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Все правильно, в домашних условиях. Но какой любительский частотомер имеет время измерения 1000 сек?
Re: STM32. Быстрый частотомер. Reciprocal counter.
Но ведь ut1wpr ждал же 3 часа... Это больше вопрос "надо или не надо"... Кому надо сделает...
А так да... договорился, поехал, прогрел, померял...если есть где поверить...
А так да... договорился, поехал, прогрел, померял...если есть где поверить...
"Я не даю готовых решений, я заставляю думать!"(С)
- Реклама
- SIM31
- Это не хвост, это антенна
- Сообщения: 1363
- Зарегистрирован: Чт апр 04, 2013 22:22:57
- Откуда: Белгород, РФ
Re: STM32. Быстрый частотомер. Reciprocal counter.
Так и задача редкая, поэтому и функция редкая. Обычно же меряют достаточно высокочастотные сигналы, и тема "быстрый частотомер", упор на высокие частоты.Леонид Иванович писал(а):Реализовать не проблема, но у готовых частотомеров такой режим - большая редкость.
Если бы мне вдруг предстала задача анализировать длинные интервалы, предложил бы самое простое решение запись на ПК в wav файл, хоть сутки можно записывать. Далее программный анализ, там достаточно просто.
Re: STM32. Быстрый частотомер. Reciprocal counter.
Как почитать - без бутылки не разберешься!
А между тем все намного проще.
Для измерения частоты цифровой техникой используется всего 2 метода:
1. Прямой отсчет
2. Обратный отсчет. (этот самый замороченный reciprocal counter)
В обоих методах используется два счетчика. В первом методе счетчик генерирует частоту Меньше частоты входного сигнала, а во втором - Больше. Подсчитывается количество импульсов, то входного сигнала, то второго счетчика, соответственно выбранному Методу
Отсюда вывод: время измерения в первом методе Больше периода входного сигнала, а во втором - равно или кратно периоду измеряемого сигнала.
Применение обоих методов зависит от Частоты входного сигнала. Например метод обратного отсчета используется в дозиметрах, там где период сигнала около секунды. А метод прямого отсчета используют для измерения высоких частот.
И "коммерческие" частотомеры делают точно так же. (я это про статью на Бест-Микроконтроллер-Проджектс).
ЗЫ. Хочу дополнить: прямыми отсчетами измеряется Частота, а обратными - Период входного сигнала.
А между тем все намного проще.
Для измерения частоты цифровой техникой используется всего 2 метода:
1. Прямой отсчет
2. Обратный отсчет. (этот самый замороченный reciprocal counter)
В обоих методах используется два счетчика. В первом методе счетчик генерирует частоту Меньше частоты входного сигнала, а во втором - Больше. Подсчитывается количество импульсов, то входного сигнала, то второго счетчика, соответственно выбранному Методу
Отсюда вывод: время измерения в первом методе Больше периода входного сигнала, а во втором - равно или кратно периоду измеряемого сигнала.
Применение обоих методов зависит от Частоты входного сигнала. Например метод обратного отсчета используется в дозиметрах, там где период сигнала около секунды. А метод прямого отсчета используют для измерения высоких частот.
И "коммерческие" частотомеры делают точно так же. (я это про статью на Бест-Микроконтроллер-Проджектс).
ЗЫ. Хочу дополнить: прямыми отсчетами измеряется Частота, а обратными - Период входного сигнала.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Ждем Вашего кодаDrLivsy писал(а):А между тем все намного проще.
Re: STM32. Быстрый частотомер. Reciprocal counter.
Я делал эталон на GPS таким образом: AVR управляет собственным кварцем (10 МГц) подавая напряжение на варикап. Таймер работает от максимальной внутреней частоты. Захват по входному секундному импульсу. В зависимости от того больше или меньше, чем должно быть, меняется через PWM напряжение на варикапе. Через примерно пол минуты после включения частота захватывается и поддерживается +/- 1 отсчет. Хотел сделать из этого опору простого частотомера на PIC с прескэйлером, но увидел недорого VCXO 0.1 ppm и зделал на нем для простоты. Но для калибровки этот "эталон" остался.
Учитывая количество таймеров в STM32, наверное можно в одном флаконе и такой эталон, и частотомер.
Учитывая количество таймеров в STM32, наверное можно в одном флаконе и такой эталон, и частотомер.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Делать в одном флаконе не планировал, потому что эталон частоты нужен не только для частотомера. Лучше, если это будет отдельное устройство. Но я хотел получить стабильность повыше, чем 1E-7, в связи с этим конструкция усложняется, управляемый генератор и цепи формирования напряжения подстройки нужно поместить в термостат.
Re: STM32. Быстрый частотомер. Reciprocal counter.
Где-то мне попадался эталонный генератор от телевизора. Там тоже передатчики чуть ли не атомным генератором синхронизируются. (по мнению автора)Леонид Иванович писал(а):Делать в одном флаконе не планировал, потому что эталон частоты нужен не только для частотомера. Лучше, если это будет отдельное устройство. Но я хотел получить стабильность повыше, чем 1E-7, в связи с этим конструкция усложняется, управляемый генератор и цепи формирования напряжения подстройки нужно поместить в термостат.
Вот только реализация мне не понравилась - синхросигнал снимался со строчных катушек, там где 15кГц. Как это потом могло застабилизировать 8МГц - загадка. Ведь с умножением частоты умножается и погрешность... А с делением частоты погрешность делится...
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Относительная погрешность частоты с делением/умножением не меняется. В случае с GPS тоже берется сигнал 1 Гц, а затем фактически умножается до 10 МГц петлей автоподстройки частоты.
Re: STM32. Быстрый частотомер. Reciprocal counter.
В некоторых старых GPS приемниках была автоподстрока тактовой частоты опорного генератора приемника по сигналу GPS. Т.е использовался VCXO генератор с управлением от ЦАП или ШИМ процессора GPS приемниках. Если вывести в качестве опорной частоты для частотомера именно такой сигнал, проблема 1 PPS отпадет. Но в таких GPS приемниках были нетипичные опорные частоты, так что надо в алгоритм частотомера закладывать работу с произвольной опорной частотой.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Зачем ориентироваться на нестандартные частоты? Лучше выбрать опорную 10 МГц.
Re: STM32. Быстрый частотомер. Reciprocal counter.
Есть прескейлер на 64. Измеряем частоту порядка 440 МГц. На выходе примерно 6.75 МГц которые успешно измеряет стандартный частотомер на PIC628.
Опорные 10 МГц точные до 0.1 ппм. За секунду получаю примерно такое же разрешение.
Такой вопрос, в основном теоретический. Допустим я возьму вместо PIC628 STM32F1xxx. Как проще всего увеличить разрешение при gate time 0.1 сек.
Т.е. как отслеживать фронты входного сигнала без внешней логики проще всего. Я пока недоразобрался с многочисленными режимами работы таймеров.
Опорные 10 МГц точные до 0.1 ппм. За секунду получаю примерно такое же разрешение.
Такой вопрос, в основном теоретический. Допустим я возьму вместо PIC628 STM32F1xxx. Как проще всего увеличить разрешение при gate time 0.1 сек.
Т.е. как отслеживать фронты входного сигнала без внешней логики проще всего. Я пока недоразобрался с многочисленными режимами работы таймеров.
Re: STM32. Быстрый частотомер. Reciprocal counter.
Вот как раз читал по поводу увеличения разр способности.
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 раз частоту опорного сигнала.
В оригинальной статье также говорится про девиацию Аллана. При ее учете обещают дальнейшее увеличение разр способности. Только вот несколько непонятно что это такое и как эту самую девиацию использовать. В статье сказано что это можно сделать и сказано что они, умные, уже это сделали в своем приборе. Хотя может я ошибся и они только оценивают девиацию Аллана и отображают на экране. По крайней мере на картинке их частотомера отображена именно оценка девиации. Может у кого есть какие мысли как эту самую девиацию можно использовать?
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 раз частоту опорного сигнала.
В оригинальной статье также говорится про девиацию Аллана. При ее учете обещают дальнейшее увеличение разр способности. Только вот несколько непонятно что это такое и как эту самую девиацию использовать. В статье сказано что это можно сделать и сказано что они, умные, уже это сделали в своем приборе. Хотя может я ошибся и они только оценивают девиацию Аллана и отображают на экране. По крайней мере на картинке их частотомера отображена именно оценка девиации. Может у кого есть какие мысли как эту самую девиацию можно использовать?
Re: STM32. Быстрый частотомер. Reciprocal counter.
Если это ответ на мой вопрос, то спасибо за ссылку на страницу ЛИ, но мой вопрос совсем другой.Galizin писал(а):Вот как раз читал по поводу увеличения разр способности.
Теорию я читал и принцип понимаю. Мой вопрос: как проще всего применить таймеры из STM32F1xx *без внешних элементов*.
Но уже придумал.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Интересно, что Вы придумали. Таймеры STM32F1 для реализации Reciprocal Counter не подходят, его можно реализовать разве что через всякие обходные пути.alexf58 писал(а):как проще всего применить таймеры из STM32F1xx *без внешних элементов*. Но уже придумал.
Re: STM32. Быстрый частотомер. Reciprocal counter.
Пруф ?Леонид Иванович писал(а): Таймеры STM32F1 для реализации Reciprocal Counter не подходят
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: STM32. Быстрый частотомер. Reciprocal counter.
Докажите обратное.
А не подходят потому, что для реализации этого метода нужен общий Gate для двух таймеров, один из которых должен тактироваться входным сигналом, другой - опорным. Внешняя логика эту проблему решает. А без нее придется прибегать к разным хитростям (со своими ограничениями), типа тех, которые описывал уважаемый HHIMERA.
А не подходят потому, что для реализации этого метода нужен общий Gate для двух таймеров, один из которых должен тактироваться входным сигналом, другой - опорным. Внешняя логика эту проблему решает. А без нее придется прибегать к разным хитростям (со своими ограничениями), типа тех, которые описывал уважаемый HHIMERA.


