Как собрать простой частотомер на микроконтроллере ATtiny2313. Какой диапазон измерения частот обеспечивает эта схема. Какие компоненты потребуются для сборки частотомера. Как настроить и откалибровать самодельный частотомер.
Принцип работы частотомера на ATtiny2313
Частотомер на базе микроконтроллера ATtiny2313 представляет собой простое и функциональное устройство для измерения частоты электрических сигналов. Схема обеспечивает измерение в широком диапазоне частот — от нескольких герц до десятков и сотен мегагерц.
Основные компоненты частотомера:
- Микроконтроллер ATtiny2313 — выполняет подсчет импульсов и управление индикацией
- Входной усилитель на транзисторе — обеспечивает чувствительность схемы
- Делитель частоты (опционально) — расширяет диапазон измерений в область высоких частот
- ЖК-дисплей или светодиодные индикаторы — отображают результат измерения
- Кварцевый резонатор — задает опорную частоту для микроконтроллера
Как работает частотомер на ATtiny2313? Входной сигнал поступает на усилитель, затем на счетный вход микроконтроллера. ATtiny2313 производит подсчет импульсов за фиксированный интервал времени (обычно 1 секунду) и выводит результат на дисплей. Для повышения точности используется кварцевый резонатор.
Схема частотомера на микроконтроллере ATtiny2313
Рассмотрим принципиальную схему простого частотомера на ATtiny2313:
[Здесь была бы принципиальная схема частотомера]
Основные элементы схемы:
- DD1 — микроконтроллер ATtiny2313
- VT1 — входной усилитель на транзисторе
- ZQ1 — кварцевый резонатор 16 МГц
- HG1 — ЖК-дисплей или 7-сегментные индикаторы
- DA1 — стабилизатор напряжения 5В
Входной сигнал через конденсатор C1 поступает на базу транзистора VT1. Усиленный сигнал подается на вывод T0 микроконтроллера DD1. Программа в ATtiny2313 выполняет подсчет импульсов и вывод результата на дисплей HG1.
Диапазон измеряемых частот
Какой диапазон частот способен измерять частотомер на ATtiny2313? Это зависит от нескольких факторов:
- Без делителя частоты — до 8-10 МГц
- С делителем на 8 (микросхема LB3500) — до 65-80 МГц
- С делителем на 32 (LB3500 + 74LS293) — до 150-160 МГц
Нижний предел измерений обычно составляет несколько сотен герц. Для расширения диапазона в область высоких частот применяются дополнительные делители частоты на входе схемы.
Компоненты для сборки частотомера
Для сборки частотомера на ATtiny2313 потребуются следующие основные компоненты:
- Микроконтроллер ATtiny2313
- Кварцевый резонатор 16 МГц
- ЖК-дисплей 16×2 символов или 7-сегментные индикаторы
- Транзистор КТ3102 или аналог
- Стабилизатор напряжения 7805
- Резисторы, конденсаторы
Дополнительно могут потребоваться микросхемы делителей частоты (LB3500, 74LS293), если необходимо расширить диапазон измерений выше 10 МГц.
Программирование микроконтроллера ATtiny2313
Для работы частотомера необходимо запрограммировать микроконтроллер ATtiny2313. Программа может быть написана на языке ассемблера или Си. Основные функции, выполняемые программой:
- Настройка таймера-счетчика для подсчета входных импульсов
- Организация измерительного интервала (обычно 1 секунда)
- Расчет частоты по количеству импульсов
- Вывод результата на дисплей
Готовые прошивки для частотомера на ATtiny2313 можно найти в интернете или разработать самостоятельно. Для программирования микроконтроллера потребуется программатор.
Калибровка и настройка частотомера
Для обеспечения точности измерений частотомер на ATtiny2313 необходимо откалибровать. Процесс калибровки включает:
- Подача на вход частотомера сигнала с известной частотой (например, 1 МГц)
- Настройка подстроечным конденсатором в цепи кварцевого резонатора
- Корректировка программных коэффициентов (при необходимости)
Точность калибровки можно проверить, измеряя сигналы различных частот и сравнивая показания с образцовым частотомером. При правильной калибровке погрешность измерений не должна превышать 0,01-0,1%.
Преимущества частотомера на ATtiny2313
Частотомер на базе микроконтроллера ATtiny2313 имеет ряд достоинств:
- Простота схемы и доступность компонентов
- Широкий диапазон измеряемых частот
- Низкое энергопотребление
- Компактные размеры устройства
- Возможность программной модификации функций
Благодаря этим преимуществам, частотомер на ATtiny2313 является отличным выбором для радиолюбительских проектов и измерительных приборов.
Области применения самодельного частотомера
Частотомер на микроконтроллере ATtiny2313 может найти применение в различных областях:
- Настройка и проверка радиопередатчиков
- Измерение частоты генераторов
- Контроль частоты в электронных схемах
- Образовательные цели при изучении электроники
- Любительская радиосвязь
Простота конструкции и доступность компонентов делают этот частотомер популярным среди радиолюбителей и начинающих электронщиков.
Модификации и улучшения базовой схемы
Базовую схему частотомера на ATtiny2313 можно модифицировать для расширения функциональности:
- Добавление делителей частоты для измерения до 1 ГГц
- Использование более точного кварцевого резонатора
- Реализация режима измерения периода сигнала
- Добавление интерфейса для подключения к компьютеру
- Питание от аккумулятора для портативности
Программная часть также может быть доработана, например, для реализации усреднения результатов или автоматического выбора диапазона измерений.
Схема и описание работы частотомера на микроконтроллере AVR ATtiny2313
В данной статье представлена простая и надежная схема частотомера, реализованная на основе микроконтроллера ATtiny2313 (семейство AVR). С ее помощью можно измерять частоты до 65 кГц включительно. Программа для микроконтроллера написана на BascomAVR – нечасто уже используется, но может быть кто то его еще юзает, поэтому, надеюсь, кому то еще эта схема пригодится. В дальнейшем уже буду публиковать схемы с использованием более современных программно-аппаратных схем.
Отображение частоты производится на дисплее 16*2 (купить на AliExpress), но обязательно с контроллером HD44780 или аналогичным KS066. Для питания прибора подойдет напряжение от 5 до 9 вольт.
Подсчет числа импульсов производится при помощи подсчитывания импульсов по нарастающему фронту на ноге 9 микроконтроллера (PD.5/T1 и вход таймера Timer1). Два диода 1N4148 и резистор на 10 кОм необходимы для защиты входа от перенапряжения.
Для работы схемы у микроконтроллера необходимо прошить fuse bits, чтобы задействовать режим работы с внешним кварцевым резонатором (данная операция уже много где в сети описана, поэтому здесь не будем отвлекаться на это).
Текст программы написан на бэйсике в среде BascomAVR. Демо версия этой программы имеет ограничение по размеру кода в 4 Кб, но этого нам вполне хватает. Скачать BascomAVR можно с официального сайта ее разработчика — www.mcselec.com. В программе задействованы 2 таймера: таймер0 служит для отсчета фиксированных интервалов времени (в рассматриваемом нами случае 1 секунда, можно изменять), а таймер1 осуществляет подсчет импульсов, пришедших за это время.
Необходимо отметить, что подсчет числа импульсов будет производиться только в том случае, если уровень сигнала на контакте 9 будет равен уровню логической «1» (примерно 3-5 вольт). Timer0 работает на дефолтной частоте (то есть которая установлена в нем по умолчанию) микроконтроллера ATtiny2313, равной 8 МГц, делитель тактовой частоты не используется.
Чтобы увеличить верхний предел измерения частоты (65 кГц) необходимо использовать внешний кварц с большей тактовой частотой и немного изменить прошивку.Частотомер можно сконструировать на макетной плате. В качестве перспектив на доработку устройства можно добавить распознавание диапазонов частоты и отображение ее в виде Гц, кГц, МГц. Скачать программу для этой схемы можно по нижеприведенной ссылке.
Frequency (14,0 KiB, 460 hits)
Самый простой частотомер до 10 МГц на микроконтроллере Attiny2313
Это, наверно, самый простой частотомер построенный на микроконтроллере ATtiny2313. Он позволяет измерять частоты до 10 МГц в четырех автоматически переключаемых диапазонах. Наименьший диапазон имеет разрешение 1 Гц.
Технические характеристики частотомера
- Диапазон 1: 9,999 кГц, разрешение 1 Гц.
- Диапазон 2: 99,99 кГц, разрешение до 10 Гц.
- Диапазон 3: 999.9 кГц, разрешение до 100 Гц.
- Диапазон 4: 9999 кГц, разрешение до 1 кГц.
Описание частотомера на микроконтроллере
Микроконтроллер Attiny2313 работает от внешнего кварцевого генератора с тактовой частотой 20 МГц (это максимально допустимая частота). Точность измерения частотомера определяется точностью данного кварца. Минимальная длина полупериода измеряемого сигнала должна быть больше, чем период кварцевого генератора (это связано с ограничениями архитектуры микроконтроллера ATtiny2313). Следовательно, 50 процентов от тактовой частоты генератора составляет 10 МГц (это максимальное значение измеряемой частоты).
Входной сигнал через резистор R1 поступает на вывод 9 микроконтроллера. Подсчет производится с помощью 16-битного таймера-счетчика. Переполнение увеличивает 8-битный регистр, записывая в 24-битную переменную. Далее эта величина переводится в десятичное значение и выводится на светодиодный индикатор.
Все значения измеряемой частоты всегда отображаются в кГц. Автоматический выбор диапазона изменяет положение десятичной точки. Частота обновления данных составляет 1 Гц.
Для отображения измеренной частоты используется четырехразрядный светодиодный индикатор. Катоды светодиодного индикатора, подключены к порту B, а аноды к порту D. В связи с использованием мультиплексного режима отображения информации и индикатора SuperBright, отпадает необходимость в использовании ключевых транзисторов для снижения нагрузки с портов микроконтроллера.
Частота мультиплекса составляет 156,25 Гц. Можно применить индикатор CA56-12SRWA. Резисторы R2…R9 ограничивают протекающий ток (он должен быть не более 40 мА).
Данный частотомер питается от стабилизированного источника 5В, построенного на интегральном стабилизаторе 78L05.
Установка фьюзов (в PonyProg):
Тестер транзисторов / ESR-метр / генератор
Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…
Работоспособность частотомера проверена в Proteus:
Скачать прошивку и модель в Proteus (23,0 KiB, скачано: 5 673)
источник
Частотомер II от DANYK — Микроконтроллеры и Технологии
Дата публикации: .
Это очень простой частотомер на микроконтроллере AVR. Он позволяет измерять частоты до 10 МГц в 2-х автоматически выбранных диапазонах. Он основан на предыдущем проекте частотомера I, но имеет 6 разрядов индикатора вместо 4-х. Нижний диапазон измерения имеет разрешение 1 Гц и работает до 1 МГц. Более высокий диапазон имеет разрешение 10 Гц и работает до 10 МГц. Для отображения измеренной частоты используется 6-разрядный светодиодный дисплей. Прибор построен на основе микроконтроллера Atmel AVR ATtiny2313A или ATTiny2313. Настройку битов конфигурации вы можете найти ниже.
Микроконтроллер тактируется от кварцевого резонатора частотой 20 МГц (максимально допустимая тактовая частота). Точность измерения определяется точностью этого кристалла, а также конденсаторов C1 и C2. Минимальная длина полупериода измеряемого сигнала должна быть больше периода частоты кварцевого генератора (ограничение архитектуры AVR). Таким образом, при 50% рабочем цикле можно измерять частоты до 10 МГц.
Измеряемый сигнал поступает на вывод PD5(T1). Подсчет выполняется с помощью 16-разрядного таймера/счетчика1, который синхронизирован внешним сигналом. Переполнение таймера увеличивает 8-разрядный регистр, получая в результате 24-битное значение частоты. Затем это значение преобразуется в десятичную форму и выводится на дисплей. Частота всегда отображается в кГц. Автоматический выбор диапазона изменяет положение десятичной точки. Частота обновления 1 Гц.
Катоды индикаторов подключены к порту B, аноды к выводам 0-4 и 6 порта D. Суперяркий дисплей позволяет не использовать обычные транзисторы для усиления анодного тока. Дисплей управляется методом мультиплексированием и подключается обычным способом. Частота мультиплексирования составляет 104.166 Гц. Можно сделать 6-разрядный дисплей, например, из трех двухразрядных LD-D028UR-C. Резисторы R1-R8 определяют потребляемый ток дисплея и, следовательно, его яркость. Они выбираются так, чтобы ток не превышал максимальный выходной ток вывода (40 мА).
Этот частотомер питается от источника питания напряжением 5 В (+/- 10%). Потребление при 5 В составляет около 15-35 мА, в зависимости от количества засвеченных сегментов (наибольшее потребление тока имеет светодиодный индикатор). Если вход счетчика находится в «воздухе», индикатор может отображать бессмысленные значения, потому что входное сопротивление высоко. Вы можете предотвратить это, подключив резистор сопротивлением около 100 кОм между входом и землей.
Диапазоны частоты (f):
Диапазон 1 … макс. 999,999 кГц, разрешение до 1 Гц.
Диапазон 2 … макс. 9999.99 кГц, разрешение до 10 Гц.
Схема простейшего частотомера II на AVR до 10 МГц.
Настройка битов конфигурации (в PonyProg), Low Fuse: 0xEF, High Fuse: 0xD9.
Тестирование простейшего частотомера II на AVR — частота измерения около 8230,43 кГц.
Простой частотомер II до 10 МГц с 6 цифрами.
Автор: DANYK
Архив для статьи «Частотомер II от DANYK» | |
Описание:
Исходный код(Ассемблер), файл прошивки микроконтроллера |
|
Размер файла: 2.58 KB Количество загрузок: 351 | Скачать |
Самодельный частотомер на ATTINY2313. Самодельный частотомер на ATTINY2313 Attiny2313 схемы частотомер
Очень полезный и несложный прибор, который просто незаменим в творческой лаборатории радиолюбителя, можно сделать на МК PIC16F628A. Для измерения частот до 30 Мгц и предназначен данный цифровой частотомер на распространённой микросхеме-контроллере PIC16F628A. Его принципиальная схема состоит из базового модуля, с подключенным к его счетному входу входным формирователем. Схема частотомера приведена на рисунке ниже:Данный измерительный прибор может использоваться в двух режимах — цифровая шкала и измеритель частоты. При включении питания, частотомер переходит в тот режим, в котором он работало до последнего выключения питания. Если это был режим частотомера — в левом разряде индикатора высветится режим частотомера «F.». Так-же в младшем разряде индикатора высветится «0». Частотомер автоматически перейдет в режим измерения частоты и будет находиться в режиме ожидания. При подаче на вход какого-то сигнала, признак режима частотомера «F.» гасится и индикатор отобразит значение измеряемой частоты в килогерцах.
Схема входного формирователя частотомера — цифровой шкалы, приведена на рисунке:
Если на момент включения питания, на входе частотомера присутствует измеряемый сигнал, то, после включения питания, признак работы частотомера «F.», высветится в течение 1-й секунды, а затем погаснет.
Для того чтобы перейти на время измерения 0,1 сек. или 10 сек., необходимо нажать либо кнопку № 1, либо одновременно нажать кнопку № 1 и кнопку № 2 соответственно (см. раскладку клавиатуры для режима частотомера), затем дождаться изменения положения десятичной точки, после чего отпустить кнопку (кнопки). Если после этого необходимо вернуться к времени измерения 1 сек., то необходимо нажать кнопку № 2 и дождаться изменения положения десятичной точки, после чего отпустить кнопку. Для любого времени измерения десятичная точка отмечает килогерцы.
Раскладка клавиатуры режима частотомера
Кнопка № 1 0,1 сек. Переход на время измерения 0,1 сек.
Кнопка № 2 1 сек. Переход на время измерения 1 сек.
Кнопка № 1 +
кнопка № 2 10 сек. Переход на время измерения 10 сек.
(кнопки нажимаются одновременно)
Если перед выключением питания происходила работа в режиме цифровой шкалы, то при следующем включении питания будет установлен именно этот режим, а внутри режима цифровой шкалы будет установлен именно тот подрежим («минус ПЧ» или «плюс ПЧ»), в котором происходила работа до последнего выключения питания. Признаки подрежимов цифровой шкалы («L.» или «H.» соответственно) будут постоянно высвечиваться в левом разряде индикатора. При отсутствии сигнала на входе цифровой шкалы, индикатор будет показывать значение записанной в память контроллера промежуточной частоты, а при его наличии — результат вычитания или сложения частоты сигнала, присутствующего на входе цифровой шкалы, и значения промежуточной частоты, записанной в энергонезависимую память PIC контроллера.
Режим цифровой шкалы имеет 4 подрежима.
— При нажатии на кнопку № 1 происходит переход в подрежим «минус ПЧ».
— При этом, в левом разряде индикатора, высветится признак подрежима «L.».
— При нажатии на кнопку № 2 происходит переход в подрежим «плюс ПЧ».
— При этом, в левом разряде индикатора, высветится признак подрежима «H.».
В процессе «прошивки» контроллера, в его энергонезависимую память записывается значение промежуточной частоты = 5,5 мГц., но потом может будет самостоятельно записать в нее любое значение и использовать ее в качестве промежуточной. Для этого надо подать на вход ЦШ внешний сигнал с частотой, которая далее будет использоваться в качестве промежуточной. Проконтролировать значение этой частоты можно, перейдя в режим частотомера.
Раскладка клавиатуры режима цифровой шкалы:
Кнопки Время измерения Пояснения
Кнопка № 1 «минус ПЧ» Промежуточная частота вычитается из
измеряемой частоты
Кнопка № 2 «плюс ПЧ» Промежуточная частота суммируется с
измеряемой частотой
Кнопка № 1 +
кнопка № 2 Установка ПЧ Запись в оперативную память значения
измеряемой частоты (ПЧ)
Повторно:
Кнопка № 1 +
кнопка № 2 Запись ПЧ Копирование значения измеряемой частоты из оперативной памяти в энергонезависимую с целью дальнейшего ее использования в качестве промежуточной
При смене режима работы, меняется раскладка клавиатуры. Если кнопка № 1 находится в нажатом состоянии меньше определенного времени, то переключения в другой режим не происходит и кнопка № 1 может либо устанавливать время измерения 0,1 сек. (в режиме частотомера), либо включать подрежим «минус ПЧ» (в режиме цифровой шкалы). Если этот порог превышен, происходит переключение в другой режим. Величина этого порога — около 4 сек., и этот интервал времени отсчитывается с момента окончания цикла счета, приходящегося на момент нажатия кнопки № 1.
Снизить энергопотребление схемы частотомера можно, увеличив номиналы резисторов, соединяющих выводы порта В с индикатором. В своей конструкции использовал 9-разрядный светодиодный индикатор от советского телефона с АОН, с общим катодом и красным цветом свечения. В моем частотомере, кроме питания от сети, имеется также и батарейное питание (аккумуляторы). Печатная плата устройства приведена на рисунке:
Прошивки для микроконтроллера PIC16F84A, а также полный текст статьи на контроллере качаем тут. Схему испытал — ZU77.
Этот самодельный частотомер на ATTINY2313 предназначен для измерения частоты в диапазоне примерно от 4МГц до более 160МГц. Его можно использовать как измеритель частот или в качестве устройства ввода-вывода TRX, например, на диапазон 144МГц (2м).
Технические характеристики частотомера:
- измерение частоты в диапазоне 4-160 Мгц
- отображение измерений на ЖК-дисплее
- чувствительность 700мВ
- входное напряжение, макс
- питание: 8-15В
- очень простая плата, минимальное количество
элементов, быстрый запуск - размеры платы: 37х80мм
Схема прекрасно отработала в диапазоне от 3,8МГц до 162МГц. Основой схемы является микроконтроллер ATTINY2313. Его преимуществом является возможность работать на частотах до 20МГц. В схеме использован кварц на 16МГц, таким образом, сам процессор теоретически должен правильно измерять частоты до 8МГц.
Зачастую оказывается, что диапазон до 8МГц слишком мал. Увеличение верхнего диапазона можно получить, используя делитель частоты (прескалер). В схеме задействован прескалер LB3500, который позволяет измерять до 150 Мгц.
Краткая информация о LB3500:
- напряжение питания — 4,5…5,5В
- потребляемый ток — l6мА-24мА
- входное напряжение — 100мВ-600мВ
- выходное напряжение — 0,9 Vpp
- делитель — 8
Без применения дополнительного делителя схема способна измерять частоты до 64МГц. Добавление дополнительного делителя в виде двоичного счетчика 74LS293 (ICl) позволяет увеличить диапазон измерений до 150 Мгц (макс. для LB3500).
ICl делит частоту на 4. Таким образом, вся система прескалера (ICl и IC4) делит входную частоту на 32. Транзистор Tl с элементами C7, R2, R3 обеспечивает высокое входное сопротивление.
Входной сигнал после разделения попадает на вход микросхемы LB3500. На выходе в 9 IC4 сигнал получается в 8 раз меньшей частоты, чем на входе. К сожалению, выходной сигнал микросхемы LB3500 не согласовывается с TTL уровнями. Для устранения этого недостатка в схему добавлен транзистор Т2, который предназначен для согласования. Потенциометр PRI обеспечивает точное соответствие.
Конструктивно прибор состоит из дисплея, образованного семью 7-сегментными светодиодными индикаторами, микроконтроллера и нескольких транзисторов и резисторов. Микроконтроллер выполняет все необходимые функции, поэтому применение каких-либо дополнительных микросхем не требуется.
Принципиальная схема прибора достаточно проста и изображена на Рисунке 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).
В секции загрузок доступны для скачивания несколько вариантов прошивок для различных кварцевых резонаторов, но пользователи могут скомпилировать прошивку под имеющийся кварцевый резонатор самостоятельно (см. комментарии в исходном коде).
Входной сигнал
В общем случае на вход прибора может подаваться сигнал любой формы с амплитудой 0 … 5 В, а не только прямоугольные импульсы. Можно подавать синусоидальный или треугольный сигнал; импульс определяется по спадающему фронту на уровне 0.8 В. Обратите внимание: вход частотомера не защищен от высокого напряжения и не подтянут к питанию, это вход с высоким сопротивлением, не нагружающим исследуемую цепь. Диапазон измерений может быть расширен до 100 МГц с разрешением 10 Гц, если применить на входе соответствующий высокоскоростной делитель частоты.
Дисплей
В приборе в качестве дисплея используются семь светодиодных 7-сегментных индикаторов с общим анодом. Если яркость свечения индикаторов будет недостаточной, можно изменить номинал резисторов, ограничивающих ток через сегменты. Однако не забывайте, что величина импульсного тока для каждого вывода микроконтроллера не должна превышать 40 мА (индикаторы тоже имеют свой рабочий ток, о его величине не стоит забывать). На схеме автор указал номинал этих резисторов 100 Ом. Незначимые нули при отображении результата измерения гасятся, что делает считывание показаний более комфортным.
Печатная плата
Двухсторонняя печатная плата имеет размеры 109 × 23 мм. В бесплатной версии среды проектирования печатных плат Eagle в библиотеке компонентов отсутствуют семисегментные светодиодные индикаторы, поэтому они были нарисованы автором вручную. Как видно на фотографиях (Рисунки 5, 6, 7) авторского варианта печатной платы, дополнительно необходимо выполнить несколько соединений монтажным проводом. Одно соединение на лицевой стороне платы — питание на вывод Vcc микроконтроллера (через отверстие в плате). Еще два соединения на нижней стороне платы, которые используются для подключения выводов сегмента десятичной точки индикаторов в 4 и 7 разряде через резисторы 330 Ом на «землю». Для внутрисхемного программирования микроконтроллера автор использовал 6-выводный разъем (на схеме это разъем изображен в виде составного JP3 и JP4), расположенный в верхней части печатной платы. Этот разъем не обязательно припаивать к плате, микроконтроллер можно запрограммировать любым доступным способом.
Загрузки
Принципиальная схема и рисунок печтаной платы, исходный код и прошивки микроконтроллера —
На разработку конструкции толкнуло прочитанное на форуме по DDS замечание, что должны бы существовать и другие высокочастотные делители кроме серий 193 и 500, а также своевременно увиденная схема нового синтезатора для FM2006. После экспериментов родился простой частотомер на микросхемах LMX 2306, ATtiny 2313 и знакосинтезирующим жидкокристаллическом индикаторе BC 1602 со следующими характеристиками:
- Диапазон измеряемых частот от 300 Гц до 450 МГц
- Чувствительность от 50 мВ до 200 мВ
- Минимальный шаг измерения:
- В диапазоне от 300 Гц до 4,5МГц 1 Гц
- В диапазоне от 4,5 МГц до 80 МГц 25 Гц
- В диапазоне от 80 МГц до 450 МГц 100 Гц
- Время измерения 0,1 сек / 1 сек
- Точность измерения не хуже 0,007%
- Напряжение питания 9В…15В
- Ток потребления (без подсветки индикатора) 20 мА
Описание и настройка схемы (рис.1 ).
Сигнал со входа F поступает на усилительный каскад на транзисторе VT1 с которого расходится на программируемый высокочастотный делитель, входящий в состав микросхемы DD1, а также на движковый переключатель SA1, которым выбирается диапазон измерения (до 4,5МГц / выше 4,5 МГц). Далее сигнал дополнительно усиливается и поступает на микросхему DD2, которая выполняет счет частоты, вывод данных на ЖКИ и управление микросхемой DD1. Питание схемы обеспечивает стабилизатор DA1.
Переключателем SA2 выбирается время счета и соответственно точность измерения. Кнопкой SB1 проводят калибровку частотомера. Для этого на вход F подают образцовую частоту 1 МГц и нажав на SB1 удерживают ее до получения на дисплее ЖКИ показаний максимально близких к 1 МГц. В дальнейшем калибровку можно не проводить.
Также можно использовать стандартную процедуру настройки, подав на вход F любую образцовую частоту и подбором C9 и C10 добиться нужных показаний ЖКИ.
Цепочка D1, R5, R6, C7 совместно с каскадом на транзисторе VT2 расширяет выходящие с микросхемы DD1 импульсы. При подаче на вход F максимально возможной частоты, но не более 450 МГц, подбором резистора R5 добиваются устойчивых показаний ЖКИ (если осциллограф подключить к 9 ножке DD2 – должно быть что-то близкое к меандру). Конденсатор C7 в собранной нами конструкции переместился на коллектор VT2.
Разъем Prog служит для внутрисхемного программирования ATtiny 2313. Если же микросхема будет прошита в программаторе, то разъем не впаивается. Микросхему лучше установить в панельку.
Детали.
Постоянные резисторы и керамические конденсаторы типоразмера 0805 (поверхностный монтаж). Транзистор VT1 КТ368 заменим на КТ399, VT2 КТ368 – на менее высокочастотный КТ315 (с корректировкой платы). Микросхема DD2 ATtiny 2313-20 (с тактовой частотой до 20 МГц) в DIP корпусе установлена со стороны печатных проводников. DA1 (устанавливается также со стороны печати) — любой 5-ти вольтовый стабилизатор с током более 1 А, но если не использовать подсветку ЖКИ, то можно применить и слаботочный 78L05. Кварцевый резонатор Q1 – 11,0592 МГц в любом исполнении. Переключатели SA1 и SA2 – B1561(DPDT) или SS21 с длиной рычажка более 5 мм. Кнопка тактовая SB1 – TS-A1PS (TS-A2PS, TS-A3PS, TS-A4PS, TS-A6PS). Индикатор BC1602 или BC1601, BC1604, а также подобный с контроллером HD-44780 других фирм изготовителей. Проверять соответствие выводов обязательно! Диод VD2 1N4007 заменим на любой с подходящим рабочим током. Разъем питания – серии AUB 3,5 мм стерео или подобный с некоторой корректировкой платы. Для подачи питания используется любой маломощный сетевой адаптер с подходящим напряжением. Сигнал на плату подается по одножильному проводу диаметром примерно 0,8 мм и длиной 5-8 см.
Можно исключить из схемы C4, R4 и переключатель SA1, подключив C8 перемычкой к базе VT2. 6 ножка DD2 должна висеть в воздухе. В таком варианте нижней граничной частотой становится 1,5 МГц.
Печатная плата разведена в Sprint-Layout и изготовлена из одностороннего фольгированного стеклотекстолита (рис. 2 ).
Частотомер на микроконтроллере ATtiny2313 . Схема отличается простотой и надежностью. Частотомер позволяет измерять частоты до 65 кГц. Программа для микроконтроллера написана на BascomAVR. Отображение частоты на дисплее 16*2. Напряжение питания устройства от 5 до 9 вольт.
Счет импульсов происходит путем подсчитывания импульсов по нарастающему фронту на ноге 9 (PD.5/T1 и вход таймера Timer1). Для защиты входа от перенапряжения включены два диода 1N4148 и резистор на 10кОм. Отображение происходит на любой дисплей 16*2 , но обязательно с контроллером HD44780 или аналогичным KS066.
Программа написана на бэйсике в среде BascomAVR. Демо версия имеет ограничение по размеру кода в 4 Кб, чего вполне достаточно. Скачать BascomAVR с официального сайта разработчика. В программе используются два таймера: таймер0 для отсчета фиксированных интервалов времени, в нашем случае 1 секунда(можно поэкспериментировать с этим значением), а таймер1 считает пришедшие импульсы за это время. Стоит отметить, что счет импульсов будет вестись только в том случае, если уровень сигнала на ноге 9 будет соответствовать уровню лог. «1» (порядка 3-5 вольт). Timer0 работает на частоте тактирования микроконтроллера т.е 8МГц, делитель тактовой частоты не включён.
Самодельный частотомер на ATTINY2313. Самодельный частотомер на ATTINY2313 Делитель частоты 1 10 на attiny2313
Частотомер на микроконтроллере ATtiny2313 . Схема отличается простотой и надежностью. Частотомер позволяет измерять частоты до 65 кГц. Программа для микроконтроллера написана на BascomAVR. Отображение частоты на дисплее 16*2. Напряжение питания устройства от 5 до 9 вольт.
Счет импульсов происходит путем подсчитывания импульсов по нарастающему фронту на ноге 9 (PD.5/T1 и вход таймера Timer1). Для защиты входа от перенапряжения включены два диода 1N4148 и резистор на 10кОм. Отображение происходит на любой дисплей 16*2 , но обязательно с контроллером HD44780 или аналогичным KS066.
Программа написана на бэйсике в среде BascomAVR. Демо версия имеет ограничение по размеру кода в 4 Кб, чего вполне достаточно. Скачать BascomAVR с официального сайта разработчика. В программе используются два таймера: таймер0 для отсчета фиксированных интервалов времени, в нашем случае 1 секунда(можно поэкспериментировать с этим значением), а таймер1 считает пришедшие импульсы за это время. Стоит отметить, что счет импульсов будет вестись только в том случае, если уровень сигнала на ноге 9 будет соответствовать уровню лог. «1» (порядка 3-5 вольт). Timer0 работает на частоте тактирования микроконтроллера т.е 8МГц, делитель тактовой частоты не включён.
Последнее время мне очень часто требуется измерять частоту, уж очень много электронных проектов я делаю и поэтому появилось нужда в измерительном приборе — частотомере. Покупать данный прибор — я ещё школьник в 8 классе учусь а такая техника очень дорогая для меня. Сильно большие частоты мне измерять пока нет необходимости, хотя в скором времени возможно будет нужно. И поэтому я решил сделать свой частотомер своими руками! Стремясь к минимализму за основу взял AVR микроконтроллер ATtiny2313 и ЖКИ 16*1. Набросал проект в , написал прошивку и нарисовал принципиальную схему:
Собственно ничего сложного, всё очень просто. Собрал всё на бредборде, кто не знает это — макетная плата с механическими контактами. Проверил, работает! Вот фото отчёт:
Ну теперь надо реализовать прибор, сделать печатную плату и поместить в корпус.
И так, теперь когда все детальки собраны, пора делать печатную плату. Её я сделал универсальной, добавил контактные площадки, мало-ли захочется что нибудь добавить. Чертил печатную плату я программе , найти чертёж можно в файлах к статье. Плату я делал , вот что получилось:
Самое главное это хорошо и качественно припаять микроконтроллер, ведь он в SOIC корпусе.
Не проблема, и мельче паяли! Главное не переборщить припоя и не жалеть канифоли.
Запаиваем остальные детальки, вот что получилось:
Кстати, от лишнего канифоля на плате можно избавиться с помощью технического спирта. Так намного лучше:
После сборки прошиваем микроконтроллер, я прошивал с помощью программы программатором . Вот фьюз биты:
Подключить программатор к микроконтроллеру можно проводками, подключить их к разъёму для ЖКИ:
А reset припаять:
Распиновку подключения программатора к микроконтроллера не привожу, я думаю вы её знаете. После прошивки и установки фьюз-битов, устанавливаем ЖКИ и подаём питание на устройство:
Заработало, отлично! Теперь устанавливаем устройство в корпус:
Как вы видите я свой частотомер сделал на базе своего , дело в том что я себе собрал более навороченный велокомпьютер (с большим дисплеем на Atmega32, скоро про него напишу статью) а из этого и решил сделать частотомер, только плату переделал. И конечно видео работы устройства:
На видео видно что в качестве генератора я использую компьютер и программу .
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК AVR 8-бит | ATtiny2313-20PU | 1 | В блокнот | ||
C1, C2 | Конденсатор | 22 пФ | 2 | В блокнот | ||
С3 | Конденсатор | 0.1 мкФ | 1 | В блокнот | ||
R1 | Резистор | 1 кОм | 1 | В блокнот | ||
R2 | Резистор | 4.7 кОм | 1 | В блокнот | ||
R3 | Резистор | 20 Ом | 1 | В блокнот | ||
LCD | ЖК индикатор 16*1 | Wh2601A | 1 | С совместимым HD44780 контроллером | В блокнот | |
Z1 | Кварц | 16 МГц | 1 | В блокнот | ||
Вход | Разьём | PBS-40 | 1 |
Частотомер с хорошими характеристиками, позволяющий измерять частоты от 1Гц до 10 МГц (9,999,999) с разрешением в 1 Гц во всем диапазоне. Идеален для функиональных генераторов, цифровых шкал или как отдельное устройство. Дешев и легок в изготовлении, собран из доступных деталей, имет небольшой размер и может быть смонтирован на панели многих устройств.
Схема состоит из семи 7-сегментных индикаторов, AVR ATtiny2313 и нескольких транзисторов и резисторов. AVR делает всю работу, и дополнительные микросхемы не нужны. Микроконтроллер считает количество импульсов, пришедших на его вход за 1 секунду и отображает это число. Сама важная вещь — это очень точный таймер, и он реализован на 16-битном Timer1 в режиме CTC. Второе, 8-битный счетчик работает как Counter0 и считает импульсы на входе T0. Каждые 256 импульсов он вызывает прерывание, в котором программа увеличивает множитель. Когда мы получаем 1-секундное прерывание, содержимое множителя умножается на 256 (сдвиг влево на 8 бит). Остаток импульсов, которые посчитал счетчик записывается в регистр и добавляется к результату умножения. Это значение затем разбивается на отдельные цифры, которые отображаются на индикаторах. После этого, перед выходом из 1-секундного прерывания, оба счетчика одновременно сбрасываются и измерение начинается заново. В свободное от прерывания время контроллер занимается динамической индикацией.
Разрешение и точность:
Точность зависит от тактового генератора. Кварц должен быть хорошего качества и иметь как можно меньший ppm (допуск). Будет лучше, если частота будет кратна 1024, например, 16 МГц или 22.1184 МГц. Для измерения частоты до 10 МГц, надо использовать кварц не меньше, чем на 21 МГц, например, 22.1184 МГц. Частотомер может измерять частоту до 47% от частоты собственного кварца. Если есть хороший промышленный частотомер, то можно откалибровать схему добавлением подстроечного конденсатора (1пФ-10пФ) между одним из выводов кварца и землей, и подстроить частоту в соответствии с показаниями промушленного частотомера.
В архиве с исходниками есть несколько вариантов под разные кварцы, но вы можете скомпилировать свой вариант.
Форма сигнала:
В принципе, устройство понимает любую форму сигнала от 0 до 5V, не только прямоугольные импульсы. Синусоида и теугольные импульсы сичтаются по заднему фрону при переходе его ниже 0.8V.
В устройстве нет защиты от превышения входного напряжения выше 5 вольт.
Устройство имеет высокоомный вход и не нагружает тестируемую схему – вы даже можете измерить частоту переменного тока в сети 220 вольт, прикоснувшись ко входу пальцем. Частотомер может быть переделан для измерения частоты до 100 МГц с шагом 10 Гц путем добавления на вход быстродействующего делителя.
Дисплей:
Использовано семь семисегментных индикаторов с общим анодом в режиме динамической индикации. Если яркость получается недостаточной, можно уменьшить значения токоограничивающих резисторов, но нужно помнить, что максимальный импульсный ток каждого вывода микроконтроллера составляет 40 мA . По умолчанию сопротивление резисторов 100 Ом. Незначащие нули гасятся програмно. Значения обновляются каждую секунду.
Печатная плата:
Двусторонняя печатная плата размером 109mm x 23mm – к сожалению, 7 индикаторов не влезли в рабочее пространство бесплатной версии Eagle, поэтому они нарисованы от руки. На плате нужно сделать 3 соединения проводом — первое — соединение питания и вывода VCC контроллера – это соединение показано на слое silkscreen. Два других соединяют десятичные точки индикаторов с резисторами на 330 Ом расположенными на слое bottom. Сверху платы расположен коннектор Atmel ISP-6. Контакт 1 первый со стороны кварца. Этот коннектор необязателен и нужен только для программирования контроллера. Индикаторы должны припаиваться на некотором расстоянии от платы, чтобы можно было подлезть паяльником к выводам, припаиваемым с верхней стороны платы.
Конструктивно прибор состоит из дисплея, образованного семью 7-сегментными светодиодными индикаторами, микроконтроллера и нескольких транзисторов и резисторов. Микроконтроллер выполняет все необходимые функции, поэтому применение каких-либо дополнительных микросхем не требуется.
Принципиальная схема прибора достаточно проста и изображена на Рисунке 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).
В секции загрузок доступны для скачивания несколько вариантов прошивок для различных кварцевых резонаторов, но пользователи могут скомпилировать прошивку под имеющийся кварцевый резонатор самостоятельно (см. комментарии в исходном коде).
Входной сигнал
В общем случае на вход прибора может подаваться сигнал любой формы с амплитудой 0 … 5 В, а не только прямоугольные импульсы. Можно подавать синусоидальный или треугольный сигнал; импульс определяется по спадающему фронту на уровне 0.8 В. Обратите внимание: вход частотомера не защищен от высокого напряжения и не подтянут к питанию, это вход с высоким сопротивлением, не нагружающим исследуемую цепь. Диапазон измерений может быть расширен до 100 МГц с разрешением 10 Гц, если применить на входе соответствующий высокоскоростной делитель частоты.
Дисплей
В приборе в качестве дисплея используются семь светодиодных 7-сегментных индикаторов с общим анодом. Если яркость свечения индикаторов будет недостаточной, можно изменить номинал резисторов, ограничивающих ток через сегменты. Однако не забывайте, что величина импульсного тока для каждого вывода микроконтроллера не должна превышать 40 мА (индикаторы тоже имеют свой рабочий ток, о его величине не стоит забывать). На схеме автор указал номинал этих резисторов 100 Ом. Незначимые нули при отображении результата измерения гасятся, что делает считывание показаний более комфортным.
Печатная плата
Двухсторонняя печатная плата имеет размеры 109 × 23 мм. В бесплатной версии среды проектирования печатных плат Eagle в библиотеке компонентов отсутствуют семисегментные светодиодные индикаторы, поэтому они были нарисованы автором вручную. Как видно на фотографиях (Рисунки 5, 6, 7) авторского варианта печатной платы, дополнительно необходимо выполнить несколько соединений монтажным проводом. Одно соединение на лицевой стороне платы — питание на вывод Vcc микроконтроллера (через отверстие в плате). Еще два соединения на нижней стороне платы, которые используются для подключения выводов сегмента десятичной точки индикаторов в 4 и 7 разряде через резисторы 330 Ом на «землю». Для внутрисхемного программирования микроконтроллера автор использовал 6-выводный разъем (на схеме это разъем изображен в виде составного JP3 и JP4), расположенный в верхней части печатной платы. Этот разъем не обязательно припаивать к плате, микроконтроллер можно запрограммировать любым доступным способом.
Загрузки
Принципиальная схема и рисунок печтаной платы, исходный код и прошивки микроконтроллера —
Особенностью первой схемы частотомера на микроконтроллере AVR является то, что она работает вместе с компьютером и подсоединена к материнской плате через разъем IRDA. От этого же разъема конструкция получает питание. Вторая схема частотомера базируется на микроконтроллере Attiny2313 и способна измерять частоту до 10 мГц. Третья рассмотренная конструкция частотомера построена на базе легендарной платы Arduino, основа которой также микроконтроллер AVR.
Схема частотомера состоит из микропроцессора Attiny2313 и двоичного счетчика 74AC161. Входящий сигнал для усиления следует на транзистор VT1, затем с его коллекторного вывода он поступает на вход «С» двоичного счётчика. Контроль за работой счетчика закреплен за МК Attiny2313, который осуществляет обнуление, останавливает или запускает счет путем подачи управляющего сигнала на десятый вывод.
Непродолжительной подачей логического нуля на вход сброса двоичного счётчика, МК обнуляет его, а после этого, отправляет уровень логической единицы на входе ЕР, запускает его работу. Затем, он считает импульсы с выхода старшего разряда счетчика в течение полусекунды.
Частотомер на микроконтроллере AVR. Сигналы данных на компьютер идут с порта PD6 Attiny2313. Линия порта РВ1 используется для сигналов синхронизации следующие от компьютера.
В начальный момент времени МК генерирует стартовый импульс продолжительностью около 1,6 мкс после чего идет пауза. Программа время от времени обращается к порту 2F8H и при регистрации байта, инициирует передачу синхроимпульсов. Данные синхроимпульсы пойдут при отправке числа ноль в инфракрасный порт компьютера. Состав импульсов: Первый бит стартовый и 8 бит число ноль.
При обнаружении уровня логической единицы, микроконтроллер начинает передачу, отправляя 1-й стартовый импульс устанавливая логическую единицу на линии данных и дожидается спада по линии синхронизации, для того чтобы было можно отправить импульсы данных. Если бит данных нулевой, то выставляется «1» .
Так как скорости передачи и приёма одинаковы, это позволяет получить независимость от заданной скорости ИК порта компьютера.
Фъюзы для программы Ponyprog и сама прошивка доступна по зеленой ссылке чуть выше.
В этом простом проекте частотомера, контроллер Arduino считывает напряжение, затем высчитывает его частоту и посылает данные через USB UART в компьютер, на котором необходимо установить программу считывания и визуализации данных, приложение и скетч в архиве для скачки.
Плата Arduino генерирует точную односекундную временную основу для счетчика с помощью каскадирования двух таймеров timer0 и timer2. Связь между цифровыми входами 3 и 4 соединяет выход таймера 2 (250 Гц) со входом таймера 0. Программный код ожидает, когда выход таймера 0 станет положительным, и начинает отсчет частоты входного сигнала таймером 1. Timer1 – это 16-разрядный таймер, он переполняется при достижении значения 2 16 , после этого, изменяется значение регистра переполнения overF. В конце первой секунды записывается 16-разрядный регистр. Затем Arduino отправляет на ПК 6 байтов данных. Схема подключения к Arduino простая, и ее можно,посмотреть на фото ниже.
Сначала Arduino необходимо подсоединить к компьютеру, а только потом запустить приложение на Visual Basc 6. Приложение ищет Com-порт, отправляя байты и ожидает их обратное принятие. Это занимает пару секунд. Приложение должно быть обязательно отключено, в тот момент когда вы прошиваете плату через Arduino IDE. Частотный вход платы Ардуино представляет собой уровни сигнала TTL, при слабом сигнале необходимо добавить усилитель.
Принцип работы частотомера на микроконтроллере. Самодельный частотомер на ATTINY2313
Данный прибор предназначен для измерения частоты в пределах 0-9999 Гц, но при использовании делителя частоты на входе этот диапазон соответствующим образом расширяется. Максимальное входное напряжение – 3V, при условии, что отсутствует дополнительный делитель напряжения, минимальное 0,15V, так же при условии что он отсутствует. Максимальную частоту измерения можно расширить посредством изменения программного кода, но об этом позже.
Схема прибора относительно простая и изображена ниже:
В основе схемы – 8-ми битный микроконтроллер производства , Atmega8A-PU. Для тактирования ядра микроконтроллера применен генератор с внешним кварцевым резонатором. Выбор такого генератора обусловлен требованиями к стабильности частоты последнего. В качестве индикатора применен семисегментный четырехразрядный LED индикатор с общим анодом и динамической индикацией. Ток сегментов индикатора не ограничивается резисторами, так как применена динамическая индикация, и естественно ток импульсный, который сегменты индикатора с успехом выдерживают, так как и порт микроконтроллера. Входной узел выполнен на элементах R2, D1, D2, C3, R3, R4, R1, Q1. Этот узел обеспечивает усиление/ограничение сигналов, поступающих на его вход (резистор и диоды на входе частотомера ограничивают входной сигнал, транзистор отвечает за усиление сигнала до ТТЛ уровня). Печатная плата устройства так же не сложная. Она изготавливается из одностороннего фольгированного материала (изначально планировалось сделать из двухстороннего, но в наличии его не нашлось, поэтому остановился на односторонней). Топология платы представлена ниже.
Что касается программы для микроконтроллера, то она была разработана в среде (файл проекта прилагается). Для подсчета импульсов я использовал прерывания по входу INT0 микроконтроллера, а для ограничения времени счета – прерывания таймера TMR0. Так как на этом таймере стоит предделитель с коэффициентом деления 1/256 (в силу того что он восьмиразрядный), то расчет частоты прерываний производится так:Fпрер.=F ген.÷256÷поргр. дел. В своей конструкции я выбрал частоту прерываний в 200 Гц. Как я уже писал выше, частоту измерения можно увеличить. Для этого нужно лишь ограничить время измерения. Это делается посредством изменения числа 200 на 2(время измерения не 1с а 10мс, граничная частота 99 999Гц), в коде, как показано на рисунке в исходнике на С.
Для программирования микроконтроллера я использовал параллельный программатор. Как видите, в моей конструкции вывод внешнего сброса используется как обычный порт. Если у вас нет параллельного программатора, то вот вариант схемы, где используется порт D микроконтроллера, и необходимость в использовании пина RESET как обычного порта вывода отпадает.
Вот пример выставления фузов в программе :
Вот схема варианта частотомера с использование RESET по прямому назначению:
А так же вот топология платы для второго варианта схемы:
Для питания схемы используется стабилизированный источник питания на напряжения 5V (я использовал компьютерный БП, поэтому никаких стабилизирующих элементов в схеме нет).
В данной схеме нет дефицитных деталей, но список замен и аналогов все же перечислю. Так микроконтроллер Atmega8A-PU можно заменить на аналогичный Atmega8-16PU (кстати, последний более предпочтителен). Резисторы можно взять на мощность 0,125 Вт, за исключением R2, его лучше взять на 0,5 Вт. Конденсаторы – для генератора дисковые, керамические, а для входного блока – любой, подходящий по параметрам. Транзистор можно заменить на отечественный КТ3102 (как показали опыты у КТ315 слишком мал коэффициент передачи тока h31Э). Светодиодный индикатор можно взять любой, подходящий по размерам (а они не критичны). Кварцевый резонатор использован на частоту 3267800Гц (3,2768МГц).
Фотографии готового устройства показаны ниже.
На первом фото видно резистор, который подключен к питу RESET МК (остался с проверки второй прошивки, со сбросом).
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8A | 1 | ATmega 8-16 PU | В блокнот | |
Q1 | Биполярный транзистор | КТ3102 | 1 | 2N3390 | В блокнот | |
VD1, VD2 | Выпрямительный диод | 1N4148 | 2 | В блокнот | ||
С1, С2 | Конденсатор | 27 пФ | 2 | В блокнот | ||
С3 | Конденсатор | 22 нФ | 1 | В блокнот | ||
R1, R4 | Резистор | 470 Ом | 2 | В блокнот | ||
R2 | Резистор | 100 Ом | 1 |
Частотомер с хорошими характеристиками, позволяющий измерять частоты от 1Гц до 10 МГц (9,999,999) с разрешением в 1 Гц во всем диапазоне. Идеален для функиональных генераторов, цифровых шкал или как отдельное устройство. Дешев и легок в изготовлении, собран из доступных деталей, имет небольшой размер и может быть смонтирован на панели многих устройств.
Схема состоит из семи 7-сегментных индикаторов, AVR ATtiny2313 и нескольких транзисторов и резисторов. AVR делает всю работу, и дополнительные микросхемы не нужны. Микроконтроллер считает количество импульсов, пришедших на его вход за 1 секунду и отображает это число. Сама важная вещь — это очень точный таймер, и он реализован на 16-битном Timer1 в режиме CTC. Второе, 8-битный счетчик работает как Counter0 и считает импульсы на входе T0. Каждые 256 импульсов он вызывает прерывание, в котором программа увеличивает множитель. Когда мы получаем 1-секундное прерывание, содержимое множителя умножается на 256 (сдвиг влево на 8 бит). Остаток импульсов, которые посчитал счетчик записывается в регистр и добавляется к результату умножения. Это значение затем разбивается на отдельные цифры, которые отображаются на индикаторах. После этого, перед выходом из 1-секундного прерывания, оба счетчика одновременно сбрасываются и измерение начинается заново. В свободное от прерывания время контроллер занимается динамической индикацией.
Разрешение и точность:
Точность зависит от тактового генератора. Кварц должен быть хорошего качества и иметь как можно меньший ppm (допуск). Будет лучше, если частота будет кратна 1024, например, 16 МГц или 22.1184 МГц. Для измерения частоты до 10 МГц, надо использовать кварц не меньше, чем на 21 МГц, например, 22.1184 МГц. Частотомер может измерять частоту до 47% от частоты собственного кварца. Если есть хороший промышленный частотомер, то можно откалибровать схему добавлением подстроечного конденсатора (1пФ-10пФ) между одним из выводов кварца и землей, и подстроить частоту в соответствии с показаниями промушленного частотомера.
В архиве с исходниками есть несколько вариантов под разные кварцы, но вы можете скомпилировать свой вариант.
Форма сигнала:
В принципе, устройство понимает любую форму сигнала от 0 до 5V, не только прямоугольные импульсы. Синусоида и теугольные импульсы сичтаются по заднему фрону при переходе его ниже 0.8V.
В устройстве нет защиты от превышения входного напряжения выше 5 вольт.
Устройство имеет высокоомный вход и не нагружает тестируемую схему – вы даже можете измерить частоту переменного тока в сети 220 вольт, прикоснувшись ко входу пальцем. Частотомер может быть переделан для измерения частоты до 100 МГц с шагом 10 Гц путем добавления на вход быстродействующего делителя.
Дисплей:
Использовано семь семисегментных индикаторов с общим анодом в режиме динамической индикации. Если яркость получается недостаточной, можно уменьшить значения токоограничивающих резисторов, но нужно помнить, что максимальный импульсный ток каждого вывода микроконтроллера составляет 40 мA . По умолчанию сопротивление резисторов 100 Ом. Незначащие нули гасятся програмно. Значения обновляются каждую секунду.
Печатная плата:
Двусторонняя печатная плата размером 109mm x 23mm – к сожалению, 7 индикаторов не влезли в рабочее пространство бесплатной версии Eagle, поэтому они нарисованы от руки. На плате нужно сделать 3 соединения проводом — первое — соединение питания и вывода VCC контроллера – это соединение показано на слое silkscreen. Два других соединяют десятичные точки индикаторов с резисторами на 330 Ом расположенными на слое bottom. Сверху платы расположен коннектор Atmel ISP-6. Контакт 1 первый со стороны кварца. Этот коннектор необязателен и нужен только для программирования контроллера. Индикаторы должны припаиваться на некотором расстоянии от платы, чтобы можно было подлезть паяльником к выводам, припаиваемым с верхней стороны платы.
Представленный в данной статье частотомер позволяет измерять частоту от 10 Гц до 60 МГц с точностью 10 Гц. Это позволяет использовать данный прибор для самого широкого применения, например измерять частоту задающего генератора, радио приёмника и передатчика, функционального генератора, кварцевого резонатора и др. Частотомер обеспечивает хорошие параметры и обладает хорошей входной чувствительностью, благодаря наличию усилителя и TTL-преобразователя. Это позволяет измерять частоту кварцевых резонаторов. Если использовать дополнительный делитель частоты, максимальная частота измерения может достигать 1 ГГц и выше.
Идея частотомера на микроконтроллере PIC, возникла у меня после прочтения апнота AN592 фирмы Microchip, где описывается измерение частоты на PIC и представлена программа. Я разработал схему и написал программу, в которой улучшил точность измерения, а значение частоты отображается на LCD-экранчике. Получился довольно простой и эффективный частотомер.
Схема частотомера довольно простая, большинство функций выполняет микроконтроллер. Единственное, для микроконтроллера необходим усилительный каскад, чтобы увеличить входное напряжения с 200-300 мВ до 3 В. Транзистор, включенный по схеме с общим эмиттером, обеспечивает псевдо-TTL сигнал, поступающий на вход микроконтроллера.
В качестве транзистора необходим какой-нибудь «быстрый» транзистор, я применил BFR91 (отечественный аналог КТ3198В).
Напряжение V кэ устанавливается на уровне 1.8-2.2 вольта резистором R3* на схеме. У меня это 10 кОм, однако может потребоваться корректировка. Напряжение с коллектора транзистора прикладывается к входу счетчика/таймера микроконтроллера PIC, через последовательное сопротивление 470 Ом. Для выключения измерения, в PIC задействываются встроенные pull-down резисторы.
В PIC реализован 32-битный счетчик, частично аппаратно, частично софтово. Подсчет начинается после того, как выключаются встроенные pull-down резисторы микроконтроллера, продолжительность составляет точно 0.4 секунды. По истечении этого времени, PIC делит полученное число на 4, после чего прибавляет или отнимает соответствующую промежуточную частоту, для получения реальной частоты. Полученная частота конвертируется для отображения на дисплее.
Калибровка
Для того, чтобы частотомер работал правильно, его необходимо откалибровать. Проще всего это сделать так: подключить источник импульсов с заранее точно известной частотой и вращая подстроечный конденсатор выставить необходимые показания.
Если данный метод не подходит, то можно воспользоваться «грубой калибровкой». Для этого, выключите питание прибора, а 10 ножку микроконтроллера подсоедините на GND. Затем, включите питание. МК будет измерять и отображать внутреннюю частоту. Если вы не можете подстроить отображаемую частоту (путем подстройки конденсатора 33 пФ), то кратковременно подсоедините вывод 12 или 13 МК к GND. Возможно, что это нужно будет сделать несколько раз, т.к. программа проверяет эти выводы только один раз за каждое измерение (0.4 сек). После калибровки, отключите 10 ногу микроконтроллера от GND, не выключая при этом питания прибора, чтобы сохранить данные в энергонезависимой памяти МК.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
МК PIC 8-бит | PIC18F84J11 | 1 | В блокнот | |||
Линейный регулятор | LM7805 | 1 | В блокнот | |||
Транзистор | BFR91 | 1 | В блокнот | |||
Выпрямительный диод | 1N4007 | 1 | В блокнот | |||
Конденсатор | 1 мкФ | 1 | В блокнот | |||
10 мкФ | 1 | В блокнот | ||||
Электролитический конденсатор | 1 мкФ | 1 | В блокнот | |||
Конденсатор | 0.1 мкФ | 1 | В блокнот | |||
Конденсатор | 33 пФ | 1 | В блокнот | |||
Конденсатор подстроечный | 33 пФ | 1 | В блокнот | |||
Резистор | 470 Ом | 2 | В блокнот | |||
Резистор | 10 кОм | 1 | Подбор | В блокнот | ||
Резистор | 10 кОм | 1 | В блокнот | |||
Переменный резистор | 10 кОм | 2 |
В статье мы рассмотрим, как построить маленький, дешевый и простой частотомер, способный измерять частоту до 40 МГц с ошибкой ниже 1%. Подобной точности вполне достаточно для отладки большинства собственных аналоговых и цифровых устройств. Прибор позволит Вам проанализировать многие аспекты работы схем.
Принципиальная схема частотомера изображена на рисунке 1.
Рис.1. Принципиальная схема прибора
Частотомер собран на макетной плате, основой является микроконтроллер ATmega16 компании Atmel, источником тактовой частоты является внутренний RC осциллятор 8 МГц (это необходимо помнить при программировании микроконтроллера). Дополнительно, во входной части используется 4-битный счетчик 74HC191 в качестве делителя измеряемой частоты на 16 до подачи ее на вход микроконтроллера. Как видно, используется только выход Q3 счетчика, частота на этом выходе будет равна входной частоте деленной на 16.
Вход прибора (щуп) – точка W1, которая напрямую подключена к порту микроконтроллера PB0 и, через делитель, к порту PB1.
Для отображения значения измеренной частоты используется 4-разрядный семисегментный светодиодный индикатор с общим анодом. Такое решение сокращает количество проводников для подключения индикатора. В случае отсутствия дисплея указанного типа, возможно применение различных типов семисегментных индикаторов, однако потребуется адаптация программного обеспечения микроконтроллера.
Схема расположения и назначение выводов примененного индикатора изображена на рисунке 2.
Рис.2. Расположение и назначение выводов примененного 4 разрядного светодиодного индикатора .
Выводы E1…E4 используются для включения соответствующих разрядов (E1 – для включения правого младшего разряда).
Каждая линия ввода/вывода микроконтроллера ATmega16 может обеспечить выходной ток до 40 мА, поэтому нам нет необходимости использовать транзисторы и сигналы управления дисплеем (E1…E4) подключены непосредственно к порту микроконтроллера.
Коннектор для внутрисхемного программирования микроконтроллера J1. После сборки и программирования микроконтроллера Вам потребуется калибровка прибора, настройка некоторых переменных (например, для увеличения яркости дисплея, уменьшения мерцания дисплея). Другими словами Вам потребуется обновление ПО микроконтроллера, и поэтому указанный коннектор необходимо установить на плату.
Алгоритм измерения частоты
Все мы знаем, что частота – это количество повторяющихся импульсов за единицу времени. Однако, измерение частоты с помощью цифровых приборов, например, с помощью микроконтроллера, который имеет свои ограничения, требует некоторых исследований для достижения необходимых результатов.
Максимальная частота, которая может быть обработана счетчиком микроконтроллера ATmega16, не может превышать тактовую частоту, деленную на 2.5. Обозначим максимальную частоту – F max . Тактовая частота для нашего микроконтроллера – 8 МГц, следовательно напрямую мы можем измерять сигналы с частотой до 3.2 МГц. Для измерения частоты выше этого уровня мы используем 4-битный счетчик в качестве делителя входной частоты. Теперь мы можем измерять частоты в 16 раз превышающие F max , но здесь накладывается ограничение со стороны счетчика 74191 и фактическая максимальная измеряемая частота не превышает 40 МГц.
Алгоритм, который был разработан, проводит измерение оригинальной (входной) частоты (обозначимF o ) и частоты получаемой с делителя (обозначим F d ). Пока соблюдается условие, что частота меньшеF max выполняется условие:
F o = 16 × F d ;
Но по мере приближении F o к F max , все больше импульсов должны быть обработаны и выражение выше примет вид:
F o d ;
Следовательно предел измерения микроконтроллера может быть автоматически обнаружен.
Частотомер начинает делать измерение оригинальной частоты (обработка и отображение значений на дисплее), и как только обнаруживает приближение к максимальной частоте F max (с использованием указанного выше метода), выбирает для измерения частоту после делителя.
Алгоритм суммарно изображен на диаграмме (рис. 3)
Рис.3 Алгоритм работы частотомера на микроконтроллере
Программное обеспечение микроконтроллера
Исходный код программы микроконтроллера снабжен подробными комментариями, но некоторые моменты требуют отдельного разъяснения:
- код разработан так, что измеренное значение отображается на индикаторе в «кГц». Например, если Вы видите на дисплее значение «325.8» – это означает 325.8 кГц, значение «3983» – это 3983 кГц (или 3.983 МГц).
- Таймер/счетчик 0 микроконтроллера используется для подсчета входных импульсов напрямую;
- Таймер/счетчик 1 микроконтроллера используется для подсчета входных импульсов после делителя на 16;
- Таймер/счетчик 2 сконфигурирован как таймер с предварительным делителем на 1024 (частота CPU делится на 1024). Используется для вызова алгоритма вычисления и выбора частоты каждый период T таймера. В нашем проекте Т = 1024 × 256/F cpu .
- Константа «factor», определенная в начале программы значением «31.78581», должна быть откалибрована измерением эталонной частоты. Вычисляется по выражению:
factor = F cpu /(1024 × 256)=8.E6/(1024×256)=30.51757
Функция Anti-Flickering (устранение мерцания индикатора) довольна сложна, но очень эффективна, особенно при измерении непостоянных частот. Данная функция полностью избавляет индикатор от быстрого переключения между различными значениями, продолжая отображать точное значение, и быстро изменяет показания, если измеренная частота действительно изменилась.
Примечание
Микроконтроллер ATmega16 поставляется с заводскими установками, при которых настроен на работу от внутреннего RC осциллятора 1 МГц. Необходимо с помощью последовательного программатора установить Fuse-биты CKSEL3..0 в значение «0100», что соответствует включению внутреннего RC осциллятора 8 МГц.
ПРИЛОЖЕНИЯ:
— Исходный код программы микроконтроллера
Перевод: Vadim
В данной статье я хотел бы вас познакомить с «самоделкой выходного дня» — частотомером на уже «легендарном» микроконтроллере ATmega8. Данный прибор не позиционируется как «лучший» по параметрам, да и схемотехника не претендует на оригинальность. Единственное его отличие от большинства конструкций, которое можно найти в сети — повышенная точность в диапазоне низких частот (1 — 1000Гц). Это достигается за счет различного подхода при измерении НЧ и СЧ с ВЧ. При измерении НЧ производится подсчет количества тактов микроконтроллера за некоторое количество импульсов на входе прибора. А при измерении СЧ и ВЧ, традиционно считается количество импульсов за определенный промежуток времени.
Характеристики частотомера:
- Диапазон частот с погрешностью измерения +/- 1Гц: 1000Гц — 1МГц (при погрешности +/- 20-200Гц, [> частота, > погрешность] возможно измерение частот до 10МГц без предделителя).
- Напряжение питания: 5В
- Потребляемый ток:
- Время измерения: 1с (1кГц — 1МГц) и до 10с (1Гц — 1кГц).
- Точность: 4 знака после запятой (1 — 10Гц), 3 знака после запятой (10 — 100Гц), 2 знака после запятой (100 — 1000Гц), целое число (> 1кГц).
- Время индикации: 3с
Проект был собран и протестирован в , а после и «в живую». Для создания прошивки использовался компилятор avr-gcc (он же ).
Основа схемы, как уже говорилось, микроконтроллер ATmega8. Отображение данных производится на семисегментном светодиодным (не обязательно) индикаторе на 8 знакомест с общим анодом. В моем случае был использован малогабаритный индикатор, соответственно и печатная плата была разработана небольших размеров. На схеме, как вы видите, есть контакты для подключения кнопки (J7, J8), но это «на будущее», и в данным момент они не используются. Для тактирования микроконтроллера применен кварцевый резонатор на 16МГц. Светодиод D1 отображает действия прибора — при цикле измерения он включается. Измерение длится 1 секунду. После пауза в 3 секунды, а потом снова измерение и т.д.
Для индикаторов с общим катодом необходимо следующим образом изменить транзисторные ключи:
Кроме этого, потребуется подправить программу.
В заголовочном файле «display7seg_lib.h » необходимо эту строку:
#define OK
Заменить на
#define OA
А затем рекомпилировать проект.
К слову, библиотеку для семисегментного индикатора я делал не только для этого проекта, и возможно она вам пригодится, так как имеет несколько полезных функций (к примеру, вывод строки).
Для измерения частоты, как уже упоминалось выше, в устройстве используются два метода: счет тактов микроконтроллера за кол-во импульсов и счет поступающих на вход прибора импульсов за определенное время.
Порядок измерения следующий:
- Производится измерение частоты посредством счета импульсов на ходе
- Если количество импульсов более тысячи (частота более одного килогерца), то результат выводится на дисплей а устройство ожидает 1 секунду и повторяет измерение
- Если же количество импульсов менее тысячи, то происходит дополнительно сравнение. В том случае, когда частота менее 10Гц, производится счет тактов на протяжении 20 импульсов на входе (10
В обоих вариантах измерения частоты подсчет импульсов или тактов производится таймером Т0, так как Т1 более предпочтительно применять для определения временных промежутков с высокой точностью, чем он собственно в программе и занимается. Таймер Т2 отвечает за индикацию. При его переполнении срабатывает прерывание, в котором на светодиодный индикатор выводится 1 символ. Так как частота прерываний довольно высока, человеческий глаз не успевает уследить за сменой состояний на индикаторе и картинка воспринимается как цельная, хоть переключение знакомест происходит по очереди.
Печатная плата устройства выполнена на двухстороннем фольгированном материале. Основная сложность при ее изготовлении — развести дорожки для ножек микроконтроллера. Впрочем, если вы используете технологию или проблем с этим пунктом у вас возникнуть не должно.
Лицевая сторона:
Обратная сторона:
Расположение элементов:
Варианты замены деталей
Резисторы R1 — R8, R14 желательно использовать в диапазоне 220 — 680 Ом. Меньшего номинала брать очень нежелательно (у микроконтроллера не такая высокая нагрузочная способность на портах), а больше нет смысла так как яркость индикатора и светодиода будет крайне низкой. Конденсаторы C2 и C3 можно взять 18 — 33пФ. Конденсатор для предотвращения помех по питанию, под номером C1, желательно использовать емкостью 0,068 — 0,47мкФ. Резисторы R9 — R16 можно взять 1 — 4.7кОм.Транзисторы Q1 — Q8 заменяются на КТ315 или КТ3102, но подойдут и любые другие маломощные кремниевые структуры n-p-n. Микроконтроллер можно применить и в DIP корпусе, но придется заново разводить плату.
Небольшое послесловие
В данном приборе мной было решено вынести блок формирователя импульсов за пределы основной платы (к примеру, в виде выносного пробника).
Самый простой вариант — использовать компаратор или ОУ в режиме масштабного усиления (показано ниже) . Выгодная сторона — малый порог по напряжению. Недостаток же данной схемы — очень скромный предел по частоте. При использовании популярного ОУ LM358, максимальная частота не превышает 100кГц. Но для наладки, к примеру, звуковой аппаратуры и различных устройств, работающих на небольших частотах вполне сгодится.
Еще один вариант — использование транзистора и логического элемента, к примеру, КТ3102 + 74LS13 (шустрый аналог нашей К155ТЛ1). Этот вариант вполне жизнеспособен и на высоких частотах.
Так же схемы формирователей можно найти в интернете, главный критерий — комплиментарность с высоким и низким логическим уровнем КМОП-логики.
В архиве, прикрепленном к статье, есть файлы прошивки и для схемы с ОА так и с ОК. В прочем, как и сами схемы и печатные платы (смотрите в проектах Proteus).
Удачи вам в сборке ваших устройств
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8A-AU | 1 | TQFP-32 | В блокнот | |
Q1-Q8 | Биполярный транзистор | BC547 | 8 | или КТ312/315/3102 | В блокнот | |
R1-R8, R17 | Резистор | 220 Ом | 9 | В блокнот | ||
R9-R16 | Резистор | 1 кОм | 8 | В блокнот | ||
R18 | Резистор | 10 кОм | 1 | В блокнот | ||
R19 | Резистор | 100 кОм | 1 | В блокнот | ||
C1 | Конденсатор | 100 нФ | 1 | В блокнот | ||
C2-C3 | Конденсатор | 22 пФ | 2 |
Подписаться на еженедельную рассылку mywok.ru
Схема. Частотомер на микроконтроллере — Сайт радиолюбителей и радиомастеров. Схемы и сервис мануалы.
Предлагаемый частотомер собран на микроконтроллере и семиэлементных светодиодных индикаторах с общим катодом. Его разрешающая способность составляет 0,1 Гц, что может быть полезным при проведении точных измерений.
Основные технические характеристики
Диапазон измеряемых частот, МГц…………….0.1 Гц…40
Время измерения частоты, с . .1 или 10
Чувствительность, В………….0,1
Напряжение питания, В …….4,5…5
Потребляемый ток, мА:
в режиме ожидания……….10
максимальный ………..35
Схема частотомера показана на рис. 1 На входе устройства установлен компаратор DA1, который включен по типовой схеме с инвертирущим входом. Порог срабатывания компаратора можно изменять подборкой резистора R4 — чем больше его сопротивление, тем выше порог. Работа компаратора управляется сигналом на входе LATCH (вывод 5) DA1 который поступает с линии порта РАЗ (вывод 5 DD1), и разрешена при низком логическом уровне на этом входе.
Порт В микроконтроллера DD1 задействован для подачи напряжения на элементы а—h индикаторов HG1. HG2, а порт С — для подключения катодов этих индикаторов к общему проводу. Резистор R7 является «подтягивающим» для линии порта RAO, a R6 уменьшает влияние на компаратор DA1 импульсов, поступающих на вход предцелителя в режиме досчета. Резисторы R8—R15 токоограничивающие от их сопротивлений зависит яркость свечения индикаторов HG1, HG2.
Входной сигнал преобразуется компаратором DA1 в прямоугольные импульсы с уровнями ТТЛ, которые поступают на вход микроконтроллера для их дальнейшего счета Восьмиразрядные регистры предделителя, таймера TMRO и двух счетчиков прерывания по переполнению TMRO подсчитывают эти импульсы. Измерительный интервал задает таймер TMR1.
Информация в регистрах таймера TMRO и счетчиков доступна для чтения, а вот содержимое высокочастотного (до 90 МГц) регистра предделителя недоступно. Поэтому для извлечения информации, хранящейся в нем, применен ставший уже классическим способ досчета импульсов до переполнения предделителя. После остановки счета значение TMRO сохраняется в цифровом компараторе. Число поданных на вход предделителя импульсов подсчитывается, и после каждого импульса сравниваются текущее и сохраненное значения TMRO. При изменении текущего значения TMRO подача импульсов на предделитель прекращается. Накопленное в младшем регистре число, преобразованное в дополнительный код, и будет тем числом, которое было в предделителе. Двоичный код на выходах четырех восьмиразрядных регистров преобразуется в двоично-десятичный, а затем в код для управления семиэлементными индикаторами.
После подачи питающего напряжения осуществляется инициализация регистров микроконтроллера Частота переключения разрядов при динамической индикации должна быть такой, чтобы не было видно мерцания индикатора. Как известно, эта частота должна быть не ниже 25 Гц. Выбранная длительность индикации одного разряда на восьмиразрядном индикаторе составляет 3 мс, поэтому частота переключения F= 1/T= 1 /(0,003-8) = 41,7 Гц, где F — частота обновления индикатора; Т — период. При такой частоте мерцание индикатора не заметно.
Периодически микроконтроллер проверяет состояние контактов кнопки SB1. Если кнопка нажата, то состояние флага времени измерения изменяется на противоположное, при этом также изменяется положение запятой на индикаторе. Далее последовательно на индикатор выводится информация остальных разрядов. Последовательность вывода на индикацию нарушается только прерываниями.
В программе использованы два прерывания: одно — по результату сравнения значений шестнадцатеразрядных регистров специального события (CCPR1Н и CCPR1L) и регистров таймера TMR1 (TMR1Н и TMR1L). другое — по переполнению таймера TMRO. Регистры ССР1 и TMR1 используются для формирования временного интервала измерения частоты. Делитель на 10 для получения временного интервала 1 с и еще один делитель на 10 для получения интервала 10 с реализованы на отдельных регистрах, которые заполняются при прерывании После сохранения значений контекстных регистров проверяются флаги прерывания. Если прерывание произошло по переполнению таймера TMRO. то инкрементируется счетчик и программа выходит из прерывания. При прерывании по результату сравнения модуля ССР1 заполняется регистр делителя на 10 и проверяется флаг времени измерения. Если установлено время измерения 10с заполняется регистр делителя на 10. После окончания времени измерения выполняются досчет и определение содержимого предделителя Полученные данные перекодируются в девять разрядов двоично-десятичного кода. Для экономии энергии батарей портативного прибора все незначащие нули гасятся. При выполнении операций во время прерываний работа таймеров TMRO и TMR1 не останавливается, поэтому цикл измерения повторяется непрерывно.
Конструкция и детали
В устройстве применены резисторы С2-23, Р1-4, оксидный конденсатор — импортный, остальные керамические — К10-17. Компаратор AD8611 можно заменить на компаратор AD8561, кварцевый резонатор ZQ1 — HC-49U Кнопки SB1 и SB2 с самовозвратом — ПКн159. выключатель питания — кнопочный с возвратом в исходное положение повторным нажатием Кнопка и выключатель должны иметь удлиненные (10 мм) толкатели.
Большинство элементов смонтированы на печатной плате из одностороннего фольгированного стеклотекстолита, чертеж которой показан на рис. 2. Светодиодные индикаторы монтируют на печатной плате из аналогичного материала, чертеж ее показан на рис. 3. Платы установлены в унифицированном корпусе Z55 размерами 105*63*28 Для входного гнезда и гнезда питания в боковой стенке сделаны отверстия соответствующего диаметра Отверстия для толкателей кнопки и выключателя питания делают на верхней крышке Чтобы исключить случайное включение частотомера при транспортировке, например в кармане, толкатели не должны выступать над крышкой В этом случае для нажатия на толкатели можно применить авторучку, карандаш или измерительный щуп частотомера. В верхней крышке корпуса сверлят отверстия диаметром 1,5…2 мм для выводов светодиодных индикаторов. Предварительно сверлят отверстия диаметром 0,8…1 мм, используя печатную плату (см. рис. 3) как шаблон, а затем рассверливают сверлом большего диаметра. Индикаторы устанавливают в эти отверстия с внешней стороны, а печатную плату надевают на выводы индикаторов с внутренней стороны крышки и затем припаивают. Для элементов питания применена кассета на четыре элемента типоразмера ААА. причем контакты в одном отсеке замкнуты. Платы и кассету соединяют друг с другом изолированными проводами, например МГТФ-0,07. Внешний вид смонтированного прибора показан на рис. 5.
После включения питания в течение одной секунды во всех разрядах индикаторов появляются нули, а затем высвечиваются две запятые, выделяющие разряды единиц, десятков и сотен герц. При нажатии на кнопку SB1 запятые сдвигаются влево на один разряд. Если эти операции выполняются, частотомер готов к работе.
Налаживание сводится к установке частоты кварцевого генератора. Для этого на вход частотомера подают сигнал с известной частотой и подборкой конденсаторов С6 или установкой последовательно с резонатором конденсатора емкостью 10…100 пФ (на плате для него предусмотрено место, в которое предварительно монтируют проволочную перемычку) устанавливают это значение частоты на индикаторе Для облегчения процедуры можно установить подстроечные конденсаторы, например КТ4-25 Следует отметить, что для обеспечения точности измерения частоты в доли герц следует применить эти конденсаторы, а также кварцевый резонатор с повышенной термостабильностью.
От редакции Чтобы исключить протекание постоянного тока через входные цепи . частотомера, следует включить диоды VD1, VD2 параллельно резистору R2 (после конденсатора С2)
Прошивка: 17_32_12__18_03_2010.zip
Н.Заяц, г.Азов Ростовская обл.
«Радио» № 03, 2010
Похожие статьи:
USB программатор микроконтроллеров AVR — AVR910
Миниатюрный вольтметр на микроконтроллере
Лабораторный блок питания на микроконтроллере
Автоматический частотомер на микроконтроллере с автономным питанием
Преобразователь USB-COM-LPT на микроконтроллере
Усовершенствованный термометр-термостат на микроконтроллере
Бегущие огни на микроконтроллере АТ89С4051
Часы с термометром и барометром на микроконтроллере ATmega8
Автомат световых эффектов на микроконтроллере
Частотомер на ПЛИС
Post Views: 1 264
Самый простой частотомер (счетчик) до 10 МГц
Самый простой частотомер (счетчик) до 10 МГц Это, наверное, самый простой частотомер (счетчик) с Atmel AVR.
Он позволяет измерять частоты до 10 МГц в 4 автоматически выбираемых диапазонах. Самый низкий диапазон имеет разрешение 1 Гц.
4-значный светодиодный дисплей используется для отображения измеренной частоты.
Он основан на микроконтроллере Atmel AVR ATtiny2313A или ATTiny2313.Программа для загрузки и настройки битов настройки вы можете найти ниже.
Микропроцессор работает от кристалла 20 МГц (максимально допустимая частота). Точность измерения определяется точностью этого кристалла.
Минимальная длина полупериода измеряемого сигнала должна быть больше периода кварцевого генератора (ограничение архитектуры MCU).
Таким образом, при рабочем цикле 50% вы можете измерять частоты до 10 МГц. Измеренный сигнал поступает на вывод 9 (T1).Подсчет выполняется 16-битным таймером / счетчиком1, который синхронизируется извне. Переполнение увеличивает 8-битный регистр,
получая 24-битный результат. Затем он переводится в десятичную форму и отображается.
Частота всегда отображается в кГц. Автоматический выбор диапазона изменяет положение десятичной точки. Частота обновления 1 Гц.
Катоды дисплеев подключены к порту B, аноды — к битам 0-3 порта D.
Использование сверхяркого дисплея позволяет отказаться от обычных
транзисторы усиления тока.Дисплей управляется мультиплексным способом и подключается обычным мультиплексным способом.
Частота мультиплекса 156,25 Гц. Вы можете использовать дисплей, например, CA56-12SRWA.
Резисторы с R1 по R8 определяют ток, подаваемый на дисплей, и, следовательно, его яркость. Их подбирают так, чтобы ток делал
не превышайте максимальный выходной ток (40 мА) контактов. Этот частотомер питается от источника питания приблизительно 5 В (+/- 10%).
Потребление при 5В составляет около 15-35 мА, в зависимости от количества горящих сегментов (наибольшее потребление тока имеет светодиодный дисплей).Если вход частотомера находится «на открытом воздухе», это может привести к отображению бессмысленных значений, поскольку входное сопротивление очень велико.
Вы можете предотвратить это, добавив резистор около 100 кОм параллельно входу.
Вам также может понравиться: 6-значный частотомер (счетчик) 10 МГц II. .
Диапазон 1 … макс. 9,999 кГц, разрешение до 1 Гц.
Диапазон 2 … не более 99,99 кГц, разрешение до 10 Гц.
Диапазон 3 … Макс.999.9 кГц, разрешение до 100 Гц.
Диапазон 4 … max 9999 кГц, разрешение до 1 кГц.
исходный код на ассемблере (ASM)
скомпилирован в HEX-файле (496 байт)
Как записать программу в AVR описано здесь . Могу послать вам запрограммированный микроконтроллер. Для дополнительной информации щелкните здесь.
Схема простейшего частотомера (счетчика) с АРН до 10 МГц.
Настройка битов конфигурации (в PonyProg).
(Шестнадцатеричные значения: Low Fuse: EF , High Fuse: D9 .)
Проверка простейшего частотомера (счетчика) с АРН — частота измерения около 505 кГц.
Видео — проверка простейшего частотомера (счетчика) с AVR.
Добавлен: 6. 3. 2013
дом
Частотомер на attiny2313 с динамической индикацией.Самодельный частотомер на ATTINY2313
В последнее время мне очень часто приходится измерять частоту, я делаю много электронных проектов, поэтому возникла необходимость в измерительном приборе — частотомере. Покупать этот аппарат — я еще школьник в 8 классе, и эта техника мне очень дорога. Мне пока нет необходимости измерять очень высокие частоты, хотя в ближайшее время это может потребоваться. И вот я решил сделать свой частотомер своими руками! Стремясь к минимализму, за основу были взяты микроконтроллер AVR ATtiny2313 и LCD 16 * 1.Набросал проект, написал прошивку и нарисовал принципиальную схему:
Собственно ничего сложного, все очень просто. Собрал все на bradboard, кто этого не знает — макет с механическими контактами. Проверил работает! Вот фотоотчет:
Что ж, теперь нам нужно реализовать устройство, сделать печатную плату и поместить ее в корпус.
Итак, теперь, когда все детали собраны, самое время сделать печатную плату.Сделал универсальный, добавил контактные площадки, мало ли хочу что-то добавить. Печатную плату для программы нарисовал, чертеж вы можете найти в файлах к статье. Я сделал оплату, вот что получилось:
Самое главное — хорошо и качественно спаять микроконтроллер, ведь он в корпусе SOIC.
Не проблема, паял и поменьше! Главное, не переборщить с припоем и не пожалеть канифоль.
Припаиваем остальные детали, вот что получилось:
Кстати, избавиться от излишков канифоли на картоне можно с помощью технического спирта. Намного лучше:
После сборки прошиваем микроконтроллер, прошил программатором. Вот и предохранители:
Можно подключить программатор к микроконтроллеру проводкой, подключить их к разъему LCD:
И сбросить на припой:
Распиновку для подключения программатора к микроконтроллеру не даю, думаю вы это знаете.После прошивки и установки битов предохранителей установите ЖК-дисплей и подайте питание на устройство:
Сработало, отлично! Теперь устанавливаем устройство в корпус:
Как видите, свой частотомер я сделал на основе своего, дело в том, что собрал себе более навороченный велокомпьютер (с большим дисплеем на Atmega32, скоро напишу статью) и из этого Решил сделать частотомер, только плату поменял.И конечно же видео устройства:
На видео видно, что в качестве генератора я использую компьютер и программу.
Перечень радиоэлементов
Обозначение | Тип | Номинал | сумма | Примечание | Оценка | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | MK AVR 8-битный | ATtiny2313-20PU | 1 | В блокнот | ||
C1, C2 | Конденсатор | 22 пФ | 2 | В блокнот | ||
C3 | Конденсатор | 0.1 мкФ | 1 | В блокнот | ||
R1 | Резистор | 1 кОм | 1 | В блокнот | ||
R2 | Резистор | 4,7 кОм | 1 | В блокнот | ||
R3 | Резистор | 20 Ом | 1 | В блокнот | ||
ЖК-дисплей | ЖК-индикатор 16 * 1 | Wh2601A | 1 | С совместимым контроллером HD44780 | В блокнот | |
Z1 | Кварц | 16 МГц | 1 | В блокнот | ||
вход | Заглушка | PBS-40 | 1 |
Частотомер — полезный прибор в лаборатории радиолюбителя (особенно при отсутствии осциллографа).Кроме частотомера лично мне часто не хватало тестера кварцевого резонатора — слишком много дефектов стало приходить из Китая. Не раз случалось, что вы собираете устройство, программируете микроконтроллер, записываете предохранители, чтобы он тактировался от внешнего кварца и все — после записи предохранителей программатор перестает видеть МК. Причина — «битый» кварц, реже — «глючный» микроконтроллер (или аккуратно перемаркированный китайцами с добавлением, например, буквы «А» в конце).А таких бракованных кварцев мне попадалось до 5% партии. Кстати, довольно известный китайский набор частотомера с кварцевым тестером на микроконтроллере PIC и светодиодным дисплеем от Алиэкспресс мне категорически не нравился, потому что часто вместо частоты показывал либо погоду в Зимбабве, либо погоду в Зимбабве, или частоты «неинтересных» гармоник (ну или мне не повезло).
В одной из предыдущих статей, посвященных изучению микроконтроллеров AVR, мы рассмотрели на примере использование 16-битного таймера / счетчика T1 и прерывания по захвату события.В качестве дополнения к этому материалу предлагаю улучшенный вариант частотомера. В этом проекте также используется блок захвата и дополнительно используется тактовый вход 8-битного таймера.
Недостатки старого проекта заключались в небольшом диапазоне измеряемых частот (~ сотни килогерц), что было связано с методом измерения периода сигнала.
Вы, вероятно, помните, что в прерывании по событию захват счетного регистра 16-битного таймера был сброшен на ноль, а захваченное значение, соответствующее количеству тактовых импульсов микроконтроллера, которые укладывались в один период входного сигнала, было сохранено. в переменной.Расчеты производились исходя из этого значения.
При увеличении частоты входного сигнала микроконтроллер не успевал обрабатывать прерывания, пропускал их, и показания частотомера стали резко расходиться с реальностью.
В новом проекте расчет частоты выполняется по нескольким периодам входного сигнала и без постоянного использования прерывания по событию захвата. Это снижает накладные расходы микроконтроллера и позволяет измерять значительно более высокие частоты — в идеале до 1/2 Fcpu (тактовая частота микроконтроллера).
Итак, перейдем к описанию нового проекта частотомера.
Входной сигнал поступает на вход схемы захвата таймера Т1 и счетный вход таймера Т0. Чтобы таймер T0 синхронизировался от внешнего сигнала, он должен быть соответствующим образом сконфигурирован.
Проект состоит из 4-х программных модулей.
bcd.c — содержит функцию отображения двоичных чисел на дисплее
timer.c — содержит функцию инициализации таймеров T0 и T1, обработчики прерываний, функцию захвата значений счетных регистров таймеров и программных счетчиков и, наконец, функцию расчета частоты.
lcd_lib.c Библиотека для работы с символьным отображением.
main.c — основная программа.
Частота входного сигнала измеряется методом временного строба. Суть метода заключается в подсчете количества импульсов измеряемого и опорного сигналов за определенный период времени.
Счетный вход аппаратного таймера используется для подсчета количества импульсов измеряемого сигнала. Тактовый сигнал микроконтроллера используется в качестве опорного сигнала.
Интервал времени, в течение которого выполняется подсчет, измеряется с помощью схемы захвата аппаратного таймера T1 и программной задержки.
Формула для расчета частоты с использованием метода таймера выглядит следующим образом:
Fx = Fo * (M / N),
где Fx — частота входного сигнала, Fo — частота опорного сигнала, M — количество импульсов входного сигнала во время измерения, N — количество импульсов опорного сигнала во время измерения.
В проекте используются два таймера — 8-битный таймер / счетчик T0 и 16-битный T1. Таймер T1 подсчитывает количество тактовых импульсов микроконтроллера (baseImp), которые укладываются в определенный временной интервал, а таймер T0 считает импульсы измеряемого сигнала (mesurImp).
Интервал времени, в течение которого выполняется подсчет импульсов, составляет порядка одной секунды. Поскольку за это время оба таймера успевают многократно переполниться, программа использует дополнительные программные счетчики (timer0, timer1).Это 16-битные переменные, которые увеличиваются в прерываниях таймеров T0 и T1.
Общий вид схемы таймеров показан на рисунке ниже.
Алгоритм программы следующий.
1. Таймеры и дисплей инициализируются
2. Микроконтроллер ожидает установки схемы захвата таймера T1 или, говоря простым языком, улавливает нарастающий фронт измеряемого сигнала.
3. После ожидания установки флага (момент Capture1 на рисунке) микроконтроллер сохраняет значения счетных регистров таймеров T0 и T1, а также значения счетчиков программы.
4. Активируется программная задержка в одну секунду. Оба таймера продолжают работать.
5. В конце задержки микроконтроллер ожидает установки флага схемы захвата
6. После ожидания установки флага (момент Capture2 на рисунке) микроконтроллер сохраняет значения счетных регистров T0 и T1 и значения счетчиков программы.
7. Частота вычисляется и отображается.
8. Вернуться к шагу 2.
Несколько слов о расчете частоты.
Следующая формула используется для расчета количества импульсов опорного сигнала.
// количество переполнений программного счетчика
saveTimer12 = saveTimer12 — saveTimer11;
// количество импульсов опорного сигнала
baseImp = (icr12 + ( unsigned long ) saveTimer12 * 65536) — icr11;
, где saveTimer12, saveTimer11 — значение программного счетчика timer1 в моменты Capture2, Capture1 соответственно; icr12, icr12 — значение счетного регистра TCNT1 таймера T1 в моменты Capture2, Capture1 соответственно; 65536 — емкость счетчика Т1
Конструктивно устройство состоит из дисплея, образованного семью 7-сегментными светодиодными индикаторами, микроконтроллером и несколькими транзисторами и резисторами.Микроконтроллер выполняет все необходимые функции, поэтому использование каких-либо дополнительных микросхем не требуется.
Принципиальная схема устройства довольно проста и представлена на рисунке 2. Проект в формате Eagle (принципиальная схема и печатная плата) доступен для скачивания в разделе загрузок.
Задачи, выполняемые микроконтроллером, просты и очевидны: подсчет количества импульсов на входе за 1 секунду и отображение результата на 7-значном индикаторе. Самым важным моментом здесь является точность часов (развертка), которую обеспечивает встроенный 16-битный таймер Timer1 в режиме CTC.Второй, 8-битный, таймер-счетчик работает в режиме подсчета количества импульсов на своем входе T0. Каждые 256 импульсов запускается прерывание, обработчик которого увеличивает значение коэффициента. Когда 16-битный таймер достигает 1 секунды, происходит прерывание, но в этом случае коэффициент умножается на 256 (сдвиг влево на 8 бит) в обработчике прерывания. Оставшееся количество импульсов, зарегистрированных счетчиком, добавляется к результату умножения. Полученное значение затем разбивается на отдельные цифры, которые отображаются на отдельном индикаторе в соответствующей цифре.После этого, непосредственно перед выходом из обработчика прерывания, оба счетчика одновременно сбрасываются и цикл измерения повторяется. В «свободное время» микроконтроллер занимается выводом информации на индикатор методом мультиплексирования. В исходном коде программы микроконтроллера автор дал дополнительные комментарии, которые помогут детально разобраться в алгоритме работы микроконтроллера.
Разрешение и точность измерения
Точность измерения зависит от источника синхронизации микроконтроллера.Сам программный код может вносить ошибку (добавление одного импульса) на высоких частотах, но это практически не влияет на результат измерения. Кварцевый резонатор, используемый в приборе, должен быть хорошего качества и иметь минимальную погрешность. Лучшим выбором будет резонатор, частота которого кратна 1024, например 16 МГц или 22,1184 МГц. Для получения диапазона измерения до 10 МГц необходимо использовать кварцевый резонатор на частоту 21 МГц и выше (для 16 МГц, как на схеме, диапазон измерения становится немного ниже 8 МГц).Кварцевый резонатор 22,1184 МГц идеально подходит для нашего устройства, но достать хотя бы один с минимальной погрешностью для многих радиолюбителей будет непростой задачей. В этом случае можно использовать кварцевый резонатор на другой частоте (например, 25 МГц), но необходимо выполнить процедуру калибровки задающего генератора с помощью осциллографа с аппаратными измерениями и подстроечного конденсатора в цепи кварцевого резонатора ( Рисунок 3, 4).
В разделе загрузки доступны для загрузки несколько вариантов прошивки для различных кварцевых резонаторов, но пользователи могут самостоятельно скомпилировать прошивку для существующего кварцевого резонатора (см. Комментарии в исходном коде).
Входной сигнал
В общем случае на вход устройства можно подавать сигнал любой формы с амплитудой 0 … 5 В, а не только прямоугольные импульсы. Могут быть предоставлены сигналы синусоидальной или треугольной формы; импульс определяется по заднему фронту на уровне 0,8 В. Примечание: вход частотомера не защищен от высокого напряжения и не подтягивается к источнику питания, это вход с высоким сопротивлением, который не работает. нагрузить исследуемую схему.Диапазон измерения может быть расширен до 100 МГц с разрешением 10 Гц за счет использования подходящего высокоскоростного делителя частоты на входе.
Дисплей
В качестве дисплея в приборе используются семь 7-сегментных светодиодных индикаторов с общим анодом. Если яркости индикаторов недостаточно, можно изменить номинал резисторов, ограничивающих ток через сегменты. Однако не забывайте, что значение импульсного тока для каждого вывода микроконтроллера не должно превышать 40 мА (индикаторы тоже имеют свой рабочий ток, не забывайте о его величине).На схеме автор указал номинал этих резисторов 100 Ом. Незначительные нули при отображении результата измерения гаснут, что делает считывание показаний более комфортным.
Печатная плата
Размер двусторонней печатной платы 109 × 23 мм. В бесплатной версии среды проектирования печатных плат Eagle в библиотеке компонентов нет 7-сегментных светодиодов, поэтому они были нарисованы автором вручную. Как видно на фотографиях (рисунки 5, 6, 7) авторского варианта печатной платы, дополнительно необходимо произвести несколько соединений монтажным проводом.Одно соединение на лицевой стороне платы — это питание на вывод Vcc микроконтроллера (через отверстие в плате). На нижней стороне платы есть еще два соединения, которые используются для подключения контактов сегмента десятичной точки 4- и 7-битных индикаторов через резисторы 330 Ом к земле. Для внутрисхемного программирования микроконтроллера автор использовал 6-контактный разъем (на схеме этот разъем показан составным JP3 и JP4), расположенный в верхней части печатной платы.Этот разъем не нужно припаивать к плате, микроконтроллер можно программировать любым возможным способом.
Загрузки
Принципиальная схема и чертеж печатной платы, исходный код и прошивка микроконтроллера —
На PIC16F628A MK можно сделать очень полезное и незамысловатое устройство, которое просто незаменимо в творческой лаборатории радиолюбителя. Для измерения частот до 30 МГц этот цифровой частотомер разработан на общей микросхеме контроллера PIC16F628A.Его принципиальная схема состоит из базового модуля с входным драйвером, подключенным к его счетному входу. Схема частотомера представлена на рисунке ниже: Измерительный прибор может работать в двух режимах — с цифровой шкалой и частотомером. При включении питания частотомер переходит в тот режим, в котором работал до последнего отключения питания. Если это был режим частотомера, то режим частотомера «F» будет отображаться в левом разряде индикатора. Также «0» будет отображаться в самом младшем разряде индикатора.Частотомер автоматически перейдет в режим измерения частоты и останется в режиме ожидания. При подаче сигнала на вход появляется знак частотомера режима «F.» погаснет, и на индикаторе отобразится значение измеренной частоты в килогерцах.
Схема входного формирователя частотомера — цифровой шкалы, представлена на рисунке:
Если в момент включения питания на входе частотомера присутствует измеряемый сигнал, затем после включения питания знак частотомера «Ф.»будет отображаться на 1 секунду, а затем погаснет.
Чтобы переключиться на время измерения 0,1 или 10 секунд, необходимо нажать либо кнопку № 1, либо одновременно нажать кнопку № 1 и кнопку № 2. соответственно (см. раскладку клавиатуры для режима частотомера), затем дождитесь изменения положения десятичной точки и отпустите кнопку (и). Если после этого необходимо вернуться к времени измерения 1 сек., Затем необходимо нажать кнопку №2 и дождаться изменения положения десятичной точки, после чего отпустить кнопку.Для любого времени измерения десятичная точка обозначает килогерцы.
Раскладка клавиатуры режима частотомера
Номер кнопки 1 0,1 сек. Время перехода к измерению 0,1 сек.
Кнопка № 2 1 сек. Переход на время измерения 1 сек.
Кнопка №1 +
№ кнопки. 2 10 сек. Время перехода к измерению 10 сек.
(кнопки нажимаются одновременно)
Если до выключения питания работа была в режиме цифровой шкалы, то при следующем включении питания будет установлен именно этот режим, а внутри режима цифровой шкалы, точно будет установлен подрежим («минус ЕСЛИ» или «плюс ЕСЛИ»), в котором выполнялась работа до последнего отключения питания.Знаки подрежимов цифровой шкалы («L.» или «H» соответственно) будут постоянно подсвечиваться в левом разряде индикатора. При отсутствии сигнала на входе цифровой шкалы индикатор покажет значение промежуточной частоты, записанное в памяти контроллера, и, при его наличии, результат вычитания или сложения частоты сигнала, присутствующего в вход цифровой шкалы и значение промежуточной частоты, записанное в энергонезависимой памяти контроллера PIC.
Режим цифрового масштабирования имеет 4 подрежима.
— При нажатии кнопки №1 происходит переход в подрежим «минус инвертор».
— В этом случае в левой цифре индикатора будет отображаться знак подрежима «L».
— При нажатии кнопки №2 происходит переход в подрежим «плюс FC».
— В этом случае в левой цифре индикатора будет отображаться знак подрежима «H».
В процессе «прошивки» контроллера значение промежуточной частоты = 5.В его энергонезависимую память записано 5 МГц, но затем он может самостоятельно записать в него любое значение и использовать его как промежуточную частоту. Для этого на вход ЦС необходимо подать внешний сигнал с частотой, который затем будет использоваться как промежуточный. Вы можете проверить значение этой частоты, переключившись в режим частотомера.
Режим числовой шкалы Раскладка клавиатуры:
Кнопки Время измерения Пояснения
Кнопка № 1 «минус IF» Промежуточная частота вычитается из измеренной частоты
Номер кнопки2 «плюс IF» Промежуточная частота суммируется с измеренной частотой
Кнопка №1 +
№ кнопки. 2 Настройка инвертора Запись значений в RAM
измеренная частота (IF)
Re:
Кнопка № 1 +
кнопка № 2 Запись инвертора Копирование значения измеренной частоты из RAM в энергонезависимую память с целью дальнейшего использования в качестве промежуточного звена
При смене режима работы меняется раскладка клавиатуры.Если кнопка № 1 нажата менее определенного времени, то переключение в другой режим не происходит, и кнопка № 1 может либо установить время измерения на 0,1 с. (в режиме частотомера), либо включить подрежим «минус ПЧ» (в режиме цифровой шкалы). Если этот порог превышен, он переходит в другой режим. Значение этого порога составляет около 4 секунд, и отсчет этого временного интервала отсчитывается с момента окончания цикла счета на момент нажатия кнопки № 1.
Вы можете снизить энергопотребление схему частотомера за счет увеличения номиналов резисторов, соединяющих выводы порта B с индикатором.В его конструкции я использовал 9-значный светодиодный индикатор от советского телефона с АОН, с общим катодом и красным свечением. Мой частотомер работает не только от сети, но и от аккумуляторной батареи. Печатная плата устройства представлена на рисунке:
Прошивка для микроконтроллера PIC16F84A, а также полный текст статьи о контроллере скачать здесь. Тестировал схему — ЗУ77.
Если вы заметили ошибку, выделите фрагмент текста и нажмите Ctrl + Enter
Самодельная частота на attiny2313.Самодельный частотомер на attiny2313 частотомер attiny2313
Очень полезный и простой прибор, который просто незаменим в творческой лаборатории радиолюбителя, можно сделать на МК PIC16F628A. Для измерения частот до 30 МГц и данный цифровой частотомер предназначен на общей микросхеме PIC16F628A. Его принципиальная схема состоит из базового модуля с входным форматором, подключенным к его счетному входу. Схема частотомера представлена на рисунке ниже: Измерительный прибор Может работать в двух режимах — с цифровой шкалой и частотомером.При включении питания частотомер переходит в тот режим, в котором он работал до последнего отключения питания. Если это был частотный режим — в разряде левого индикатора отобразится режим частотомера F. Так что в самом младшем разряде индикатора будет отображаться «0». Частотомер автоматически перейдет в режим измерения частоты и перейдет в режим ожидания. Когда на вход подается сигнал, знак режима частотомера «Ф.» Индикатор отображает значение измеренной частоты в килогертах.
Схема входного формирователя частотомера представляет собой цифровую шкалу, показанную на рисунке:
Если в момент включения питания на входе частотомера находится измеренный сигнал, то, после включения питания знак работы частотомера F. высвечивается на 1 секунду, а затем гаснет.
Для измерения времени 0,1 сек. или 10 секунд необходимо нажать либо кнопку №1, либо одновременно нажать кнопку №1 и кнопку №2 соответственно (см. раскладку клавиатуры для режима частотомера), затем дождаться изменения положения десятичной дроби. точку, затем отпустите кнопку (кнопки).Если после этого необходимо вернуться к времени измерения 1 сек., То необходимо нажать кнопку с цифрой 2 и дождаться изменения положения десятичной точки, затем отпустить кнопку. Для любого времени измерения десятичная точка отмечает килогерты.
Раскладка клавиатуры режима частотомера
Номер кнопки 1 0,1 сек. Время переключения для измерения 0,1 сек.
Номер кнопки 2 1 сек. Переключение на время измерения 1 сек.
№ кнопки 1 +
№ кнопки2 10 сек. Время переключения для измерения 10 сек.
(кнопки нажимаются одновременно)
Если у вас есть операция цифровых весов до выключения питания, то при следующем включении питание будет установлено в этот режим, а внутри режима цифровой шкалы — будет именно тот подкаталог («минус PF» или «ПК»), в котором работа происходила до последнего отключения питания. Знаки поддиапазонов цифровой шкалы («L.» или «H» соответственно) будут постоянно гореть в левом разряде индикатора.При отсутствии сигнала на входе цифровой шкалы на индикаторе отобразится значение, записанное в памяти регулятора промежуточной частоты, а при его появлении — результат вычитания или сложения частоты сигнала, присутствующей на входе цифровая шкала и вход промежуточной частоты, записанные в энергонезависимую память PIC-контроллера.
Цифровой режим масштабирования имеет 4 модератора.
— При нажатии на кнопку №1 происходит переход в поддиапазон «минус ПК».
— При этом в левом разряде индикатора знак режима «L.» будет отображаться.
— При нажатии кнопки № 2 происходит переход в поддиапазон «плюс ПФ».
— При этом в левом разряде индикатора знак режима «H». будет отображаться.
В процессе «прошивки» контроллера в его энергонезависимую память записывается значение промежуточной частоты = 5,5 МГц., Но тогда он может самостоятельно записать в нее любое значение и использовать как промежуточное.Для этого необходимо подать внешний сигнал с частотой для входа в CHC, которая будет использоваться как промежуточная. Вы можете контролировать значение этой частоты, перейдя в режим частотомера.
Раскладка клавиатуры режима цифровых весов:
Кнопки Время измерения Пояснения
Кнопка № 1 «минус ПК» Промежуточная частота вычитается из измеренной частоты
Кнопка № 2 «Плюс ПК» Промежуточная частота суммируется с измеренной частотой
Кнопка Нет .1 +
кнопка № 2 Установка ПК Запись в ОЗУ Значения
измеренная частота (ПК)
Повторяется:
Кнопка № 1 +
кнопка № 2 Запись ПК Скопируйте измеренное значение частоты из оперативной памяти в не- volatile для дальнейшего использования в качестве промежуточного звена
При изменении режима работы изменяется раскладка клавиатуры. Если кнопка № 1 находится под давлением меньше определенного времени, то переключение в другой режим не происходит. № 1 может либо установить время измерения равным 0.1 сек. (в частотном режиме), либо включить поддиапазон «минус ПЧ» (в режиме цифровой шкалы). Если этот порог превышен, переключаемся в другой режим. Величина этого порога составляет около 4 секунд, и этот временной интервал отсчитывается, так как конец цикла счета наступает в момент нажатия кнопки номер 1.
Уменьшить энергопотребление схемы частотомера можно увеличивается за счет увеличения номиналов резисторов, соединяющих порты порта с индикатором.В его конструкции я использовал 9-битный светодиодный индикатор от советского телефона Aon, с общим катодом и красным свечением. В моем частотомере кроме питания от сети есть еще и батарейное питание (батарейки). Печатная плата устройства представлена на рисунке:
Прошивка микроконтроллера PIC16F84A, а также полный текст статьи о контроллере качаем здесь. Схема опытная — zu77.
Самодельный частотомер на attiny2313 предназначен для измерения частоты в диапазоне от примерно 4 МГц до более 160 МГц.Его можно использовать как частотомер или как устройство ввода / вывода TRX, например, в диапазоне 144 МГц (2M).
Технические характеристики частотомера:
- измерение частоты в диапазоне 4-160 МГц
- отображение измерений на ЖКИ
- чувствительность 700 мВ
- входное напряжение, не более
- блюд: 8-15В.
- очень простая плата, минимальное количество
элементов быстрый старт - размеры платы: 37×80 мм
Схема отлично работала в диапазоне от 3,8 МГц до 162 МГц.Основа схемы — микроконтроллер attiny2313. Его преимущество — возможность работать на частотах до 20 МГц. В схеме использован кварц на 16 МГц, таким образом, сам процессор теоретически должен измерять частоты до 8 МГц.
Часто оказывается, что диапазон до 8 МГц маловат. Увеличить верхний диапазон можно с помощью делителя частоты (пресклера). В схеме задействован LB3500 Prescager, позволяющий измерять до 150 МГц.
Краткое описание LB3500:
- напряжение питания — 4,5 … 5,5В
- потребляемый ток — L6MA-24MA
- входное напряжение — 100 мВ-600 мВ
- выходное напряжение — 0,9 ВП
- делитель — 8.
Без использования дополнительного делителя диаграмма способна измерять частоты до 64 МГц. Добавление дополнительного делителя в виде двоичного счетчика 74ls293 (ICL) позволяет увеличить диапазон измерения до 150 МГц (макс. Для LB3500).
ICL делит частоту на 4. Таким образом, вся система прессования (ICL и IC4) делит входную частоту на 32. Транзистор TL с элементами C7, R2, R3 обеспечивает высокое входное сопротивление.
Входной сигнал после разделения попадает на вход микросхемы LB3500. На выходе 9 IC4 сигнал получается в 8 раз меньшей частоты, чем на входе. К сожалению, выходной сигнал микросхемы LB3500 не согласован с уровнями TTL. Для устранения этого недостатка в схему был добавлен транзистор Т2, который рассчитан на согласование.Потенциометр PRI обеспечивает точное соответствие.
Конструктивное устройство состоит из дисплея, образованного семью 7-сегментными светодиодными индикаторами, микроконтроллером и несколькими транзисторами и резисторами. Микроконтроллер выполняет все необходимые функции, поэтому использование какой-либо дополнительной микросхемы не требуется.
Концепция устройства довольно проста и изображена на рисунке 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).
В разделе загрузок можно загрузить несколько вариантов прошивки для различных кварцевых резонаторов, но пользователи могут самостоятельно скомпилировать прошивку под существующий кварцевый резонатор (см. Комментарии в исходном коде).
Входной сигнал
В общем случае на вход прибора может подаваться сигнал любой формы с амплитудой 0 … 5 В, а не только прямоугольные импульсы. Вы можете подавать синусоидальный или треугольный сигнал; Импульс определяется по падающему фронту на 0,8 В. Обратите внимание: вход частотомера не защищен от высокого напряжения и не влезает в питание, это вход высокого сопротивления, не нагружающий исследуемую цепь. Диапазон измерения может быть расширен до 100 МГц с разрешением 10 Гц, если на вход подан соответствующий высокоскоростной делитель частоты.
Дисплей
В приборе в качестве дисплея используются семь светодиодных 7-сегментных индикаторов с общим анодом. При недостаточной яркости свечения индикаторов можно изменить номинал резисторов, ограничивающих ток через сегменты. Однако не забывайте, что величина импульсного тока для каждого вывода микроконтроллера не должна превышать 40 мА (индикаторы тоже имеют свой ток, не следует забывать о его величине).На схеме автор указал номинал этих резисторов 100 Ом. Незначительные нули при отображении результата измерения раздаются, что делает чтение более комфортным.
Печатная плата
Двусторонняя печатная плата имеет размер 109 × 23 мм. В бесплатной версии среды проектирования печатных плат Eagle в библиотеке компонентов нет полупроводниковых светодиодных индикаторов, поэтому они нарисованы автором вручную. Как видно на фотографиях (рисунки 5, 6, 7) авторской версии pCB Дополнительно необходимо выполнить несколько подключений монтажным проводом.Одно соединение на лицевой стороне платы питается от выхода микроконтроллера VCC (через отверстие в плате). Еще два разъема на нижней стороне платы, которые служат для подключения выводов десятичной точки индикаторов в 4 и 7 разряда через резисторы 330 Ом на «Землю». Для внутризаводского программирования микроконтроллера автор использовал 6-контактный разъем (на схеме этот разъем изображен составным JP3 и JP4), расположенный в верхней части печатной платы.Этот разъем не требуется припаивать к плате, микроконтроллер можно программировать любым доступным способом.
Загрузки
Принципиальная схема и чертеж материнской платы, исходный код и прошивка микроконтроллера —
Дизайн дизайна был продвинут на форуме DDS на форум DDS, который должен был бы существовать и другие высокочастотные делители, кроме серий 193 и 500, а также своевременную схему нового синтезатора для FM2006.После экспериментов родился простой частотомер на микросхемах LMX 2306, Attiny 2313 и знаковый жидкокристаллический индикатор BC 1602 со следующими характеристиками:
- Диапазон измеряемых частот от 300 Гц до 450 МГц
- Чувствительность от 50 мВ до 200 мВ
- Минимальный шаг измерения:
- В диапазоне от 300 Гц до 4,5 МГц 1 Гц
- В диапазоне от 4,5 МГц до 80 МГц 25 Гц
- Диапазон от 80 МГц до 450 МГц 100 Гц
- Время измерения 0.1 секунда / 1 секунда
- Точность измерения не хуже 0,007%
- Напряжение питания 9В … 15В
- Ток потребления (без светового индикатора) 20 мА
Описание и схемы настройки ( рис.1 ).
Сигнал со входа f поступает на усилительный каскад. Транзистор VT1 от которого разделен на программируемый высокочастотный делитель, входящий в состав микросхемы DD1, а также на переключатель двигателя SA1, выбранный для измерения. диапазон (до 4.5 МГц / выше 4,5 МГц). Далее сигнал дополнительно усиливается и поступает на микросхему DD2, которая выполняет частотный учет, вывод данных на ЖКИ и управление микросхемой DD1. В схеме питания предусмотрен стабилизатор DA1.
Переключатель SA2 выбирает время счета и, соответственно, точность измерения. Кнопкой SB1 проводят калибровку частоты. Для этого на вход f предоставляется примерная частота 1 МГц, и при нажатии SB1 ее удерживают до тех пор, пока на дисплее не появится показание как можно ближе к 1 МГц.В дальнейшем калибровку проводить нельзя.
Вы также можете использовать стандартную процедуру настройки, применив ко входу F любую примерную частоту и выбрав C9 и C10 для получения желаемых показаний ЖК-дисплея.
Цепочка D1, R5, R6, C7 в сочетании с каскадом на транзисторе VT2 расширяет импульсы от микросхемы DD1. При подаче на вход максимально возможной частоты, но не более 450 МГц, подбором резистора R5 является достижение стабильных показаний ЖКИ (если осциллограф подключается к 9 ножкам DD2 — должно быть что-то близкое к Меандрану) .Конденсатор С7 в собранной нами конструкции переехал на коллектор ВТ2.
Разъем PROG используется для внутризаводского программирования Attiny 2313. Если чип будет прошиваться в программаторе, то разъем не выпадает. Чип лучше установить в панель.
Подробнее.
Постоянные резисторы и керамические конденсаторы типоразмера 0805 (поверхностный монтаж). Транзистор VT1 Kt368 будет заменен на KT399, VT2 KT368 — на менее высокочастотный CT315 (с регулировкой платы).Микросхема DD2 ATTINY 2313-20 (с тактовой частотой до 20 МГц) в корпусе DIP установлена со стороны печатных проводников. DA1 (также устанавливается со стороны печати) — любой стабилизатор на 5 вольт с током более 1 А, но если у вас нет возможности использовать подсветку LCD, то можно применить слаботочный 78L05. Кварцевый резонатор Q1 — 11,0592 МГц в любом исполнении. Выключатели SA1 и SA2 — B1561 (DPDT) или SS21 с длиной рычага более 5 мм. Кнопочные часы SB1 — TS-A1PS (TS-A2PS, TS-A3PS, TS-A4PS, TS-A6PS).Индикатор BC1602 или BC1601, BC1604, а также аналогичен контроллеру HD-44780 других производителей. Проверить соответствие заключениям. Диод VD2 1N4007 Заменить любой на подходящий рабочий ток. Разъем питания — серия AUB стерео 3,5 мм или аналогичный с некоторой регулировкой загрузки. Для питания используется любой маломощный. сетевой адаптер с подходящим напряжением. Сигнал на плату подается по одножильному проводу диаметром около 0,8 мм и длиной 5-8 см.
Можно исключить из цепи C4, R4 и переключатель SA1, подключив C8 перемычкой к базе VT2.6 Нога DD2 должна висеть в воздухе. В этом варианте осуществления нижняя граничная частота становится 1,5 МГц.
Печатная плата разведена в Sprint-Layout и изготовлена из одностороннего фольгированного стеклотекстолита ( рис. 2. ).
Частотомер на микроконтроллере attribrony2313 . Схема отличается простотой и надежностью. Частотомер позволяет измерять частоты до 65 кГц. Программа для микроконтроллера написана на BasComavr.Отображает частоту на дисплее 16 * 2. Напряжение питания устройства от 5 до 9 вольт.
Учет импульсов происходит путем подсчета импульсов по возрастающему фронту на ножке 9 (PD.5 / T1 и вход таймера Timer1). Для защиты входа от перенапряжения включены два диода 1N4148 и резистор на 10к. Отображение происходит на любом дисплее 16 * 2, но обязательно с контроллером HD44780 или аналогичным KS066.
Программа написана на Баскомавре Баскомавр.Демо-версия имеет ограничение на размер кода в 4 КБ, что вполне достаточно. Скачать BasComavr S. с официального сайта разработчика. Программа использует два таймера: timer0 для обозначения фиксированных интервалов времени, в нашем случае 1 секунда (вы можете поэкспериментировать с этим значением), и Timer1 учитывает приход импульсов за это время. Стоит отметить, что учет пульса будет осуществляться только в том случае, если уровень сигнала на ноге 9 будет соответствовать уровню логарифма. «1» (примерно 3-5 вольт). Timer0 работает на тактовой частоте микроконтроллера, т.е. 8 МГц, делитель тактовой частоты не включен.
Attiny2313 — Опасные прототипы
Рахул в Xanthium опубликовал руководство по взаимодействию ATtiny с L293D: В этом руководстве мы научимся взаимодействовать L293D с микроконтроллером ATMEL ATtiny и управлять ими в двух направлениях. Здесь используется микроконтроллер ATtiny2313A, который подключен к двум микросхемам управления двигателем L293D для управления до 4 щеточных двигателей постоянного тока. Можно управлять до 8 […]
Пользователь MIDI-контроллера с открытым исходным кодом для сэмплера Roland SP-404 от Davide Gironi: Roland SP-404 — цифровой сэмплер производства Roland Corporation.Этот сэмплер имеет входной MIDI-порт и предоставляет набор MIDI-команд для управления устройством. С помощью этого проекта пользователь может управлять Roland SP-404 с помощью Midi Pedal. С […]
Баоши из DigitalMe написал статью, в которой подробно описал свою минималистичную сборку платы для разработки ATTiny2313: Микросхема AVR, о которой я говорю, — это Atmel ATTiny2313 в корпусе SOIC-20. Чтобы сделать отладочную плату, я купил несколько 28-контактных переходников SOIC / SSOP на DIP. Эти адаптеры обычно бывают двухсторонними. Соответствующие штифты с обеих сторон подключаются через плакированные сквозные отверстия […]
Проект дистанционного управления GSM, разработанный Василисом Серасидисом: Два года спустя я построил еще один пульт дистанционного управления на основе модуля GSM.Я выбрал модуль Sony-ericsson GM-47, потому что с ним было очень легко управлять с помощью AT-команд. К тому же цена была достаточно низкой для экспериментов. В конце концов, я решил выпустить исходный код […]
Пользователь MIDI-контроллера с открытым исходным кодом для сэмплера Roland SP-404 от Davide Gironi: Roland SP-404 — цифровой сэмплер производства Roland Corporation. Этот сэмплер имеет входной MIDI-порт и предоставляет набор MIDI-команд для управления устройством. С помощью этого проекта пользователь может управлять Roland SP-404 с помощью Midi Pedal.С […]
Joonas Pihlajamaa из Code and Life пишет: Когда я бился головой о стену во время отладки моей клавиатуры PS / 2, мне очень хотелось иметь специальный логический анализатор (желательно с декодером PS / 2, но даже необработанные двоичные данные будут » все было хорошо). Поэтому я решил опробовать давно задуманную идею — объединить […]
Термометр шириной DS18S20: В моем новом Dacia Duster, к сожалению, отсутствует индикация температуры наружного воздуха. Готовый термометр с ЖК-дисплеем не отделяется от него, хотя контраст с солнечным светом обычно особенно заметен.У меня там еще был буквенно-цифровой светодиодный дисплей красного цвета для этого проекта как нельзя лучше подходит. В качестве микроконтроллера я использовал […]
Майкл из AcidBourbon пишет: «Этот проект о добавлении MIDI-выхода к старинному органу Korg CX-3 (знаменитый компактный клон органа Hammond). My Korg был построен в 1979 году, то есть до введения стандарта General Midi. Но подключив правые (всего три) токопроводящие дорожки на основной плате и используя […]
Частотомер от 1 Гц до 10 МГц с использованием ATtiny2313: Этот частотомер на основе AVR способен измерять частоты от 1 Гц до 10 МГц с разрешением 1 Гц.Аппаратная часть этого проекта состоит из семи 7-сегментных дисплеев, AVR ATtiny2313 uController и нескольких транзисторов и резисторов. AVR считает входные импульсы с точностью до 1 секунды (сгенерировано […]
Кеннет Финнеган опубликовал подробную информацию об управлении лампами Numitron с помощью микроконтроллера ATTiny2313. Лампы Numitron представляют собой устройства отображения с нитью накала, для которых требуется всего 2-3 вольта вместо гораздо более высоких напряжений, которые требуются лампам Nixie и частотно-регулируемым приводам. Он использует светодиодный драйвер Allegro A6278 (который он нашел в своей коллекции запчастей и больше не производит, но […]
Мы наткнулись на краткую статью Скотта Хардена, в которой описывается, как управлять ЖК-дисплеем HD44780 с помощью Attiny2313.После ряда неудачных попыток с другим кодом он нашел эту ЖК-библиотеку, написанную Мартином Томасом для использования с AVR-GCC. С помощью нескольких модификаций кода Скотт получил вышеуказанные результаты, управляя своим ЖК-дисплеем 2 × 20 […]
Эрик Грегг (Хэнк) хотел получить именной значок с буквенно-цифровым дисплеем 16 × 2 для использования на конференциях, нердфестах и т. Д. Он сконструировал этот простой значок на основе ATtiny2313, который взаимодействует с ЖК-дисплеем с минимальным количеством компонентов. Этот проект основан на этом Руководстве.Он поднял Instructable на новый уровень, перейдя с макета на […]
Ejberg.dk разработал этот проект для простого серво-тестера на базе ATtiny2313. Это устройство позволяет вам тестировать сервоприводы, изменяя ширину импульса в пределах от 0,8000 мс до 2,2000 мс, выбираемых с помощью четырех кнопок. Хотя на схеме показан Atmel AT90S2313, схема будет работать с популярным ATtiny2313 с версией […]
.В этой статье с веб-сайта Радослава Квенцена показано, как декодировать ИК-сигналы RC5 с пульта дистанционного управления, используя 16-битный вход таймера Timer1 и вход внешнего прерывания INT0 в устройстве AVR ATtiny2313 Atmel.Весь код в сборке доступен в сжатом файле.
В своем проекте Бину из avrprojects.info связывает GPS-модуль ProGin SR-87 с ATtiny2313 и ЖК-дисплеем 2 × 16 для генерации текущего отображения широты и долготы. Устройство также сохранит одно статическое местоположение и будет издавать звуковой сигнал при каждом достижении этого местоположения. (В коде можно указать и другие местоположения, но в проекте предполагается […]
Василис Стергиопулос построил тестер кабеля LAN RJ45. Схема изначально была разработана для использования микросхем 555 и 4017, но Василис опубликовал схему и исходный код в ассемблере для использования Attiny2313 вместо этого.Attiny2313 выдает последовательные выходы на порт D, к которому подключен LAN-кабель. Если прямой кабель […]
Техник Сервис представляет простой проект Attiny2313 для тестирования мониторов VGA. Требуются только чип и несколько отдельных компонентов, а исходный код предоставляется как в сборке, так и в шестнадцатеричном файле, готовом к загрузке. Через PyroElectro.
V-USB — это программная реализация низкоскоростного USB-устройства для микроконтроллеров Atmel AVR®, позволяющая создавать USB-оборудование практически с любым микроконтроллером AVR®, не требуя дополнительных микросхем.V-USB можно бесплатно лицензировать по Стандартной общественной лицензии GNU или, как вариант, по коммерческой лицензии. Пример оборудования, необходимого для […]
простейший частотомер | circuitits4you.com
Это простейший частотомер (счетчик) на Atmel AVR ATtiny2313. Он позволяет измерять частоты до 10 МГц в 4 автоматически выбираемых диапазонах. Самый низкий диапазон имеет разрешение 1 Гц. 4-значный светодиодный дисплей используется для отображения измеренной частоты. Он основан на микроконтроллере Atmel AVR ATtiny2313A или ATTiny2313.Программу для скачивания вы можете найти ниже. Микропроцессор работает от кристалла 20 МГц (максимально допустимая частота). Точность измерения определяется точностью этого кристалла. Минимальная длина полупериода измеряемого сигнала должна быть больше периода кварцевого генератора (ограничение архитектуры MCU). Таким образом, при рабочем цикле 50% вы можете измерять частоты до 10 МГц. Измеренный сигнал поступает на вывод 9 (T1). Подсчет выполняется 16-битным таймером / счетчиком1, который синхронизируется извне.Переполнение увеличивает 8-битный регистр, давая 24-битный результат. Затем он переводится в десятичную форму и отображается. Частота всегда отображается в кГц. Автоматический выбор диапазона изменяет положение десятичной точки. Частота обновления 1 Гц. Катоды дисплеев подключены к порту B, аноды — к битам 0–3 порта D. Использование сверхяркого дисплея позволяет отказаться от обычных транзисторов усиления тока. Дисплей управляется мультиплексным способом и подключается обычным мультиплексным способом.Частота мультиплекса 156,25 Гц. Вы можете использовать дисплей, например, CA56-12SRWA. Резисторы с R1 по R8 определяют ток, подаваемый на дисплей, и, следовательно, его яркость. Они выбраны так, чтобы ток не превышал максимальный выходной ток (40 мА) контактов. Этот частотомер питается от источника питания приблизительно 5 В (+/- 10%). Потребление при 5В составляет около 15-35 мА, в зависимости от количества горящих сегментов (наибольшее потребление тока имеет светодиодный дисплей). Если вход частотомера находится «на открытом воздухе», это может привести к отображению бессмысленных значений, поскольку входное сопротивление очень велико.Вы можете предотвратить это, добавив резистор около 100 кОм параллельно входу.
Шаг 1: Принципиальная схема
Добавьте резисторы 1 кОм последовательно с сегментами дисплея для ограничения тока.
Шаг 2: Код
Шаг 3: Настройки битов предохранителей
1. Внешний кристалл
2. CLKDIV8 Незапрограммированный (1)
Комплект для разработки частотомера
Этот комплект Freq Ctr был заменен на версии 2 Комплект разработчика частотомера версии 1 является полностью функциональным (после сборки), однако,
внутренняя прошивка не будет отображать ваш позывной, но будет отображать:
строка1: «QQ FC V.1 URCALL »- (URCALL может быть запрограммирован индивидуально по запросу)
строка2: «nn, nnn.nnn Khz» — (где nn, nnn.nnn — частота)
Этот проект счетчика частоты полностью задокументирован в ежеквартальном журнале qrparci.org QRP в четырех последовательных выпусках, начиная с осеннего выпуска 2009 года. Задокументированный проект начинается с установки Linux (Mint Version) на ПК и установки необходимых инструментов на ПК с Linux для рисования схемы и проектирования печатных плат. и напишите ассемблерный код для счетчика частот, включая все шаги, необходимые читателю для копирования проекта счетчика частот от концепции до производства.Вы также можете следить за проектом на платформе Microsoft Windows; большинство инструкций в статьях применимы к Windows, но здесь мы делаем упор на платформу Linux для разработки (она бесплатна). Ниже приведен окончательный результат.
1. Припаяйте три (3) предварительно вставленных гнезда для микросхем.
2. Установите все резисторы.
Примечание: Отогните провода резистора под углом 90 градусов от корпуса.
____R1: 10 Коричнево-черный-черный-золотой
____ R2: 430 желто-оранжевый-коричневый-золотой
____ R3: 430 Желто-оранжевый-коричневый-золотой
____ R4: 620 Синий-Красный-Коричневый-Золотой
____ R5: 10К коричневый-черный-оранжевый-золотой
____ R6: 10K Синий триммерный горшок
Значение резистора R7 зависит от типа светодиодной подсветки ЖК-дисплея.R7 не устанавливается, если ваш ЖК-дисплей не имеет светодиодной подсветки.
ЖК-дисплеи
можно приобрести на Mouser.com или Kitsandparts.com.
зеленая подсветка (10 мА при 3,3 В) — 13 долларов
Для ЗЕЛЕНОЙ подсветки R7 представляет собой резистор на 100 Ом.
____R7: 15 Коричнево-зеленый-черный-золотой
____ R7: 100 Коричнево-зеленый-коричневый-золотой
3. Установите одну перемычку, чтобы установить предварительный делитель на ЧЕТЫРЕ (4).
____ Перемычка. Установите перемычку, используя выброшенный провод с обрезанными резисторами, как показано на рисунке. Припой.
4.Установите все конденсаторы.
Изогните провода конденсатора 100n резким углом 90 градусов от корпуса
____C1 100н
____C2 47u
____C3 100н
____C4 150p
____C5 100н
____C6 47u
____C7 100н
____C8 22п
____C9 Желтый триммер 40 точек. Установите в правильной ориентации плоской стороной к X1.
____C10 не установлен
____C11 100н
____C12 100н
5. Кристалл X1.
____ Установите кристалл 20,48. Оставьте очень маленькое пространство (1/16 дюйма) под кристаллом, чтобы предотвратить короткое замыкание.
6. Установите все диоды.
____D1 1N4148. Установите в правильной ориентации так, чтобы плоская полоса была направлена к внешнему краю печатной платы.
____D2 1N4148. Установите в правильной ориентации так, чтобы плоская лента была обращена к U3.
____D3 Установите красный светодиодный диод в правильной ориентации плоской стороной к центру печатной платы.
7. Установите переключатель сброса.
____S1 Сориентируйте кнопочный переключатель, чтобы его было легко вставить в печатную плату.
8. Установите регулятор напряжения 7805 или 78L05.
Если вы используете ЖК-дисплей с сильноточной светодиодной подсветкой, вы должны использовать регулятор LM7805 TO-220.
Вы можете использовать меньший регулятор LM78L05 TO-92, если вы используете ЖК-дисплей с зеленой светодиодной подсветкой или ЖК-дисплей без подсветки.
____U2 Сориентируйте 7805 стороной TAB к красному светодиоду или 78L05 ПЛОСКОЙ стороной к красному светодиоду.
9. Установите 6-контактный заголовок программы.
____J1 не входит
____J2 не входит
____J3 используется для подключения к программатору AVRISP для изменения прошивки счетчика частоты.
Теперь самое время проверить регулятор напряжения на плате.Подайте питание (9–14 В постоянного тока) через J1 и измерьте 5 В постоянного тока между контактами 10 и 20 разъема U4. Если вы не измеряете 5 В постоянного тока +/- 0,1 В, устраните проблему, прежде чем продолжить.
10. Подключение ЖК-дисплея. Есть много вариантов подключения ЖК-дисплея. Для работы ЖК-дисплея необходимо соединить контакты с 1 по 14 на печатной плате с 1-14 на ЖК-дисплее.
Вы можете подключить ЖК-дисплей с помощью собственного кабеля. В комплект поставки входит одна 14-контактная вилка и одна 14-контактная розетка. Если вы собираетесь
подключите ЖК-дисплей непосредственно к печатной плате, установите 14-контактное гнездовое гнездо на печатную плату и 14-контактный штекерный разъем в нижней части ЖК-дисплея.Если ЖК-дисплей имеет 16 контактов, убедитесь, что
установите розетку, используя контакты 1-14.
Контакты 15 и 16 на разъеме ЖК-дисплея предназначены для ЖК-дисплеев со светодиодной подсветкой.
11. Установите 16-контактные ИС. Соблюдайте меры предосторожности при переносе ИС в руки, чтобы предотвратить повреждение статическим электричеством.
____U1 MC74HC4040N — Вставьте ИС, как показано на рисунке выше. ВНИМАНИЕ: Обратите внимание на ориентацию микросхем.
____U3 CD74HC4046AE — Вставьте ИС, как показано на рисунке выше. ВНИМАНИЕ: Обратите внимание на ориентацию микросхем.
12. Установите 20-контактную микросхему ATtiny2313-20PU.
В комплект Freq Counter Dev Kit входят две (2) микросхемы 2313. У одного есть белое пятно от лака возле ПИН-1.
ИС, отмеченная белым цветом, используется для тестирования кода сборки в соответствии с проектом QRP-ARCI QQ, указанным в верхней части этой страницы.
Установка этой ИС приведет к тому, что красный светодиод загорится на одну секунду и погаснет на одну секунду.
____U4 ATtiny2313-20PU — Вставьте ИС (без отметки лаком для ногтей), как показано на рисунке выше.ВНИМАНИЕ: Обратите внимание на ориентацию микросхем.
На этом счетчик частоты готов.
Питание (9-14 В постоянного тока) подается на J1, контакт 2 — +, а контакты 1: 3 — заземление.
ВЧ-вход находится на J2, контакт 2 является сигнальным входом, а контакты 1: 3 — заземлением.
Для правильной работы входная амплитуда должна быть минимум от 50 до 100 мВ (пик-пик).
Защита от перенапряжения обеспечивается D1 и D2; Максимальный входной сигнал составляет 12 вольт P-P.
Предварительно запрограммированное ВРЕМЯ ВОРОТ составляет 1/4 секунды, а РАЗРЕШЕНИЕ ДИСПЛЕЯ составляет 8 Гц.
Для получения дополнительной информации об аспектах «Разработка» этого проекта счетчика частоты,
проверьте qrparci.org QRP Ежеквартальный журнал, начиная с осеннего номера 2009 года.
Xtal работа контроллеров ATtiny
Xtal работа контроллеров ATtiny Дорожка: Главная => Обзор AVR => Приложения => ATtiny с кристаллами Diese Seite на немецком языке: Применение однокристальных контроллеров AVR AT90S, ATtiny, ATmega и ATxmega Для синхронизации ATtiny с кристаллом |
И это был бы такой кристаллический делитель без микроконтроллера. Предназначен для деления кристалла 15 МГц на 68:
- Кварцевый генератор, состоящий из двух вентилей И-НЕ, генерирует часы сигнал.
- Считается в 8-битном счетчике.
- При достижении 68, которое обнаруживается вентилем И-НЕ, триггер D-типа запускается, инвертированный выход которого привязан к входу данных. Положительный выход передает желаемый сигнал с точной 110,294 кГц.
- С небольшой задержкой, комбинацией RC и другим логическим элементом NAND, счетчик очищается до поступления следующего сигнала счета.
Версия микроконтроллера ATtiny25, делающая то же самое, умещается в одном одиночная 8-контактная ИС, из которых нужно обрабатывать только шесть.Весь дизайн внутри контроллера, который выполняет все это несколькими строками кода ассемблера.
1 Генератор прямоугольников, управляемый xtal
Вам нужен точный прямоугольник? Просто сделайте это:- Для синхронизации ATtiny с внешним кристаллом.
- Используйте внутренний таймер / счетчик в режиме CTC (сброс таймера при сравнении) и разделите часы на целое число.
- Запишите этот делитель минус 1 в регистры сравнения таймера, с 8-битным таймером для сравнения A, с 16-битным таймером для сравнения A или в ICR (регистр захвата ввода).
- Настройте выходные контакты OCnA и / или OCnB для включения режима сравнения совпадений.
- Настройте выходные контакты OCnA и / или OCnB как выходы, установив их биты направления данных.
- Запустите таймер, записав биты предварительного делителя в TCCR0B.
Таким образом, из одного монокристалла можно получить разные частоты. А также очень гибкий: просто измените разделитель. С помощью электронной таблицы OpenOffice здесь доступны все разные кристаллы В коммерческом отношении могут быть рассмотрены:
- введите частоту, которая будет сгенерирована в ячейку D3,
- , если вы хотите установить предварительный делитель частоты не на 1, а на более высокое значение просто введите настройки бита предварительного делителя частоты CLKPS ,
- считывает значение предварительного делителя таймера / счетчика и делитель CTC для каждого xtal из столбцов B и C (для 8-битного TC) соответственно.из столбцов G и H (для 16-битного TC), если это «-«, кристалл не может быть для этого использовался,
- частота, которая действительно генерируется, может быть считана из столбцов D соотв. Я,
- разница между реально генерируемой частотой и желаемой можно прочитать из столбца E соотв. J в процентах по сравнению с желаемым (нет +/-, только абсолютная разница) или в столбцах F соотв. K в Гц.
Если ячейка E6 соотв.J6 равно 0,00, тогда может быть сгенерирована точная желаемая частота. хотя бы с одним кристаллом. Какие из них (и те, у которых меньше всего разница, если ни одна из них не равна нулю) видно по зеленому цвету различия в столбцах E соотв. J. Кристаллы с разницей менее 0,1% желаемая частота отображается на желтом фоне.
Убедитесь, что вы вычли единицу из значения делителя CTC перед записью этого в регистр сравнения таймера / счетчика.
2 Аппаратное обеспечение
Это полное железо.Два керамических конденсатора по 18 пФ в любом случае необходимо следить за тем, чтобы кристалл раскачивался.Выходной сигнал доступен на PB0 (OC0A) и, если это необходимо и запрограммировано, на PB1 (OC0B). Оба выхода могут быть обратно фазированными или могут быть фазированы на другой угол.
На практике, с подключенным кристаллом 15 МГц, кристалл только запускается ниже рабочего напряжения 4 В. Выше этого кристалла запускается на несколько тактов, но затем перестал работать. Это не изменилось, если Я разделил напряжение на выходном контакте XTAL2 на два резистора перед тем, как запитать xtal.Если осциллятор работает, например, при 2,7 В, увеличение рабочего напряжение выше 4 В (до 5,5 В) не прекращало колебания. Так что это простая проблема с запуском. Если вы используете рабочее напряжение 5 В, убедитесь, что ATtiny имеет напряжение 3,3 В или ниже, например с резистором, стабилитрон и электролитический конденсатор. Или приготовьте специальный раствор чтобы убедиться, что колебание осциллятора стабильно, прежде чем увеличивать рабочий диапазон. Напряжение.
Я не обнаружил подобных сообщений о таком глючном оборудовании.к счастью Ко мне был подключен большой конденсатор, поэтому я заметил несколько первых колебаний. В зависимости от количества уже выполненных инструкций порты OCR0A и OCR0B были либо выходными, либо нет. Подобная ошибка может привести к вы сумасшедший, поэтому не ожидайте, что оборудование будет работать так, как запланировано, желательно и как описан в справочнике устройства.
Дополнительная подсказка для использования подстроечного конденсатора для изменения кристалла
частота немного. Это работает только на входе XTAL1. Не ждите
большой эффект, можно достичь только нескольких Гц и менее 1 кГц.Увеличение
значения конденсатора приводят к увеличению частот, по крайней мере, с моими 15 МГц
кристалл. Внимание: слишком большой колпачок может остановить раскачивание кристалла.
3 Замена предохранителей
По умолчанию ATtiny работает со своим внутренним RC-генератором, деленным на 8. Чтобы включить внешний кристалл, необходимо заменить предохранители следующим образом:- CLKDIV8 должен быть выключен, оставьте этот предохранитель включенным только в том случае, если вы действительно хотите разделить частоту кристалла на 8.
- CLKSEL необходимо заменить на низкоскоростной внешний кристалл (e.грамм. с 32,768 кГц) или на внешний кристалл осциллятор . Несмотря на то, что Studio 4.19 не предлагает внешнего кристалл он работает, чтобы установить предохранитель на внешний кварцевый генератор хотя там только кристалл прикреплен. Пункты меню в Studio 4.19 сбивает с толку, потому что позволяет только низкоскоростной кристалл.
- Уменьшите частоту ISP ниже 8 кГц.Если у вашего программиста нет такого варианта, откажитесь от этого на столь раннем этапе.
- Отключить предохранитель CLKDIV8 .
- Выбрать низкоскоростной внешний кварцевый вариант с длительным запуском процедура.
Если вы забудете очистить предохранитель CLKDIV8, ваш ATtiny будет недоступен больше, потому что Studio отказывается программировать флэш-память или EEPROM память с тактовая частота менее 5 кГц. В этом случае только параллельное программирование высокого напряжения может использоваться для оживления чипа (что возможно с STK500).
Если вам нужны не прямоугольники, а чистая синусоида, вам придется отфильтровать эти прямоугольники с сетью фильтров RC.Такие RC-фильтры, здесь одноступенчатые, глушат или подавляют более высокие частоты. Их амплитуда падает тем быстрее, чем выше частота.Здесь R = 100 кОм и RC-фильтр C = 3 мкФ в действии. Первая гармоника прямоугольника на 3 Гц уже немного затухает, результат виден на Правильно.
Это еще не похоже на синус, но это тоже не прямоугольник.
Если мы инвестируем второй R и второй C того же размера, мы получаем форма волны, которая уже ближе к синусоиде.
Еще больше синусоиды: 3-ступенчатый RC-фильтр в действии. Зеленая кривая на конец фильтра очень похож на синусоидальную волну.
Обратите внимание, что на каждом этапе мы теряем некоторую амплитуду. Здесь он падает от 0,79 В pp до 0,32 V pp , приблизительно с коэффициентом 2.
Это тот же фильтр с четырьмя ступенями и напряжением на всех четырех конденсаторы.
Если вам нужна более высокая амплитуда, выберите конденсатор или резистор меньшего размера. Это конденсатор емкостью 1 мкФ, в три раза меньше.
Тем, кто хочет играть с разнообразными параметрами (количество этапов, резисторы и конденсаторы и др.) могу сделать это с моим Lazarus-Pascal программное обеспечение, которое я скомпилировал для Win64 как исполняемый здесь (упаковано). Если вам нужен Исходный код Lazarus, а затем сообщите мне.
Если запустить исполняемый файл, это выглядит так.
Если вы выберете комбинацию RC из двух полей выбора
в нижнем левом окне эта комбинация вычисляется и
отображается. Выпадающий переключатель N позволяет уменьшить
и увеличить количество ступеней RC. Если вы нажмете на
цветные кнопки, вы можете выбрать цвет кривой.если ты
выберите белый в качестве цвета, кривая рассчитывается, но не
отображается.
Практически все параметры можно отрегулировать. Если вы нажмете на поле ввода становится желтым. Вы можете редактировать запись. если ты хотите закончить редактирование, просто нажмите клавишу Enter и применяется новый параметр. Если ваша запись неверна понял, поле ввода станет красным.
Поля ввода понимают сокращения для кратных, например как k или K , или M , а также m , u для µ, n или p .
Если вы отрегулируете напряжение или время, которое будет отображаться, вы можно увеличивать части кривой.
Если щелкнуть по отображаемому изображению, можно сохранить изображение как файл PNG- или BMP-графики.
Обратите внимание, что если вы выберете определенные небольшие комбинации RC для
низкочастотный вход, программное обеспечение моделирования обнаруживает
числовые переполнения. Выберите несколько более высоких R и / или C в
тот случай.
5 Программное обеспечение и загрузки
Программное обеспечение ассемблера можно скачать с здесь.Список задокументирован ниже.Дополнительно можно загрузить следующие документы OpenOffice:
Исходный код:
;
; *********************************
; * Генератор Xtal с ATtiny25 *
; * (C) 2019, автор: DG4FAC *
; *********************************
;
.nolist
.include "tn25def.inc"; Определить устройство ATtiny25
.список
;
; **********************************
; АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
; **********************************
;
; Устройство: ATtiny25, Корпус: 8-контактный PDIP_SOIC
;
; _________
; 1 / | 8
; СБРОС o-- | СБРОС VCC | --o +5 В
; XTAL1 o-- | PB3 PB2 | --o
; XTAL2 o-- | PB4 PB1 | --o Osc out 2
; 0 V o-- | GND PB0 | --o Osc out 1
; 4 | __________ | 5
;
;
; **********************************
; А Д Й У С Т А Б Л Е К О Н С Т
; **********************************
;
.equ clock = 15000000; 15 МГц, ваша xtal частота
.equ fOut = 100; Ваша желаемая частота
.equ cClkPresc = 1; Ваше значение предделителя часов
.equ cUseOC0B = 1; Используйте OC0B как обратный выход
;
; **********************************
; Ф И Х Е Д К О Н С Т А Н Т С
; **********************************
;
; Получите значение предварительного делителя из часов и частоты
.if (часы / fOut / cClkPresc / 2) <= 256
.equ cPresc = 1
.equ cCsPresc = 1
.еще
.if (часы / fOut / cClkPresc / 2/8) <= 256
.equ cPresc = 8
.equ cCsPresc = 2
.еще
.if (часы / fOut / cClkPresc / 2/64) <= 256
.equ cPresc = 64
.equ cCsPresc = 3
.еще
.if (часы / fOut / cClkPresc / 2/256) <= 256
.equ cPresc = 256
.equ cCsPresc = 4
.еще
.if (часы / fOut / cClkPresc / 2/1024)> 256
.error "Слишком низкая желаемая частота!"
.еще
.equ cPresc = 1024
.equ cCsPresc = 5
.endif
.endif
.endif
.endif
.endif
;
; Вывести делитель и сравнить значение
.equ divider = ((((часы + fout / 2) / fOut + cClkPresc / 2) / cClkPresc + cPresc / 2) / cPresc) +1) / 2
.equ cCtc = делитель - 1; Значение CTC
;
; **********************************
; Р Е Г И С Т Е Р С
; **********************************
;
.def rmp = R16; Многоцелевой регистр
;
; **********************************
; М А И Н П Р О Г Р А М И Н И Т
; **********************************
;
.cseg
.org 000000
;
Главный:
sbi DDRB, DDB0; Выход направления PB0
cbi PORTB, PORTB0; Очистить выход OC0A
ldi rmp, cCtc; Записать значение CTC
out OCR0A, rmp; для сравнения регистра A
.if cUseOC0B == 1
sbi DDRB, DDB1; Выход направления PB1
sbi PORTB, PORTB1; Установить выход OC0B
out OCR0B, rmp; и B
ldi rmp, (1 << WGM01) | (1 << COM0A0) | (1 << COM0B0); Режим CTC, переключение OC0A и OC0B
.еще
ldi rmp, (1 << WGM01) | (1 << COM0A0); Режим CTC, переключить OC0A
.endif
out TCCR0A, rmp; в порту управления TC0 A
ldi rmp, cCsPresc; Настройка предделителя
выход TCCR0B, об / мин; в порту управления TC0 B
ldi rmp, 1 << SE; Включение сна, режим ожидания
выход MCUCR, об / мин
Петля:
спать ; Идти спать
rjmp loop
;
; Конец исходного кода
Это симуляция с указанными выше настройками программного обеспечения.