Altinkaya: турецкие корпуса для РЭА

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

ON Semiconductor MC14543B MC14553B

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

Ricardo Jiménez и Juan C. Ángeles

Electronic Design

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

Когда возникает необходимость преобразования значений напряжения аналогового датчика в серию импульсов, универсальным решением может стать простейший микроконтроллер. В схеме на Рисунке 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
по запросу
Acme Chip
Весь мир
MC14543B
ON Semiconductor
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя