Поставки продукции Nuvoton по официальным каналам

Универсальный преобразователь напряжения в последовательность импульсов на микроконтроллере PIC12F683

ON Semiconductor MC14543B MC14553B

Журнал РАДИОЛОЦМАН, май 2016

Ricardo Jiménez и Juan C. Ángeles

Electronic Design

Если для преобразования выходного сигнала аналогового датчика в последовательность импульсов использовать обычный стандартный микроконтроллер, его выход будет совместим с цифровыми портами ввода/вывода.

Когда возникает необходимость преобразования значений напряжения аналогового датчика в серию импульсов, универсальным решением может стать простейший микроконтроллер. В схеме на Рисунке 1 использован 8-выводной микроконтроллер PIC12F683, формирующий последовательность импульсов, длина которой пропорциональна измеряемому входному напряжению. Подобная схема может оказаться полезной, например, для преобразования сигнала датчика в формат, совместимый со стандартным цифровым входом. Рабочему диапазону входных напряжений от 0 до 5.00 В соответствует диапазон длин последовательностей от 0 до 500 импульсов.

Универсальный преобразователь напряжения в последовательность импульсов на микроконтроллере PIC12F683
Рисунок 1. Количество импульсов на выходе GP2 микроконтроллера пропорционально
напряжению, измеренному на входе AN3. Счетчик запоминает число, соответствующее
длине последовательности, которое затем декодируется и отображается на
мультиплексируемом светодиодном дисплее с общим катодом.

К примеру, входное постоянное напряжение (VIN) 1.25 В будет преобразовано в последовательность из 125 импульсов, количество которых (Pt) в общем случае вычисляется по формуле

Pt = VIN × 100,

где VIN – выраженные в вольтах целые, десятые и сотые доли входного напряжения. В данной схеме каждый импульс имеет длительность 1 мс при коэффициенте заполнения 50%. Время обновления (Rt) определяется выражением

Rt = VIN × 1 мс + задержка 50 мс.

Наибольшее время обновления составит 0.499 с (плюс задержка 50 мс) при входном сигнале 4.99 В, в то время как наименьшее время 51 мс соответствует входному напряжению 0.01 В. 50-миллисекундная задержка добавлена ко всем отсчетам специально, чтобы исключить мерцание дисплея.

Входное аналоговое напряжение с движка подстроечного резистора 47 кОм поступает на аналоговый вход микроконтроллера (AN3). Разрядность внутреннего аналого-цифрового преобразователя (АЦП) установлена равной 8.

Для проверки программы микроконтроллера в схему включен трехдекадный счетчик MC14553, подсчитывающий число импульсов в последовательности. Код длины последовательности защелкивается во внутреннем регистре счетчика и мультиплексно, по четыре разряда, выводится на дешифратор MC14543 (CD4543), управляющий мультиплексируемым четырехразрядным светодиодным дисплеем через три ключевых транзистора. Внешний вид схемы, собранной на макетной плате, показан на Рисунке 2.

Универсальный преобразователь напряжения в последовательность импульсов на микроконтроллере PIC12F683
Рисунок 2. Отсутствие критических требований к топологии или
высокочастотных цепей позволило собрать и испытать
схему на стандартной макетной плате.

Для формирования на выводе GP2 последовательности импульсов с длиной, пропорциональной входному напряжению, программа микроконтроллера (см. ссылку на листинг в конце статьи) берет результат преобразования АЦП с весом единицы младшего разряда (LSB) 19.60 мВ и преобразует его в двоично-десятичную форму. Затем, используя инструкции DIG3, DIG2 и DIG1, соответственно, программа вычисляет десятичные эквиваленты единиц, десятых и сотых долей полученного числа. Значение DIG1 запоминается в переменной “units” для использования в цикле формирования числа единиц импульсов. Аналогично, значение DIG2 умножается на 10 и записывается в переменную “decimals” для генерации десятков импульсов. И в конце значение DIG3 запоминается в переменной «units», которая умножается на 100 для получения сотен импульсов.

Универсальный преобразователь напряжения в последовательность импульсов на микроконтроллере PIC12F683
Рисунок 3. Временная диаграмма сформированной импульсной последовательности.
Уровень сигнала, отображаемого желтым цветом, остается высоким на
протяжении всего времени трансляции последовательности.

Таким образом, например, измеренные 2.54 В будут состоять из 4, затем 50, и затем 200 импульсов, из которых будет получено всего 254 импульса, следующих с периодом 1 мс. Соответственно, для передачи этой последовательности импульсов потребуется примерно 254 мс. Если одна из цифр равно нулю, программа пропускает соответствующий цикл. На Рисунке 3 показаны осциллограммы последовательности импульсов и соответствующего сигнала, формируемого на выходе GP5.

Универсальный преобразователь напряжения в последовательность импульсов на микроконтроллере PIC12F683
Рисунок 4. Импульсы LE (запись) и MR (сброс), сформированные микроконтроллером
по окончании цепочки импульсов, используются для сохранения
результатов измерения и очистки счетчика, соответственно.

По завершении передачи последовательности на выходе GP0 формируется отрицательный импульс длительностью 1 мс, переписывающий содержимое счетчиков во внутренние регистры MC14553. Вслед за ним на выходе GP1 появляется второй импульс такой же длины, но положительной полярности, сбрасывающий в ноль все регистры счетчика (Рисунок 4). Для регистров дешифратора MC14543 установлен прозрачный режим. Выход GP5 используется микроконтроллером для индикации процесса передачи импульсной последовательности.

Три p-n-p транзистора 2N2907 (Q1 … Q3), непрерывно сканирующих светодиодный дисплей, управляются счетчиком MC14553. Транзистор включает десятичную точку, формируя 5-вольтовый импульс только в те моменты времени, когда сигнал на выходе /DS1 имеет низкий уровень. На Рисунке 5 показана последовательность из 11 импульсов, соответствующая входному напряжению 0.11 В, и импульс записи LE, генерируемый в конце передачи импульсной последовательности.

Универсальный преобразователь напряжения в последовательность импульсов на микроконтроллере PIC12F683
Рисунок 5. При входном напряжении 0.11 В микроконтроллер генерирует 11
импульсов, за которыми следует импульс записи LE,
сохраняющий результат измерения.

Для приложений более высокой точности (например, 4.88 мВ на LSB), вы можете выбрать 10-разрядную конфигурацию АЦП. Тогда период выходного сигнала может быть сокращен до 0.5 мс, чтобы избежать увеличенных задержек при максимальных входных напряжениях. В этом случае при входном напряжении 1.000 В длина цепочки составит 1000 импульсов. При батарейном питании схемы рекомендуется использовать цифровой жидкокристаллический дисплей, для которого потребуются три дешифратора MC14543.

Материалы по теме

Загрузки

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Versatile Voltage-to-Pulse Train Converter Supports Sensor Data I/O

Кодеры, декодеры, мультиплексоры и демультиплексоры 3-18V BCD/7-Segment
TradeElectronics
Россия
MC14543B
ON Semiconductor
по запросу
Lixinc Electronics
Весь мир
MC14543B
ON Semiconductor
по запросу
Augswan
Весь мир
MC14543B
ON Semiconductor
по запросу
727GS
Весь мир
MC14543B
ON Semiconductor
по запросу
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя