Компьютеры и современные гаджеты

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

Современная электроника обладает огромным количеством средств отображения информации: от элементарных светодиодов до сложных TFT-панелей. Казалось бы, время монохромных ЖК-индикаторов (ЖКИ) осталось в прошлом, но это далеко не так. Существует большое количество приложений, в которых ЖКИ остаются востребованными. Микроконтроллеры малопотребляющего семейства STM8L со встроенным драйвером ЖКИ (модуль LCD) позволяют реализовать все преимущества данного типа дисплеев.

Области применения черно-белых ЖК-индикаторов

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

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

Вопрос низкой стоимости может быть не таким очевидным с первого взгляда. Но если иметь в виду стандартные ЖК-дисплеи без встроенного контроллера или заказные дисплеи, выпускаемые большими партиями, то стоимость экрана будет весьма низкой (менее 1 доллара).

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

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

  • Портативные медицинские приборы (глюкометры, тонометры, градусники и др.). Это приборы с батарейным питанием, для них крайне важен фактор потребляемой мощности. Например, для человека, страдающего диабетом, глюкометр должен иметь минимальное потребление от батарей, чтобы пребывать в постоянной готовности, особенно во время длительных поездок. Важным фактором является и наглядность отображения показаний приборов, так как пользователями, в основном, являются люди пожилого возраста.
  • Системы сигнализации и бытовые измерительные приборы (газовые счетчики, счетчики потребления электричества и воды). Эти устройства используют батарейное питание и должны долгое время работать без смены элемента питания.
  • Бытовая техника (стиральные машины, холодильники, микроволновые печи, кофе-машины, часы и др.). Эти приборы требуют низкого потребления и, в то же время, низкой стоимости индикаторов.
  • Промышленность. ЖК-инди­ка­то­ры идеально подходят для портативных измерительных приборов (мультиметры, измерители импеданса).
  • Автомобильные приложения. В качестве распространенных устройств, использующих ЖК-дисплеи, можно назвать автомобильные часы, радиоприемники, индикаторы зарядки аккумулятора и др.

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

Данная статья посвящена совместному использованию микроконтроллеров STM8L и ЖК-индикаторов. Почему именно STM8L? Эти контроллеры имеют интегрированный ЖК-контроллер (модуль LCD), весьма низкое потребление и стоимость. То есть именно те качества, которые помогают дополнительно подчеркнуть преимущества ЖКИ. Кроме того, используя STM8L, мы получаем мощный процессор с развитой периферией, доступ к отладочным средствам в виде готовых оценочных наборов и бесплатного программного обеспечения.

Впрочем, чтобы сделать выводы о перспективности совместного использования, необходимо последовательно рассмотреть характеристики ЖКИ, особенности микроконтроллеров STM8L с интегрированным ЖК-контроллером и особенности самого ЖК-контроллера.

Общая характеристика работы ЖК-индикаторов

Рассмотрим структуру монохромной ЖК-ячейки на примере TN (Twisted Nematic) (рисунок 1). Слой «жидких кристаллов» расположен между двумя стеклянными основаниями. На эти основания нанесены прозрачные электроды и поляризационные слои (поляризационные фильтры). На заднем стеклянном основании нанесено зеркальное покрытие.

На поверхности стекол формируются направляющие, которые выравнивают молекулы ЖК параллельно поверхности стекла. Пространственно молекулы закручены в спираль (рисунок 2).

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

При отсутствии внешнего электрического поля ячейка остается прозрачной (рисунок 2а). Действительно, неполяризованный свет, проходя через верхний поляризатор, оказывается поляризованным (например, по оси X). Перемещаясь по спирали из молекул ЖК, за счет отражений свет меняет направление поляризации на 90 градусов. Поэтому он проходит через нижний поляризатор без поглощения.

Таблица 1. Характеристики микроконтроллеров STM8L с модулем LCD

Наименование Корпус Рабочая частота (макс), МГц Flash, кБайт ОЗУ, кБайт EEPROM, байт 12-бит АЦП, кол-во каналов 12-бит ЦАП Интерфейсы Uпит, В Iпотр (режим RUN), мкА/МГц ЖК
LQFP 48 16 32 2 256 25 SPI; I2C; USART (IrDA, ISO 7816) 1,8…3,6 180 4×28
LQFP 64 64 4 256 28 200 4×28/8×24
LQFP 48 UFQFPN 48 16 2 1024 25 1 1,65…3,6 195 4×28
LQFP 48 UFQFPN 48 32 2 1024 25 1 180 4×28
LQFP 48 UFQFPN 48 64 4 2048 28 2 200 4×32/8×28
LQFP 32 UFQFPN 32 16 2 1024 21 1 180 4×17
LQFP 32 UFQFPN 32 32 2 1024 21 1 180 4×17
LQFP 80 64 4 2048 28 2 200 4×44/8×40
LQFP 64 32 2 1024 28 2 200 4×40/8×36
LQFP 64 64 4 2048 28 2 200 4×40/8×36
LQFP 80 64 4 2048 28 2 200 4×44/8×40
LQFP 64 64 4 2048 28 2 200 4×44/8×40

Таблица 2. Контроллеры ЖКИ в микроконтроллерах STM8L различной степени интеграции

Наименование Количество пикселей Режимы мультиплексирования (duty) Режимы смещения (bias) ОЗУ
4×28 Статическое;
1/2; 1/3; 1/4
1/2; 1/3 до 14 x 8-бит
4×28
4×28
4×28
4×28
4×17
4×17
4×28/8×24 Статическое;
1/2; 1/3; 1/4; 1/8
1/2; 1/3; 1/4 до 18 x 8-бит
4×32/8×28 Статическое;
1/2; 1/3; 1/4; 1/8
1/2; 1/3; 1/4 до 22 x 8-бит
4×44/8×40
4×40/8×36
4×40/8×36
4×44/8×40
4×44/8×40

Если к такой ячейке при помощи нанесенных электродов приложить внешнее электрическое поле, то молекулы кристалла начнут ориентироваться по полю и винтовая структура оказывается нарушенной. В результате свет будет проходить через слой молекул ЖК без изменения направления поляризации и поглощаться нижним поляризационным фильтром (рисунок 2б). Ячейка будет казаться темной.

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

Не трудно догадаться, что степень прозрачности ячейки меняется в зависимости от величины приложенного поля (напряжения). Соответственно, управлять прозрачностью можно при помощи ШИМ подаваемого напряжения или изменения амплитуды сигнала.

Есть и еще одна важная особенность. При приложении постоянного напряжения структура кристаллов деградирует. Поэтому необходимо формировать управляющие сигналы таким образом, чтобы избегать постоянной составляющей напряжения. Величина постоянного смещения более 100 мВ недопустима.

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

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

Разобравшись с особенностями отдельных ячеек, рассмотрим особенности управления ЖК-дисплеями, состоящими из множества ячеек.

Существует несколько разновидностей ЖК-дисплеев, отличающихся типом соединения управляющих электродов. В самом простом случае каждый сегмент подключается к общему (COM) и к индивидуальному (SEG) управляющим электродам. Такая схема называется статической без мультиплексирования. Она проста для управления, но имеет один недостаток – количество управляющих выводов велико и равно (N+1), где N – число ячеек.

Для сокращения числа выводов применяют различные схемы матричного соединения. Так для схемы с двумя общими выводами COM потребуется только (N/2)+2 линий управления (рисунок 4). Однако форма сигналов управления будет усложняться с ростом степени мультиплексирования (1/2, 1/3, 1/4, 1/8).

В данном примере (рисунок 4) сегменты S00 и S11 – будут темными, а сегменты S01 и S10 – прозрачными.

Анализ сигналов управления показывает, что имеют место несколько особенностей:

  • ко всем сегментам прикладывается переменное напряжение без постоянной составляющей;
  • период сигналов разбит на части. Первая часть периода (нечетный фрейм) для выводов COM характеризуется активным низким уровнем напряжения, а для SEGn – высоким. Во время второго полупериода (четного фрейма) – наоборот;
  • сигналы имеют различные уровни напряжений (различные смещения). В данном примере используется смещение 1/2 с тремя уровнями напряжений VLCD, VLCD/2, VSS.

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

Краткий обзор микроконтроллеров STM8L со встроенным контроллером ЖКИ

В состав малопотребляющего семейства STM8L входят четыре линейки микроконтроллеров, имеющих контроллер ЖКИ (модуль LCD) (рисунок 5, таблица 1). В линейке STM8L05 на настоящий момент модуль LCD присутствует только у контроллеров STM8L052C6 и STM8L052R8 (таблица 1).

Линейка STM8L152x – это самая первая линейка семейства STM8L. Она обладает высокой производительностью и богатой периферией:

  • 12-битный АЦП 1 Msps до 28 каналов;
  • два 12-битных ЦАП с выходным буфером;
  • модуль LCD-контроллера;
  • DMA на четыре канала для ЦАП, АЦП, SPI, I2C, USART, таймеров, один канал для передачи из памяти в память;
  • два малопотребляющих компаратора;
  • три 16-битных двухканальных таймера с квадратурным энкодером;
  • один 16-битный таймер с комплементарными выходами для управления двигателями;
  • один 8-битный таймер с 7-битным делителем частоты;
  • один независимый сторожевой таймер (IWDT);
  • блок генерации для внешних звуковых устройств (например, пъезоэлементы) на 1,2 и 4 кГц;
  • множество коммуникационных интерфейсов: SPI, I2C, USART;
  • до 67 входов/выходов общего назначения;
  • до 16 каналов подключения сенсорных кнопок;
  • 96-битный уникальный номер.

STM8L162x – производительная линейка, имеющая интегрированный блок криптографии AES, позволяющий зашифровывать и расшифровывать данные по AES-алгоритму.

STM8L052x «Value Line» представляет собой бюджетный вариант исполнения STM8L. Данная линейка предназначена для приложений, где цена и энергопотребление является определяющим фактором. Состав периферии и объем памяти сокращен относительно вышеприведенных линеек. Однако FLASH до 64 Кбайт и ОЗУ до 2 Кбайт, позволяют реализовывать достаточно сложные программы.

Одной из главных особенностей представленных линеек является низкое потребление и наличие интегрированного модуля LCD.

Особенности интегрированного контроллера ЖКИ

Чтобы внести ясность, стоит отметить, что существует несколько разновидностей модулей LCD для микроконтроллеров STM8L разной степени интеграции (таблица 2).

Из таблицы 2 видно, что наиболее развитыми способностями обладают контроллеры ЖКИ микроконтроллеров STM8L152xx/STM8L162xx высокой степени интеграции. Рассмотрим их структуру более подробно (рисунок 6). Она содержит три основных блока: генератор тактовых импульсов, драйверы ЖКИ, блок управления контрастом.

Генератор тактовых импульсов. Как видно из названия, основная задача данного блока – формирование тактовых импульсов. Входным сигналом для генератора является тактовый импульс, частота которого равна частоте часов реального времени (RTC), деленной на 2, и должна находиться в рамках диапазона 16,384…500 кГц. Для получения более низких частот используются два делителя. 16-битный делитель с коэффициентом деления 1…65535 и, если требуется плавная подстройка – дополнительный делитель (коэффициент деления – 16…31).

Таблица 3. Режимы пониженного потребления STM8L

* – Ток потребления приведен для STM8L052x в случае отключенной периферии и программы, выполняемой из FLASH, если не указано иное.

Полученный тактовый сигнал fLCD определяет основную частоту фреймов с учетом степени мультиплексирования (duty): fLCD = fLCD x duty. Как отмечалось выше, имеет смысл выбирать частоту из диапазона 30…100 Гц. При более высокой частоте потребление будет значительным, а качество изображения останется неизменным.

Модуль LCD дает возможность организовывать аппаратное мигание, для этого в составе генератора имеется специальный блок формирования частоты мигания 0,5 Гц, 1 Гц, 2 Гц, 4 Гц.

Драйверы ЖКИ. Два драйвера ЖКИ используются для создания сигналов COMn и SEGn. Блок содержит времязадающие цепи, необходимые для формирования требуемых временных интервалов.

Кроме того, блок имеет в своем составе интегрированное ОЗУ, в котором хранится информация о том, какие из пикселей должны быть активны.

Блок управления контрастом. Этот блок играет ключевую роль. Он управляет контрастом, находя компромисс между потребляемой мощностью и значением самого контраста.

Как уже было сказано выше, контраст зависит от напряжения питания VLCD. Формировать это напряжение может как интегрированный преобразователь, так и внешний источник. При использовании интегрированного преобразователя существует возможность программной подстройки значения напряжения VLCD. Для микроконтроллеров средней степени интеграции (таблица 2) диапазон подстройки составляет 2,6…3,3 В. Для микроконтроллеров более высокой степени интеграции диапазон составляет 2,6…3,5 В.

Допустима подстройка контраста при помощи аппаратного формирования «мертвого времени» в управляющих сигналах. В течение «мертвого времени» сигналы COMn и SEGn притянуты к земле, и потребление в этом случае минимально.

Еще одна задача блока – формирование уровней напряжения сигналов управления. Так, например, в режиме со смещением 1/4 необходимо генерировать сигналы пяти уровней напряжения: 0, VLCD /4, VLCD /2, VLCD /4 и VLCD.

Для решения этой задачи реализованы два резистивных делителя (рисунок 7). Один из них – низкоомный, используется для увеличения скорости переключения при перезаряде емкости ЖК ячейки. Как только переключение состоялось, этот делитель может быть отключен, чтобы уменьшить потребление. Включенным остается второй делитель – высокоомный, он поддерживает уровень напряжения в течение оставшейся части фазы импульса.

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

В качестве вывода к данному разделу назовем преимущества и особенности интегрированного модуля LCD в STM8L:

  • Модуль способен управлять ЖКИ с большим количеством пикселей, с различными уровнями мультиплексирования и различными уровнями смещениями (таблица 2).
  • Контроллер ЖКИ имеет интегрированное ОЗУ для отображаемых пикселей.
  • Интегрированный преобразователь позволяет формировать все необходимые уровни напряжений и программно регулировать напряжение питания VLCD, требуя всего одного внешнего конденсатора.
  • Возможность использования аппаратного эффекта мигания с частотой 0,5 Гц, 1 Гц, 2 Гц, 4 Гц.

Рассмотрев особенности STM8L и ЖКИ, можно оценить преимущества их совместного использования с точки зрения снижения потребляемой мощности.

Оптимизация потребляемой мощности при совместном использовании STM8L и ЖКИ

Если цена и интегрированный контроллер являются бесспорным преимуществом системы STM8L + ЖК-дисплей, то вопрос с потреблением необходимо рассмотреть более тщательно. Для этого определим основные пути снижения потребляемой мощности.

Рис. 7. Формирование уровней напряжения
выходных сигналов драйверов

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

Интегрированный модуль LCD дает дополнительную гибкость при управлении питанием, добавляя еще несколько путей снижения мощности. Во-первых, контроллер ЖКИ позволяет управлять величиной напряжения программно. Во-вторых – появляется возможность использования «мертвого времени» в фазах сигналов управления. В-третьих, контроллер управляет временем использования резистивных задающих делителей (рисунок 4). Уменьшая время использования низкоомного делителя, можно сократить потребление.

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

Чрезвычайно важным преимуществом интегрированного модуля ЖКИ является его полная совместимость с режимами пониженного потребления STM8L (таблица 3). Так как модуль LCD тактируется тем же сигналом, что и часы реального времени, управление ЖК-дисплеем возможно во всех режимах, за исключением режима HALT.

Оптимизация мощности потребления STM8L . Микроконтроллеры STM8L могут динамически изменять величину потребляемой мощности и достигать сверхнизкого потребления за счет использования своих возможностей:

  • гибкая система питания имеет в своем составе два регулятора напряжений и может работать при напряжениях питания до 1,65 В (1,8 В для STM8L052x);
  • гибкая система тактирования позволяет использовать широкий выбор источников тактового сигнала, производить деление частоты, индивидуально тактировать интегрированную периферию. В нужный момент микроконтроллер может увеличить собственную частоту для решения какой-либо задачи, после чего снизить ее до допустимого минимума;
  • имеются режимы пониженного потребления.

Помимо малого потребления, устройства на базе связки ЖКИ + STM8L имеют перспективу быстрой разработки. Это возможно благодаря традиционному для микроконтроллеров производства компании ST Microelectronics наличию оценочных наборов и бесплатного программного обеспечения.

Оценочные наборы и ПО для STM8L

Для того, чтобы быстро освоить STM8L, можно использовать оценочные наборы производства компании ST Microelectronics. Их достаточно много: STM8L-Discovery, STM8L1526-EVAL, STM8L1528-EVAL, STM8L15LPBOARD, STM8L101-EVAL. Главная их особенность – в том, что все они имеют в своем составе ЖК-дисплей и комплект бесплатного ПО. Наборы отличаются типом микроконтроллера, установленной внешней периферией и типом ЖК-дисплея.

Оценочный набор STM8L-Discovery (рисунок 8) отлично подходит как для целей ознакомления с STM8L, так и для освоения работы в связке STM8L + ЖКИ.

Набор STM8L-Discovery имеет возможность питания от USB и отличается следующими особенностями:

  • микроконтроллер STM8L152C6T6 (32 Кбайт FLASH, 2 Кбайт ОЗУ, 1 Кбайт EEPROM, корпус 48-pin LQFP);
  • встроенный отладчик ST-LINK USB;
  • пользовательские светодиоды и кнопки;
  • схема измерения тока потребления;
  • все 48 ножек контроллера выведены на контактные площадки;
  • SPI ЖК-дисплей (122×32 пикселей) со встроенным контроллером;
  • цифро-буквенный знакосинтезирующий ЖК-дисплей (24×4 сегментов).

Особенности ЖКИ:

  • 24×4 сегмента;
  • метод управления: мультиплексирование 1/4, смещение 1/3;
  • напряжение питания: 3 В;
  • рабочая температура: 0…50°C.

Каждый из комплектов сопровождается бесплатным ПО stsw-stm8008. Данный набор ПО содержит две папки.

В папке Library находится Стандартная библиотека периферийных устройств STM8L , которая содержит заголовочные файлы (например, stm8l15x_lcd.h – заголовочный файл для модуля LCD) и файлы реализации (например, stm8l15x_lcd.с) для каждого интегрированного периферийного блока. Она позволяет работать с периферией без необходимости тщательного ознакомления с регистрами управления.

Так, вместо того, чтобы помнить, какие биты нужно устанавливать в регистрах для инициализации ЖК-контроллера, достаточно будет использовать функцию LCD_Init (stm8l15x_lcd.с), заполнив все необходимые поля:

LCD_Prescaler_TypeDef LCD_Prescaler, //деление входной частоты 16-битным делителем

LCD_Divider_TypeDef LCD_Divider, //деление входной частоты дополнительной делителем

LCD_Duty_TypeDef LCD_Duty, //определение длительности фрейма

LCD_Bias_TypeDef LCD_Bias, //определение смещения

LCD_VoltageSource_TypeDef LCD_VoltageSource //выбор источника напряжения.

Допустимые значения параметров описаны в stm8l15x_lcd.h. Например, длительность фрейма задается при помощи перечисления LCD_Duty_TypeDef:

LCD_Duty_Static = (uint8_t)0x00, /*!< Static duty */

LCD_Duty_1_2 = (uint8_t)0x02, /*!<1/2 duty */

LCD_Duty_1_3 = (uint8_t)0x04, /*!<1/3 duty */

LCD_Duty_1_4 = (uint8_t)0x06, /*!<1/4 duty */

LCD_Duty_1_8 = (uint8_t)0x20 /*!<1/8 duty */

LCD_Duty_TypeDef;

Работа с этой библиотекой значительно упрощает разработку собственного ПО.

В папке Project Project_template размещен шаблон для создания проектов на основе STM8L в средах EWSTM8 и STVD.

Примеры проектов расположены там же – в папке Project. Представлены два проекта: Discovery и WavesGenerator. Цель этих примеров – показать возможности непосредственно платы STM8L. Однако заголовочные файлы, описывающие платформу (папка inc) – stm8l_discovery_lcd.h, stm8l-discovery.h, discover_board.h, а также соответствующие им С-реализации (папка src) могут быть полезны и в собственных приложениях.

Заключение

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

Интегрированный модуль LCD способен управлять ЖКИ с числом пикселей до 320 при использовании восьми общих линий. Встроенный преобразователь напряжений требует всего лишь одного внешнего конденсатора.

Совместное использование ЖК-дисплеев и микроконтроллеров STM8L с интегрированным модулем LCD является перспективным при создании низкобюджетных малопотребляющих устройств с весьма дружелюбным интерфейсом благодаря возможности использования готовых оценочных наборов и бесплатного фирменного ПО производства компании ST Microelectronics, времени на разработку таких устройств потребуется немного.

Литература

  1. RM0031. Reference manual STM8L05xx, STM8L15xx, STM8L162x, STM8AL31xx and STM8AL3Lxx microcontroller family. Rev 10. ST Microelectronics, 2012.
  2. AN3114. Application note. How to use the STM8AL3Lxx, STM8L152xx and STM8L162xx LCD controllers. Rev 3. ST Microelectronics, 2012.
  3. UM0684. User manual STM8L1526-EVAL evaluation board. Rev 1. ST Microelectronics, 2010.
  4. UM1037. User manual STM8L1528-EVAL evaluation board. Rev 1. ST Microelectronics, 2010.
  5. UM0970. User Manual STM8L-DISCOVERY. Rev 2. ST Microelectronics, 2011.
  6. Документация на микроконтроллеры и ПО.

