Многофункциональный частотомер на PIC16F628A и LED-индикаторах

Когда-то я собрал очень популярный на то время частотомер Денисова, вернее, его клон на PIC16F628A и индикаторе АЛС318. И вот по прошествии многих лет он попался мне на глаза. Измеряет он частоту вроде исправно, но уж больно примитивен, да к тому же показания постоянно мерцают. На досуге было решено на основе той схемы (изменено подключение 2-х выводов микроконтроллера, входные цепи и цепи питания) создать современный, качественный, но очень недорогой  прибор, лишенный недостатков своего прототипа, а также дополненный множеством функций и режимов.

Описываемый ниже прибор имеет следующие возможности: «обычное» измерение частоты путем счета количества импульсов в течении одной секунды; измерение частоты низкочастотных сигналов через измерение периода (F=1/T) с точностью 0.001 Гц; измерение периода сигнала, причем для высокочастотных сигналов через частоту (T=1/F); измерение длительности как положительных, так и отрицательных импульсов. Так же имеется возможность сохранения в энергонезависимой памяти по одному измеряемому значению для каждого режима, с последующим просмотром при необходимости. Предусмотрено оперативное изменение ряда настроек прибора и автоматическое выключение при отсутствии воздействия на прибор в течении определенного времени.

Основные характеристики прибора:

  • Пределы измерения частоты ……………………..……….…….   0 – 40000000 Гц
  • Дискретность измерения частоты (обычный частотомер) …   1 Гц
  • Дискретность измерения частоты («спец»-частотомер) ……  0.001 Гц
  • Пределы измерения периода …………………………………….   0.05 – 2000000 мкс.
  • Частота смены способа измерения (периода и частоты) …..  900 — 1000 Гц
  • Пределы измерения длительности импульсов
    (при периоде сигнала 2 – 2000000 мкс) …………………………… 1 – 1000000 мкс.
  • Амплитуда измеряемого сигнала ……..………………….……… 0.1 – 100 Вольт
  • Точность измерений (зависит от характеристик кварца) …..   0.00001+2ед. мл. разр   
  • Период индикации (длительность, период и «спец»-частота) 0.25; 0.5; 1; 2 сек.
  • Время без воздействия до выключения прибора …………… 8; 16; 32; 64 мин.
  • Число запоминаемых значений измерений …………………. 5
  • Сохранение всех параметров при выключении питания ..… да
  • Напряжение питания …………………………………………..…. 5.5 – 10 Вольт
  • Средний ток потребления в рабочем режиме ……………….. 15 – 25 мА
  • Ток потребления в спящем режиме не более ………………… 10 мкА

Рассмотрим работу с устройством более подробно (схему и конструкцию рассмотрим ниже).

При включении прибора, после вывода приветствия, на индикаторе высвечиваются показания согласно ранее выбранному пределу (далее исходное состояние). При нажатии кнопки S1, на индикаторе появляется название текущего режима (в большинстве случаев — сразу, но редко, при измерении низкочастотных сигналов, может потребоваться удерживать кнопку до 2 с). При последующих отпускании и нажатии кнопки, названия индицируемых режимов меняются по кругу в порядке: частотомер (на индикаторе Freq_St) – спец.частотомер (Freq_SP) – измерение периода ( Period ) – измерение длительности положительного импульса (t __|-|__) — измерение длительности отрицательного импульса (t —|_|—) – частотомер … . Нажатие кнопки S2 во время индикации на дисплее какого-либо режима приводит к переходу прибора в исходное состояние с соответствующей сменой режима. В случае же отсутствия нажатия любой кнопки в течении времени ожидания (3-10 сек — оперативно регулируется), прибор переходит в исходное состояние с прежним (до нажатия S1) режимом.   

