HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL

Однопроводный интерфейс ЖК-индикатора

Журнал РАДИОЛОЦМАН, январь 2014

Noureddine Benabadji

EDN

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

Очень часто во встраиваемых системах используются алфавитно-цифровые ЖК-дисплеи, управляемые широко распространенными контроллерами, совместимыми с HD44780. Интерфейс дисплея содержит, по меньшей мере, 14 выводов:

  • восемь линий данных,
  • три линии управления (EN, WR, RS),
  • две линии питания (VDD, VSS),
  • одну линию управления контрастом (VRE).

При работе в 8-битном режиме дисплею потребуются 10 линий ввода/вывода: (D0…D7, EN, RS); в 4-битном режиме их должно быть не менее шести: (D4…D7, EN, RS). Для последнего варианта, на первый взгляд, подошли бы 8-выводные микроконтроллеры PIC, однако из шести доступных выводов этого семейства один может использоваться только в качестве входа.

В EDN публиковалось множество описаний различных способов расширения количества линий ввода/вывода. [1], [2], [3] Если к встраиваемой системе при недостатке свободных выводов потребуется подключить дополнительный ЖК-дисплей, вместо замены микроконтроллера новым, имеющим большее количество выводов, часто бывает лучше (с точки зрения цены и времени разработки) дополнить ЖК-модуль 8-выводным микроконтроллером PIC, и рассматривать получившуюся комбинацию как интеллектуальный дисплей.

Однопроводный интерфейс ЖК-индикатора
Рисунок 1. Дешевый ЖК-модуль с однопроводным интерфейсом для систем с ограниченным количеством внешних выводов.

Предлагаемая схема может быть полезной в любой системе, если при недостатке внешних выводов ее необходимо связать с HD44780-совместимым дисплеем. При обмене данными по однопроводной последовательной линии используется упрощенный асинхронный протокол (8N1 со скоростью 2400 бит/с). Для схемы выбран 8-разрядный микроконтроллер PIC12F508, однако подойдет любой другой прибор семейства PIC12F, поскольку программный код занимает менее 256 слов.

Последовательный канал используется и как линия передачи команд/данных, и как линия питания, которое подается на шину VDD через диод D1, и фильтруется конденсатором C1. Фильтром R2, C2 выходной сигнал порта GP5 расщепляется на два. Если длительность выходного импульса на этом выводе превышает постоянную времени R2·C2 = 56 мкс, вход RS принимает сигнал высокого уровня, и по спаду импульса GP5 данные записываются в контроллер HD44780.

Заметим, что для управления контрастом дисплея (вывод 3 индикатора) вместо традиционного потенциометра 10 кОм используется регулируемый источник тока LM334, обеспечивающий постоянство стекающего на землю тока 200 мкА. Это исключает необходимость ручной подстройки контраста, ухудшающегося, когда, по мере разряда батареи, начинает уменьшаться напряжение питания. Кроме того, такая схема позволяет сэкономить более 25% энергии. [4]

Снабженный полными комментариями исходный код на ассемблере находится в файлах F508LCD.ASM и LCD2x16c.INC. Основная программа выводит на экран двухсекундную заставку, а затем входит в бесконечный цикл ожидания команд для ЖК-индикатора, за каждой из которых могут следовать до 16 байт данных отображения, заканчивающихся символом ASCII «0». В файле F202TX.ASM содержится простой ассемблерный код для микроконтроллера PIC10F202, действие которого сводится лишь к выводу тестовой экранной заставки.

Исходный код на ассемблере - скачать.

Ссылки

  1. Squeeze extra outputs from a pin-limited microcontroller (EDN | August 4, 2005).
  2. Microcontroller provides low-cost analog to digital conversion, drives seven-segment displays (EDN | May 10, 2007).
  3. RC lowpass filter expands microcomputer’s output port (EDN | June 21, 2007).
  4. Contrast control for LCDs (Elektor Electronics | July-August 2006, Vol.32, N°356).

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

На английском языке: One wire brings power & data to LCD module

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Много компонентов на приёмной стороне. У меня было достаточно D1 и C0 для двунаправленного обмена. С таким же индикатором. Лет, эдак, 15 назад...))
  • А не будет сильно нескромным попросить взглянуть на схему Вашей реализации, где для того-же и даже большего функционала убраны элементы, кроме D1 и C0?
  • Там смотреть не на что. D1, С0, PIC16F628, LCD.
  • Т.е. цепь R2-C2 и не нужна вовсе?
  • вообще-то достаточно 4 разряда на шине данных. Если не читать с индикатора - то WR упраздняется. Контраст либо константа либо резистор прямо возле экрана - ещё минус одын. Получается 8 с питанием. Это с учётом кстати мультиплексирования шины данных (либо минус разрешительный ещё сигнальчик).