|
|
|
Библиотека программ > Генератор импульсов на PIC12F675 МНОГОРЕЖИМНЫЙ УПРАВЛЯЕМЫЙ
|
ВНИМАНИЕ! У нас можно заказать микроконтроллер с уже прошитой программой. Подробности смотрите ниже. |
Краткие характеристики:
· Три способа задания длительности импульсов: напряжение (в т. ч. потенциометр); USART; настройки во Flash-памяти.
· Диапазоны генерируемых частот:
– по напряжению – от менее 1 Гц до 10 кГц (три диапазона);
– по USART/Flash – от 0.11 Гц до 7.246 кГц.
· Включение/выключение генерации; управление состоянием покоя.
· Полностью автономен, не нуждается в дополнительных компонентах (кварцевом резонаторе, источниках опорной частоты и др.).
Возможные применения:
· Управляемый или неуправляемый частотозадающий узел, встраиваемый в электронное оборудование (задающий генератор).
· Управление световой индикацией с прерывистым режимом работы.
· Синтезатор звуковых частот.
· Имитатор сигналов для отладки электронного оборудования.
Генератор импульсов на базе микроконтроллера PIC12F675 предназначен для формирования прямоугольных логических импульсов регулируемой длительности.
Имеет гибкую настройку, широкий диапазон выходных частот и управление, которые делают применение этой микросхемы удобным для широкого круга задач. Благодаря своей компактности и автономности позволяет существенно упростить электронные схемы, имеющие узлы генерации частоты, сделать их более точными, наделить их дополнительными функциями, уменьшить площадь печатных плат.
Назначение выводов микросхемы (см. рисунок выше):
Вывод | Обозначение | Тип | Описание |
1 | Vdd | Пит. | Питание (диапазон напряжений питания указан ниже). |
2 | Pulses | Выход | Генерируемые импульсы. |
3 | IdleState | Вход | Задание состояния покоя выхода Pulses (при выключенной генерации): 0 – при выключенной генерации выход Pulses находится в состоянии «0»; 1 – при выключенной генерации выход Pulses находится в состоянии «1»; соединён с выходом Pulses – при отключении генерации выход Pulses будет оставаться в том состоянии, в котором он был на момент её отключения (после включения питания состояние Pulses будет неопределено). Смена состояния входа IdleState при выключенной генерации приводит к немедленной смене состояния выхода Pulses (работает как повторитель). При этом время реакции на смену сигнала IdleState – до 100 мкс. |
4 | Run | Вход | Разрешение генерации импульсов: 1 – включена, 0 – выключена. При переходе Run из 0 в 1 выход Pulses немедленно изменяет своё состояние на противоположное (фронт первого импульса). При переходе Run из 1 в 0 выход Pulses немедленно переходит в состояние покоя (текущий импульс по длительности не завершается). Время реакции на смену сигнала Run – до 100 мкс, в «медленном режиме» – до 500 мкс. |
5 | M1 | Вход | Выбор режима работы (M1:M0): 0:0 – напряжение, быстрый режим. 0:1 – напряжение, средний режим. 1:0 – напряжение, медленный режим. 1:1 – USART/Flash. Режим работы может изменяться «на ходу», при этом желательно, чтобы ножки M0 и M1 меняли состояние одновременно. Время реакции на смену сигналов M1 и M0 обычно не превышает нескольких мкс. Если генератор всегда используется в одном и том же режиме, ножки M0 и M1 можно притянуть к Vdd и Vss в соответствии с требуемым режимом. |
6 | M0 | Вход | |
7 | Ur / RX | Вход | В режиме напряжения – аналоговый вход Ur (задаёт длительность импульсов: Vss – минимальная, Vdd – максимальная). В режиме USART – цифровой вход RX (линия связи). В режиме Flash – цифровой вход RX, должен быть притянут к Vdd. |
8 | Vss | Земля | «Земля» питания и логики. |
Рекомендуется (не является обязательной) установка конденсатора ёмкостью 1–10 мкФ между линиями Vdd и Vss в непосредственной близости от микросхемы, особенно при управлении длительностью импульсов с помощью напряжения (способствует снижению помех на линии питания).
В режиме управления длительностью импульсов с помощью напряжения управляющее напряжение подаётся на вход Ur, который в этом режиме работает как вход АЦП, преобразующего величину напряжения в 10-битное значение (0...1023). Значение 0 (Ur=Vss) соответствует минимальной длительности импульсов, значение 1023 (Ur=Vdd) – максимальной.
Для задания длительности импульсов вручную в качестве источника напряжения можно использовать потенциометр (например, 10–20 кОм), как показано на схеме справа. Так как вход Ur практически не потребляет тока, потенциометр обеспечит линейную регулировку длительности импульсов во всём диапазоне. При этом для снижения помех на входе АЦП и повышения стабильности генерируемой частоты рекомендуется заземлить вход Ur через конденсатор 1–10 мкФ, установленный в непосредственной близости от микросхемы.
Коэффициент заполнения импульсов при управлении напряжением всегда равен 50%.
Регулировка с помощью напряжения осуществляется в трёх диапазонах, выбираемых входами M1:M0:
M1:M0 | Режим | Длительность периода импульсов |
Минимальная длительность (Ur=Vss, АЦП=0) |
Максимальная длительность (Ur=Vdd, АЦП=1023) |
Дискретность задания периода |
0:0 | Быстрый | T = [(0...1023)+50]*2 мкс | 100 мкс (10000 Гц) | 2146 мкс (около 466 Гц) | 2 мкс |
0:1 | Средний | T = [(0...1023)+10]*40 мкс | 400 мкс (2500 Гц) | 41320 мкс (около 24.2 Гц) | 40 мкс |
1:0 | Медленный | T = [(0...1023)+10]*1 мс | 10 мс (100 Гц) | 1033 мс (около 0.968 Гц) | 1 мс |
Обозначение «(0...1023)» в таблице – это значение АЦП, полученное после преобразования входного напряжения Ur (Vss...Vdd).
Выбор режима USART/Flash осуществляется подачей логических единиц на оба входа M0 и M1. При этом вход RX является цифровым входом линии связи USART.
Внимание! Уровни напряжения на входе RX логические (Vss и Vdd)! Для подключения к линии RS-232 используйте микросхемы-драйверы (например, MAX232). Подача сигнала линии RS-232 напрямую на вход RX может привести к его выходу из строя!
Связь с контроллером однонаправленная (только на приём). Параметры связи: скорость обмена 4800 бод, 8 бит, 1 стоп-бит, без контроля чётности. Неактивным состоянием линии (отсутствием передачи) считается высокий уровень. Передача символов по линии может осуществляться в любой момент и сама по себе не влияет на генерацию импульсов, в том числе не создаёт дополнительного джиттера («дрожания») фронтов.
При управлении по USART коэффициент заполнения импульсов может меняться произвольно (длительность импульсов и пауз между ними задаются отдельно).
Управление генерацией может осуществляться как с помощью входов Run и IdleState, так и с помощью команд по USART, при этом использование каждого из этих двух входов настраивается индивидуально.
Обращение к генератору импульсов по USART всегда имеет следующий вид:
< K K C C L L L L P P P P >
Все символы внутри скобок – шестнадцатеричные цифры (0...F, буквы A...F строго заглавные!). Для всех двухбайтовых полей первой передаётся старшая цифра, последней – младшая.
Пакет передаётся без пробелов, длина пакета всегда составляет 14 символов (считая скобки). Все символы до "<" и после ">" игнорируются. Пакеты меньшей или большей длины игнорируются (не выполняются). Если во время приёма пакета происходила смена сигналов M1:M0, такой пакет также игнорируется. Выполнение команды, содержащейся в корректном пакете, происходит сразу после приёма символа ">".
Назначение полей пакета:
Поле | Описание | |
KK | Команда (значения шестнадцатеричные): 22 – задание параметров генерации; 2D – задание параметров генерации и их запись во Flash-память (настройка режима Flash). Изменения параметров генерации вступают в силу немедленно (текущий импульс или пауза по длительности не завершаются). Пакеты с другими командами игнорируются (не выполняются). |
|
СС | Конфигурация выводов Run и IdleState. Биты значения: C7 C6 C5 C4 C3 C2 C1 C0. Бит C0: 0 = включать генерацию по входу Run; 1 = включать генерацию по значению бита C3. Бит C1: 0 = состояние покоя по значению входа IdleState; 1 = состояние покоя по значению бита C4. Бит C3: при C0 = 1: 1 – генерация импульсов включена, 0 – генерация импульсов выключена. Бит C4: при C1 = 1: значение выхода Pulses в состоянии покоя (при выключенной генерации). Остальные биты игнорируются. |
|
LLLL | Длительность импульсов. |
Определяются формулой: длительность = [значение+1]*69 мкс. Минимальная длительность (значение = 0): 69 мкс. Максимальная длительность (значение = 65535): 4.521984 c. Дискретность задания длительности: 69 мкс. Значения в формуле – десятичные, при передаче – шестнадцатеричные. |
PPPP | Длительность пауз между импульсами. |
Примеры конфигурирования параметра CC (значения двоичные, в скобках – шестнадцатеричные):
· 00000000 (00) – генерация включается входом Run, состояние покоя определяется входом IdleState.
· 00000010 (02) – генерация включается входом Run, состояние покоя равно 0.
· 00010010 (12) – генерация включается входом Run, состояние покоя равно 1.
· 00001001 (09) – генерация постоянно включена (состояние покоя значения не имеет).
· 00000001 (01) – генерация постоянно выключена (состояние покоя определяется входом IdleState).
· 00000011 (03) – генерация постоянно выключена (на выходе всегда 0).
· 00010011 (13) – генерация постоянно выключена (на выходе всегда 1).
Длительность периода импульсов определяется формулой TTTT = LLLL+PPPP и лежит в пределах от 138 мкс (около 7246 Гц) до 9.044 с (около 0.11 Гц). Дискретность задания периода 69 мкс (или 138 мкс при коэффициенте заполнения 50%).
При входе в режим USART генерация импульсов начинает осуществляться в соответствии с настройками, хранящимися во Flash-памяти. Поэтому при определённых настройках, отличающихся от заводских, генерация может начаться ещё до подачи соответствующей команды по USART (об установках Flash-памяти см. ниже).
Замечание. После корректной команды записи во Flash-память («2D») новые параметры генерации вступают в силу немедленно (как после команды «22»). Однако за этим следует пауза, в течение которой микросхема производит запись параметров в энергонезависимую память и не реагирует на смену внешних сигналов и новые символы USART (генерация продолжается в заданном режиме). Длительность паузы составляет порядка 23 мс. Однако, так как время записи в энергонезависимую память может отличаться, рекомендуется выдерживать 25–30 мс, прежде чем посылать новые команды по USART.
Выбор режима USART/Flash осуществляется подачей логических единиц на оба входа M0 и M1. При этом для работы в режиме Flash на входе RX также должна быть непрерывная логическая единица.
Настройки, хранимые во Flash-памяти, соответствуют константам CC (конфигурация выводов), LLLL (длительность импульсов) и PPPP (длительность пауз между импульсами) из таблицы выше, значения которых устанавливаются изготовителем либо программируются через режим USART.
Если в константе CC биты C0=1 и C3=1, генерация начнётся сразу при переходе в режим Flash и будет продолжаться всё время нахождения в нём. Если бит C0=0, генерация будет включаться/выключаться входом Run, при этом состояние покоя конфигурируется битами C1 и C4 (примеры смотрите выше).
Режим Flash удобен для создания автономных генераторов постоянной частоты, не требующих настройки «снаружи» (через напряжение или USART) и имеет более высокую стабильность частоты, чем при управлении напряжением (из-за отсутствия влияния помех на входе Ur).
Заводские установки во Flash-памяти по умолчанию:
CC = 00 (управление генерацией сигналами Run и IdleState);
LLLL = десятичное 7245 (соответствует 500 мс);
PPPP = десятичное 7245 (соответствует 500 мс).
Таким образом, по умолчанию микросхема настроена как генератор частоты 1 Гц (коэффициент заполнения 50%) с управлением от входов Run и IdleState.
При поставке мы можем сконфигурировать микросхему по Вашим пожеланиям (подробнее ниже), либо Вы сможете самостоятельно однократно или многократно переконфигурировать её посредством USART (потребуется соответствующее оборудование). Встроенная энергонезависимая память микросхемы обеспечивает не менее 100000 циклов перезаписи (обычно до 1000000).
Генератор пачек импульсов может быть реализован с помощью двух одинаковых микросхем генератора импульсов, при этом выход Pulses первой микросхемы соединяется с входом Run второй, а вход IdleState первой микросхемы заземляется (см. схему справа).
Включение и выключение генерации пачек импульсов осуществляется с помощью входа Run первой микросхемы, а состояние покоя при выключенной генерации – входом IdleState второй микросхемы.
Входы Ur / RX, M0 и M1 первой микросхемы определяют параметры пачек, а входы Ur / RX, M0 и M1 второй микросхемы – параметры импульсов внутри пачек. При этом, если необходимо, первая и вторая микросхемы могут работать в разных режимах (например, одна от потенциометра, а другая по настройкам Flash-памяти).
Возможное применение генераторов пачек импульсов: прерывистая звуковая сигнализация, прерывистая световая индикация с регулированием яркости и другое.
Электрические и температурные характеристики микросхемы соответствуют микроконтроллеру PIC12F675, описание которого на русском языке можно найти здесь (формат PDF).
Основные электрические характеристики генератора импульсов следующие:
· Напряжение питания Vdd: от 2.5 до 5.5 В (в т. ч. 3.3 В, 5 В).
· Диапазон рабочих температур: от –40 до +85 °C.
· Максимальный ток стока/истока на выходе Pulses: 25 мА.
· Потребляемый ток: не более 4 мА (типично 1 мА) плюс ток на выходе Pulses.
Для снижения потребляемого тока подтягивайте неиспользуемые выводы к Vdd.
ВНИМАНИЕ! У нас Вы можете приобрести микроконтроллер PIC12F675 с уже прошитой программой генерации частоты по фиксированной цене – 450 рублей!
При заказе более 5 штук цена снижается; для оптовых партий цена в несколько раз ниже (зависит от размера партии: заполните форму ниже, чтобы узнать цену).
При желании вы также можете самостоятельно приобрести чистый контроллер PIC12F675 в розничной торговой сети и заказать у нас только его прошивку (стоимость по общему тарифу).
При заказе Вы можете указать настройки, зашиваемые во Flash-память (длительности импульсов, режим работы, конфигурацию выводов Run и IdleState) для работы генератора импульсов в режиме Flash. Конфигурирование микросхем по Вашим пожеланиям осуществляется совершенно бесплатно при любом объёме заказа (от 1 штуки).
Используйте форму ниже для отправки заказа на микроконтроллер с указанной выше прошивкой. Пожалуйста, заполните её как можно более полно.
Любые подробности или вопросы можно написать в поле «Примечания». При нажатии кнопки «Отправить» Ваш заказ будет отправлен нашему специалисту, после чего он свяжется с Вами.
Нажимая кнопку «Отправить», Вы даёте согласие на обработку своих персональных данных в соответствии с политикой обработки персональных данных.
Можете ли Вы изменить или доработать программу под мои пожелания?
Можем. Цена такой доработки будет определена в зависимости от её сложности; для больших партий некоторые доработки можем выполнить и бесплатно. Воспользуйтесь формой заказа выше и опишите желаемые доработки в поле «Примечания».
Пригодно ли устройство для прецизионных задач?
Нет. Встроенный тактовый генератор PIC12F675 не слишком точный, лучше рассчитывать на погрешность до 2% (обычно намного меньше). При задании периода с помощью потенциометра предпочтительна настройка частоты с помощью осциллографа на выходе, а не вольтметра на входе.
Можете ли Вы отправить изделие на Украину и другие страны ближнего зарубежья?
Да, мы можем отправить заказ в другие страны Почтой РФ, но доставка может стоить очень дорого (подробнее см. «Доставка заказов»). Если Вы готовы оплачивать дорогостоящую доставку, оформите заявку с сайта обычным путём (через форму выше), указав страну и город. Мы рассчитаем и сообщим Вам её точную стоимость.
© MC Programming, 2010–2024 | Хостинг: beget.com | Созд. сайта: ИП Кумаков Ю.А. | Использование cookies