Частотомер 1 Гц - 10 МГц на микроконтроллере AVR

Atmel ATtiny2313

В статье мы рассмотрим конструкцию простого частотомера на микроконтроллере Atmel AVR, имеющего диапазон измерений от 1 Гц до 10 МГц с разрешением 1 Гц (Рисунок 1). Он может использоваться либо как автономный прибор в радиолюбительской лаборатории, либо в качестве встраиваемого модуля, например, для функционального генератора. В схеме прибора используются довольно распространенные компоненты.

Частотомер на микроконтроллере AVR 1 - 10 МГц
Рисунок 1. Внешний вид частотомера на микроконтроллере AVR

Конструктивно прибор состоит из дисплея, образованного семью 7-сегментными светодиодными индикаторами, микроконтроллера ATtiny2313 и нескольких транзисторов и резисторов. Микроконтроллер выполняет все необходимые функции, поэтому применение каких-либо дополнительных микросхем не требуется.

Принципиальная схема прибора достаточно проста и изображена на Рисунке 2. Проект в формате Eagle (принципиальная схема и печатная плата) доступен для скачивания в секции загрузок.

Частотомер на микроконтроллере AVR 1 - 10 МГц, принципиальная схема
Рисунок 2. Принципиальная схема частотомера на микроконтроллере AVR

Выполняемые микроконтроллером задачи просты и очевидны: подсчет количества импульсов на входе за 1 секунду и отображение результата на 7-разрядном индикаторе. Самый важный момент здесь – это точность задающего генератора (временная база), которая обеспечивается встроенным 16-разрядным таймером Timer1 в режиме очистки по совпадению (CTC mode). Второй, 8-разрядный, таймер-счетчик работает в режиме подсчета количества импульсов на своем входе T0. Каждые 256 импульсов вызывают прерывание, обработчик которого инкрементирует значение коэффициента. Когда с помощью 16-разрядного таймера достигается длительность 1 с, происходит прерывание, но в этом случае в обработчике прерывания коэффициент умножается на 256 (сдвиг влево на 8 бит). Остальное количество импульсов, зарегестрированное счетчиком, добавляется к результату умножения. Полученное значение затем разбивается на отдельные цифры, которые отображаются на отдельном индикаторе в соответствующем разряде. После этого, непосредственно перед выходом из обработчика прерывания, оба счетчика одновременно сбрасываются и цикл измерения повторяется. В «свободное время» микроконтроллер занимается выводом информации на индикатор методом мультиплексирования. В исходном коде программы микроконтроллера автор дал дополнительные комментарии, которые помогут детально разобраться в алгоритме работы микроконтроллера.

Разрешение и точность измерений

Точность измерений зависит от источника тактовой частоты для микроконтроллера. Сам по себе программный код может вносить погрешность (добавление одного импульса) на высоких частотах, но это практически не влияет на результат измерений. Кварцевый резонатор, который используется в приборе, должен быть хорошего качества и иметь минимальную погрешность. Наилучшим выбором будет резонатор, частота которого делится на 1024, например 16 МГц или 22.1184 МГц. Чтобы получить диапазон измерения до 10 МГц необходимо использовать кварцевый резонатор на частоту 21 МГц и выше (для 16 МГц, как на схеме, диапазон измерений становится немного ниже 8 МГц). Кварцевый резонатор на частоту 22.1184 МГц идеально подходит для нашего прибора, однако приобретение именно такого с минимальной погрешностью для многих радиолюбителей будет сложной задачей. В таком случае можно использовать кварцевый резонатор на другую частоту (например, 25 МГц), но необходимо выполнить процедуру  калибровки задающего генератора с помощью осциллографа с поддержкой аппаратных измерений и подстроечного конденсатора в цепи кварцевого резонатора (Рисунок 3, 4).

Подстроечный конденсатор для калибровки частоты кварцевого резонатора
Рисунок 3. Установленный на плате подстроечный конденсатор для калибровки частоты кварцевого резонатора 25 МГц
Оценка точности измерений частоты осциллографом и частотомером на AVR микроконтроллере
Рисунок 4. Калибровка и сравнение результатов измерения частоты осциллографом и частотомером на AVR микроконтроллере

В секции загрузок доступны для скачивания несколько вариантов прошивок для различных кварцевых резонаторов, но пользователи могут скомпилировать прошивку под имеющийся кварцевый резонатор самостоятельно (см. комментарии в исходном коде).

Входной сигнал

В общем случае на вход прибора может подаваться сигнал любой формы с амплитудой 0 … 5 В, а не только прямоугольные импульсы. Можно подавать синусоидальный или треугольный сигнал; импульс определяется по спадающему фронту на уровне 0.8 В. Обратите внимание: вход частотомера не защищен от высокого напряжения и не подтянут к питанию, это вход с высоким сопротивлением, не нагружающим исследуемую цепь. Диапазон измерений может быть расширен до 100 МГц с разрешением 10 Гц, если применить на входе соответствующий высокоскоростной делитель частоты.

Дисплей

В приборе в качестве дисплея используются семь светодиодных 7-сегментных индикаторов с общим анодом. Если яркость свечения индикаторов будет недостаточной, можно изменить номинал резисторов, ограничивающих ток через сегменты. Однако не забывайте, что величина импульсного тока для каждого вывода микроконтроллера не должна превышать 40 мА (индикаторы тоже имеют свой рабочий ток, о его величине не стоит забывать). На схеме автор указал номинал этих резисторов 100 Ом. Незначимые нули при отображении результата измерения гасятся, что делает считывание показаний более комфортным.

Печатная плата