Компания STMicroelectronics выпустила на рынок новую линейку низкпотребляющих микроконтроллеров STM8L05x «Value Line». Главной отличительной особенностью линейки по сравнению со старшими представителями является соотношение цены и функционала. Бюджетный микроконтроллер STM8L051F3P6 стоимостью менее $0,5 предоставляет разработчику 16 MIPS вычислительной мощности (16 МГц) и полный набор периферии – начиная от 12-битного АЦП (10 линий) и заканчивая четырехканальным DMA для организации простого взаимодействия с последовательными интерфейсами SPI, I2C и USART или для быстрого доступа к АЦП на скоростях до 1 Msps.

Вычислительной мощности микроконтроллера достаточно для решения различного круга задач – набор команд включает 8-битное умножение и 16-битное деление, а общее линейное адресное пространство упрощает написание «быстрого» кода. Потребление тока в режиме останова с работающими часами реального времени составляет не более 1,3 мкА; при работе на низкой тактовой частоте – 5,1 мкА; на максимальной тактовой частоте 16 МГц ядро потребляет менее 5 мА (код выполняется из Flash-памяти с выключенной периферией). Дополнительный узел (PVD) контролирует питание и информирует основную программу о снижении напряжения батареи до предустановленного порога (семь уровней 1,85…3,05 В). Периферия микроконтроллера STM8L051F3P6 имеет практически ту же структуру, что и у линейки STM32, что существенно облегчает последующий переход на 32-битное семейство микроконтроллеров.

Особенности STM8L05x «Value Line»:

  • Внешний кварц от 1…16 МГц; 32 кГц;
  • До 64 Kбайт Flash, до 1 Kбайт RAM, 256 байт EEPROM;
  • 5 режимов пониженного потребления, 400 нА в режиме STANDBY;
  • Встроенные генераторы 16 МГц и 38 кГц;
  • Календарь (RTC) с точностью до ± 0,5 ppm;
  • Таймеры 2×16-бит + 1×8-бит; квадратурный энкодер.

Загорелся однажды идеей подключить внешний LCD дисплей от мобильного телефона Motorola V-180 к микроконтроллеру. Готовых библиотек для работы с ним в сети не нашел. Но очень хорошо иметь такой дисплей в своем арсенале для разработок схем. Было принято решение написать их самому, благо что уже некоторый опыт работы в этом направлении есть. Таким опытом является . Вся библиотека заточена для работы в AVR Studio 6 - недавно на нее перешел.

В общем впечатления разные. Писать там немного тяжелее, чем CodeVision , но зато код получается более компактным по объему занимаемой памяти. Здесь главное понимать что откуда нужно брать, ну и приходится более плотно работать с даташитом. Кому нужны библиотеки под CodeVision , тот может обратится на форум. На данный момент она еще не доделана - нужно дописать функцию вывода строки.

Вернемся все-таки к дисплею. Его можно приобрести, или выковырять с телефона в виде шлейфа с двумя дисплеями. Цветной пока от кладем в сторону. Возможно позже мы к нему вернемся. Нас интересует внешний монохромный экран распределением 32 на 96 пикселя. К сожалению встроенной подсветки в нем нет. Распиновку выводов дисплея можно посмотреть на схеме.

Конденсатор есть на шлейфе, его емкость 1 микрофарад.

Вывод CS подключен к 0. Он отвечает за включение контролера дисплея. В теории можно управлять несколькими дисплеями параллельно, просто вывод CS подключить к отдельным ногам МК. В зависимости от состояния вывода CS дисплея можно переключатся между ними.

Приступим к разбору самой библиотеки. В файле MOTOV180.h можно назначить порт для работы, и номера вывода портов под дисплей. Отдельно настраивать выводы на выход не нужно. В библиотеке все это предусмотрено.

  • void MOTOV180_send_byte(int8_t mode, uint8_t d) ; можно послать в дисплей байт данных, или команду.
  • void MOTOV180_init(void) ; - функция для инициализации дисплея.
  • void MOTOV180_clear(void) ; - функция для очистки дисплея.
  • void MOTOV180_gotoxy(int8_t x,int8_t y) ; - данной функцией можно перейти в указанную точку координат.
  • void MOTOV180_Putc(uint8_t c) ; функция для вывода одной переменной из программной памяти.
  • void MOTOV180_Print(char* message) ; - используется для вывода строки.

Тайминг контроллер, он же T-con или контроллер матрицы, представляет собой независимое от команд с центрального процессора устройство для преобразования видеоданных, передаваемых с основной платы, в сигналы, понятные телевизионной жк матрице. В результате его работы мы наблюдаем нужное нам изображение на экране телевизора. Нарушение цветопередачи, целостности, красочности и естественности картинки, рябь и размытость на экране может быть следствием дефекта в этом блоке.

Блок-схема T-con

Тайминг контроллер включает в себя

  • Процессор для обработки входных конвейеров данных LVDS в независимые конвейеры R, G, B и сигналы синхронизации для горизонтальных и вертикальных драйверов матрицы. Процессор обменивается информацией с оперативной памятью ОЗУ и Eeprom ПЗУ. Фиксированное напряжение питания 5 или 12 вольт, подаваемое с системной платы, преобразуется в несколько вторичных напряжений, необходимых для работы контроллера, с помощью DC/DC преобразователей.
  • Формирователь опорных напряжений для ЦАП драйверов, которые обеспечивают необходимую кривизну гистограммы изображения. Иначе этот процесс называют гамма коррекция.
  • Узел формирования напряжений для питания драйверов, выполненный обычно на ШИМ-контроллере и ключевом полевом транзисторе.

Диагностика и ремонт T-con

Диагностировать неисправность в тайминг котроллере бывает порой чрезвычайно трудно. Дело в том, что связь этого блока с основной платой и жк матрицей настолько велика, что визуально определить, что является источником дефекта иногда не представляется возможным. Только измерения в контрольных точках T-con могут косвенно говорить о его неработоспособности. При самостоятельном ремонте контроллера матрицы необходимо обладать большим объемом информации, которую при внимательном и кропотливом поиске может предоставить Интернет. Сам контроллер считается неотъемлемой частью жк панели, а электрические схемы на этот блок производители не предоставляют. Эта ситуация заставляет телемастера при починке этого узла руководствоваться прежде всего своим профессиональным чутьем и опытом подобных ремонтов.

Если ваш телевизор стал показывать слабоконтрастное, негативное, белесое изображение с муарами различных оттенков на светлых или темных участках картинки, велика вероятность в том, что блок контроллера матрицы работает некорректно. Чтобы исключить влияние материнской платы и провести диагностику, многие производители жк матриц предусматривают включение T-con в автономный режим. При этом снимается шлейф, соединяющий эти платы, на контроллер подается только напряжение питания и путем замыкания сервисных контактов панель вводится в тестовый режим. При исправности жк панели и тайминг контроллера на экране наблюдается самодиагностика панели в виде чередующихся цветных полей и полос, как с генератора испытательного телевизионного сигнала. У каждого наименования жк панели метод вхождения в режим теста свой.

Чтобы исключить влияние жк панели на контроллер матрицы при проведении измерений напряжения питания драйверов или опорных напряжений для ЦАП драйверов, применяют кратковременное отсоединение шлейфов, одного или двух, на жк панель. По характеру изменения показаний приборов и визуальному восприятию изображения на экране можно делать определенные выводы о причинах неисправности. Для достоверного контроля работоспособности узла при проведении замеров необходим контроль наличия, формы, амплитуды, частоты и скважности импульсов, который можно осуществить с помощью осциллографа. Наличие осциллографа облегчает поиск дефекта и всегда применяется для диагностики в стационарном сервисном центре.

В некоторых случаях сомневаться в исправности контроллера матрицы приходиться в отсутствии изображения при темном или очень светлом (белом) экране монитора. Необходим контроль прохождения питающего напряжения с основной платы и формирования вторичных напряжений преобразователями DC/DC в самом блоке. Иногда проблемы с тайминг контроллером, да и с самой матрицей могут возникнуть по вине владельца слишком аккуратного, протирающего экран телевизора слишком влажной салфеткой, или, наоборот, неаккуратного, пролившего жидкость на жк панель или внутрь устройства. При попадании влаги на матрицу могут наступить непоправимые последствия в виде разрушения токопроводящих шлейфов, их коррозии, замыкания драйверов и выходу из строя контроллера матрицы из-за критического нарушения режима его работы.

Ремонт тайминг контроллера не предусмотрен производителем жк матриц, только его замена. Поэтому и не предоставляется техническая информация по восстановлению блока и отсутствуют схемы на него. Однако, у нас в мастерской используется Рейтинг 4.33 /5 (20 Голосов)

И его аналогах, например, таких как S6A0069, KS0066 и т.д. Данные ЖК индикаторы – текстовые и умеют отображать текст и псевдографические символы. Размер знакоместа у них составляет 5x8 пикселей, ЖК индикаторы бывают разных размеров и с разными разрешениями, например: 8 символов на 2 строки – 8x2, 16x2, 20x2, 40x2, 16x4, 20x4 и т.д.

В данном уроке мы рассмотрим 4 битное подключения ЖК индикатора к микроконтроллеру AVR, и написание программы в среде .

У таких ЖК индикаторов существуют выводы:
VSS – Gnd (Минус питания)
VDD – Vcc (Плюс питания 5v)
VO – Установка контрастности ЖК матрицы
RS – Линия управления RS
RW (Read/Write) – Линия управления RW
E (Enable) – Линия управления E
D0 – Линия данных D0 (Не используется в 4 битном режиме)
D1 – Линия данных D1 (Не используется в 4 битном режиме)
D2 – Линия данных D2 (Не используется в 4 битном режиме)
D3 – Линия данных D3 (Не используется в 4 битном режиме)
D4 – Линия данных D4
D5 – Линия данных D5
D6 – Линия данных D6
D7 – Линия данных D7
A – Анод светодиода подсветки дисплея
K – Катод светодиода подсветки дисплея

Внимание! У разных ЖК индикаторов своё расположение выводов, точное расположение выводов вы можете узнать в технической документации (Даташите) на ваш ЖК индикатор.

Вывод ЖК индикатора VO управляет контрастностью ЖК матрицы в зависимости от подаваемого на этот вывод напряжения питания. Вывод RW если не надо считывать с дисплея информацию подключается к минусу питания.

Пример 4 битного подключения ЖК индикатора к микроконтроллеру Attiny2313:

Подстрочный резистор RV1 регулирует яркость ЖК индикатора.
В BASCOM-AVR перед работой ЖК индикатора необходимо указать, какие выводы дисплея подключены, к каким портам микроконтроллера, для этого есть команда Config Lcdpin, пример применения данной команды: Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 а также указать разрешение ЖК индикатора командой Config Lcd, пример: Config Lcd = 16 * 2 и проинициализировать ЖК индикатор командой Initlcd, после этого ЖК индикатор будет готов к работе.

Вот список команд для работы с ЖК индикатором в BASCOM-AVR:
Config Lcdpin – Установка конфигурации выводов ЖК индикатора и микроконтроллера
Config Lcd – Установка разрешения ЖК индикатора
Initlcd – Инициализация ЖК индикатора
Lcd – Вывод текста на ЖК индикатор, пример: Lcd ”Hello”
Cls – Очистка ЖК индикатора
Locate y, x – Установить курсор в позицию x, y
Lowerline – Переместить курсор на нижнею строку
Upperline – Переместить курсор на верхнею строку
Shiftlcd Right – Сдвинуть изображение ЖК индикатора вправо на одно знакоместо
Shiftlcd Left – Сдвинуть изображение ЖК индикатора влево на одно знакоместо
Cursor Off – Отключить курсор
Cursor On – Включить курсор
Cursor On Blink – Включить мерцающий курсор
Cursor On Noblink – Отключить мерцающий курсор

Внимание! При использовании ЖК индикатора c разрешением 8x2 в BASCOM-AVR конфигурируйте его как 16x2, так как в BASCOM-AVR нет конфигурации на ЖК индикатор с разрешение 8x2.

Пример программы в BASCOM-AVR для вышеизложенной схемы:

$regfile = "attiny2313.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Config Lcd = 16 * 2 Initlcd Cls Locate 1 , 1 Lcd "Hello," Lowerline Lcd "world!" End

Вот как всё это работает с ЖК индикатором 8x2:

Фьюз биты для прошивки:

Скачать файлы для урока (проект в , исходник, прошивка) вы можете ниже

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
Компьютеры и современные гаджеты