Теория по КМПУ Готовые элементы систем Технологии и хитрости Прочее Магазин Контакты
 

Знакосинтезирующие ЖК-модули 1602A-1 и WH1602B. Краткое описание


Введение

Как уже́ упоминал ранее, на протяжении нескольких лет я использовал в своих устройствах знакосинтезирующие ЖКИ на базе контроллеров KS0066 (HD44780 и т.д.) типоразмера 85х36мм с двухрядным расположением точек подключения. Однако, в последнее время оные характеризуются довольно херовой доставаемостью, да и цена на них стала – мое почтение. В связи с этим было решено переехать на гораздо более распространенные индикаторы с однорядным расположением точек подключения, типа таких:




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

В моей любимой конторе «Чип-НН» есть две модели индикаторов с однорядным расположением точек подключения: «фирменный» WinStar-овский ЖКИ WH1602B и китайский 1602A-1, проходящий под кодовым названием «ЖКИ LCD1602». Внешний вид обоих дисплеев приведен на рисунке в начале заметки. Отмечу, что лично я предпочитаю китайский вариант, ибо есть у него несколько неоспоримых преимуществ:

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

•  низкая стоимость: в «Чип-НН» китайца 1602A-1 отдают всего за 145р. против 330р. за «фирменный» индикатор WH1602B. Двукратная разница в цене как бы говорит сама за себя. Ну а на eBay вполне возможно найти 1602A-1 и вовсе дешевле сотки;

•  возможность полноценной работы индикатора при напряжении питания +3,3В;

•  малое потребление тока при хорошей светимости подсветки;

•  бо́льшая компактность.

Про первые два преимущества всё понятно – первое из них сугубо субъективное, а второе, как было отмечено выше, обусловлено массовостью и китайскостью производства. А вот чтобы понять, откуда берутся остальные плюсы 1602A-1, необходимо вкратце рассмотреть основные характеристики обоих индикаторов, ибо эти плюсы – прямое их следствие.


Геометрические характеристики выбранных моделей ЖКИ

Как WH1602B, так и 1602A-1 представляют собой знакосинтезирующие ЖКИ размером 80х36мм, позволяющие отображать на своем экране 2 строки по 16 символов в каждой:




Расстояние между крепежными отверстиями у них совпадает (в отличие от, например, ранее использовавшихся MT-16S2D и WH1602C) и составляет 75х31мм. При этом диаметр крепежной дырки у WH1602B равен 2,5мм, а у 1602A-1 – все 3,2мм. Поскольку я для крепления ЖКИ на панель устройств использую исключительно стойки с метрической резьбой М3, нетрудно догадаться: с этой точки зрения лично для меня предпочтительней китайский индикатор, поскольку в нем не надо будет дополнительно рассверливать дырки до Ø3,2мм. Вдобавок ко всему, 1602A-1 немного компактней своего фирменного собрата, т.к. у него экран возвышается над платой всего на 7,0мм, в то время как у WH1602B эта величина составляет 8,6мм:




Конечно, разница в 1,6мм не особо велика, однако в портативных устройствах с плотной компоновкой элементов даже эта мелочь может сыграть большую роль. Ну и последнее в плане геометрии – размеры экрана, ра́вно как и его положение относительно крепежных отверстий, у 1602A-1 и у WH1602B слегка отличаются (см. предпоследний рисунок). Поэтому в том случае, когда вы хотите разметить/изготовить универсальную переднюю панель, на которую могут быть установлены индикаторы обоих типов, данный факт следует учитывать. В качестве примера могу привести вариант разметки «универсальной» передней панели (верхний рисунок) и наклейки на нее (нижний рисунок), которыми пользуюсь лично я:





Напряжение питания выбранных моделей ЖКИ

Как и подавляющее большинство знакосинтезирующих жидкокристаллических индикаторов, WH1602B и 1602A-1 состоят, условно говоря, из трех основных частей. Первая часть – это ЖК-панель, на которой отображается вся выводимая информация. Вторая часть – это мозги индикатора, которые управляют панелью и говорят, что именно на ней нужно отобразить. И третья часть – это подсветка, позволяющая гораздо лучше увидеть информацию, выведенную на панель, даже на большом расстоянии:




Здесь важно отметить, что каждая из этих трех частей имеет свое отдельное питание, выведенное на точки подключения модуля. Мозг питается напряжением «VDD–VSS», ЖК-панель – напряжением «VDD–V0», а подсветка – напряжением «А–К»:




И именно данный факт определяет диапазон напряжений питания, при которых ЖК-модуль может полноценно работать. Вообще говоря, индикаторы WH1602B и 1602A-1 относятся к обширному семейству 5В-вых дисплеев, т.е. в соответствии с документацией напряжение питания у них может лежать в диапазоне +4,5В…+5,5В. Однако, если подойти к вопросу с пониманием внутренней структуры ЖК-модуля, то и для работы с 3,3В-вой логикой данные модели вполне сгодятся.

Итак, мозги рассматриваемых индикаторов состоят из двух микросхем: контроллера точечной ЖК-матрицы и специализированного драйвера сегментов. Именно с контроллером общается пользователь посредством управляющих сигналов DB0…DB7, R/W, RS и E, и именно контроллер рулит выводом символов на ЖК-панель индикатора. Отметим, что используемые в моделях WH1602B и 1602A-1 контроллеры могут и сами зажигать/тушить нужные точки на ЖК-панели, однако их возможностей хватает только на 16 символов, а нам бы их надо 16х2=32 штуки. Для увеличения количества отображаемых символов на платы ЖКИ вкупе с основным контроллером устанавливаются специальные сегментные драйверы, выступающие, грубо говоря, обычным «расширителем» выводов.

У индикаторов WH1602B в качестве основного контроллера выступает знаменитый HD44780U, у 1602A-1 – менее известный ST7066U. Насчет драйвера сегментов всё несколько сложнее – напрямую его модель указана только для китайца 1602A-1 (ST7065C):




Но, думаю, это не принципиально, ибо у всех известных мне ЖКИ используемые микросхемы аналогичны друг другу. Так вот, и у HD44780U, и у ST7066U, и у ST7065C, и вообще у всех подобных чипов напряжение питания может составлять от +2,7В до +5,5В, поэтому:

•  мозги 5В-вого индикатора не будут испытывать никаких проблем при работе ЖК-модуля от +3,3В (VDD=+3,3В; VSS=0В).

Переходим к рассмотрению ЖК-панели. Питается она немного хитро – на ее «плюс» подается потенциал VDD, а вот «минус» панели сидит не на земле (VSS), а на потенциале V0. Сделано так потому, что для четкого и контрастного отображения выводимых символов напряжение питания ЖК-панели обычно требуется подстраивать под конкретное значение VDD. Вдобавок ко всему, такая подстройка необходима и при изменении температуры окружающей среды. Отметим, что при напряжении питания ЖК-панели VLCD=VDD–V0 ниже оптимального значения (VOPT), отображаемые символы будут тусклыми/мутными/размытыми (в предельном случае они вообще исчезнут с экрана). Если же панель питается повышенным (по сравнению с оптимальным) напряжением, то на экране начнут проступать ненужные точки. В предельном случае индикатор будет отображать только полностью «засвеченные» символы независимо от того, что мы передали в контроллер ЖКИ:




Для того, чтобы иметь возможность регулировки напряжения питания ЖК-панели, обычно используют подстроечный резистор. Типовая схема включения этой части индикатора и типовые же значения напряжения питания VLCD=VDD–V0 для WH1602B приведены ниже (для 1602A-1 они будут примерно такими же):




Отметим, что показанное включение подстроечного резистора позволяет менять напряжение питания ЖК-панели от VLCD=0В (при крайнем верхнем по схеме положении движка) до VLCD=VDD (при крайнем нижнем положении движка). Также обратите внимание на то, что все приведенные типовые значения VLCD не превышают +5,2В. Поэтому при «стандартном» напряжении питания модуля (VDD=+5,0В) мы заведомо сможем настроить питание ЖК-панели на оптимальное значение (по крайней мере, для плюсовых температур окружающей среды, на работу в которых и рассчитаны индикаторы WH1602B и 1602A-1). А вот если нам нужно запитать модуль от «пониженного» напряжения (VDD=+3,3В), то даже при нижнем положении движка подстроечного резистора питание ЖК-панели не превысит +3,3В, а нам надо бы +3,8В (для комнатной температуры). Отсюда следует, что при той схеме включения ЖКИ, которая приведена на последнем рисунке, символы на дисплее будут отображаться как минимум нечетко (ну а в реальности их просто тупо не будет видно).

Решение данной проблемы, в принципе, элементарно. Для того, чтобы напряжение питания ЖК-панели поднялось до требуемых +3,8В, достаточно нижний по схеме вывод подстроечника подключить не к земле, а к источнику отрицательного напряжения VNEG. В этом случае питание панели можно будет подстраивать не от 0В до VDD, а в диапазоне 0В…[VDD+|VNEG|], и при правильном выборе амплитуды отрицательного напряжения мы легко сможем сделать VLCD=+3,8В при вообще любом VDD. Другое дело – откуда это отрицательное напряжение взять. Чаще всего при наличии свободного вывода микроконтроллера применяют простейшую схему инвертора на переключаемых конденсаторах. В этом случае камень генерит последовательность прямоугольных импульсов амплитудой VDD с частотой порядка десятков килогерц и коэффициентом заполнения 50%, а дальше при помощи диодов и конденсаторов из этой «положительной» последовательности делается отрицательное напряжение, которое и подается на нижний вывод подстроечного резистора:




Если свободных выводов МК нет, то в качестве генератора прямоугольных импульсов можно применить другие схемотехнические решения – таймер, мультивибратор и т.д. Возможно, в некоторых случаях будет оправданным даже использование специализированных преобразователей напряжения на переключаемых конденсаторах (например, LM2664 или ICL7660S). Главное здесь то, что:

•  ЖК-панель 5В-вого индикатора вполне может работать при напряжении питания дисплея VDD=+3,3В (пусть и с небольшими дополнительными плясками с бубном).

Отметим, что всё вышесказанное в полной мере относится как к индикатору WH1602B, так и к индикатору 1602A-1. Т.е. у обеих моделей нет никаких принципиальных ограничений на работу мозгов и ЖК-панели при напряжении питания модуля VDD=+3,3В. В этом плане рассматриваемые дисплеи схожи (разве что максимально допустимое питание экрана VLCD(MAX) у 1602A-1 чуть ниже, чем у WH1602B – +10,0В против +13,0В). А вот подсветка китайского индикатора уделывает WH1602B просто в хлам.

Давайте я сразу вылью ушат говна на «фирменный» ЖКИ, а уж пото́м разберу каждый пункт более подробно. При этом следует иметь ввиду, что WinStar-овскими индикаторами серии WH1602 я пользовался лет 7-8 и до знакомства с 1602A-1 был вполне ими доволен. Но вот после знакомства… да. Короче, с технической точки зрения ЖКИ WH1602B проигрывает китайцу 1602A-1 в плане подсветки по следующим пунктам:

•  адское потребление тока;

•  херовая «светимость»;

•  принципиальная невозможность работы при VDD=+3,3В;

•  обязательное использование токоограничивающего резистора.

Подсветка обычного жидкокристаллического индикатора в большинстве случаев является светодиодной, и для того, чтобы не спалить светодиод, ток через него необходимо чем-то ограничивать. Как известно, наиболее простым и при этом эффективным способом ограничения тока является использование обычного резистора. Так вот, в индикатор 1602A-1 данный ограничитель уже́ встроен (используется резистор типоразмера 1206 с сопротивлением R1602A-1=100 Ом ± 5%), а вот в дисплее WH1602B его нет – на точки подключения №№15, 16 («А» и «К») просто тупо выведена «голая» подсветка. Поэтому ничто не мешает без особых ухищрений спалить подсветку «фирменного» индикатора, подав на нее по дури (или просто по забывчивости) ничем не ограниченные +5,0В. Лично для меня данное решение выглядит, мягко говоря, странно, тем более, что место под токоограничивающий резистор на плате ЖКИ WH1602B есть (даже под два):




В общем, при использовании индикатора модели WH1602B наличие дополнительного токоограничивающего резистора обязательно. В документации на ЖКИ приводятся рекомендуемые параметры этого резистора: RWH1602B=4,7 Ом ± 5% с допустимой мощностью рассеяния не менее 0,5Вт. Полватта на какую-то сраную подсветку, Карл! Сразу понятно, насколько экономичным является использование индикатора WH1602B. Ну и, собственно, проведенные опыты полностью подтверждают данное опасение:




На данной картинке приведено токопотребление подсветки (IB/L) и падение напряжения на ней (VB/L) для рассматриваемых моделей индикаторов при разных номиналах токоограничивающего резистора (в Омах). Слева показаны результаты для WH1602B, справа – для 1602A-1. Напряжение питания подсветки вместе с резистором было взято равным +4,9В (тут я просто забыл выставить красивую цифру на источнике). И еще одно – для обоих индикаторов указывается номинал резистора, добавленного именно мной, поэтому в случае 1602A-1 сюда надо приплюсовывать еще и «родные» 100 Ом.

Собственно говоря, особо комментировать тут нечего – и так всё ясно. Если у китайского индикатора при токе IB/L=20,5мА (т.е. при максимуме, который вообще может быть) подсветка сияет как начищенный пятак, то у WH1602B при почти том же токе еще только становится понятно, что подсветка на дисплее вообще есть. Ну и пожирание светодиодом почти 70мА для достижения более-менее путной яркости тоже не особо радует. Поэтому здесь единственный аргумент в пользу использования WH1602B может быть таким: данный индикатор, в отличие от 1602A-1, позволяет работать вообще без подсветки и при этом довольно сносно различать информацию на экране:




При этом общее токопотребление дисплея минимизируется, ибо без подсветки оба индикатора жрут немного (в районе 1,0мА…1,5мА, т.к. кормить надо только мозги). Данный факт может быть весьма и весьма важен при выборе элементной базы для автономных (батарейных) устройств. Но с другой стороны, в китайском модуле подсветка вполне достойно светит даже при токе IB/L=1,0мА…2,0мА (см. предпоследний рисунок). Поэтому с учетом емкости современных литий-ионных аккумуляторов даже для автономных поделок лично я предпочел бы использовать индикаторы 1602A-1, т.к. с подсветкой (пусть и тусклой) информация на экране выглядит намного разборчивее, чем без нее.

Ну и последний вывод, который можно сделать из предпоследнего рисунка: нормальная работа подсветки индикатора WH1602B при ее питании ниже +3,7В…+3,8В невозможна в принципе. Как нетрудно догадаться, это следует из величины падения напряжения на желто-зеленой подсветке, составляющей около +3,7В даже в том случае, когда яркость свечения светодиодов практически равна нулю. В реальности же более-менее приемлемой яркости будет соответствовать падение от +3,9В и выше (и это еще без учета того, что на токоограничивающем резисторе тоже должно упасть хоть что-то). Ну а для китайского индикатора 1602A-1 таких проблем не существует – максимальное падение напряжения на его подсветке в проведенном эксперименте составило всего +2,85В, чего с запасом достаточно для питания +3,3В даже с учетом 5%-го допуска на этот номинал. Поэтому со всей ответственностью можно сказать:

•  подсветка 5В-вого индикатора 1602A-1 вполне может полноценно работать при напряжении питания +3,3В;

•  подсветка 5В-вого индикатора WH1602B принципиально не может работать при напряжении питания +3,3В.


Управление выбранными моделями ЖКИ. Таблицы символов.

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

Как известно, знакоситезирующие ЖКИ могут работать как в 4-х битном режиме обмена данными, так и в 8-ми битном:




При этом для 8-ми битного обмена требуется максимум 11 управляющих выводов микроконтроллера, а именно:

Вывод ЖКИ Направление Назначение и описание
RS Вход Адресный сигнал: выбор между передачей данных (High) и команд управления (Low)
R/W Вход Выбор режима записи (Low) или чтения (High)
E Вход Разрешение обращений к индикатору (а также строб данных)
DB0 Вход/выход Шина данных (8-ми битный режим) (младший бит в 8-ми битном режиме)
DB1 Вход/выход Шина данных (8-ми битный режим)
DB2 Вход/выход Шина данных (8-ми битный режим)
DB3 Вход/выход Шина данных (8-ми битный режим)
DB4 Вход/выход Шина данных (8-ми и 4-х битные режимы) (младший бит в 4-х битном режиме)
DB5 Вход/выход Шина данных (8-ми и 4-х битные режимы)
DB6 Вход/выход Шина данных (8-ми и 4-х битные режимы)
DB7 Вход/выход Шина данных (8-ми и 4-х битные режимы) (старший бит)

Для 4-х битного же режима нужно всего лишь семь линий: «R/W», «RS», «E», «DB7», «DB6», «DB5», «DB4» (т.е. здесь сигналы «DB3»-«DB0» не используются). При этом преимущество 8-ми битного режима состоит только в том, что данные на ЖКИ будут передаваться несколько быстрее, чем при 4-х битном режиме. Ну а поскольку жидкий индикатор сам по себе далеко не быстродействующее устройство, то как-то так исторически повелось, что для экономии выводов МК обычно используется 4-х битный режим обмена данными с ЖКИ.

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

Как видно из последней таблицы, за тип обмена инфой (чтение/запись) отвечает вывод «R/W» ЖКИ. Если на этом выводе присутствует логическая единица, то производится чтение данных с индикатора, а если логический нуль, то данные в индикатор записываются. А поскольку мы условились, что индикатор нами используется только для вывода информации (т.е. только в режиме записи), то и управлять выводом «R/W» нам, по большому счету, не нужно – достаточно его просто заземлить. Таким образом, экономится еще один вывод МК, т.е. для управления жидкокристаллическим индикатором со стороны камня достаточно будет всего шести выводов.

Ну и в завершении приведем таблицы символов рассматриваемых индикаторов. Здесь хотелось бы сказать несколько добрых слов в адрес модели WH1602B. В отличие от китайца, «фирменный» индикатор из «Чип-НН» имеет возможность вывода на экран русских символов, недостающих в английском алфавите:




При этом на вывод данных символов не нужно затрачивать дополнительные ресурсы (память и машинное время) микроконтроллера, т.к. буквы эти создаются знакогенератором в само́м ЖКИ. Китайский индикатор 1602A-1 не может похвастаться данной фичей, поскольку его таблица символов выглядит так:




Однако, справедливости ради сто́ит отметить, что проблема с выводом русских (да и любых других) букв на экран ЖКИ элементарно решается при помощи тех же символов пользователя (т.е. с использованием CGRAM). Ну или можно вообще все свои дывайсы делать англоязычными, т.е. не использовать русские буквы ни на панели, ни в меню устройства. Я, кстати, в итоге на этом варианте и остановился, как на наиболее универсальном, но здесь, конечно, всё зависит от заказчика – позволит ли он использовать исключительно латиницу.

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

А на сегодня всё. Желаю удачи при работе с ЖКИ!

Обсудить эту заметку можно здесь



Ссылки по теме, документация

Возможные варианты использования рассмотренных ЖКИ:

•  LCD-1602A1-M3SS.H10-4;

•  LCD-1602A1-M3SN.H10-4.

Документация на рассмотренные модели ЖКИ (полный вариант):

•  1602A-1;

•  WH1602B.

Чисто для справки – документация на контроллеры, применяемые в рассмотренных моделях ЖКИ:

•  HD44780U ;

•  ST7066U.


Место для разного (сдается)

 




Создание, "дизайн", содержание "сайта": podkassetnik
Для писем и газет: Почта России электрическая

Место для © (копирайта, понятно, нет, но ссылайтесь хотя бы на первоисточник)

Since 2013 и до наших дней