Двухсторонняя печатная плата имеет размеры 109 × 23 мм. В бесплатной версии среды проектирования печатных плат Eagle в библиотеке компонентов отсутствуют семисегментные светодиодные индикаторы, поэтому они были нарисованы автором вручную. Как видно на фотографиях (Рисунки 5, 6, 7) авторского варианта печатной платы, дополнительно необходимо выполнить несколько соединений монтажным проводом. Одно соединение на лицевой стороне платы – питание на вывод Vcc микроконтроллера (через отверстие в плате). Еще два соединения на нижней стороне платы, которые используются для подключения выводов сегмента десятичной точки индикаторов в 4 и 7 разряде через резисторы 330 Ом на «землю». Для внутрисхемного программирования микроконтроллера автор использовал 6-выводный разъем (на схеме это разъем изображен в виде составного JP3 и JP4), расположенный в верхней части печатной платы. Этот разъем не обязательно припаивать к плате, микроконтроллер можно запрограммировать любым доступным способом.

Вид печатной платы частотомера на микроконтроллере AVR
Рисунок 5. Расположение светодиодных индикаторов и транзисторных ключей на плате. Видна перемычка монтажным проводом для подачи питания на микроконтроллер
Вид печатной платы для частотомера на микроконтроллере AVR.
Рисунок 6. Микроконтроллер Attiny2313, разъем внутрисхемного программирования и перемычки для подключения выводов сегмента десятичной точки индикатора
Вид печатной платы частотомера на микроконтроллере AVR.
Рисунок 7. Вид нижней стороны печатной платы

Загрузки

Принципиальная схема и рисунок печтаной платы, исходный код и прошивки микроконтроллера - скачать

Материалы по теме

  1. Datasheet Atmel ATtiny2313

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: AVR frequency meter - from 1Hz to 10MHz

Изготовление плат и монтаж компонентов для вашего проекта от $2. Получи купон на скидку: JLCNY

46 предложений от 27 поставщиков
Исполнение: SO-20. Микропроцессор AVR, 2K-Flash 128B-SRAM 128B-EEPROM, 20MHz, 40°C...85°C
ATtiny2313A-PU
Microchip
113 ₽
ATtiny2313A-SU
Atmel
30 ₽
Ким
Россия
ATTINY2313A-MU
Atmel
105 ₽
ТаймЧипс
Россия
ATTINY2313-20SU(PBF)
Atmel
по запросу
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Я бы сделал следующие установки Fuse-битов - Low byte: FF; High byte DF; Ext: FF. И кстати, есть версия этого измерителя на двухстрочном ЖК индикаторе, схема и прошивка, печатной платы нет (она в принципе и не нужна в этом случае)...
  • [url]https://c2.at.ua/load/pic/chasy_termometr_s_animirovannoj_smenoj_indikacii/12-1-0-131[/url] Как вытащить хекс файл и ... будет ли до 100МГц работать ?
  • Ссылокой не ошиблись? Часы-термометр... hex-файлы прошивки присутствует, откуда его нужно вытащить? При чем тут 1000 МГц к часам?
  • Ваша правда ... ошибся , а удалить нельзя ... а реальную ссылку потерял ... :) Там импортный сайт ... пик 628 и кварц часовой ... и диапазон до 100 метров обещают ... даже без повышающей сопротивление входной цепи ... 8 разрядов ...
  • Тот шо вы показали ... где кварц такой брать ? Да и тиньку с экранчиком жалко ... 628 есть ... семисегментники тоже ... осталось шото путнее ... схему типо найти и прошивку ... Полевиков сложно найти ... на входную раскачку ...
  • Цигун , не прикидывайся дураком ! Там же по любому ВЧ делитель стоит на входе МК ! Тролль ты недоделанный !!
  • Чё за оскорбления ??? Я те не трогал в общем-то ! Нихрена там не стоит делитель ... в том-то и дело ... Попробую с другого компа найти ту ссыль ... aalex_641 ... ты не прав ! ...
  • Ладно извини погорячился. Но у тебя же в звании написано "заслуженный тролль" и не я это придумал... на сайте написано (ссылка из первого поста) - "Диапазон измерений может быть расширен до 100 МГц с разрешением 10 Гц, если применить на входе соответствующий высокоскоростной делитель частоты." Так вот ответь мне , как может МК с тактовой частотой 20 Мгц считать 100 Мгц, да ещё и раскидывать на несколько 7-ми сегментов динамической индикации ?
  • На ... суди сам ... а мне HEX-файл сделай !? [url]http://diyfan.blogspot.com/2015/08/100mhz-frequency-counter.html?m=0[/url]
  • Ссылка на исходник и hex-файл есть в статье. А индикация выполнена на MAX7219 - к тому что в этом случае ресурсы микроконтроллера не используются для реализации динамической 8-разрядной индикации
  • Да нет там ... тупо HEX - файла ...
  • тЫ СЧАС ЗАРОЖДАЕШЬ НОВУЮ ЭРУ ... КОГДА ИНДИКАЦИЯ ПРАВИТ НАЧИНКОЙ !!!!
  • Так Чёж ... кроме как под диктовку дяди Сэма никак некдьзя было самимм дойти ???
  • Он там есть в архиве .
  • Вот он .
  • Ага ... чёт я не то скачал тогда ... в прошлый раз ... Так что ... делителя нет ... ! И кварц часовой ...
  • Блевотина какая то !
  • ... абы работала ... :) Что сам посоветуешь ?
  • Возмёшься повторить ?
  • У меня есть 628-й , есть MAX7219, но там на схеме готовая китайская плата с индикатороми ... её повторять - это такой гемор ... Если только заказать . Но это месяц-3 и то может не прийти.
Полный вариант обсуждения »