ЧАСТОТОМЕР НА МИКРОКОНТРОЛЛЕРЕ
Д. БОГОМОЛОВ, г. Москва
Автор этой статьи Дмитрий Богомолов был первым, кто откликнулся на опубликованный в апрельском номере журнала за этот год призыв присылать нам описания приборов на Р1С-контроллерах и микроконтроллерах. Миниатюрная конструкция, которую он показал в редакции, поразила своими характеристиками и, в частности, чисто радиолюбительским подходом, позволившим собрать на микроконтроллере с относительно невысоким быстродействием частотомер с верхней граничной частотой не менее 50 МГц. Кстати сказать, на базе этого частотомера Дмитрий разрабатывает цифровую шкалу для приемника с KB диапазонами или для KB трансивера.
Принцип работы описываемого прибора (как и других частотомеров) заключается в подсчете пришедших на его вход импульсов за фиксированный промежуток времени. Вот его основные технические характеристики: интервал измеряемой частоты сигнала - от 1 Гц до 50 МГц при минимальном напряжении входного сигнала 0,5 В. Разрядность индикатора - 8, что позволяет измерять высокочастотные сигналы с точностью до 1 Гц. Напряжение питания - 9В, а потребляемый ток зависит от используемых индикаторов.
На рис. 1 показана схема частотомера. В используемом микроконтроллере КР1878ВЕ1 шестнадцатиразрядный таймер-счетчик имеет восьмибитный предделитель и трехбитный счетчик переполнений, что в сумме составляет 27 разрядов. Таким образом, счетчик может считать до 134217727. Быстродействие микроконтроллера ограничено частотой 50 МГц. Это значение является максимальной измеряемой частотой сигнала. Секундный интервал отсчитывают с помощью программно организованных циклов, в которые также введена динамическая индикация показаний.
Puc.1По окончании счета получить значение измеренной частоты простым опросом регистров можно только из шестнадцатиразрядного таймера-счетчика и трехразрядного счетчика переполнений. Данные, находящиеся в восьмиразрядном предделителе, извлекают методом досчета. На вход пред-делителя подают одиночные импульсы и, когда фиксируют его переполнение (во всех разрядах - нули), вычисляют записанное в нем значение, равное 256 за вычетом числа поданных импульсов. После этого двоичное число преобразуют в двоично-десятичное, а затем - в код семиэлементного индикатора. В нем гасят незначащие нули и при следующем измерении выводят на табло.
В устройстве применены три трехразрядных светодиодных индикатора повышенной яркости от АОНа. При их отсутствии можно применить любые другие светодиодные индикаторы на необходимое число разрядов, например, серии АЛС318. Аноды индикаторов через токоограничительные резисторы R8-R15 подключены к порту В микроконтроллера. Катоды соединены с выходами дешифратора DD3 К555ИД10, выходной ток которых в состоянии лог. Он может достигать 24 мА. Индикация идет справа налево, т. е. первый разряд - правый по схеме. Девятый разряд не подключен, однако при необходимости его можно использовать для вывода какой-либо служебной информации.
Для повышения стабильности генератор образцовой частоты выполнен на элементах DD1.1-DD1.3, питаемых от отдельного стабилизатора DA1. Программный способ отсчета времени измерения позволяет применять кварцевые резонаторы на любую частоту. Следует лишь изменить программные циклы, а это весьма просто, так как все инструкции в микроконтроллере выполняются за два такта. Верхнее значение образцовой частоты составляет 8 МГц, нижнее определяется тем, что выходной сигнал предделителя синхронизируется сигналом тактовой частоты процессора и не может быть выше 1/4... 1/12 ее значения в зависимости от типа процессора. К сожалению, в документации на микроконтроллер эти параметры не указаны. У похожего контроллера фирмы Microchip длительность входного сигнала не должна быть меньше четырех тактов процессора. Учитывая восьмиразрядный асинхронный предделитель, определим минимальную образцовую частоту: 50000x4/256=781,25 кГц.
Частотомер собран на макетной плате размерами 30x72 мм. Соединения выполнены навесным монтажом проводом МГТФ.
Правильно собранный частотомер после включения должен показать на табло число 87654321 и затем перейти в режим счета, индицируя при отсутствии входного сигнала ноль в первом разряде. Если индикация отсутствует, следует проверить наличие сигнала образцовой частоты. Затем необходимо убедиться, что на входы дешифратора подается сканирующий код. Вход 8 микросхемы DD3 должен быть соединен с общим проводом, иначе ее выходы будут закрыты. Кроме того, можно попытаться выполнить внешний сброс, замкнув на время выводы конденсатора СЗ.
Для проверки можно подать на вход микроконтроллера сигнал с генератора образцовой частоты, соединив выход элемента DD1.3 с входом DD1.4. На индикаторе высветится его частота, в нашем случае - 4 МГц. Калибруют частотомер с помощью внешнего генератора.
Нельзя подавать измеряемый сигнал непосредственно на вывод таймера микроконтроллера (PA4/TCLC), так как на этот вывод подается сигнал до-счета. Чтобы предотвратить перегрузку и возможную порчу элементов устройства, включен токоограничительный резистор R6.
Программа, управляющая микроконтроллером, весьма проста, ее легко модернизировать или дополнить новыми функциями. Коды программы приведены в таблице (в ячейках с адреса 0000 по 01FF записаны нули), а полный авторский вариант размещен на ftp-сервере журнала по адресу: ftp.paguo.ru/frequency/f.mic.
Описание микроконтроллера КР1878ВЕ1 - в Интернете на сайте производителя www.angstrem.ru. К сожалению, в документации имеются ошибки в цоколевке микроконтроллера и описании компилятора TESSA. Вместо команд etc, ctz, ctn, ctie должны быть clc, clz, cln, clie. При программировании микроконтроллера следует включить режим внутреннего генератора на частоту от 500 до 8000 кГц.
Схема простого программатора для КР1878ВЕ1, подключаемого к параллельному порту компьютера, приведена на рис. 2. Он собран на макетной плате размерами 42x52 мм. Все соединения выполнены проводом МГТФ.
Puc.2Конструктивно шкала, как и частотомер, собрана на двух платах, соединенных разъемом: плате ЖКИ и основной, на которой размещены все остальные детали (на фотографии платы показаны отдельно).
Схемотехнически цифровая шкала отличается от частотомера наличием ЖКИ вместо светодиодного индикатора и отсутствием ставшей ненужной микросхемы К555ИД10, выполняющей в частотомере функцию буфера.
Радио 10/2000, с.4-6.