Оглавление:

Как сделать драйвер статического ЖК-дисплея с интерфейсом I²C: 12 шагов
Как сделать драйвер статического ЖК-дисплея с интерфейсом I²C: 12 шагов

Видео: Как сделать драйвер статического ЖК-дисплея с интерфейсом I²C: 12 шагов

Видео: Как сделать драйвер статического ЖК-дисплея с интерфейсом I²C: 12 шагов
Видео: Serial GPIO Expander 2024, Июль
Anonim
Как сделать драйвер статического ЖК-дисплея с интерфейсом I²C
Как сделать драйвер статического ЖК-дисплея с интерфейсом I²C

Жидкокристаллические дисплеи (ЖКД) широко используются в коммерческих и промышленных целях из-за их хороших визуальных свойств, низкой стоимости и низкого энергопотребления. Эти свойства делают ЖК-дисплей стандартным решением для устройств с батарейным питанием, таких как портативные инструменты, калькуляторы, часы, радиоприемники и т. Д.

Однако для правильного управления тем, что показывает ЖК-дисплей, электронный драйвер ЖК-дисплея должен генерировать соответствующие формы волны напряжения на выводах ЖК-дисплея. Форма волны должна быть переменного тока (переменного тока) по своей природе, поскольку постоянное напряжение (постоянный ток) приведет к необратимому повреждению устройства. Соответствующий драйвер будет передавать эти сигналы на ЖК-дисплей при минимальном потреблении энергии.

Существуют два типа ЖК-дисплеев: статический, только с одной задней панелью и одним выводом для управления отдельным сегментом, и мультиплексированный, с несколькими объединительными панелями и несколькими сегментами, подключенными к каждому выводу.

В этом руководстве будет представлена конструкция одного статического ЖК-драйвера с устройством SLG46537V GreenPAK ™. Разработанный драйвер ЖК-дисплея мог управлять до 15 сегментов ЖК-дисплея, используя ток в несколько микроампер от источника питания, и предлагал интерфейс I²C для управления.

В следующих разделах будут показаны:

● базовая информация о ЖК-дисплеях;

● детальный дизайн драйвера ЖК-дисплея SLG46537V GreenPAK;

● как управлять семисегментным 4-значным статическим ЖК-дисплеем с двумя устройствами GreenPAK.

Ниже мы описали шаги, необходимые для понимания того, как было запрограммировано решение для создания драйвера статического ЖК-дисплея с интерфейсом I²C. Однако, если вы просто хотите получить результат программирования, загрузите программное обеспечение GreenPAK, чтобы просмотреть уже заполненный файл дизайна GreenPAK. Подключите GreenPAK Development Kit к компьютеру и нажмите программу, чтобы создать драйвер статического ЖК-дисплея с интерфейсом I²C.

Шаг 1. Основы жидкокристаллических дисплеев

Основы жидкокристаллических дисплеев
Основы жидкокристаллических дисплеев
Основы жидкокристаллических дисплеев
Основы жидкокристаллических дисплеев

Жидкокристаллические дисплеи (ЖКД) - это технология, которая не излучает свет, а только контролирует прохождение внешнего источника света. Этим внешним источником света может быть доступный окружающий свет в отражательном типе дисплея или свет от светодиода или лампы задней подсветки в пропускающем типе дисплея. ЖК-дисплеи состоят из двух стеклянных пластин (верхней и нижней), тонкого слоя жидких кристаллов (ЖК) между ними и двух поляризаторов света (Примечание по применению AN-001 - Основы ЖК-технологии, Hitachi, Примечание по применению AN-005 - Дисплей Modes, Hitachi). Поляризатор представляет собой светофильтр для светового электромагнитного поля. Только световые компоненты в правильном направлении электромагнитного поля проходят через поляризатор, в то время как другие компоненты блокируются.

Жидкий кристалл - это органический материал, который вращает электромагнитное поле света на 90 градусов или более. Однако, когда электрическое поле применяется к ЖК, он больше не вращает свет. Благодаря добавлению прозрачных электродов в верхнее и нижнее стекло дисплея, можно контролировать, когда свет проходит, а когда нет, с помощью внешнего источника электрического поля. Рисунок 1 (см. Примечание по применению AN-001 - Основы ЖК-технологии, Hitachi) выше иллюстрирует это управление работой. На Рисунке 1 дисплей темный, когда нет электрического поля. Это потому, что оба поляризатора фильтруют свет в одном направлении. Если поляризаторы ортогональны, то при наличии электрического поля дисплей будет темным. Это наиболее распространенная ситуация для светоотражающих дисплеев.

Минимальное электрическое поле или напряжение для управления ЖК-дисплеем называется порогом включения. На ЖК влияет только напряжение, а в материале ЖК практически нет тока. Электроды в ЖК-дисплее образуют небольшую емкость, и это единственная нагрузка для драйвера. Это причина того, что ЖК-дисплей является маломощным устройством для отображения визуальной информации.

Однако важно отметить, что ЖК-дисплей не может работать от источника постоянного тока (DC) слишком долго. Приложение постоянного напряжения вызовет химические реакции в ЖК-материале, необратимо его повредив (Примечание по применению AN-001 - Основы ЖК-технологии, Hitachi). Решение состоит в том, чтобы подать переменное напряжение (AC) на электроды ЖК-дисплея.

В статических ЖК-дисплеях электрод объединительной панели встроен в одно стекло, а отдельные сегменты ЖК-дисплея или пиксели помещаются в другое стекло. Это один из простейших типов ЖК-дисплеев с наилучшей контрастностью. Однако для этого типа дисплея обычно требуется слишком много контактов для управления каждым отдельным сегментом.

Как правило, контроллер драйвера вместе формирует прямоугольный тактовый сигнал для объединительной платы и тактовый сигнал для сегментов передней панели. Когда часы задней панели синфазны с часами сегмента, среднеквадратичное напряжение (RMS) между обеими плоскостями равно нулю, и сегмент является прозрачным. В противном случае, если среднеквадратичное напряжение выше порога включения ЖК-дисплея, сегмент станет темным. Формы сигналов для объединительной платы, включенного и выключенного сегментов показаны на рисунке 2. Как видно на рисунке, сегмент включения находится в противофазе по отношению к сигналу объединительной платы. Выключенный сегмент синфазен по отношению к сигналу объединительной платы. Применяемое напряжение может составлять от 3 до 5 вольт для недорогих дисплеев с низким энергопотреблением.

Синхронизирующий сигнал для задней панели ЖК-дисплея и сегментов обычно находится в диапазоне от 30 до 100 Гц, минимальная частота, позволяющая избежать эффекта визуального мерцания на ЖК-дисплее. Избегают более высоких частот, чтобы снизить энергопотребление всей системы. Система, состоящая из ЖК-дисплея и драйверов, потребляет небольшой ток, порядка микроампер. Это делает их идеально подходящими для источников питания с низким энергопотреблением и аккумуляторных батарей.

В следующих разделах подробно представлена конструкция статического драйвера ЖК-дисплея с устройством GreenPAK, которое может генерировать тактовый сигнал задней панели и тактовый сигнал отдельного сегмента для коммерческого ЖК-дисплея.

Шаг 2: Базовая блок-схема GreenPAK Design

Базовая блок-схема GreenPAK Design
Базовая блок-схема GreenPAK Design
Базовая блок-схема GreenPAK Design
Базовая блок-схема GreenPAK Design

Блок-схема, иллюстрирующая конструкцию GreenPAK, показана на рисунке 3. Основными блоками конструкции являются интерфейс I²C, драйвер выходного сегмента, внутренний осциллятор и селектор источника синхросигнала на объединительной плате.

Блок интерфейса I²C управляет выходом каждого отдельного сегмента и источником тактовой частоты задней панели ЖК-дисплея. Блок интерфейса I²C - единственный системный вход для управления выходом сегмента.

Когда установлена линия управления внутренним сегментом (высокий уровень), соответствующий сегмент ЖК-дисплея становится темным и непрозрачным. Когда линия управления внутренним сегментом сбрасывается (низкий уровень), соответствующий сегмент ЖК-дисплея становится прозрачным.

Каждая внутренняя линия управления сегментом подключена к выходному драйверу. Блок драйвера выходного сегмента будет генерировать синфазный тактовый сигнал относительно тактовых импульсов задней панели для прозрачных сегментов. Для темных сегментов этот сигнал не в фазе по отношению к часам задней панели.

Источник тактовой частоты задней панели также выбирается с помощью интерфейса I²C. Когда выбран источник тактовой частоты внутренней задней панели, включается внутренний генератор. Внутренний генератор будет генерировать тактовую частоту 48 Гц. Этот сигнал будет использоваться блоком драйвера выходного сегмента и адресован выходному выводу тактовой частоты задней панели (вывод 20 GreenPAK).

Когда выбран внешний источник тактовой частоты объединительной платы, внутренний генератор отключается. Опорным сигналом драйвера выходного сегмента является вход тактовой частоты внешней объединительной платы (вывод 2 GreenPAK). В этом случае выходной контакт тактовой частоты объединительной платы может использоваться как дополнительная линия управления сегментом, сегмент OUT15.

На одной линии I²C можно использовать более одного устройства GreenPAK. Для этого каждое устройство должно быть запрограммировано на свой адрес I²C. Таким образом можно увеличить количество управляемых сегментов ЖК-дисплея. Одно устройство сконфигурировано для генерации источника синхросигнала объединительной платы, управляя 14 сегментами, а другие сконфигурированы для использования внешнего источника синхросигнала объединительной платы. Таким образом, каждое дополнительное устройство могло управлять более 15 сегментами. К одной линии I²C можно подключить до 16 устройств, а затем можно управлять 239 сегментами ЖК-дисплея.

В данном руководстве эта идея используется для управления 29 сегментами ЖК-дисплея с помощью 2 устройств GreenPAK. Распиновка устройства представлена в таблице 1.

Шаг 3: Расчет потребления тока

Важной проблемой в этой конструкции является потребление тока, которое должно быть как можно более низким. Расчетный ток покоя устройства GreenPAK составляет 0,75 мкА для режима питания 3,3 В и 1,12 мкА для режима питания 5 В. Ток потребления внутреннего генератора составляет 7,6 мкА и 8,68 мкА при питании от источника питания 3,3 В и 5 В соответственно. Не ожидается значительного увеличения потребления тока из-за потерь при переключении, поскольку эта конструкция работает на низкой тактовой частоте. Расчетный максимальный ток, потребляемый для этой конструкции, составляет менее 15 мкА, когда внутренний генератор включен, и 10 мкА, когда внутренний генератор выключен. Измеренный ток, потребляемый в обеих ситуациях, показан в разделе «Результаты тестирования».

Шаг 4: Схема устройства GreenPAK

Схема устройства GreenPAK
Схема устройства GreenPAK

Проект, разработанный в программном обеспечении GreenPAK, показан на рисунке 4. Эта схема будет описана с использованием основных блок-схем в качестве справочной.

Шаг 5. Интерфейс I²C

Интерфейс I²C
Интерфейс I²C
Интерфейс I²C
Интерфейс I²C

Блок интерфейса I²C используется как основной блок управления работой устройства. Подробный вид соединений блоков и настроенных свойств показан на рисунке 5.

Этот блок подключается к контактам 8 и 9, которые являются контактами I²C SCL и SDA соответственно. Внутри устройства блок I²C предлагает 8 виртуальных входов. Начальное значение для каждого виртуального входа показано в окне свойств (см. Рисунок 5). Виртуальные входы от OUT0 до OUT6 используются как линии управления сегментом. Эти линии управления соответствуют выходу 1 сегмента по выходу 7 и подключены к драйверу выхода сегмента. Виртуальный вход OUT7 используется как линия управления селектором источника синхросигнала задней панели с сетевым именем BCKP_SOURCE. Эта сеть будет использоваться другими блоками в дизайне. Управляющий код I²C конфигурируется с различным значением для каждой IC в проекте.

На выходе асинхронного конечного автомата (ASM) доступны еще 8 линий управления внутренними сегментами, как показано на рисунке 6 выше. Строка вывода сегмента 8 (SEG_OUT_8 в окне свойств) через строку вывода сегмента 15 (SEG_OUT_15) контролируется выходом ASM в состоянии 0. В блоке ASM нет никакого перехода между состояниями, он всегда находится в состоянии 0. Выходы ASM являются подключен к драйверам вывода сегментов.

Драйверы вывода сегментов будут генерировать выходной сигнал устройства.

Шаг 6: драйвер сегмента вывода

Драйвер выходного сегмента - это, по сути, таблица поиска (LUT), настроенная как логический порт XOR. Для каждого выходного сегмента это должен быть порт XOR, подключенный к линии управления сегментом и к часам объединительной платы (BCKP_CLOCK). Порт XOR отвечает за генерацию синфазного и не синфазного сигнала для выходного сегмента. Когда линия управления сегментом находится на высоком уровне, выход порта XOR инвертирует тактовый сигнал объединительной платы и генерирует сигнал, не совпадающий по фазе с выводом сегмента. Разница напряжений между задней панелью ЖК-дисплея и сегментом ЖК-дисплея в этом случае сделает сегмент ЖК-дисплея темным. Когда линия управления сегментом находится на низком уровне, выход порта XOR будет следовать синхросигналу объединительной платы, а затем генерировать синфазный сигнал для вывода сегмента. Поскольку в этом случае между задней панелью ЖК-дисплея и сегментом не подается напряжение, сегмент прозрачен для света.

Шаг 7: Внутренний осциллятор и управление источником тактовой частоты на объединительной плате

Внутренний осциллятор и управление источником тактовой частоты на объединительной плате
Внутренний осциллятор и управление источником тактовой частоты на объединительной плате

Внутренний генератор используется, когда сигнал BCKP_CLOCK от интерфейса I²C установлен на высокий уровень. Подробный вид схемы управления источником тактовых импульсов показан на Рисунке 7 выше.

Генератор настроен на частоту RC 25 кГц с самым высоким выходным делителем, доступным на генераторе OUT0 (8/64). Вся конфигурация видна в окне свойств, показанном на рисунке 7. Таким образом, внутренний генератор будет генерировать тактовую частоту 48 Гц.

Генератор активен только тогда, когда сигнал BCKP_SOURCE находится на высоком уровне вместе с сигналом POR. Это управление осуществляется путем подключения этих двух сигналов к порту NAND 4-L1 LUT. Затем выход И-НЕ подключается к входу вывода управления понижением мощности генератора.

Сигнал BCKP_SOURCE управляет мультиплексором, построенным с использованием 3-L10 LUT. Когда сигнал BCKP_SOURCE находится на низком уровне, источник синхросигнала объединительной платы поступает от PIN2. Когда этот сигнал находится на высоком уровне, источник тактовой частоты задней панели поступает от внутреннего генератора.

Шаг 8: Выход тактового сигнала объединительной платы или управление выводом сегмента 15

Выход тактового сигнала объединительной платы или выходной вывод сегмента 15 Управление контактами
Выход тактового сигнала объединительной платы или выходной вывод сегмента 15 Управление контактами

Контакт 20 в этой конструкции выполняет двойную функцию, которая зависит от выбранного источника синхронизации задней панели. Работа этого вывода управляется одной таблицей LUT с 4 входами, как показано на рисунке 8. С помощью 4-битной таблицы LUT можно связать работу порта XOR с выходным мультиплексором. Когда сигнал BCKP_SOURCE находится на высоком уровне, выход LUT будет следовать за часами внутреннего генератора. Затем контакт 20 работает как выход тактовой частоты задней панели. Когда сигнал BCKP_SOURCE находится на низком уровне, выход LUT будет операцией XOR между SEG_OUT_15, выходом ASM и синхросигналом объединительной платы. 4-битная конфигурация LUT для выполнения этой операции показана на рисунке 8.

Шаг 9: Прототип ЖК-системы

Прототип ЖК-системы
Прототип ЖК-системы
Прототип ЖК-системы
Прототип ЖК-системы

Чтобы продемонстрировать использование дизайнерского решения GreenPAK, на макетной плате был собран прототип ЖК-системы. В прототипе семисегментный 4-разрядный статический ЖК-дисплей управляется двумя устройствами GreenPAK на DIP-плате. Одно устройство (IC1) использует внутренний генератор для управления объединительной платой ЖК-дисплея, а другое устройство (IC2) использует этот сигнал в качестве входного опорного сигнала объединительной платы. Обе микросхемы управляются через интерфейс I²C микроконтроллером (MCU) STM32F103C8T6 на минимальной плате разработки.

На рисунке 9 показана схема соединений между двумя микросхемами GreenPAK, ЖК-дисплеем и платой MCU. На схеме устройство GreenPAK со ссылкой U1 (IC1) управляет первой и второй цифрами ЖК-дисплея (ЖК-дисплей слева). Устройство GreenPAK с эталоном U2 (IC2) управляет цифрой три и четыре ЖК-дисплея, а также сегментом COL (правая сторона ЖК-дисплея). Питание обоих устройств осуществляется от регулятора на плате разработки микроконтроллера. Две съемные перемычки между блоком питания и выводами VDD каждого устройства GreenPAK добавлены для измерения тока с помощью мультиметра.

Изображение собранного прототипа показано на рисунке 10.

Шаг 10: Команды I²C для управления ЖК-дисплеем

Команды I²C для управления ЖК-дисплеем
Команды I²C для управления ЖК-дисплеем
Команды I²C для управления ЖК-дисплеем
Команды I²C для управления ЖК-дисплеем
Команды I²C для управления ЖК-дисплеем
Команды I²C для управления ЖК-дисплеем

Два устройства GreenPAK на макетной плате запрограммированы с одинаковым дизайном, за исключением значения контрольного байта. Байт управления IC1 равен 0 (адрес I²C 0x00), а байт управления I²C равен 1 (адрес I²C 0x10). Связи между сегментами дисплея и драйверами устройств приведены в таблице выше.

Соединения были выбраны таким образом, чтобы создать более четкую схему и упростить сборку соединений на макетной плате.

Управление выводом сегмента осуществляется командами записи I²C в виртуальные входы I²C и регистры вывода ASM. Как описано в примечании к применению AN-1090 Простые контроллеры ввода-вывода I²C с SLG46531V (см. Замечание по применению AN-1090 Простые контроллеры ввода-вывода I²C с SLG46531V, Dialog Semiconductor), команда записи I²C структурирована следующим образом:

● Старт;

● Байт управления (бит чтения / записи равен 0);

● Адрес слова;

● Данные;

● Стоп.

Все команды записи I²C выполняются по адресу Word 0xF4 (виртуальные входы I²C) и 0xD0 (выход ASM для состояния 0). Команды для записи в IC1 и управления цифрами 1 и 2 ЖК-дисплея приведены в таблице 3. В представлении последовательности команд открытая скобка «[» обозначает сигнал запуска, а закрывающая скобка «]» обозначает сигнал остановки.

Два байта выше управляют сегментами ЖК-дисплея цифра 1 и цифра 2 вместе. Здесь подход заключается в использовании индивидуальной таблицы поиска (LUT) в программном обеспечении для каждой цифры с учетом сегментов в обоих байтах. Значения байтов из справочной таблицы должны быть смешаны с использованием побитовой операции ИЛИ, а затем отправлены в IC. В таблице 4 показаны значения Byte0 и Byte1 для каждого числового значения, которое должно быть записано в каждой цифре дисплея.

Например, чтобы записать в разряде 1 число 3, а в разряде 2 - число 4, байт0 равен 0xBD (0x8D побитовое ИЛИ с 0xB0), а байт 1 равен 0x33 (0x30 побитовое ИЛИ с 0x03).

Команда записи в IC2 и управляющие цифры 3 и 4 описаны в таблице 5.

Логика управления цифрами 3 и 4 аналогична управлению цифрами 1 и 2. Таблица 6 показывает LUT для этих двух цифр.

Разница в IC2 - это сегмент COL. Этот сегмент контролируется Byte1. Чтобы сделать этот сегмент темным, необходимо выполнить побитовую операцию ИЛИ между байтом 1 и значением 0x40.

Шаг 11. Команды I²C для проверки ЖК-дисплея

Команды I²C для тестирования ЖК-дисплея
Команды I²C для тестирования ЖК-дисплея

Для тестирования ЖК-дисплея была разработана прошивка на языке C для платы MCU. Эта прошивка отправит последовательность команд на обе микросхемы на макетной плате. Исходный код этой прошивки находится в разделе «Приложение». Все решение было разработано с использованием Atollic TrueStudio для STM32 9.0.1 IDE.

Последовательность команд и соответствующие значения, отображаемые на дисплее, обобщены в Таблице 7 выше.

Шаг 12: результаты теста

Результаты теста
Результаты теста
Результаты теста
Результаты теста

Тест прототипа состоит из проверки отображаемых значений после команды MCU и измерения текущего стока каждой ИС во время работы.

Изображения ЖК-дисплея для каждого значения команды показаны в Таблице 8 выше.

Потребление тока для каждого устройства измерялось мультиметром в нижнем диапазоне тока 200 мкА. Изображения измеренного тока для каждого устройства во время запуска и нормальной работы показаны в Таблице 9 выше.

Заключение и обсуждение результатов

Был представлен дизайн маломощного статического ЖК-драйвера с устройством GreenPAK. Эта конструкция ясно показывает одну из величайших особенностей устройств GreenPAK: их низкий ток покоя. Поскольку устройства GreenPAK представляют собой аппаратное решение, можно работать в режиме низкой частоты, в данном случае 48 Гц. Решение на основе микроконтроллера потребует более высокой рабочей частоты даже в течение периодически коротких периодов времени, а затем потребует больше энергии. И, сравнивая устройство GreenPAK с CPLD (сложное программируемое логическое устройство), становится ясно, что обычно CPLD имеет ток покоя выше 20 мкА.

Интересно отметить, что этот дизайн можно легко изменить для лучшего соответствия требованиям конкретного проекта. Хорошим примером является распиновка элементов управления сегментами. Их можно было легко изменить, чтобы упростить печатную плату и одновременно разработку программного обеспечения. Это интересная особенность, если сравнивать устройство со стандартной интегральной схемой ASIC (Application Specific Integrated Circuit). Обычно ASIC предназначены для использования в широком спектре приложений, и необходимо написать начальную процедуру программного обеспечения для правильной настройки IC перед операцией. Настраиваемое устройство может быть разработано таким образом, чтобы оно было готово к использованию после включения питания. Таким образом можно сократить время разработки программного обеспечения для первоначальной настройки ИС.

Исходный код приложения можно найти здесь, в Приложении A.

Рекомендуемые: