Простой частотомер на микросхеме своими руками — характеристики и схема
Параметры предлагаемого частотомера приведены в следующей таблице:
Режим работы | Частотомер | Частотомер | Цифровая шкала |
Диапазон измерений | 1 Гц…20 МГц | 1–200 МГц | 1–200 МГц |
Дискретность | 1 Гц | 10 Гц | 100 Гц |
Чувствительность | 40 мВ | 100 мВ | 100 мВ |
Данный частотомер обладает целым рядом преимуществ по сравнению с предшествующими:
- современная дешевая и легко доступная элементная база;
- максимальная измеряемая частота — 200 МГц;
- совмещение в одном приборе частотомера и цифровой шкалы;
- возможность увеличения максимальной измеряемой частоты до 1,2 ГГц при незначительной доработке входной части прибора;
- возможность коммутации во время работы до 4 ПЧ.
Принципиальная схема частотомера и необходимые детали
Список необходимых радиоэлементов:
- 6 микросхем — DD1 (К555ЛА3); DD2 (К193ИЕ3); DD4 (КР1816ВЕ31); DD5, DD7 (2хК555ИР22); DD6 (К555ИД7); DD8 (К573РФ2).
- Логическая ИС (DD3) — К555ИЕ19.
- 17 биполярных транзисторов (VT1, VT2–VT17) — КТ368А и 16хКТ361В
- Стабилитрон (VD1) — КС113А.
- 7 конденсаторов — С1 (0.01 мкФ); С2, С8 (2х0.1 мкФ); С3 (56 пФ); С4 (1000 пФ); С5 (22 пФ); С6 (12 пФ).
- Подстроечный конденсатор (С7) — 5-20 пФ.
- Электролитический конденсатор (С9) — 3.3 мкФ.
- 41 резистор — R1 (51 Ом); R2, R25–R40 (17х68 кОм, R2 по ошибке в схеме указана как R3); R3 (10 кОм); R4, R6 (2х560 Ом); R5 (33 Ом); R6, R7 (2х1 кОм, в схеме по ошибке два резистора R6); R8–R23 (16х20 кОм); R24 (2 кОм).
- Кварцевый резонатор (ZQ1) — 8.86 МГц.
- Вакуумно люминисцентный индикатор (HL1) — ИВ-18.
- Переключатель (S1)
- Блок переключателей (S2)
Печатная плата частотомера и рекомендации по монтажу своими руками
Печатная плата частотомера:
Видео, как собрать частотомер на одной микросхеме:
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ PLJ-6LED
Основные характеристики частотомера | |
Диапазон частот | 0,1 — 65 МГц |
Ручной режим диапазон частот | настройка значения промежуточной частоты 0 — 99,9999 МГц шаг 100 Гц |
Точность | 10 Гц |
Чувствительность | > 60 мВпп |
Время теста | 0,10 с |
Микроконтроллер, центральный чип | PIC16F648A |
Опорный генератор | управляемый напряжением кварцевый генератор 13000 МГц (VC-TCXO) со стабильностью частоты ± 2.5 ppm |
Автоматическое сохранение настроек | есть |
Разъёмы |
DC IN (питание): HX2.54-2P socket RF IN (вход сигнала): HX2.54-2P socket ICSP (интерфейс программирования): 2.54-6P Pin |
Общие характеристики | |
Дисплей | LED, 0,56″, 6-ти символьный с подсветкой красного цвета |
Питание | DC 8 — 15 В (с защитой от перефазировки) |
Рабочий ток | 90 мА |
Температура хранения | -30 — +60 °C |
Рабочая температура | 0 — +40 °C |
Габариты | 91 х 28 х 20 мм |
Вес прибора | 46 г |
Комплектация | частотомер PLJ-6LED – 1 шт |
Microchip ATmega328P
Вторым в нашем списке идет 8-разрядный AVR микроконтроллер ATmega328P.
Рисунок 3 – Микроконтроллер ATmega328P от Microchip
Выводы GPIO с возможностью генерирования прерываний
ATmega328P имеет 23 вывода GPIO, разделенных на три порта: PORTB (восемь выводов), PORTC (семь выводов) и PORTD (восемь выводов). Все выводы имеют возможность генерирования прерываний по изменению состояния на выводе. Однако отдельных флагов прерываний выводов нет, вместо этого флаг прерывания есть у каждого порта. Но два вывода на PORTD можно настроить как внешние прерывания, у них есть отдельные флаги прерывания.
Настройка прерываний
23 прерывания по изменению состояния на выводе предварительно настроены для обнаружения логического изменения значения на выводах (с 0 на 1 или с 1 на 0). Два внешних прерывания могут быть сконфигурированы для обнаружения только нарастающего фронта (изменение с 0 на 1), только спадающего фронта (изменение с 1 на 0) или постоянного значения 0. Прерывание по изменению состояния на выводе для каждого вывода может быть отдельно включено или выключено. Кроме того, может быть включено или выключено прерывание для каждого порта.
Флаг прерывания для порта или любого из выводов внешних прерываний устанавливается всегда, когда происходит событие, для которого он настроен, независимо от того, включено ли прерывание или выключено. Кроме того, флаг будет установлен независимо от того, настроен ли вывод как выход или как вход.
Вектор прерывания, обработчик и приоритеты
Каждый порт имеет один вектор прерывания (у PORTB – это PCINT0, у PORTC – это PCINT1, у PORTD – это PCINT2). Кроме того, каждый вывод внешнего прерывания имеет свой собственный отдельный вектор (вывод 2 в PORTD – INT0, а вывод 3 в PORTD – INT1). Каждый вектор прерывания может быть включен или отключен индивидуально, но это делается в периферийном устройстве GPIO, а не в контроллере прерываний (то есть контроллер прерываний не имеет возможности отдельного включения векторов прерываний, и все разрешения векторов прерываний выполняются в периферийных устройствах).
Поскольку векторы прерываний есть только у портов (для прерываний по изменению состояния на выводе), в обработчике прерывания необходимо выяснить, какой вывод и какое событие вызвало прерывание. Для этого потребуется прочитать маску прерываний для порта (чтобы узнать, прерывания каких выводов включены) и текущее значение вывода, чтобы выяснить, какое логическое изменение произошло. Однако для двух внешних прерываний вы уже будете знать, какой вывод вызвал прерывание, поскольку каждый вывод имеет отдельный вектор. Аппаратное обеспечение автоматически очищает флаги прерываний для внешних прерываний, хотя, ради безопасности, вы также можете очистить их в своем коде.
В ATmega328P приоритеты прерываний фиксированы и не могут быть изменены. После прерывания сброса прерывания выводов имеют самый высокий приоритет среди всех прерываний в следующем порядке: INT0, INT1, PCINT0, PCINT1, PCINT2.
Обработчики прерываний в ATmega328P могут быть прерваны прерываниями с более высоким приоритетом, но это не происходит автоматически. Когда запускается обработчик прерывания, CPU отключает все прерывания. Вы должны вручную включить прерывания в коде своего обработчика, чтобы разрешить вытеснение. Кроме того, существует регистр, называемый регистром состояния AVR, который является частью CPU, и значение которого CPU не сохраняет автоматически перед входом в прерывание и не восстанавливает после выхода из прерывания. Вы должны в своем обработчике прерывания сохранить и восстановить его значение. Причина, по которой вы должны это сделать, заключается в том, что CPU должен возобновить работу в том состоянии, в котором он находился до возникновения прерывания. Возможно, что действия, которые вы выполняете в своем обработчике, могут изменить этот регистр, поэтому, если вы не сохраните значение, которое он имел до начала ваших действий, и не восстановите его, CPU после вашего прерывания вернется в другое состояние, что может трудноуловимые ошибки в вашей системе.
Частотомер на PIC16F84 — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах
Простой 4-разрядный частотомер на микроконтроллере
Рис. 1. Частотомер — схема (для увеличения щелкните на картинке)
Рис. 2. Частотомер — фото
Предлагаю конструкцию простого частотомера на микроконтроллере PIC16F84A. Рабочий диапазон 0-9999 кГц, однако путем минимальных изменений в программе (выбор интервала счета) его можно перестроить на любой диапазон до 50 МГц — это ограничение связано с быстродействием счетного входа микроконтроллера. При необходимости можно использовать предделитель на быстодейстующей цифровой микросхеме.
Схема очень проста, необходимые комментарии даны на рисунке и в тексте программы. Транзисторы использованы КТ315, диоды КД522. Частота измеряется два раза в секунду, это облегчает чтение показаний при плавании частоты, и в то же время не задерживает работу при перестройке измеряемой частоты. По сравнению с другими конструкциями, в данной отсутствует мерцание дисплея, так как показания обновляются очень часто.
Резистор и диоды на входе частотомера ограничивают входной сигнал, дроссель в цепи коллектора компенсирует спад усиления на высоких частотах, для измерения низких частот его ставить не нужно. При включении питания частотомер отображает 8888 в течение 0.5 с, затем переходит в режим измерения. Частота измеряется два раза в секунду в течение 0.001 с, в остальное время измеренная частота отображается на дисплее. Для измерения частоты используется предделитель (он устанавливается на 256) и таймер микроконтроллера, таким образом после окончания измерения таймер содержит старший байт частоты, а предделитель — младший байт . Поскольку прямое обращение к предделителю невозможно, его содержимое извлекается путем программной подачи импульсов на вход и подсчета их количества, необходимого для переполнения предделителя. Двухбайтное шестнадцатеричное число преобразуется в четырехбайтное двоично-десятичное, потом разряды преобразуются в 7-сегментный код и отображаются на дисплее. Программа скомпилирована в среде MicroChip MPLAB и записана в микроконтроллер с помощью самодельного простейшего программатора JDM и бесплатной программы IC-Prog.
Скачать архив со схемой, фоткой и исходным кодом на асме.