Если после появления на индикаторе названия режима удерживать не отпуская кнопку S1 в течении 3 сек., на индикаторе появится надпись «to_SLEEP». При этом нажатие кнопки S2, так же как и  отсутствие нажатия кнопок в течении времени ожидания, переводит прибор в спящий режим, выход из которого производится нажатием на любую кнопку. Нажатие же в этом режиме кнопки S1 (разумеется, предварительно ее отпустив) приводит к попеременному появлению на дисплее надписей «to_SLEEP» и «SETTINGS». Нажимая кнопку S2 в пункте «SETTINGS», осуществляется переход в подменю установок. Здесь “P_IND x.xx” – период индикации, “t_butt xx” – время ожидания нажатия кнопок в сек., “t_OFF xx” – время до выключения в минутах, при этом  xx – непосредственно текущее значение параметра (моргает для заметности). В этом пункте нажатие S1 так же последовательно переключает подпункты, а нажатие кнопки S2 – изменяет текущий параметр (новое значение сразу же индицируется). Выход с сохранением текущих параметров – по истечении времени ожидания без нажатия кнопок. 

Нажатие кнопки S2 в исходном состоянии (тоже, как отмечалось выше, длительностью до 2 секунд в некоторых режимах) приводит к появлению на дисплее надписи “ LOAD “. Отпускание кнопки сразу после появления надписи приводит к выводу на дисплей ранее сохраненного измеренного значения в течении 8 секунд (моргает для отличия от текущего измеряемого значения). Если же при появлении надписи “LOAD”, удерживая кнопку S2 нажатой, нажать кнопку S1, то происходит запись в энергонезависимую память текущего измеряемого значения, что подтверждается появлением на индикаторе моргающей надписи “ SAVE “.

Переход в спящий режим происходит также при отсутствии воздействия на кнопки в исходном состоянии в течении 8 – 64 минут (меняется оперативно).

Описание работы прибора в разных режимах

Обычный частотомер

Работа в этом режиме стандартная – подсчет импульсов таймером TMR0, следует лишь отметить, что отсчет времени счета (1 секунда) происходит в прерываниях от таймера TMR2 с интервалом в 2 мс, в которых так же происходит динамическая индикация. 

Во время измерения признак режима – знак “F.” в старшем разряде (не индицируется при частоте более 9999999 Гц).

Частотомер специальный

В этом режиме при измерении частоты до 1000 Гц собственно измеряется период сигнала, а частота вычисляется по формуле F=1000000000/T, где T — в микросекундах, а F – в тысячных долях герца (светится запятая в 4-м разряде справа). Если частота окажется более 1000 Гц, измерение производится аналогично обычному частотомеру (обратное переключение происходит при частоте менее 900 Гц). Данный режим позволяет для низкочастотных сигналов уменьшить дискретность измерения с 1Гц до 0.001Гц, а значит и точность (на индикаторе не менее 3-х значащих разрядов).

Признак режима – вывод “F.- ” в старших 2-х разрядах (последовательно “затираются” индицируемым значением при измерении больших частот).

Измерение периода

Режим аналогичен специальному частотомеру. В данном режиме происходит непосредственное измерение периода (таймером TMR1, тактируемым частотой 1МГц от внутреннего генератора) для сигналов с периодом более 1000 мкс, а для меньшего периода – через измерение частоты по формуле T=1000000000/F, где F — в герцах, а T – в наносекундах. На индикаторе при этом светится запятая в 3-м разряде, что позволяет считывать показания в микросекундах в обоих случаях с тремя значащими разрядами минимум. 

Признак режима – вывод “P.” в старшем разряде (при вычислении периода через частоту – добавляется верхняя черта в следующем разряде).

Измерение длительности импульсов (положительных и отрицательных)

Эти два режима аналогичны и отличаются лишь полярностью измеряемых импульсов. Измерение производится путем прямого подсчета длительности таймером TMR1, тактируемым от внутреннего генератора (период 0.25 мкс) в течении входного импульса.  При этом, обеспечивается достоверность измерения длительностей от 3 мкс, для более коротких импульсов длительность измеряется косвенными методами и достоверность результата снижается. Данное обстоятельство (косвенное измерение длительности) индицируется путем моргания буквы “t” на индикаторе.

Для сигнала, длительностью менее 32768 мкс, результат отображается с точностью 0.25 мкс, в противном случае — точность (дискретность) равна 1 мкс.

Признак режима – вывод “t” в старшем разряде плюс верхний или нижний сегмент следующего разряда, в зависимости от режима регистрации положительных или отрицательных импульсов.

Следует отметить, что из-за несимметричности входной части прибора, а так же наличия на входе CCP микроконтроллера триггера Шмитта, при измерении длительности сигналов с пологими фронтами может появиться значительная погрешность. Этот эффект уменьшается при увеличении амплитуды входного сигнала.  Попытка измерения сигналов с амплитудой значительно ниже 0.1 Вольт  в любом режиме, может привести к индикации показаний, не соответствующих действительности (впрочем, это относится и к другим подобным приборам). При заведомо стабильном входном сигнале, косвенным признаком недостаточной амплитуды может быть большая нестабильность показаний прибора.

В случае, если временные параметры входного сигнала не позволяют данному прибору их измерить (при измерении периода и длительности), на индикаторе отображаются следующие показания:  “F.too_hi” – слишком высокая частота, “P.too_big” – слишком большой период, “NO_SIG.” – нет сигнала.

Принципиальная схема и работа устройства

Микроконтроллер PIC16F628A (DD2) выводами порта В (кроме RB2) и выводом RA3 через ограничительные резисторы (R5-R12)  управляет соответственно сегментами и запятой индикатора, в качестве которого используются два 4-х разрядных LED индикатора FYQ3641A с общим катодом (выводы сегментов и децимальной точки индикаторов соединены попарно). Управление разрядами происходит с выходов дешифратора DD1 (74HC138), на входы которого управляющий сигнал подается с выводов RA0-RA2 DD2. Выводами RA0 и RA1 так же производится контроль состояния кнопок управления S1 и S2 при помощи резисторов R1-R4. Тактирование микроконтроллера происходит от кварцевого генератора частотой 16 МГц, который  включает внешние элементы Z1, C1-C3. Вывод MCLR включен в качестве вывода сброса и на него подан потенциал +5В. Динамическая индикация, как говорилось выше, происходит в прерываниях от TMR2 с интервалом 2 мс так, что обновление индикатора происходит с частотой примерно 63Гц. В данном случае обеспечивается ровное без мерцаний свечение индикатора во всех режимах прибора.

Сигнал с входного усилителя  поступает на объединенные выводы T0CKI и CCP1 (выводы 3 и 9 MK DD2). В режиме обычного частотомера по выводу 3 производится счет импульсов, а вывод 9 (в данном случае он установлен как вход/выход RB3) – для открытия-закрытия входа и последующего «досчета». При измерении периода и длительности эти выводы включены собственно как входы T0CKI и CCP1. При этом используется оригинальный алгоритм с «захватом» значения TMR1 по фронтам сигнала и вычислением времени между захватами, а так же  контролем корректности результата  путем анализа содержимого таймера TMR0. Идея здесь заключается в том, что сигнал подается на объединенные входы захвата и таймера-счетчика МК, что позволяет по числу фронтов импульсов, зарегистрированных таймером, судить, не пропущены ли системой захвата искомые перепады сигнала по причине недостатка быстродействия МК.

Входной усилитель на транзисторах VT1-VT3 собран по известной и хорошо себя зарекомендовавшей схеме. Относительно высокая емкость конденсаторов С4 и С9 объясняется необходимостью обеспечения нижней границы полосы пропускания не менее 1Гц (для этого же служит резистор R23). Элементы C7, C10, C14, L1 служат для увеличения коэффициента усиления при максимальных измеряемых частотах. VD1,VD2 и R14 защищают транзистор VT1 от пробоя входным сигналом.

Входной усилитель потребляет значительный ток (около 5 мА), поэтому, потребовалось его отключать от питания в спящем режиме посредством ключа на MOSFET транзисторе с P-каналом VT2. Из-за дефицита свободных выводов МК, этот ключ управляется с вывода 1 DD2 (RA2), используемого так же для управления дешифратором DD1. В рабочем режиме на этом выводе присутствует меандр с частотой около 125 Гц. При отрицательных уровнях, конденсатор C6 заряжается через цепочку VD3R16 и транзистор VT2 открывается отрицательным потенциалом на затворе. Диод препятствует разряду конденсатора при положительном уровне сигнала через относительно малое сопротивление резистора R16. Постоянная времени цепочки C6,R20 выбрана достаточно большой для исключения попадания на входной усилитель помехи с частотой 125 Гц. В спящем режиме на выходе 1 DD2 присутствует положительный потенциал, конденсатор C6 разряжается через резистор R20 и, примерно через 3-5 сек., транзистор VT2 закрывается и полностью отключает входной усилитель от источника питания. Потребляемый прибором в спящем режиме ток в 10 мкА, при желании, позволяет полностью отказаться от механического выключателя питания.

На включенных в этом режиме как входы выводах 17 и 18 (RA0,RA1) МК, а значит и входах 1, 2 DD1, благодаря резисторам R1, R2 тоже присутствует высокий потенциал. При этом, появляется уровень логического 0 на выходе 7 DD1 и через резистор R13 подается на включенный в данном случае в качестве входа вывод RB7 DD2. При нажатии любой кнопки, меняется код на входах дешифратора и на его выводе 7 появляется уровень логического 1, что так же передается через R13 на вывод МК RB7. Так как в этом режиме включено прерывание по изменению уровня на этом входе, микроконтроллер по нажатию любой кнопки выходит из спящего режима (SLEEP).

Схема питается от интегрального стабилизатора DA1 типа NCP551SN50 с выходным напряжением 5 Вольт. Данная микросхема характеризуется малым падением напряжения и экстремально малым собственным потребляемым током (типовое значение 4 мкА).  Применение вместо использованного стабилизатора обычного 78L05 сведет смысл спящего режима на нет из-за высокого тока потребления последнего – около 3 мА.

Компоновка

Все детали прибора размещены на печатной плате из стеклотекстолита с односторонней металлизацией размерами 63х64 мм. На прилагаемых чертежах изображены соответственно конфигурация печатных дорожек, размещение деталей со стороны металлизации и размещение деталей со стороны без металлизации.

Размеры платы позволяют удобно ее разместить в корпусе от мультиметра типа D-830, предварительно срезав в нем пластмассовые стойки. При этом, в нем остается достаточно места для различных вариантов питания – от «кроны» до 5-6 элементов типа ААА. Тот факт, что все элементы (включая кнопки, входной разъем и винтовую колодку для подачи питания), компактно размещены на плате, позволяет использовать прибор даже без корпуса. Следует обратить внимание на расположение индикаторов в нижней части платы. Такая компоновка, несмотря на необычность, на мой взгляд, более выгодна с точки зрения угла обзора индикатора.

Детали

Индикаторы можно заменить на CPD-03641 с общими катодами. Дешифратор меняется на 74AC138, причем, в этом случае, при необходимости можно до 2-х раз увеличить ток, а значит и яркость индикаторов, уменьшив сопротивления резисторов R5-R12 вплоть до 390 Ом. Но тогда пропорционально увеличится ток потребления прибора в рабочем режиме (мое мнение – яркость индикаторов достаточна и при значениях резисторов, указанных на схеме). Кварцевый резонатор можно использовать и на 4МГц, но при этом минимально регистрируемая длительность увеличивается в 4 раза. Прошивка для этого случая тоже прилагается. Кнопки S1 и S2 – тактовые, с боковым нажатием. Транзистор VT1 можно использовать BF998R, VT2 –IRLML6401, а VT3 – любой n-p-n с граничной частотой не менее 300 МГц. Конденсатор C4 – на напряжение не менее 100В. Все диоды можно заменить отечественными КД521, КД522. В качестве входного применен разъем для блоков питания (диаметр – 5.5 мм). К ее ответной части через отрезок экранированного кабеля длиной 50 см припаяны соответственно щуп и зажим типа «крокодил».

Для уменьшения габаритов конденсаторы и резисторы применены преимущественно SMD, типоразмера 0805 (C6 можно применить танталовый).  На печатные проводники, в месте прохождения под SMD-элементами, для исключения замыканий предварительно приклеены полоски, вырезанные из бумажного скотча.  Выводные резисторы  применены в позициях, где это выгодно с точки зрения удобства разводки платы. На плату сначала необходимо впаять SMD компоненты, потом проволочные перемычки и, в последнюю очередь, выводные компоненты.

Стабилизатор DA1, в крайнем случае, можно заменить менее дефицитным LP2950CZ-5.0. Для него на плате предусмотрено место (на фотографиях изображен именно этот вариант), однако, в этом случае ток в спящем режиме увеличится до 70-100 мкА.

Внешний вид собранной платы с обеих сторон приведен на фотографиях.

Настройка

При использовании указанных на схеме элементов и достаточно качественного кварцевого резонатора вышеуказанные характеристики прибора обеспечиваются без всякой регулировки. Если имеется высокоточный образцовый частотомер, имеет смысл, подав на вход прибора сигнал с частотой порядка 5-30 МГц и контролируя его значение по образцовому частотомеру, регулируя С3 добиться возможно близких показаний приборов. Так же желательно, при необходимости, подбором сопротивления R21 установить напряжение на коллекторе VT3 в районе 2-3 Вольта.

Программное обеспечение

Программа для микроконтроллера написана на Ассемблере. Приведенные HEX-файлы для прошивки микроконтроллера (для случаев использования кварцевого резонатора на 16 и 4 МГц) получены путем трансляции программы в среде MPASM. Слово конфигурации заносится в программы для прошивки автоматически при загрузке файла. При использовании кварца на 4МГц, необходимо в начале программы изменить в строке «X_16  EQU   1» значение 1 на 0 и заново оттранслировать. Следует отметить, что для полноценного использования всех возможностей, предпочтительно использование кварца на 16 МГц.  

Вложенные файлы

Во вложении, кроме вышеуказанных кода и прошивки, имеются Proteus-модель и плата в формате LAY. 

Обратите внимание, что в модели резистор R2 исключен из моделирования, потому что он вносит искажения в индикацию (особенность Proteus). Но, он необходим для выхода из спящего режима и для наблюдения этого действия следует в свойствах R2 снять «птичку» с пункта «исключить из моделирования».


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

DD1
Микросхема74HC1381
DD2
МК PIC 8-битPIC16F628A1
DA1
МикросхемаNCP551SN501
LP2950-5.0VT1
MOSFET-транзисторBF9981
VT2
MOSFET-транзисторIRLML64021
IRLML6401VT3
ТранзисторKT3681
VD1-VD3
Выпрямительный диод1N41483
КД521HL1, HL2
ИндикаторFYQ36412
CPD-03641Z1
Кварцевый резонатор16 МГц1
4 МГцC1
Конденсатор22 пФ1
C2
Конденсатор10 пФ1
C3
Конденсатор подстроечный22 пФ1
C4
Конденсатор1 мкФ1
C5, C7, C8, C12
Конденсатор100 нФ4
SMDC6
Конденсатор2.2 мкФ1
SMDC9
Конденсатор470 мкФ 6.3В1
C10, C14
Конденсатор10 нФ2
SMDC11
Электролитический конденсатор47мкФ 6.3В1
C13
Электролитический конденсатор470 мкФ 10В1
R1, R2, R13
Резистор10 кОм3
R3, R4
Резистор470 Ом2
R5-R12
Резистор750 Ом8
SMDR14
Резистор1 кОм1
R15
Резистор1 МОм1
SMDR16
Резистор4.7 кОм1
SMDR17
Резистор10 кОм1
SMDR18
Резистор1 кОм1
SMDR19
Резистор300 Ом1
SMDR20
Резистор300 кОм1
SMDR21
Резистор47 кОм1
SMDR22
Резистор1 кОм1
SMDR23
Резистор300 Ом1
SMDR24
Резистор470 Ом1
SMDS1, S2
Кнопка тактоваяУгловая2
XS1
РазъемПитания 5.5 мм1
XS2
Винтовая колодка2-х конт.1
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

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

Ваш адрес email не будет опубликован.