Кто кроме мэлт производит отечественные дисплеи. Графические lcd на основе контроллера sed1520 в isis и их особенности. моделируем отечественные дисплеи мэлт в протеусе. Восемь причин выбрать жк-дисплей мэлт

Незавершенный вариант, который позже будет дополнен практикой.

Выбор практического примера на SED1520 выпал не случайно. Во-первых об этом просил один из участников форума, а во-вторых графические дисплеи на основе этого драйвера и его клонов имеют самую низкую стоимость и вполне доступны для приобретения. Конечно, существуют еще дисплеи от сотовых телефонов, которые можно купить еще дешевле, а иногда и просто выдернуть из старого ненужного телефона. Но в этом случае отлаживать устройство придется только в железе. А пайка шлейфов к дисплеям от сотовых, в которых обычно используются миниатюрные нестандартные разъемы, у начинающих может вызвать затруднения. Исключение составляет дисплей Nokia 3310 , для которого модель Протеуса существует в природе, но об этом мы поговорим позже. А пока рассмотрим модель драйвера SED1520 и как мы можем адаптировать ее под свои нужды. Все модели драйверов дисплеев находятся в библиотеке Optoelectronics\LCDControllers . Конкретно модель SED1520 и окно ее свойств показаны на рис 152. Даташит SED1520 доступен для скачивания при наличии подключения к Интернет и нажатии соответствующей кнопки.
Как видим, у модели имеются только выводы входов, а выходные сигналы колонок (SEG0…SEG60 ) и строк (COM0…COM15 ) уже жестко прописаны в программной модели Протеуса. Это и вызовает некоторое затруднение при моделировании МТ-12232А (МЭЛТ), но оно вполне преодолимо с некоторыми условностями. Для начала немного информации о выводах модели из даташита. Сразу же напомню, что SED1520 может работать в двух режимах: интерфейс с контроллером серии 68xxили интерфейс с контроллером серии 80xx. Нас интересует первый, поскольку он принят стандартом де-факто и для других микроконтроллеров (AVR, PIC). Для наглядности ниже синим цветом указано то, что относится к 68xx, а зеленым то, что относится к 80xx.
· DB – двунаправленная восьмиразрядная шина команд/данных.
· A0 – вход драйвера, определяющий что в данный момент передается по шине данных: A0=0 – команда, A0=1 – данные для вывода на индикатор.
· R/W(WR) – вход драйвера. Для 68xxопределяет чтение (R/W=1) из SED1520 или запись (R/W=0) в него. Для 80хх WR=0 при записи сигналы на шине данных стробируются положительным перепадом (передним фронтом) 0=>1 импульса на этом выводе.
· E(RD) – вход драйвера. Для 68xxопределяет тактирование (выбор) данного драйвера. (По E=1 производится запись/чтение в конкретный кристалл – это очень важный для нас сигнал.) Для 80хх RD=0 означает, что шина D0…D7SED1520 направлена на вывод данных.
· CS – вход драйвера. Обычно CS=0. Эффективен при использовании внешнего генератора тактовой частоты.
· RES – вход сброса драйвера. Перепад сигнала на этом входе производит сброс микросхемы драйвера и установку для нее определенного интерфейса. Если был RES=0 и произошел переход 0=>1, то происходит сброс и устанавливается интерфейс 68хх. Если был RES=1 и произошел переход 1=>0, то происходит сброс и устанавливается интерфейс 80хх. (Это тоже очень важный для нас сигнал.)
Теперь заглянем в свойства модели SED1520 , а конкретно в раскрывающийся список. С некоторыми параметрами оттуда мы уже знакомы, но в стандартном окне они не видны и мы сможем их увидеть только с установленной галочкой Edit all properties as text или в режиме Make Device на третьей вкладке. Итак, сначала о тех, что видны в раскрывающемся списке:
· Controller Colums (да-да, именно Colums , а не Columns – и у англичан бывают грамматические ошибки) CONTRWIDTH по умолчанию равно 61 – количество колонок (SEG ) в контроллере.
· Controller Lines CONTRHEIGHT по умолчанию равно 16 – количество строк (COM ) для модели контроллера.
· Controller Display X Offset BMPXOFF смещение картинки (на экране) по горизонтальной оси X. По умолчанию нулевое.
· Controller Display YOffset BMPXOFF смещение картинки (на экране) по вертикальной оси Y. По умолчанию нулевое.
· Segments Output Direction ADCMODE направление вывода из памяти драйвера на экран. По умолчанию 0 – прямое, слева направо. При установке в 1 картинка выводится в обратном направлении справа-налево. Это вполне реальный параметр реального контроллера из даташита. Как мы увидим позже, именно с ним будут «заморочки» в МЭЛТ-овских индикаторах.
Остальные параметры имеют свойство Hidden (скрытые) и видны только при установке флажка Edit all properties as text , но среди них есть важные для нас и я их тоже опишу. В первую очередь это уже знакомые нам WIDTH (высота) и HEIGHT (ширина) но теперь уже экрана дисплея в пикселях. По умолчанию они соответственно 16 и 61. Также знакомы нам параметры трассировки: TRACE , TRACE_CWR , TRACE_MWR и TRACE_MRD . Все они по умолчанию Warning Оnly – режим предупреждений. Свойство PRIMITIVE для данной модели имеет значение DIGITAL,SED1520 . Свойство MODDLL задано как LCDPIXEL.DLL . Надеюсь, эти свойства не нуждаются в особых комментариях. А вот со следующими двумя мы еще не встречались, поэтому коснусь их подробнее.
· CTRLID – идентификатор контроллера. По умолчанию равен 0x100 . Если в модели индикатора используются два или более контроллера, эти значения должны отличаться. Так у нас и будет в наших моделях – второму этот параметр мы присвоим как0x101 .
· RAMSIZE – объем внутренней памяти драйвера в байтах. По умолчанию указан как 320 – это вполне реальное значение и его мы трогать не будем.
Ну, вроде с описанием моделиSED1520 пока все, пора приступать к реализации моделей индикаторов на нем. О построении графики моделей дисплеев мы уже говорили выше, но каждая модель графического индикатора имеет еще в свойствах и собственный MDF-файл, в котором реализована схематика соединения контроллеров. Вот о ней и пойдет речь. Для начала возьмем и воспроизведем по извлеченному из DISPLAY.LML файлу MDFсхематику одной из существующих в ISISмоделей на базе SED1520 , например, того же EW12A03GLY . Извлеченный MDFи воспроизведенная по нему схема находятся во вложении в папке GLCD_recovery . Эта же схема представлена на рисунке 153.
Структуру модели индикатора EW12A03GLY можно условно разделить на две части: цифровую и аналоговую. Аналоговая часть имитирует нагрузки по выводам питания и подсветки и особенного интереса для нас не представляет, поскольку это в основном обычные резистивные нагрузки, за исключением диода, имитирующего светодиодную подсветку экрана и источника отрицательного напряжения, имитирующего встроенный в этот конкретный индикатор преобразователь напряжения. А вот на цифровой части остановимся отдельно. Мы видим, что в данном случае используются два контроллера SED1520 , у которых большинство выводов объединено, а раздельными являются только выводы выбора E1 для левого кристалла и E2 для правого. Для данного конкретного индикатора выводы R/W(WR) завешены на землю, поскольку не производится чтение из контроллеров, а выводы сброса RES наоборот соединены с питанием и, кроме того, им присвоен параметр INVERT=$RES$ для того, чтобы наш индикатор все время запускался в режиме интерфейса с МК серии 68хх.
Примечание. Напомню, что RES ограниченное с двух сторон знаком доллара означает имя вывода со знаком надчеркивания (инверсный). При таких записях надо быть предельно внимательными, особенно, если вывод имеет длинное имя и только часть из него с надчеркиванием. Например, если вы захотите проинвертировать вывод E у SED1520 , то необходимо писать его имя полностью со всеми скобками и т.п., т.е. INVERT=E($RD$) . Иначе это свойство работать не будет.
Выводы CS драйверов также завешены на землю, как и в большинстве реальных графических индикаторов на основе спаренных SED1520 .
Какие же еще изменения внесены в свойства контроллеров прописанные по умолчанию. Как я уже и предупреждал ранее, для правого контроллера изменен CTRLID=0х101 , чтобы кристаллы имели различные идентификаторы. Для обоих кристаллов количество строк CONTRHEIGHT=32 вместо 16. Надеюсь, понятно почему, ведь это индикатор 122х32. По той же причине для правого кристалла, работающего на правую часть экрана индикатора, установлено горизонтальное смещение картинки по оси Xна 61 пиксель - BMPXOFF=61 . Еще хотелось бы обратить ваше внимание, что для ряда параметров – ширина и высота экрана, а также параметры отладки конкретные значения заменены на имена параметров в угловых скобках. Если кто-то подзабыл, напомню, что таким образом обеспечена возможность задания значений этим параметрам с основного родительского листа или точнее, в данном случае, из свойств графической модели (Рис. 154).
Особенно хочу отметить, что не стоит пренебрегать заданием этим способом параметров трассировки (отладки) у сложных моделей, каковыми являются индикаторы. Если этого не сделать, то невозможно будет для уже скомпилированной модели включить режим отладки, а он очень важен для нас, в чем мы убедимся чуть ниже.
Ну вот, теперь надеюсь, всем стало ясно, почему программные VSM модели графических дисплеев прописаны как Shematic и имеют собственные MDF файлы. Я не стану больше останавливаться на зарубежных моделях LCD122х32 на основе SED1520 , поскольку в большинстве своем они построены почти одинаково с обязательным разнесением входов E для левого и правого кристаллов, т.е. у реального индикатора имеются входы E1 для тактирования левого кристалла и E2 для правого. Для примера на рисунке 155 диаграмма цикла записи из даташита EW12A03GLY , рассмотренного выше. Правда не знаю, зачем производитель этого индикатора приделал там и чтение, хотя и в даташите вывод R/W(WR) четко прорисован на землю.
Из диаграммы видно, что запись команды управления (при сигнале А0=0 ) или байта данных изображения (при сигнале А0=1 ) производится по положительному импульсу на входе E1 в левый кристалл и на входе E2 в правый. В других дисплеях возможно и чтение из кристаллов, но при этом учитывается логический уровень на входе R/W(WR) , который должен к моменту подачи тактового E при чтении быть в состоянии логической единицы, тогда будет верна нижняя часть диаграммы READ.
Ну а мы переходим к графическим индикаторам «местного пошива» и конкретно займемся дисплеями MT-12232 компании МЭЛТ. Эти дисплеи формата 122х32 точки на основе Ангстремовского клона КБ145ВГ4 , совместимого с SED1520, выпускаются с различными буквенными индексами, и уже тут скрывается первый «подводный камень». Дело в том, что индикатор MT-12232B среди остальных выделяется как белая ворона, поскольку выполнен по западным стандартам и полностью совместим по сигналам с большинством европейских и китайских дисплеев на базе SED1520 . Он также имеет два раздельных входа тактирования E1 и E2 для разных кристаллов. Временная диаграмма для этого дисплея приведена на рисунке 156. Как видим, все отличие от предыдущей диаграммы в наличии сигнала R/W(WR) , обеспечивающего чтение из кристаллов.
Фактически для моделирования этого дисплея достаточно использовать уже существующую модель AGM1232G . Все отличие состоит в 3-м выводе контрастности , который МЭЛТ не задействовал и обратной полярности выводов подсветки BL (19, 20). Поскольку ни то ни другое на процесс вывода данных на индикатор не участвует и реализовано только для имитации аналоговых свойств (нагрузки) эти выводы можно просто оставить «в воздухе». Ну а для тех, кому нужно соответствие «буква в букву» в папке MT12232B вложения находится графическая модель индикатора – поддиректория Model_with_Child . На дочернем листе Model.DSN находится переделанная под MT12232B подсхемаAGM1232G (Рис. 157). Скомпилированный с нее файл модели MT12232B.MDF и тестовый проект находятся в подпапкеTest_MT12232B .
Ну а мы далее на примереМТ12232А рассмотрим особенности остальных индикаторов этой серии. Здесь МЭЛТ решил ввернуть свою «изюминку», которая проявляется в особенностях программирования и управления этими дисплеями. Не знаю, насколько это оправдано технологически, но с точки зрения моделирования здесь все становится с ног на голову.
Первая особенность дисплеев с индексами A, С, D и т.д. в отсутствии раздельных выводов E для управления кристаллами. Вывод E в этих индикаторах всего один и используется для тактирования как левого, так и правого контроллера КБ145ВГ4 . Для обращения к конкретному кристаллу используется CS . Наличие лог. 1 на нем активирует обращение к левому драйверу, отвечающему за вывод информации в левую часть экрана. Лог. 0 на выводе CS означает работу с правым кристаллом, обслуживающим правую часть экрана.
Вторая особенность как раз и касается правого кристалла. Дело в том, что здесь МЭЛТ использовал еще и обратную последовательность подключения столбцов (колонок) драйвера к сегментам ЖКИ, т.е. выходу SEG00 правого кристалла соответствует 122-я колонка дисплея, а выходу SEG60 – 61-я колонка. Для нормального отображения картинки в правой части дисплея при начальной инициализации контроллеров необходимо для левого кристалла подать команду ADC=0 (прямой вывод) а для правого ADC=1 (обратный вывод) изображения. Эта особенность легко выполнима в реальной жизни, но при моделировании в Протеусе накладывает некоторые ограничения. Модель SED1520 может воспроизводить данные в обратном порядке по команде ADC=1 , но выходы SEG мы «перепаять» задом наперед, как в реальном дисплее МЭЛТ не можем – они просто отсутствуют и жестко прописаны в программной модели. Поэтому при моделировании придется в программе инициализации для обоих кристаллов использовать ADC=0 , а уже для реального «железного» дисплея перед прошивкой контроллера изменять это значение для одного из кристаллов в единицу. Как правило, инициализация проводится один раз при включении (запуске) устройства, поэтому очень больших проблем данный момент не вызывает. Главное – держать это на контроле и не забыть поменять значение при компиляции реальной прошивки.
Первая же особенность легко преодолима схемотехническим методом. Подсхема для компиляции MDF файла для МТ12232A примет вид как на рисунке 158.
Я специально оставил узел дешифрации сигналаE в первозданном виде, хотя можно было сделать и компактнее, убрав инвертор U4 и задав свойство INVERT для входов D0 элементов U3 и U5 . Вообще здесь уместны различные вариации по теме, но у меня заработало уже в таком виде, а большего и не надо. В папке вложения MT12232A ,как и длямодели с индексом B, расположены соответствующие Model_with_Child с дочерним листом, содержащим эту схему,и Test_MT12232А , в которой есть и готовый MT12232A.MDF .
Подводя итог этому материалу, хочу немного коснуться особенностей процедуры начальной инициализации и вывода информации на индикаторы МЭЛТ. В сети можно встретить различные варианты этой процедуры. В частности, в даташите на MT12232A производитель рекомендует следующую последовательность операций:
1. после подачи напряжения питания удерживать вывод RES в состоянии логического “0” еще не менее 10 мкс;
2. подать перепад на вывод RES c логического “0” в логическую “1”, длительность фронта не более 10 мкс;
3. ожидать сброса бита RESET в байте состояния или выждать не менее 2 мс;
4. подать команду снятия флага RMW (END);
5. подать команду включения обычного режима работы (Static Drive ON/OFF);
6. подать команду выбора мультиплекса (Duty Select);
7. подать команду включения дисплея (Display ON/OFF).
Первые три операции общие для обоих кристаллов дисплея и выполняются однократно. Они переводят дисплей в режим работы с МК 68xx. Остальные необходимо проделать для каждого кристалла в отдельности, причем в рекомендуемом производителем примере перед операцией 4 для каждого кристалла выдается еще и команда RESET (0xE2 ). Примеры программ от МЭЛТ находятся во вложении вместе с даташитами. Пункты алгоритма начальной установки, начиная с 4 можно переписать боле подробно следующим образом:
4. подать команду (A0=0, RD/WR=0 ) сброса RESET (DB7…DB0=0xE2 ) в левый кристалл (CS=0 ), стробируем (1-0-1) сигналом E ,
подать команду (A0=0, RD/WR=0 ) сброса RESET (DB7…DB0=0xE2 ) в правый кристалл (CS=1 ), стробируем E .
5. подать команду (A0=0, RD/WR=0 ) сбросаRMW(DB7…DB0=0xEE ) в левый кристалл (CS=0 ), стробируем E ,
подать команду (A0=0, RD/WR=0 ) сброса RMW(DB7…DB0=0xEE ) в правый кристалл (CS=1 ), стробируем E .
6. подать команду (A0=0, RD/WR=0 ) нормальный режим (DB7…DB0=0xA4 ) в левый кристалл (CS=0 ), стробируем E ,
подать команду (A0=0, RD/WR=0 ) нормальный режим (DB7…DB0=0xA4 ) в правый кристалл (CS=1 ), стробируем E .
7. подать команду (A0=0, RD/WR=0 ) выбора мультиплекса 1/32 (DB7…DB0=0xA9 ) в левый кристалл (CS=0 ), стробируем E ,
подать команду (A0=0, RD/WR=0 ) выбора мультиплекса 1/32 (DB7…DB0=0xA9 ) в правый кристалл (CS=1 ), стробируем E .
8. подать команду (A0=0, RD/WR=0 DB7…DB0=0xС0 ) в левый кристалл (CS=0 ), стробируем E ,
подать команду (A0=0, RD/WR=0 ) установки верхней строки в 0 (DB7…DB0=0xС0 ) в правый кристалл (CS=1 ), стробируем E .
9. подать команду (A0=0, RD/WR=0 DB7…DB0=0xA1 ) (Внимание! Здесь для Протеуса должно быть А0 , а для реального индикатора А1 ) в левый кристалл (CS=0 ), стробируем E ,
подать команду (A0=0, RD/WR=0 ) установки обратного соответствия (DB7…DB0=0xA0 ) в правый кристалл (CS=1 ), стробируем E .
10. подать команду (A0=0, RD/WR=0 ) включения дисплея (DB7…DB0=0xAF ) в левый кристалл (CS=0 ), стробируем E ,
подать команду (A0=0, RD/WR=0 ) включения дисплея (DB7…DB0=0xAF ) в правый кристалл (CS=1 ), стробируем E .
Инициализацию можно выполнять как в той последовательности, которая указана выше, т.е. поочередно для каждого кристалла по одной команде, так и полностью все процедуры с 4-й по 10-ю сначала для одного (CS=0 ), а затем для другого (CS=1 ). Это уже зависит от того, кому как удобнее оформить программу. Необходимо только помнить про 9-й пункт, который в реальности будет отличаться.
К сожалению, все готовые библиотечные фунции на СИ для дисплеев MT12232A , найденные во всемирной паутине содержат те или иные ошибки. В основном это попытки подогнать стандартные функции вывода для дисплеев на базе SED1520 под особенности MT12232A . Поэтому рекомендовать их для использования без внимательного изучения и коррекции я сейчас не могу. Но приведу в качестве примера вывод графического массива с логотипом МЭЛТ, который взят из примера производителя. В примере LOGO.DSN из папки LOGO_MT12232A вложения использован слегка модифицированный пример MT12232-CV приложенный к материалу о драйвере MT12232A c сайта ChipEnable :
http://www.chipenable.ru/index.php/how-connection/103-podkluchenie-mt12232-k-avr.html
К сожалению, рекомендовать полностью использовать данный материал для моделирования дисплея MT12232A в Протеусе не могу, но, во всяком случае, начальная инициализация и вывод графического массива на экран модели проходят корректно, что подтверждается примером (Рис. 159).
Возможно, позже при наличии свободного времени я дополню этот материал новыми примерами, тем более, что сам индикатор у меня теперь есть в наличии и можно будет проверить соответствие модели «железу». А пока мы оставляем данный материал, подводим итог, поскольку уже давно не выкладывалась оффлайн версия материала, и переходим к рассмотрению активных моделей с элементами управления.
Рисунки 152, 153,154.
Рисунки 155, 156,157.
Рисунки 158, 159.

20 ноября 2016 в 12:04

Подключаем «отечественный» LCD 16x2 MT-16S2S по SPI

  • Компьютерное железо ,
  • Электроника для начинающих

Тенденция импортозамещения подтолкнула протестировать символьный LCD индикатор от фирмы МЭЛТ. Мы взяли МТ-16S2S на ST7070. В некотором роде это аналог широко известного WH-1602 на 44780. А еще он поддерживает SPI-режим.

МЭЛТ кроме того собирает дисплеи и на отечественном контроллере КБ1013ВГ6 от Интеграла. У него есть отличие в в работе в 4-битном режиме от ставшего уже стандартом 44780.

На сайте производителя есть пример кода для работы в разных режимах. Но написан он на ассемблере и под абстрактную платформу в вакууме. Переделывать его на STM – все равно, что писать заново. Опыт использования готовых библиотек даже для распространенного 44780 я тоже не могу назвать положительным. Их приходится долго править под нужную платформу и модель контроллера. И в большинстве из них используется функция задержки под AVR, которой «почему-то» не предусмотрено для STM. И даже то, что запустилось, работает из рук вон плохо, то выводя невесть что, то зависая. Поэтому было решено написать свою собственную библиотеку.

Кроме того у МТ-16S2S есть еще одна особенность: SPI-интерфейс, который позволяет сократить число используеых ножек контроллера до 4. Так что вывод будет организован именно через SPI.


Система команд описана довольно подробно. Вообще, во всей теперешней ситуации, когда отечественной электроники в быту почти нет, очень радует, хотя и непривычно, читать описание микросхем и прочих изделий на русском языке (не переведенном с английского или китайского вроде «Бальзам тигр белый капли смерть строительный белок»). Правда, иногда попадаются такие перлы, что думаешь «лучше бы на английском». Но тут с этим все в порядке.


Подключение почти стандартное. VCC, E, D0-D4 на плюс питания, A0, GND, R/W и PSB на землю; К контроллеру подключаются: D5– к CS, D6– к SCK, D7–к MOSI, XRES– к любому GPIO. Я подключил к MISO, т.к. все равно управляю им программно. На сайте в описании, кстати, приведена неправильная схема. Указано, что D5 подтягивается к плюсу питания, но это CS. На форуме написали, что знают об этом, но пока ничего не исправлено.

Выводы для подсветки можно оставить свободными, но лучше, конечно, работать с подсветкой, а для этого подключить анод через резистор 10-30 Ом к питанию, а катод – к земле. Вывод для управления контрастностью, как ни странно, на 5-вольтовом индикаторе ничем не управляет. Его я просто оставил висеть в воздухе.

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



Но вот если вы выбрали «отечественный» дисплей для работы с кириллицей, вас ждет сюрприз. Русские буквы, не имеющие аналогов в латинице, расположены на первой странице. А цифры и латиница – на нулевой. И чтобы вывести их вместе, придется переключаться между страницами. Так что никакого вывода строки целиком не получится.

В этом отношении дисплей от Winstar по-удобнее. Пусть у него не так много символов, зато они на одной странице.


А вот 90% знакогенератора MT-16S2S русскому человеку не понадобятся. Еще одна неприятность для программиста – обозначение в даташите координат символов в таблице единичками и ноликами по полубайту. Еще веселее обозначать их H и L. То есть номер символа будет, например, 1111+1101 или HHHH+HHLH.

Почему бы не использовать шестнадцатеричный код 0xFD, удобный для разработчика? И ведь на некоторые дисплеи такие таблицы есть. Неужели так трудно сделать удобную координатную сетку?

Теперь о библиотеке. К функциональности были следущие требования:

1. Вывод символа из таблицы в произвольную позицию;
2. Вывод строки текста в произвольнцю позицию;
3. Запись в память собственного символа;
4. Очистка дисплея, включение и выключение курсора, его сдвиг, сдвиг области отображения и прочие настройки индикатора.

Все это удалось реализовать довольно быстро. Но все же напрягает необходимость постоянного переключения между страницами знакогенератора при использовании кириллицы. Саму библиотеку не выкладываю, потому что она сделана «для себя». Со всеми недочетами и костылями и под конкретный чип: с зашитыми портами и частотами (так как целью не было создание коммерческой версии с карточными играми и женскими особями, настройки портов, SPI и задержек прописаны прямо в самих функциях, в зависимости от того, к какому контроллеру и к какому SPI подключается дисплей). В дальнейшем планируется ее доработка.

Теперь об опыте эксплуатации дисплея. Он был испытан и стабильно работает в диапазоне температур от -20°С до +60°С. Правда, при -20°С начинает подтормаживать при смене изображения. Но тут уж ничего не поделаешь. Только переходить на другой тип индикатора.

В целом - впечатление положительное. Несколько мешают мелкие недочеты в описании на дисплей и отсутствие нормальных примеров кода. В остальном - неплохо. Даже цена не выше чем у Winstar-овского аналога WH-1602.

В настоящее время наблюдается значительный подъем производства радиоэлектронной аппаратуры в России. На рынке появилось разнообразное оборудование для автоматизированной сборки плат как отечественного, так и зарубежного производства. Технология же производства жидкокристаллических индикаторов (ЖКИ) на сегодняшний день в России трудно осуществима по двум причинам. Во-первых, необходимо устанавливать управляющие кристаллы на плату по технологии кристалл на плату (COB). Во-вторых, отсутствуют доступные кристаллы российского производства. Компания МЭЛТ уже более двух лет занимается решением этих задач. Разработаны и серийно производятся управляющие кристаллы для различных вариантов жидкокристаллических модулей. Запущена собственная линия сборки методом COB. Качество производства модулей обеспечивается современным технологическим оборудованием и применением новейших разработок компании МЭЛТ.

Конструкция ЖКИ

Компания МЭЛТ производит ЖКИ по стандартной конструкции, завоевавшей популярность во всем мире: жесткое основание модуля в виде печатной платы с установленной на ней М/С контроллера по технологии COB. Металлическая рамка фиксирует ЖК-панель и прижимает токопроводящую резину к плате и стеклу. Одним из несомненных преимуществ данной конструкции является возможность восстанавливать работоспособность модулей путем несложной замены платы или ЖК-панели.

Технология Chip On Board (СОВ)

Известны два варианта установки микросхем на плату. Первый - кристалл упаковывается в пластмассовый корпус с гибкими или жесткими выводами, которые припаиваются к плате. Преимущества этого способа: ремонтопригодность, простота установки, а существенный недостаток - высокая цена. Стоимость корпуса кристалла сравнима со стоимостью платы, на которую он впоследствии будет устанавливаться, поэтому есть смысл устанавливать кристалл непосредственно на плату. В этом случае при выходе из строя кристалла плату попросту заменяют новой. Сборка индикаторов по технологии Chip On Board гарантирует получение достаточно конкурентоспособной продукции, полностью соответствующей международным требованиям качества.

Температурный диапазон

Температурный диапазон ЖКИ определяют физико-химические свойства ЖК-панели. При понижении температуры увеличивается время переключения ЖК-панели, что делает трудноосуществимой динамическую индикацию. Дальнейшее понижение температуры приводит к разрушению ЖК-панели. Таким образом, если выключено питание прибора, где установлен ЖКИ с подогревом, то при низкой температуре работоспособность модуля утрачена. Для решения этой проблемы компания МЭЛТ выпускает ЖКИ двух температурных диапазонов: обычного (0...50 °С) и расширенного (–30...70 °С).

Тип ЖК-панели ЖКИ

Компания МЭЛТ выпускает ЖКИ с ЖК-панелями двух видов: Reflective - работает на отражение светового потока и Transflective - на просвет (рис. 1). Стекла типа Transflective бывают двух типов: positive и negative. Рositive представляет собой прозрачный фон, на котором при подаче соответствующих сигналов становятся непрозрачными определенные участки. Negative представляет собой непрозрачный фон, на котором становятся прозрачными соответствующие участки.

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

Тип подсветки

В ЖКИ, выпускаемых компанией МЭЛТ, применяют светодиодную (LED) и люминесцентную (EL) подсветки. LED-подсветка отличается долговечностью (20 000–100 000 часов), не требует дополнительного источника питания, однако у нее достаточно высокий ток потребления (от 10 до 100 мА) и большие габаритные размеры (высота индикатора увеличивается в среднем на 3–5 мм). EL-подсветка отличается весьма низким током потребления при повышенной светоотдаче и малыми габаритами, но этот тип подсветки требует дополнительного источника питания (100 В), а срок службы составляет 2000–5000 часов. В настоящее время ЖКИ с EL-подсветкой находятся в стадии подготовки к производству.

Напряжение питания ЖКИ

Один из наиболее привлекательных моментов для разработчика - широкий диапазон питающих напряжений. Управляющая микросхема ЖКИ требует напряжения питания от 3 до 6 В. Однако для получения нормальной контрастности ЖК-панели на нее требуется подавать напряжение от 3 до 16 В в зависимости от температуры окружающей среды и типа самого стекла. Таким образом, если требуется ЖКИ с напряжением питания 3 В, то достаточно взять серийный модуль и в дополнение к нему собрать микромощный преобразователь напряжения, выход которого необходимо соединить со входом управления контрастностью ЖКИ (рис. 2). От выходного напряжения преобразователя в этом случае зависит контрастность ЖКИ. Если напряжение питания индикатора и ЖК-панели равны, то контрастность можно регулировать при помощи подстроечного резистора, включенного между входом V0 и GND ЖКИ. Контрастность ЖКИ зависит также и от рабочей температуры, поэтому для изделия, работающего в широком диапазоне температур, выходное напряжение преобразователя следует сделать термозависимым. Обратите внимание, что на ЖКИ любого типа недопустимо воздействие статического электричества выше 30 В.

Жидкокристаллический модуль МТ-10Т7-7

Жидкокристаллический модуль МТ-10Т7-7 является самым простым из выпускаемых компанией МЭЛТ ЖКИ. Этот модуль стал наиболее популярным при разработке простых конструкций в связи с невысокой ценой и очень удобным интерфейсом. Он собран на односторонней печатной плате с одним управляющим кристаллом. Все элементы модуля расположены между платой и стеклом, что позволило обеспечить наивысшее качество и надежность (рис. 3). Модуль может отображать десять знакомест, каждое знакоместо представляет собой восемь сегментов, расположенных в виде восьмерки с точкой (рис. 4). Любой сегмент любого знакоместа можно включать и выключать независимо от других сегментов, что позволяет обеспечить достаточно информативную индикацию в недорогих конструкциях. Структурная схема модуля МТ-10Т7-7 приведена на рис. 5. Память модуля состоит из десяти регистров, соответствующих каждому из десяти знакомест. Каждый регистр поделен на две тетрады, старшую (H) и младшую (L). Старшая тетрада соответствует сегментам h, b, c и f, младшая - g, e, d и a (рис. 4). Запись высокого уровня вызывает высвечивание соответствующего сегмента, запись низкого уровня - его погасание.

Описание интерфейса

Запись данных в любой из регистров индикатора производится следующим образом. На шине данных (DB0-DB3) выставляется адрес регистра. Сигнал адрес/данные (A0) необходимо установить в значение 0. Адрес в регистре DCA защелкнется при условии WR1 & ^WR2, то есть одновременного сочетания высокого уровня на выводе WR1 и низкого уровня на выводе WR2. Такое решение позволяет более гибко осуществлять функцию CS (выбор кристалла), когда на шине данных находится несколько различных устройств. Если в этом нет необходимости, то вывод WR2 можно замкнуть на GND, а сигнал CS подавать на вывод WR1. После того как адрес защелкнут в регистре DCA, следует подать данные. Для этого вывод A0 надо перевести в высокое состояние, на шине данных установить значение младшей тетрады данных и подать сигнал CS (см. выше). Далее на шину данных подать значение старшей тетрады данных и вновь подать сигнал CS. После записи второй тетрады содержимое адреса инкрементируется, и можно записывать данные в последующие регистры без предварительной записи адреса. По адресу 0Fh расположен триггер блокировки шины. Запись в него DB0 = «L» вызовет блокировку записи в модуль адресов и данных. Разблокировка шины производится записью DB0 = «H» по адресу 0Fh. Первой командой после подачи питания должна быть команда разблокировки шины, так как состояние регистров индикатора может быть любым.

Назначения выводов модуля приведены в табл. 1. Соответствие адресов регистров данных и номеров знакомест модуля - в табл. 2. Динамические характеристики модуля показаны на рис. 6 и в табл. 3. Электрические параметры по постоянному току приведены в табл. 4. Габаритные размеры модуля МТ-10Т7-7 указаны на рис. 7. Временные диаграммы записи данных в индикатор приведены на рис. 8. В настоящее время ЖКИ МТ-10Т7-7 производится серийно в стандартном температурном диапазоне со стеклом Reflective. Другие варианты исполнения ЖКИ производятся под заказ. Зарубежных аналогов у ЖКИ МТ-10Т7-7 нет.

Жидкокристаллические модули со встроенным знакогенератором

Общее описание

В настоящее время компания МЭЛТ серийно производит три типа жидкокристаллических модулей со встроенным знакогенератором: MT-10S1-2, MT-16S2-2Н, MT-16S2-2D (рис. 9–11). В процессе подготовки к производству находится ЖКИ МТ-16S2Q, который отличается от MT-16S2-2Н большим размером отображаемых символов. Контроллер управления ЖК-панелью аналогичен HD44780 фирмы Hitachi или KS0066 фирмы Samsung. Модули выпускаются со светодиодной подсветкой и без нее.

Модули МТ-16S2-2H и MT-16S2-2D позволяют отображать две строки по шестнадцать символов в каждой. Символы отображаются в матрице 5–8 точек и курсор. Интервалы между символами шириной в одну отображаемую точку. Эти модули являются полными аналогами ЖКИ производства POWERTIP, MICROTIPS, BOLYMIN и т. п.

MT-10S1-2 позволяет отображать 10 символов в одной строке при матрице символа 5–8 точек плюс курсор. Каждому отображаемому символу соответствует его код в ячейке памяти модуля. Модули содержат два вида памяти: кодов отображаемых символов и пользовательского знакогенератора, а также логику для управления ЖК-панелью. Габаритные размеры модулей (рис. 12–14).

Назначение выводов МТ-10S1-2, МТ-16S2-2Н и МТ-16S2-2D приведено в табл. 7.

ЖКИ со встроенным знакогенератором позволяют:

  • выводить на ЖК-панель изображения символов из встроенного знакогенератора;
  • запоминать до восьми изображений символов, задаваемых пользователем, а также выводить их;
  • выводить мигающий и немигающий курсор двух типов;
  • работать как по 8-, так и по 4-битной шине данных.

Временные диаграммы чтения и записи изображены на рис. 15. Динамические характеристики приведены в табл. 5. Характеристики модулей по постоянному току приведены в табл. 6.

Модули управляются по 4- или 8-битному интерфейсу. Разрядность интерфейса задается пользователем при помощи соответствующих команд (рис. 16). Указанное время выполнения команд является максимальным. Его нет необходимости выдерживать при условии чтения флага BS. Как только флаг BS равен 0, можно писать следующую команду или данные. Диаграмма обмена по 4-битному интерфейсу изображена на рис. 17, а по 8-битному - на рис. 18. При работе по 4-битному интерфейсу в каждом цикле необходимо передавать (читать или писать) все восемь бит. Передача старших четырех бит без последующей передачи младших четырех бит не допускается. Рекомендуемый алгоритм начальной установки модулей после подачи питания приведен на рис. 19.


Продолжение следует

4-х битный режим в буквенно-цифровых ЖК индикаторах.

    1. В 4-х битном режиме включения ЖК индикаторов недопустимо изменение состояний сигналов R/W и A0 в течении всего цикла передачи байта, в том числе и при неактивном сигнале E между двумя передачами полубайтов. По любому изменению сигналов R/W и A0 внутренний счётчик полубайтов в ЖК индикаторе сбрасывается в состояние приёма старшего полубайта. Это является отличием наших ЖК индикаторов от импортных аналогов и направлено на повышение надёжности работы ЖК индикатора.

    2. Также, до сих пор у нас в документации не исправлена процедура инициализации 4-х битного режима включения ЖК индикатора. Должно быть так:
    в первых трёх командах подаётся код 0x3 на шину данных и один (вместо нормально двух) импульс E;
    обязательно делается задержка между командами не менее 40мкс без опроса состояния ЖК индикатора;
    четвёртая команда подаётся также одним импульсом E без опроса состояния ЖК индикатора перед командой, но уже с кодом 0x2 на шине данных;
    пятую и все последующие команды можно подавать как обычно, с ожиданием готовности индикатора (если необходимо) или формированием задержки между командами не менее 40мкс.

    3. Все циклы обращения к индикатору должны быть парными (обязательно передавать и старший и младший полубайты). Единственное исключение - первые четыре команды в процедуре инициализации.
    Или перед передачей старшего полубайта использовать возможность сброса внутреннего счётчика полубайтов в ЖК индикаторе из пункта 1. В последнем случае теряется совместимость с импортными ЖК индикаторами.

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

    5. И не надо забывать выбирать правильный тип интерфейса (4 или 8 бит) при смене страницы кодировки знакогенератора.

Сколько реально памяти в ЖК индикаторах?

    Во всех буквенно-цифровых ЖК индикаторах встроено 80 байт внутренней памяти, по адресам 0x00..0x27 и 0x40..0x67. Часть её отображается на индикаторе, но вся память доступна как по записи, так и по чтению. Память сохраняет свое содержимое пока включено питание ЖК индикатора, независимо от того, включен или выключен ЖК индикатор.

    В графических ЖК индикаторах встроенной памяти:
    MT-6116 = 80 байт/строку * 4 строки = 320 байт (отображается 61 байт/строку * 2 строки);
    MT-12232 = 80 байт/строку * 4 строки * 2 кристалла = 640 байт (отображается 61 байт/строку * 4 строки * 2 половины ЖКИ);
    MT-12864 = 64 байта/строку * 8 строк * 2 кристалла = 1024 байт (отображается 64 байта/строку * 8 строк * 2 половины ЖКИ).
    Размер памяти от буквенного суффикса ЖК индикатора не зависит.

    В сегментных индикаторах с параллельным интерфейсом (MT-10T7, MT-10T8, MT-10T9) чтение встроенной памяти невозможно, размер памяти 10 байт + триггер блокировки.

Работают ли ЖК индикаторы с высокоскоростными контроллёрами? Какова максимальная скорость заполнения?

    Да, работают. Но надо не забывать про времена предустановки и удержания сигналов.

    Максимальная скорость записи в индикаторы:
    MT-10S1, MT-16S2, MT-20S2, MT-24S2, MT-20S4 - 25-30 тысяч символов/сек;
    MT-6116, MT-12232 - 0.5-1 млн. байт/сек (4-8 млн. точек/сек);
    MT-12864 - 100-130 тысяч байт/сек (1 млн. точек/сек).
    Большие (из указанных) скорости достигаются при опросе готовности индикаторов.

Как правильно включать подсветку ЖК индикатора?

    Все ЖК индикаторы рассчитаны на питание подсветки от источника питания самого индикатора. Т.е. плюс подсветки (вывод A) на вывод Ucc, минус подсветки (вывод K)- на вывод GND. Это верно как для 5-ти вольтовых индикаторов, так и для 3-х вольтовых.

Можно ли подключать 5-ти вольтовый ЖК индикатор к 3-х вольтовому контроллёру?

    В принципе, можно. Но надо учитывать разность в уровнях логических сигналов: для некоторых индикаторов уровень логической 1 может оказаться выше, чем способен сформировать управляющий контроллёр. Например, это касается вывода RES индикатора MT-12864, уровень лог.1 которого может быть не менее 3.75В (0.7*5.5В), хотя остальные выводы имеют уровень лог.1 всего 2.4В.

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

Как правильно подавать команды в буквенно-цифровые и графические ЖК индикаторы?

    Есть несколько вариантов, выберите наиболее подходящий Вам или придумайте новый, не противоречащий документации на ЖК индикатор.
    1. Перед (или после) каждого цикла обращения выдерживать паузу не менее указанной в документации. Это самый простой, но и самый неоптимальный по затратам времени управляющего контроллёра способ.
    2. После каждого цикла обращений к ЖК индикатору опрашивать бит занятости и ждать пока индикатор не выполнит посланную команду. Это способ лучше первого, но всё ещё весьма неоптимальный.
    3. Ждать готовности ЖК индикатора перед каждым циклом обращения. Это, вероятно, самый удобный вариант управления ЖК индикатором из основной программы (не из прерываний). Хотя он и не обеспечивает минимальных затрат времени управляющим контроллёром на работу с ЖК индикатором, но освобождает максимум времени для других действий, кроме работы с индикатором.
    4. Можно так написать программу, выдающую команды в ЖК индикатор, чтобы между любыми двумя последовательными циклами обращений проходило не менее указанного в документации времени. Этот способ оптимален по затратам времени управляющего контроллёра (не делается ничего лишнего) и скорости вывода информации в ЖК индикатор, но весьма сложен в написании и отладке.
    5. Если циклы обращений к ЖК индикатору формируются в прерывании, то можно настроить частоту прерываний так, чтобы между вызовами проходило не менее указанного в документации на индикатор времени паузы. Если в системе допустимо иметь такие низкую частоту прерываний и скорость вывода информации в ЖК индикатор, то этот способ, наверно, лучший.
    6. Если нужна высокая скорость прерываний или вывода информации на ЖК индикатор, можно в прерывании опросить готовность индикатора и, если не готов, выйти из прерывания не формируя цикла обращения к индикатору.

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

Как правильно проверить готовность ЖК индикатора к обмену данными?

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

    Для буквенно-цифровых и графических ЖК индикаторов возможен и более быстрый способ проверки флага BUSY: начать цикл чтения, но проверять бит BUSY сразу на шине данных, не сбрасывая строб E, только лишь выдержав время задержки выдачи данных индикатором. При этом можно сохранять строб E активным до обнаружения сброса флага BUSY и только потом завершить цикл чтения байта статуса. Но завершить правильно необходимо в любом случае - например, для буквенно-цифровых индикаторов с 4-х битным режимом включения обязательно надо получить и младший полубайт байта статуса, хотя бит BUSY находится в старшем полубайте и, казалось бы, читать ещё и младший лишнее. Нет, не лишнее!

Могут ли ЖК индикаторы работать при отрицательных температурах?

    Мы выпускаем несколько разновидностей ЖК индикаторов, многие из которых предназначены для эксплуатации, в том числе, и при отрицательных температурах. Серийно производятся ЖК индикаторы с рабочей температурой до -30°C (температура хранения при этом до -40°C). Максимально допустимая рабочая температура от +50°C до +70°C (температура хранения от +60°C до +80°C). Но при применении ЖК индикаторов с расширенным температурным диапазоном надо понимать, что они, во-первых, дороже; во-вторых, при отрицательной температуре существенно возрастает время смены информации на стекле ЖК индикатора (от 0.2с при +20°C до 7с при -20°C и 15с при -30°C). Это время от записи новой информации в индикатор до окончания (на глаз) переходных процессов в стекле ЖК индикатора. Если информация в ОЗУ индикатора при записи не изменяется, то и никаких переходных процессов не будет. Т.е. время на переходные процессы нужно только при смене выводимой информации. К времени записи информации во внутреннее ОЗУ индикатора это время отношения не имеет.
    Если выводить меняющуюся информацию в индикатор чаще, чем указанное время, то ничего не испортится, но на индикаторе видно будет нечто среднее между старой и новой информацией.

Можно ли сменить тип интерфейса управления ЖК индикатором?

    Да, для ЖК индикаторов MT-6116, MT-6116B, MT-12232B можно сменить тип интерфейса управления с 68000 на 8080. При этом сигнал R/W станет сигналом /WR, а сигнал E - сигналом /RD. Активным может быть всегда только один из них. Выбор типа интерфейса 68000 осуществляется подачей на вывод RES перепада с лог.1 на лог.0 и оставлением лог.0 на всё время работы ЖК индикатора.
    Подробнее смотрите документацию на кристалл КБ145ВГ4 (Ангстрем) или SED1520DOA. Или связывайтесь с нами.

    Для ЖК индикаторов MT-12232A и MT-12232D смена типа интерфейса также физически возможна, но из-за наличия в схеме индикатора дешифратора обращений к двум кристаллам приведёт к неработоспособности ЖК индикатора.

Особенности ЖК индикаторов MT-6116, MT-12232.

    Все ЖК индикаторы MT-6116 и MT-12232 основаны на одном и том же кристалле и имеют некоторые особенности, которые надо учитывать при проектировании изделий на данных индикаторах:
    1. Хотя в индикаторе присутствует цепь начального сброса по включению питания, часто её оказывается недостаточно и для правильной работы индикатора надо подавать сигнал сброса снаружи. Эти индикаторы сбрасываются любым перепадом на выводе RES (и 0->1, и 1->0), причём этот же вывод выбирает тип интерфейса управления. Поэтому желательно подавать внешний сигнал сброса ЖКИ на вывод RES - удерживая RES=лог.0 не менее 10 мкс после подачи напряжения питания на ЖКИ и потом подавая перепад лог.0 -> лог.1 с длительностью фронта не более 10 мкс. До момента подачи перепада 0->1 ЖК индикатор может выдавать на шину данных случайную информацию (зависит от управляющих сигналов R/W, A0, E) и надо обеспечить режим ввода (или состояние Z) по шине данных в управляющем контроллёре на это время.
    Если же импульс сброса будет формироваться и в процессе работы, не только при включении питания, то на всё время лог.0 на выводе RES также надо переводить шину данных управляющего контроллёра в режим ввода (или состояние Z) для исключения конфликта на шине.
    2. Для ускорения обновления индикатора предусмотрен специальный режим чтения-модификация-запись, при котором адрес столбца увеличивается только после записи (флаг RMW). После установки этого режима можно прочитать байт из индикатора, при необходимости изменить его и записать обратно в индикатор, не добавляя команд установки адреса столбца. Без этого режима последовательность была бы следующей: установить адрес столбца, прочитать данные, снова установить тот же адрес столбца, записать новые данные. Здесь на целых две операции больше (если выполнять модификацию нескольких последовательных байтов).
    3. С другой стороны, с включенным режимом RMW ЖК индикатор не обрабатывает многие команды (например, точно не работает команда установки страницы). Поэтому надо не забывать сбрасывать этот режим, когда он не нужен.
    И в процедуре инициализации в нашей документации этот режим не сбрасывается и может оказаться, что после включения питания режим окажется установленным. В этом случае ЖК индикатор будет работать неправильно. Лучше добавить в процедуру инициализации команду сброса режима RMW.
    4. При чтении информации из внутренней памяти индикатора нужно делать "пустой" цикл чтения - после команд установки адреса столбца первый цикл чтения не выдаст полезной информации, реальные данные будут выданы только начиная со второго цикла чтения.

      Индикаторы обеспечивают указанные в документации выходные напряжения при следующих максимальных выходных токах:
      1. Все буквенно-цифровые (MT-xxSx): Ioh=0.4мА, Iol=1.2мА.
      2. MT-6116x: Ioh=0.4мА, Iol=0.4мА.
      3. MT-12232x: Ioh=0.4мА, Iol=0.4мА.
      4. MT-12864x: Ioh=0.2мА, Iol=1.6мА.

    ЖК индикатор ничего не показывает, что делать?

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

      Если есть подозрение на неисправность ЖК индикатора, рекомендуем:
      * проверить наличие питания ЖКИ,
      * уровни управляющих сигналов,
      * настройку контрастности,
      * отсутствие помех на управляющих выводах и питании ЖКИ,
      * форму управляющих сигналов (особенно при длинном кабеле подключения индикатора),
      * соблюдение временных параметров при управлении индикатором,
      * правильность процедуры начальной инициализации индикатора,
      * включить другой аналогичный ЖК индикатор,
      * обратиться к нам.

    А нет ли примера программы для вывода на ЖК индикатор?

      Есть, вот архив с примерами программ для вывода на наши ЖК индикаторы. Программы написаны на подобии языка C и предназначены для пояснения алгоритмов работы с ЖКИ. Они подробно прокомментированы, но компилиться не будут - нужно доопределить функцию задержки времени и имена сигналов управления ЖКИ.

    Не нашли ответа на свой вопрос? Свяжитесь с нами.

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

      По вопросам программирования наших ЖКИ: Петухов Дмитрий Владимирович "[email protected]".
      По техническим вопросам: Козлов Сергей Владимирович "[email protected]".
      По вопросам закупок: Отдел продаж "[email protected]".

Общее описание

Жидкокристаллический модуль MT–16S2H состоит из БИС контроллера управления и ЖК панели. Контроллер управления КБ1013ВГ6, производства ОАО «АНГСТРЕМ» (www.angstrem.ru), аналогичен HD44780 фирмы HITACHI и KS0066 фирмы SAMSUNG.

Модуль выпускается со светодиодной подсветкой . Внешний вид приведен на рисунке 1. Модуль позволяет отображать 1 строку из 16 символов. Символы отображаются в матрице 5х8 точек. Между символами имеются интервалы шириной в одну отображаемую точку.

Каждому отображаемому на ЖКИ символу соответствует его код в ячейке ОЗУ модуля.

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

Габаритные размеры модуля приведены на рисунке 7.

Внимание! Недопустимо воздействие статического электричества больше 30 вольт.

Модуль позволяет:

  • модуль имеет программно-переключаемые две страницы встроенного знакогенератора (алфавиты: русский, украинский, белорусский, казахский и английский; см. табл. 5 и 6).
  • работать как по 8-ми, так и по 4-х битной шине данных (задается при инициализации);
  • принимать команды с шины данных (перечень команд приведен в таблице 4);
  • записывать данные в ОЗУ с шины данных;
  • читать данные из ОЗУ на шину данных;
  • читать статус состояния на шину данных (см. табл. 4);
  • запоминать до 8-ми изображений символов, задаваемых пользователем;
  • выводить мигающий (или не мигающий) курсор двух типов;
  • управлять контрастностью и подсветкой;

Основные сведения

Модуль управляется по параллельному 4-х или 8-ми битному интерфейсу.

Временные диаграммы приведены на рис. 3 и 4, динамические характеристики приведены в таблице 2.

Примеры обмена по интерфейсу приведены на рис. 5 и 6.

Программное управление осуществляется с помощью системы команд, приведенной в таблице 4.

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

Встроенный знакогенератор приведен в таблицах 5 и 6.

Модуль позволяет задать изображения восьми дополнительных символов знакогенератора, использующихся при работе наравне со встроенными. Пример задания дополнительных символов приведен в таблице 3.

Таблица 1. Динамические характеристики модуля

Название Обозначение U cc =5B U cc =3B Единицы измерения
Мин. Макс. Мин. Макс.
Время цикла чтения/записи t cycE 500 - 1000 - ns
Длительность импульса разрешения чтения/записи PW EH 230 - 450 - ns
Время нарастания и спада t Er , t Ef - 20 - 25 ns
Время предустановки адреса t AS 40 - 60 - ns
Время удержания адреса t AH 10 - 20 - ns
Время выдачи данных t DDR - 120 - 360 ns
Время задержки данных t DHR 5 - 5 - ns
Время предустановки данных t DSW 80 - 195 - ns
Время удержания данных t H 10 - 10 - ns

Управление контрастностью

При напряжении питания модуля 3В контрастность на заводе-изготовителе установлена на максимум. Уменьшение контрастности производится подключением между выводами U o и GND внешнего резистора номиналом до 3 кОм.

При напряжении питания модуля 5В контрастность модуля зависит от напряжения питания ЖК панели (U LCD) и температуры. Управление контрастностью производится внешним резистором (рис. 2). При поставке модуля контрастность настроена на U cc =5B, поэтому при напряжении питания модуля 5В, контакт 3(U o) необходимо объединить с контактом 1(GND). При температурах ниже 0°С регулировка контрастности необходима.


Рис. 2

Характеристики модуля по постоянному току

Таблица 2. Характеристики модуля по постоянному току

Название Обозначение U cc =5B U cc =3B Единицы измерения
Мин. Ном. Макс. Мин. Ном. Макс.
Напряжение питания логическое U CC –GND 4,5 5,0 5,5 2,7 3,0 3,3 В
ЖКИ U CC –U o 4,8 5,0 5,2 - - - В
Ток потребления I CC - 0,8 1,0 - 0,8 1,0 мА
Входное напряжение высокого уровня при I IH =0,1мА U IH 2,2 - U CC 2,2 - U CC В
Входное напряжение низкого уровня при I IL =0,1мА U IL –0,3 - 0,6 -0,3 - 0,4 В
Выходное напряжение высокого уровня при I OH =0,2мА U OH 2,4 - - 2,0 - - В
Выходное напряжение низкого уровня при I OL =1,2мА U OL - - 0,4 - - 0,4 В
Ток подсветки при напряжении питания подсветки =U cc (для янтарной и желто-зеленой подсветки) I LED - - 120 - - 80 мА

Временные диаграммы


Рис. 3. Диаграмма чтения


Рис. 4. Диаграмма записи


Рис. 5

Примечание. В каждом цикле обмена необходимо передавать (читать или писать) все 8 бит - два раза по 4 бита. Передача старших 4-х бит без последующей передачи младших 4-х бит не допускается.


Рис. 6

Начальная установка модуля

Модуль войдет в нормальный режим работы только после подачи на него следующих команд:

Примечание. Назначение битов указано в таблице 4. После этих действий модуль переходит в рабочее состояние с установленными параметрами.

Модуль содержит ОЗУ размером 80 байтов по адресам 0h–27h и 40h–67h для хранения данных (DDRAM), выводимых на ЖКИ. Адреса отображаемых на ЖКИ символов распределены следующим образом:

Символы, программируемые пользователем

Модуль содержит память для хранения изображений восьми символов, программируемых пользователем (CGRAM). Коды этих восьми символов показаны в табл. 5. Адреса строк изображений этих символов не зависят от адресов выводимых символов (расположены в отдельном адресном пространстве) и занимают адреса от 0h до 3Fh. Каждый символ занимает 8 байтов (0h–7h, 8h–Fh, 10h–17h, ..., 30h–37h, 38h–3Fh). Нумерация байтов идет в порядке отображения на модуле сверху вниз (первый байт самый верхний, восьмой байт самый нижний). Последняя, восьмая строка используется также для отображения курсора (если выбран курсор в виде подчеркивания). В каждом байте используются только 5 младших битов (4, 3, 2, 1, 0), старшие 3 бита (7, 6, 5) могут быть любые, на отображение они не влияют. Бит 4 соответствует левому столбцу матрицы символа, бит 0 - правому столбцу символа. Пример см. в таблице 3.

Таблица 3

* - значение не влияет на отображение

Описание команд модуля

Команда A0 R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Описание Время выполнения
Clear Display 0 0 0 0 0 0 0 0 0 1 Очищает модуль и помещает курсор в самую левую позицию 1,5 мс
Return Home 0 0 0 0 0 0 0 0 1 X Перемещает курсор в левую позицию 40 мкс
Entry Mode Set 0 0 0 0 0 0 0 1 ID SH Установка направления сдвига курсора (ID=0/1-влево/вправо) и разрешение сдвига дисплея (SH=1) при записи в DDRAM 40 мкс
Display ON/OFF control 0 0 0 0 0 0 1 D C B Включает модуль (D=1) и выбирает тип курсора (C, B), см. примечание 4 40 мкс
Cursor or Display Shift 0 0 0 0 0 1 RL X X Выполняет сдвиг дисплея или курсора (SC=0/1-курсор/дисплей, RL=0/1-влево/вправо) 40 мкс
Function Set 0 0 0 0 1 DL 1 0 P 0 Установка разрядности интерфейса (DL=0/1-4/8 бита) и страницы знакогенератора P 40 мкс
Set CGRAM Address 0 0 0 1 ACG Установка адреса для последующих операций (и установка туда курсора) и выбор области CGRAM 40 мкс
Set DDRAM Address 0 0 1 ADD Установка адреса для последующих операций и выбор области DDRAM 40 мкс
Read BUSY flag and Address 0 1 BS AC Прочитать флаг занятости и содержимое счетчика адреса 0
Write Data to RAM 1 0 WRITE DATA Запись данных в активную область 40 мкс
Read Data from RAM 1 1 READ DATA Чтение данных из активной области 40 мкс

Примечания:

  1. Указанное время выполнения команд является максимальным. Его не обязательно выдерживать при условии чтения флага занятости BS - как только флаг BS=0, так сразу можно писать следующую команду или данные. Если же флаг BS перед выдачей команд не проверяется - необходимо формировать паузу между командами не менее указанного времени для надежной работы модуля.
  2. При чтении бита статуса никакую паузу делать не надо.
  3. Большая Х - любое значение (0 или 1).
  4. Биты C и B в команде «Display ON/OFF control»: C=0, B=0 - курсора нет, ничего не мигает; C=0, B=1 - курсора нет, мигает весь символ в позиции курсора; C=1, B=0 - курсор есть (подчёркивание), ничего не мигает; C=1, B=1 - курсор есть (подчёркивание) и только он и мигает.

Таблица 5. Страница 0 встроенного знакогенератора



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: