Как определить контроллер дисплея

Обновлено: 04.07.2024

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

СОДЕРЖАНИЕ:
1. Символьный ЖКИ с контроллером HD44780 (KS0066). Интерфейс.
2. Набор команд контроллера HD44780.
3. Инициализация ЖКИ.

Символьный ЖКИ с контроллером HD44780 (KS0066). Интерфейс

Символьный ЖКИ есть ничем другим, как матрицей из точек, разделенной на строки и поля символов:

Символьный ЖКИ

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

Контролер ЖКИ оперирует 3-мя блоками памяти:

1. Для вывода символа контроллер использует память DDRAM (Display Data RAM), где хранятся ASCII-коды символов, которые мы хотим видеть на ЖКИ. Под нее отведено 80 ячеек памяти. Понятно, что на ЖКИ мы увидим лишь часть символов, которые находятся в DDRAM - если наш ЖКИ 1 или 2-строчный и отображает 8 символов в строке, то так:

Использование DDRAM памяти

Рабочую область дисплея, как видно, можно смещать по ячейкам DDRAM (получается эффект бегущей строки).

2. Шаблоны самих символов контроллер берет из CGROM (Character Generator ROM) – памяти знакогенератора. Таблицу символов можно посмотреть в спецификации на HD44780.

3. Для хранения пользовательских символов (их шаблонов) предусмотрена память CGRAM (Character Generator RAM).

Также, контроллер в зависимости от некоторых условий распределяет пришедшие в него данные в регистр инструкций или регистр данных.

Типичный 14-пиновый интерфейс контроллеров HD44780:

1

Земля, общий провод, GND

2

Напряжение питания, Vcc (+5V)

3

Настройка контрастности (Vo)

4

Выбор регистра (R/S для HD44780, A0 для KS0066)

5

6

Строб по спаду Е (Enable)

7

Bit 0 (младший для 8мибитного интерфейса)

8

9

10

11

DB 4 (младший для 4х битного интерфейса)

12

13

14

Для дисплея с подсветкой

15

Питание подсветки для дисплеев с подсветкой (анод)

16

Питание подсветки для дисплеев с подсветкой (катод)

Нумерацию пинов на конкретном ЖКИ смотрим в datasheet.

Контрастность изображения на ЖКИ можно изменять, подключив дополнительно построечный резистор на 10 кОм по схеме:

Регулировка контрастности

Но, следует смотреть в спецификацию на свой контроллер (например у ЖКИ Klsn10294v-0 на чипе KS0066 1-Vcc, а 2-GND). Подача питания подсветки может различаться от модели к модели в зависимости от её типа. Обычно подсветка питается от 5 вольт, токоограничительный резистор (50-100 Ом) обычно не обязателен.

Назначение выводов R/S, R/W, E:

При переходе Е с высокого лог. уровня на низкий данные, которые уже «висят» на выводах DB0..DB7, записываются в память контроллера ЖКИ для последующей обработки.

При высоком лог. уровне на R/S(Register Select) контроллер ЖКИ воспринимает этот набор битов как данные(код символа), а при низком – как инструкцию и направляет их в соответствующий регистр.

R/W определяет направление работы выводов DB0..DB7 – если на R/W «0», то мы можем только писать в порт DB, а если R/W = «1», то можем прочитать с него (например узнать занят контроллер или свободен для приема новых данных). Если мы не будем читать данные из ЖКИ, то можно «посадить» R/W на землю.

Набор команд HD44780

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

zeconir

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Последние посетители 0 пользователей онлайн

Если 5А - это сила тока на выходе источника, то ток разделится приблизительно поровну между всеми силовыми транзисторами. Для этого их и поставлено несколько штук. 5200 по SOA и по допустимой рассеиваемой мощности лучше, но здесь хватит и 3055.

Kraftverk

Ага. Вот из-за этой каши в голове, начинаются споры у людей. Надо точно писать . Причин может быть несколько. Если симистор замкнут (неаккуратной пайкой, например) или пробился (коротнул), то пылесос всегда будет работать на максимальной мощности. Если неисправна цепь управления (например оторвался С1 или D1 и LED), то симистор тоже будет всегда открыт и ничего не будет регулироваться. Но вот после этого: как-то некорректно советовать вам что-то проверять в этой схеме, даже если у вас есть тестер. Схема напрямую соединена с розеткой, а проверять надо при включённой. А для этого как минимум надо владеть основами техники безопасности при работе с сетевым напряжением. Без этого - очень опасно. Это какая ж может быть проблема в линейке светодиодов, чтоб они продолжали светиться, когда драйвер с них напряжение снял? Потеряли защитное покрытие, и запитываются напрямую с эфира? Смотря до какой температуры. От микросхем он достаточно далеко стоит. А вот если сдох, то греться будет прилично, и пульсации повысятся, и тогда запросто схема может глючить и до конца напряжение не снимать. Решил поискать по типу корпуса. нашел только RD30HVF1. Но там неуказан тип корпуса. Можите подсказать какой это тип корпуса?

Andrey 69

Похожий контент

Как заставить яркость светодиодов меняться при сложении и вычитании чисел?
Я просматриваю множество способов использования PWM или analogwrite() в Интернете и предполагаю, что возвращаемое значение моей кнопки будет таким
A5 5A 06 83 00 01 01 00 01
A5 5A 06 83 00 01 01 00 02
A5 5A 06 83 00 01 01 00 03
И так далее, то есть я использую analogwrite() для прямого считывания последней цифры?
Ниже приводится содержание моего дисплея.

Данный проект предназначен для управления RGB лампами с помощью дисплейного модуля STONE:

1. Управление цветом света
2. Управление яркостью света
3. Управление четырьмя режимами работы лампы

Принцип работы управляющего tft-lcd дисплея STONE

Модуль tft-lcd взаимодействует с MCU клиента посредством команд (шестнадцатеричный код), а MCU затем управляет работой подключенного устройства в соответствии с полученными командами.

Разработка графического интерфейса пользователя

Проводка и сварка

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

Адаптер питания 12В, который необходим для питания дисплейного модуля STONE STVC070WT-01 и для питания модуля MCU и лампы WS2812B_RGB путем понижения напряжения до 5В через dc-dc buck.
Аксессуары, используемые в проекте

Сварите эти части вместе, и эффект будет следующим:

Код драйвера STM32
Код STM32

Кнопки и текст на экране дисплея имеют соответствующие адреса. В данном проекте адреса компонентов экрана дисплея следующие:
Наконец, код загружается в микросхему STM32, и готовая печатная плата подключается к экрану дисплея управления, при этом гарантируется стабильность электропитания. Затем яркость и цвет RGB-лампы можно контролировать с помощью модуля дисплея управления STONE.
Окончательная схема подключения оборудования

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

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

HD44780

У таких ЖК индикаторов существуют выводы:
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:

Схема 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 для вышеизложенной схемы:

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

ЖК индикатор 8x2

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

Фьюз биты

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


Если аппарат умер по вине мастера, то угадайте, кто будет оплачивать эту гибель? Неправильно – клиент, если ситуация и впрямь была «пан или пропал» и мастер предупредил об этих рисках, а вот если не предупредил и решил действовать на авось, то да, тут уже открывай, мастер, карман.

Я как-то уже писал про правила, которыми стоит руководствоваться при ремонте, и среди этих правил в том или ином виде должно присутствовать следующее – не проверив, не отдавай. Причем проверка должна быть такой, чтобы гарантировать устранение неисправности. Лучше подольше. Но это все присказка. Теперь сказка.

Переходим к пациенту.

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

Опытным мастерам можно дальше не читать – они и так все это знают, а вот начинающим, возможно, это поможет сберечь время и нервы.

Итак, принесли мне на ремонт iPhone 6 с диагнозом – упал и перестал реагировать на касания. Иными словами, модуль жив, а вот тачскрин нет.



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


И вот, казалось бы, можно с видом профессионала своего дела ставить диагноз – замена дисплея. Но мы же помним про правила – не торопись. Мало ли что еще всплывет при разборе и ремонте.

Говорим клиенту, что итоговый диагноз сообщим чуть позже, когда проведем диагностику.


После вскрытия становится понятно, что дисплей уже стоит неоригинальный, а значит, это уже не первый ремонт, а значит, не первое падение аппарата. Видите, у модуля справа на шлейфе яблочки. 🙂 С одной стороны смешно, с другой стороны, китайцы почему-то не торопятся ставить яблочки на свои подделки.


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

Не торопитесь покупать новую запчасть – может получиться так, что дело совсем не в этом.

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




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

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


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

Включился и даже работает. Проверяем по всей площади, во всех местах – работает!


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

А дела у него неважно. Тач снова не реагирует, даже на 100% рабочем модуле. Печаль.


Хорошо, что мы раньше времени не обрадовали хозяина телефона и на радостях не посрывали пломбы с новой запчасти. В чем же дело?

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


Из-за этого, в процессе ремонта контроллера процессор может умереть.

Тут есть два пути, сложный и очень сложный.

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

Просто сложный метод состоит в том, чтобы попробовать «прогреть» контроллер. Это может устранить микрообрывы контактов под контроллером и в теории вернет контроллеру работоспособность. В пользу этого способа говорит тот факт, что новый модуль работает какое-то время после включения телефона – значит, контроллер пока не умер окончательно.

Это тоже непросто, но не так сложно, как полная замена. Если у вас есть фен (паяльный), то можно попробовать. Кстати, мастера любят пугать неофитов страшилками про iPhone 6 Plus, у которого всё еще сложнее и опаснее, а значит намного дороже! Это не правда. Всё там нормально, не сложнее чем в обычной шестерке.


Снимаем системную плату и греем ее.


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

Итак, после прогрева контроллера собираем все воедино и пробуем включить.

Работает! Проверяем спустя время – тоже работает!

А ну-ка, попробуем подкинуть старый модуль с засветом.


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

Заключение

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

Читайте также: