Частотомер (счетчик) 10 МГц III. с разрешением 0,000 001 Гц на Atmega88

Этот частотомер (счётчик) с AVR позволяет измерять частоту от 0,45 Гц до 10 МГц и период от 0,1 до 2,2 мкс в 7 автоматически выбираемых диапазонах. Данные отображаются на семизначном светодиодном дисплее. Он основан на микропроцессоре IO1 — Atmel AVR ATmega88 / ATmega88A / ATmega88P / ATmega88PA, программу для скачивания вы можете найти ниже. Настройка битов конфигурации показана на рис. 2.

Принцип измерения отличается от двух предыдущих частотомеров. Простой метод подсчета импульсов ровно за 1 секунду, как использовалось в двух предыдущих частотомерах (Частотомер I., частотомер II.), не позволяет измерять доли Гц. Поэтому я выбрал для своего частотомера III другой метод. Этот метод намного сложнее, но он позволяет измерять частоту с разрешением до 0,000 001 Гц. Частотомер ожидает следующего нарастающего фронта, затем начинает считать импульсы и одновременно измерять время. Примерно через 1 секунду (это время не критично для точности) он снова будет ожидать следующего нарастающего фронта. С помощью этого перехода он прекращает подсчёт импульсов и измерение времени. Затем частота рассчитывается по формуле f = количество импульсов / измеренное время. Если частотомер переключён на измерение периода (T), он рассчитывается по формуле T = измеренное время / количество импульсов. Затем цикл повторяется — частотомер снова будет ждать следующего нарастающего перехода, с которого начнётся подсчёт импульсов и измерение времени. Измеренный сигнал поступает на входы ICP1 и T0, чтобы обеспечить срабатывание как входного триггера (для измерения времени), так и внешнего тактового генератора таймера/счетчика 0 (для подсчета импульсов). При переполнении 8-битного счётчика увеличиваются два 8-битных регистра, так что получается 24-битная информация о количестве импульсов. Таймер/счётчик 1 (16-битный) также переполняется в пару 8-битных регистров, так что доступна 32-битная информация о времени (1 младший разряд = 50 нс). При вычислении частоты 24-битное значение счётчика импульсов умножается на 48-битную константу (2e13), в результате чего получается 72-битное число, которое затем делится на 32-битную временную метку. При вычислении периода 32-битное значение времени умножается на 16-битную константу (50 000), в результате чего получается 48-битное число, которое затем делится на 24-битное значение счётчика импульсов. Полученное значение в обоих случаях преобразуется в 13-значную десятичную (BCD) форму, и перед 6-й цифрой ставится десятичная точка. Затем число сдвигается так, чтобы первая ненулевая цифра находилась в начале дисплея. Частота всегда указывается в Гц (герцах), а период — в мс (микросекундах). Автоматический выбор диапазона изменяет положение десятичной точки, устраняя необходимость в индикаторе метрических приставок (например, Гц/кГц/МГц). Частота обновления составляет около 1 Гц (при измерении очень низких частот порядка единиц Гц обновление может быть медленнее). Катоды дисплея подключаются к порту D, кроме PD4, и к PB4, аноды — к битам 0-5 порта C и к PB5. Семисегментный дисплей можно собрать из четырёх двухзначных дисплеев LD-D028UR-C (красный, 7 мм), LD-D036UR-C (красный, 9 мм) или LD-D036UPG-C (зелёный, 9 мм) с одним неиспользованным разрядом. Все упомянутые типы дисплеев обладают очень высокой яркостью. Сверхъяркий дисплей позволяет отказаться от обычных транзисторов для усиления тока анода. Дисплей управляется мультиплексным (матричным) способом. Частота мультиплексирования составляет около 99,649 Гц. Резисторы R1–R8 определяют ток, поступающий на дисплей, и, следовательно, его яркость. Они подобраны таким образом, чтобы ток не превышал максимальный выходной ток (40 мА). Переключатель S1 используется для переключения между измерением частоты f (разомкнут) и периодом измерения T (замкнут). Период полуволны измеряемого сигнала должен быть больше периода кварцевого генератора (ограничение архитектуры AVR). Таким образом, при коэффициенте заполнения 50 % можно измерять частоты до 10 МГц. Если вход счётчика ни к чему не подключен, он может отображать бессмысленные значения, так как входной импеданс высок. Вы можете предотвратить это, подключив резистор сопротивлением около 100 кОм между входом и землёй. IO1 работает от кварцевого резонатора с частотой 20 МГц (максимальная допустимая тактовая частота процессора). Точность зависит в основном только от кварцевого резонатора и конденсаторов C1 и C2. Эти конденсаторы можно заменить подстроечными конденсаторами для точной настройки. Схему также можно модифицировать для использования внешнего источника тактовых импульсов с частотой 20 МГц. Изменение подключения и настройка битов конфигурации показаны на рис. 3. Измеритель частоты питается от источника напряжением от 4,5 до 5,5 В. Потребляемый ток при напряжении 5 В составляет около 15–40 мА, в зависимости от количества светящихся сегментов (большую часть тока потребляет светодиодный дисплей). Конденсатор C3 следует разместить как можно ближе к AVR (IO1).
Измеритель диапазонов частот (f):
Диапазон 1 … 0,450 000 Гц — 9 999 999 Гц, разрешение: 0,000 001 Гц.
Диапазон 2 … 10 000 000 Гц — 99 999 999 Гц, разрешение: 0,000 01 Гц.
Диапазон 3 … 100 000 0 Гц — 999 999 9 Гц, разрешение: 0,000 1 Гц.
Диапазон 4 … 1 000 000 Гц — 9 999 999 Гц, разрешение: 0,001 Гц.
Диапазон 5 … 10 000 000 Гц — 99 999 999 Гц, разрешение: 0,01 Гц.
Диапазон 6 … 100 000,0 Гц — 999 999,9 Гц, разрешение: 0,1 Гц.
Диапазон 7 … 1 000 000 Гц — 9 999 999 Гц, разрешение: 1 Гц.
Диапазоны измерения периода (T):
Диапазон 1 … 0,100 000 — 9 999 999 мс, разрешение: 0,000 001 мс.
Диапазон 2 … 10 000 00 — 99 999 99 мс, разрешение: 0,000 01 мс.
Диапазон 3 … 100 000 0 — 999 999 9 мс, разрешение: 0,000 1 мс.
Диапазон 4 … 1 000 000 — 9 999 999 мс, разрешение: 0,001 мс.
Диапазон 5 … 10 000,00 — 99 999,99 мс, разрешение: 0,01 мс.
Диапазон 6 … 100 000,0 — 999 999,9 мс, разрешение: 0,1 мс.
Диапазон 7 … 1 000 000 — 2 200 000 мс, разрешение: 1 мс.

Скачать исходный код на ассемблере (ASM) и скомпилирован в файл HEX:
Скачать в формате zip
Скачать в формате tar.gz

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

Собрал данное устройство:

Если подключаете питание через USB будет сразу показывать 50 Гц – как частота в розетке.
Если от батареек – то просто режим ожидания – будет показывать разные цифры в случайном порядке.

Подключился к кварцу включенного устройства – читает Гц – вот видео:

“rutube.ru/video/14b9b123d8176913351efcd9c90014fc/”

То есть читает кварцевые генераторы – если обычный кварц воткнете – не видит.

Лучше втыкать от кварца только один проводок:

Фьюзы прописывал в PonyProg2000 следующие:

Но идеально должны быть такими:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *