В статье мы рассмотрим конструкцию простого частотомера на микроконтроллере Atmel AVR, имеющего диапазон измерений от 1 Гц до 10 МГц с разрешением 1 Гц (Рисунок 1). Он может использоваться либо как автономный прибор в радиолюбительской лаборатории, либо в качестве встраиваемого модуля, например, для функционального генератора. В схеме прибора используются довольно распространенные компоненты.
Рисунок 1. Внешний вид частотомера на микроконтроллере AVR.
Конструктивно прибор состоит из дисплея, образованного семью 7-сегментными светодиодными индикаторами, микроконтроллера ATtiny2313 и нескольких транзисторов и резисторов. Микроконтроллер выполняет все необходимые функции, поэтому применение каких-либо дополнительных микросхем не требуется.
Принципиальная схема прибора достаточно проста и изображена на Рисунке 2. Проект в формате Eagle (принципиальная схема и печатная плата) доступен для скачивания в секции загрузок.
Выполняемые микроконтроллером задачи просты и очевидны: подсчет количества импульсов на входе за 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 МГц.
Рисунок 4. Калибровка и сравнение результатов измерения частоты осциллографом и частотомером на AVR микроконтроллере.
В секции загрузок доступны для скачивания несколько вариантов прошивок для различных кварцевых резонаторов, но пользователи могут скомпилировать прошивку под имеющийся кварцевый резонатор самостоятельно (см. комментарии в исходном коде).
Входной сигнал
В общем случае на вход прибора может подаваться сигнал любой формы с амплитудой 0 … 5 В, а не только прямоугольные импульсы. Можно подавать синусоидальный или треугольный сигнал; импульс определяется по спадающему фронту на уровне 0.8 В. Обратите внимание: вход частотомера не защищен от высокого напряжения и не подтянут к питанию, это вход с высоким сопротивлением, не нагружающим исследуемую цепь. Диапазон измерений может быть расширен до 100 МГц с разрешением 10 Гц, если применить на входе соответствующий высокоскоростной делитель частоты.
Дисплей
В приборе в качестве дисплея используются семь светодиодных 7-сегментных индикаторов с общим анодом. Если яркость свечения индикаторов будет недостаточной, можно изменить номинал резисторов, ограничивающих ток через сегменты. Однако не забывайте, что величина импульсного тока для каждого вывода микроконтроллера не должна превышать 40 мА (индикаторы тоже имеют свой рабочий ток, о его величине не стоит забывать). На схеме автор указал номинал этих резисторов 100 Ом. Незначимые нули при отображении результата измерения гасятся, что делает считывание показаний более комфортным.
Печатная плата
Двухсторонняя печатная плата имеет размеры 109 × 23 мм. В бесплатной версии среды проектирования печатных плат Eagle в библиотеке компонентов отсутствуют семисегментные светодиодные индикаторы, поэтому они были нарисованы автором вручную. Как видно на фотографиях (Рисунки 5, 6, 7) авторского варианта печатной платы, дополнительно необходимо выполнить несколько соединений монтажным проводом. Одно соединение на лицевой стороне платы – питание на вывод Vcc микроконтроллера (через отверстие в плате). Еще два соединения на нижней стороне платы, которые используются для подключения выводов сегмента десятичной точки индикаторов в 4 и 7 разряде через резисторы 330 Ом на «землю». Для внутрисхемного программирования микроконтроллера автор использовал 6-выводный разъем (на схеме это разъем изображен в виде составного JP3 и JP4), расположенный в верхней части печатной платы. Этот разъем не обязательно припаивать к плате, микроконтроллер можно запрограммировать любым доступным способом.
Рисунок 5. Расположение светодиодных индикаторов и транзисторных ключей на плате. Видна перемычка монтажным проводом для подачи питания на микроконтроллер.
Рисунок 6. Микроконтроллер Attiny2313, разъем внутрисхемного программирования и перемычки для подключения выводов сегмента десятичной точки индикатора.
Рисунок 7. Вид нижней стороны печатной платы.
Загрузки
Принципиальная схема и рисунок печтаной платы, исходный код и прошивки микроконтроллера - скачать
|