Частотомер Шмидта на ATMega8
Частотомер Шмидта на ATMega8
На мой взгляд по характеристикам лучшее, что можно сделать на AVR.
Частота 0.01Гц-40МГц
Тахометр
Измерение заполняемости меандра
Измерение длины импульса
Из минусов - мне не очень понравилась эргономика, но автор предоставил исходники, может удастся что-то скорректировать.
Вот такая конструкция: http://www.avr-asm-tutorial.net/avr_en/ ... nt_m8.html
Если кто-то уже делал - поделитесь впечатлениями, и вообще, давайте обсудим конструкцию.
Частота 0.01Гц-40МГц
Тахометр
Измерение заполняемости меандра
Измерение длины импульса
Из минусов - мне не очень понравилась эргономика, но автор предоставил исходники, может удастся что-то скорректировать.
Вот такая конструкция: http://www.avr-asm-tutorial.net/avr_en/ ... nt_m8.html
Если кто-то уже делал - поделитесь впечатлениями, и вообще, давайте обсудим конструкцию.
- Реклама
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Частотомер Шмидта на ATMega8
Насчет лучший можно поспорить: http://radiokot.ru/forum/viewtopic.php?p=425206#p425206
Re: Частотомер Шмидта на ATMega8
Простите, но по ссылке я не нашел ни схемы ни характеристик прибора (кроме верхней границы). Кроме того эта Ваша разработка, как я понимаю, не является общедоступной. О чем в таком случае спорить?Liv писал(а):Насчет лучший можно поспорить
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Частотомер Шмидта на ATMega8
Вам бы только повторять готовое! А самостоятельно подумать? В Сети полно информации о принципах измерения частоты, но любительские конструкции почему-то зациклились на методе прямого счета. Частотомер по Вашей ссылке имеет режим измерения периода, но это как костыль. В то же время метод обратного счета (Reciprocal Counting) позволяет получить низкую погрешность измерения на любых частотах. Если прибор дополнить аналоговыми интерполяторами (схемотехнически это очень просто), то точность повышается еще в несколько десятков раз. Мой частотомер еще не закончен, прошивку можно рассматривать только как бета (пока нет сервисов). Но само измерение частоты работает. Вот схемы, платы, прошивки:
- Вложения
-
- FC-510.zip
- (233.33 КБ) 1461 скачивание
Re: Частотомер Шмидта на ATMega8
Леонид Иванович, Вы зря наехали на Шмидта - в его конструкции Mode-2 как раз предполагает метод обратного отсчета. А то, что он предлагает нам выбор метода измерения не говорит о нем ничего плохого : )
По Вашей наводке немного почитал о методах. Нашет вот такую табличку:
Frequency counters have gone through several evolution stages in their design since
their first appearance on the market:
Stage 1 until 70-ies Conventional counting
Stage 2 1980-ies Reciprocal counting (period measurement + inversion)
Stage 3 1990-ies Interpolating Reciprocal Counting
Stage 4 2000-ies Multiple Time Stamp Average Continuous Counting
Как я понимаю, Ваш прибор реализует 3 стратегию. Несомненно это предполагает повышенную точность будущего прибора. Однако его сложность однозначно выходит за рамки моего запроса. Поэтому у меня к Вам предложение: может быть Вы в качестве независимого экперта посоветуете хорошую и простую разработку на ATMega8 (менее предпочтительный выбор на AVR в целом)?
P.S. Многие ссылки с заглавного поста Вашего сайта ведут в пустоту. А жаль.
По Вашей наводке немного почитал о методах. Нашет вот такую табличку:
Frequency counters have gone through several evolution stages in their design since
their first appearance on the market:
Stage 1 until 70-ies Conventional counting
Stage 2 1980-ies Reciprocal counting (period measurement + inversion)
Stage 3 1990-ies Interpolating Reciprocal Counting
Stage 4 2000-ies Multiple Time Stamp Average Continuous Counting
Как я понимаю, Ваш прибор реализует 3 стратегию. Несомненно это предполагает повышенную точность будущего прибора. Однако его сложность однозначно выходит за рамки моего запроса. Поэтому у меня к Вам предложение: может быть Вы в качестве независимого экперта посоветуете хорошую и простую разработку на ATMega8 (менее предпочтительный выбор на AVR в целом)?
P.S. Многие ссылки с заглавного поста Вашего сайта ведут в пустоту. А жаль.
- Реклама
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Частотомер Шмидта на ATMega8
Нет, не зряCivil писал(а):Леонид Иванович, Вы зря наехали на Шмидта - в его конструкции Mode-2 как раз предполагает метод обратного отсчета. А то, что он предлагает нам выбор метода измерения не говорит о нем ничего плохого : )
Да, реализован Reciprocal Counting + Interpolating. В принципе, без особых затрат можно реализовать и 4 стратегию (Time Stamping), но мой FC-510 задумывался именно как простенький любительский прибор, там это излишне. Даже без этого погрешность целиком определяется опорным генратором.Civil писал(а):Как я понимаю, Ваш прибор реализует 3 стратегию.
Ну Вы даёте! Этот прибор на удивление получился простым. Фактически собран на двух микросхемах. Неужели это сложно? Ну плюс нормальный входной буфер, которого обычно в любительских конструкциях не бывает. Нормированный входной импеданс (1 МОм || 30 пФ) позволяет использовать стандартные осциллографические щупы, причем даже с делителем 1:10, и работать ими до 60 МГц.Civil писал(а):Однако его сложность однозначно выходит за рамки моего запроса.
На голом AVR методом Reciprocal counting получается измерять до 500 кГц, с некоторыми извратами можно получить, наверное, и половину Fclk. Но это не более 10 МГц - мало. Поэтому вырисовывается какая-то внешняя логика. Была такая мысль, описать в статье частотомер на ATmega8 + внешние счетчики. Но в 21-м веке решил не позориться - поставил CPLD.Civil писал(а):Поэтому у меня к Вам предложение: может быть Вы в качестве независимого экперта посоветуете хорошую и простую разработку на ATMega8?
Причина в том, что у меня нет денег на собсвенный хостинг, поэтому информация лежит где попало. Если Вас интересует что-то конкретное, пишите, вышлю.Civil писал(а):P.S. Многие ссылки с заглавного поста Вашего сайта ведут в пустоту. А жаль.
Re: Частотомер Шмидта на ATMega8
Похоже Вы правы, он действительно недодумал свой прибор, взяв для расчета только один период. Жаль, это резко снижает его ценность. Может быть кто-то захочет доделать, тем более, что код комментирован очень подробно.
Я, кстати, ранее пользовался Вашей работой - статьей о шаговых двигателях, не зная кто ее автор. Теперь рад выразить Вам свою благодарность.
Одна только пайка TQFP выглядит для меня космическими технологиями : )Этот прибор на удивление получился простым. Фактически собран на двух микросхемах. Неужели это сложно?
Может быть стоит перенести статьи в Лайвджорнал? Или для простоты можно их конвертировать в pdf - он хорошо индексируется поисковиками и не будет требовать переформатирования при переносе в другое место.Причина в том, что у меня нет денег на собсвенный хостинг, поэтому информация лежит где попало.
Я, кстати, ранее пользовался Вашей работой - статьей о шаговых двигателях, не зная кто ее автор. Теперь рад выразить Вам свою благодарность.
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Частотомер Шмидта на ATMega8
Вряд ли это можно исправить программно. Для реализации Reciprocal Counting необходима определенная структура внешних счетчиков (нужно аппаратно формировать ворота для счета импульсов заполнения и одновременно считать периоды входной частоты). Поэтому нужно или лепить снаружи логику, или запихнуть ее в CPLD.Civil писал(а):Похоже Вы правы, он действительно недодумал свой прибор, взяв для расчета только один период. Жаль, это резко снижает его ценность. Может быть кто-то захочет доделать, тем более, что код комментирован очень подробно.
Это прямо какое-то самовнушение беспомощности. Это же не BGA, хотя и их некоторые дома паяют. А припаять TQFP с шагом 0.8 мм - поверьте, никаких проблем. Это даже быстрее и проще, чем DIP. Берёте жало "микроволна". Это обычное жало, у которого на рабочей плоскости сделано небольшое углубление. Можно сделать из любого жала. Побольше канифоли, кладете микросхему на площадки и один раз проводите паяльником. Всё, ряд выводов припаян.Civil писал(а):Одна только пайка TQFP выглядит для меня космическими технологиями : )
Если сильно боитесь, то ATmega8 бывает в DIP, а EPM3064A - в PLCC. Там обычные панельки с шагом 2.54 мм. Но так делать не надо, нужно стремиться делать по-современному.
Не нравится там мне форматирование. Я все-таки надеюсь, что мне подарят хостинг (обещают), вот тогда и выложу.Civil писал(а):Может быть стоит перенести статьи в Лайвджорнал?
Просто HTML конвертировать в PDF не позволит ущемленное чувство прекрасного. Иллюстрации в PDF должны быть векторными, хоть оригиналы в COREL есть, но сверстать - это приличный кусок работы.Civil писал(а):Или для простоты можно их конвертировать в pdf
Не за что. Если интересует материал какой-то из статей - пишите.Civil писал(а):Я, кстати, ранее пользовался Вашей работой - статьей о шаговых двигателях, не зная кто ее автор. Теперь рад выразить Вам свою благодарность.
Re: Частотомер Шмидта на ATMega8
Вряд ли это можно исправить программно. Для реализации Reciprocal Counting необходима определенная структура внешних счетчиков (нужно аппаратно формировать ворота для счета импульсов заполнения и одновременно считать периоды входной частоты). Поэтому нужно или лепить снаружи логику, или запихнуть ее в CPLD.
Если я правильно понимаю теорию, то различие (по ресурсам) прямого подсчета от обратного только в наличии дополнительного счетчика внутренних импульсов (clock).
f=(counted input )/((counted clock)*(clock time))
Занятно, что время Gate в формуле отсутствует и соответственно точность его выдержки несущественна.
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Частотомер Шмидта на ATMega8
Да, точное значение времени Gate знать не надо, оно лишь приблизительно задает точность измерения. А различие по ресурсам определяется не только количеством счетчиков, но и их организацией. По фронту входного сигнала нужно начинать счет имульсов заполнения, по N-ному фронту - прекращать. Ну и эти входные импульсы нужно считать. Аппаратные ресурсы AVR не позволяют запускать счет по внешнему сигналу. Приходится заменять это захватом значения счетчика. А счет входных импульсов производить в прерывании по захвату. Но это медленно. Чтобы существенно все ускорить, нужно переносить входную логику наружу. Решается двумя счетчиками и двумя D-триггерами. Но лучше одна Altera.
Re: Частотомер Шмидта на ATMega8
Ув. Liv а можете поподробнее рассказать про организацию алгоритма Обратного счета (Reciprocal Counting)... что то не могу найти внятного описания в интернете, как все организовано. Савсибо!
Re: Частотомер Шмидта на ATMega8
Здравствуйте, интерполятор реагирует на импульсы, порядка микросекунд...
Но если я правильно понимаю, то при тактовой 12.8 мгц минимум это 78 нс... который надо учесть... можно поподробнее про это?
Смотрел схему одного частотомера, там при заполняющих импульсах 10 мгц, интерполятор работает от десятков нс, до сотен... вероятно тут всё дело в формировании нониусных импульсов?
Но если я правильно понимаю, то при тактовой 12.8 мгц минимум это 78 нс... который надо учесть... можно поподробнее про это?
Смотрел схему одного частотомера, там при заполняющих импульсах 10 мгц, интерполятор работает от десятков нс, до сотен... вероятно тут всё дело в формировании нониусных импульсов?
Re: Частотомер Шмидта на ATMega8
Доброго времени суток!
Вопросы к Леониду Ивановичу.
Подскажите пожалуйста, где обсуждается Ваша конструкция частотомера FC-510? Наткнулся на Ваше сообщение на форуме pro-radio.ru но там несколько другая тема.
Не могли бы Вы привести эскиз входной логики, где это "Решается двумя счетчиками и двумя D-триггерами."
Спасибо.
Вопросы к Леониду Ивановичу.
Подскажите пожалуйста, где обсуждается Ваша конструкция частотомера FC-510? Наткнулся на Ваше сообщение на форуме pro-radio.ru но там несколько другая тема.
Не могли бы Вы привести эскиз входной логики, где это "Решается двумя счетчиками и двумя D-триггерами."
Спасибо.


