Этот частотомер с AVR микроконтроллером позволяет измерять частоту от 0,45 Гц до 10 МГц и период от 0,1 до 2,2 мкс в 7-ми автоматически выбранных диапазонах. Данные отображаются на семиразрядном светодиодном дисплее. В основе проекта микроконтроллер Atmel AVR ATmega88/88A/88P/88PA, программу для загрузки вы можете найти ниже. Настройка битов конфигурации приведена на рисунке 2.

Принцип измерения отличается от предыдущих двух частотомеров. Простой способ подсчета импульсов через 1 секунду, используемый в двух предыдущих частотомерах(частотомер I, частотомер II), не позволяет измерять доли Герц. Вот почему я выбрал другой принцип измерения для своего нового частотомера III. Этот метод намного сложнее, но позволяет измерять частоту с разрешением до 0,000 001 Гц.

Частотомер ожидает следующего нарастающего фронта, затем начинает отсчет импульсов, а также начинает измерять время. Примерно через 1 секунду (это время не критично для точности) он снова будет ждать следующего нарастающего фронта. С этим краем он перестает считать импульсы и измерять время. Затем частота вычисляется по формуле f = количество импульсов / измеренное время. Если измеритель частоты переключается на измерение периода (T), он рассчитывается по формуле T = измеренное время / количество импульсов. Затем цикл повторяется снова - частотный счетчик снова ждет следующего нарастающего фронта, из которого начинается отсчет импульсов и измеряется время.

Измеренный сигнал поступает на входы ICP1 и T0, где режим захвата таймера используется для измерения времени, а внешний вход тактирования Таймера/Счетчика 0 позволяет подсчитывать импульсы. Переполнение 8-битного счетчика увеличивает два 8-битных регистра, таким образом 24 битное значение о количестве импульсов сохраняется в буфере. Таймер/Счетчик 1(16 бит) также переполняет пару 8-битных регистров, тут уже доступна 32-разрядная информация о времени (1 LSB = 50ns).

При расчете частоты 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 кОм между входом и землей.

Микроконтроллер синхронизируется от кварцевого резонатора 20 МГц (максимально допустимая тактовая частота). Точность прибора существенно зависит от кварца и конденсаторов C1 и C2. Эти конденсаторы могут быть заменены подстроечными для точной регулировки. Схема также может быть изменена для тактирования от внешнего генератора 20 МГц. Для этого необходимо изменить тип подключения и настроить биты конфигурации которые показаны на рисунке 3.

Частотомер питается от источника питания напряжением от 4,5 до 5,5 В. Ток, потребляемый при напряжении 5 В, составляет около 15-40 мА, в зависимости от количества светящихся сегментов (большинство потребляется светодиодным дисплеем). Конденсатор C3 должен располагаться как можно ближе к IO1.

Диапазоны частоты (f):
Диапазон 1 ... 0,450 000 Гц - 9999 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 Гц - 9 999 999 Гц, разрешение: 1 Гц.

Диапазоны периода (T):
Диапазон 1 ... 0,100 000 - 9999 999 us, разрешение: 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 мкс.

Рисунок 1 - Схема частомера III, с разрешением 0,000 001 Гц с Atmel AVR ATmega88 / 88A / 88P / 88PA.

Рисунок 2 - Настройка битов конфигурации для частотомера III с кварцевым резонатором.
(Low Fuse: 0xF7, High Fuse: 0xDD, Extended Fuse: 0xF9)

 

Рисунок 3 - настройка битов конфигурации при подключении внешнего генератора 20 МГц. В этом случае используется XTAL1 как внешний тактовый вход. XTAL2 не подключен.

Тестирование частотомера III на макетной плате.

688 05

Частотомер III на макетной плате (светодиодные индикаторы LD-D036UPG-C) с питанием 5 В от регулятора 7805.

Прибор в пластиковом корпусе.

Выключатель питания и переключатель частоты/периода.

Измеренное значение частоты на 7-разрядном индикаторе.

Частотомер III в собранном виде.

Видео - сравнение частотомера III с частотомером II.

Автор: DANYK


Архив для статьи "Частотомер III от DANYK"
Описание:

Исходный код(Ассемблер), файл прошивки микроконтроллера

Размер файла: 7.53 KB Количество загрузок: 656 Скачать