Знакомый радиолюбитель презентовал мне несколько дисплеев от принтеров, которые у него давно лежали без дела. Когда появилась минутка свободного времени, я решил поиграться и попробовать запустить их.
Сначала предстояло выяснить распиновку дисплея и модель управляющего контроллера. При осмотре дисплея на плате была обнаружена маркировка "RM1-6356 RK22715 LCD DISP PCA GB-08". Путём поиска в гугле я выяснил, что это дисплей от принтера HP LaserJet P2055. Скачав сервис-мануал на принтер, я обнаружил там весьма скудную блок-схему, на которой выводы дисплея были обозначены крайне непонятным образом. Единственное, что было понятно из блок-схемы - дисплей подключается по последовательной шине. Пришлось продолжить поиски. Были перекопаны сотни сайтов, по фотографиям принтера я узнал, что это символьный дисплей на 2 строки по 16 символов. После долгих поисков я наконец-то нашёл даташит на похожий дисплей. Далее путём сопоставления информации из сервис-мануала, даташита на подобный дисплей, мультиметра, и анализа печатной платы дисплея, была установлена предполагаемая распиновка дисплея, а также определён предполагаемый контроллер дисплея - Sitronix ST7032.
В даташите указано, что данный контроллер может работать через различные интерфейсы: параллельный 8-битный, параллельный 4-битный, и последовательный. Используемый интерфейс выбирается при помощи специальных ножек контроллера, подавая на которые комбинации "1" и "0" будет выбираться соответствующий интерфейс. К сожалению, в моём дисплее пины для выбора интерфейса не выведены наружу, соответственно выбор интерфейса не предусмотрен, поэтому дисплей будет работать только по последовательному интерфейсу.
Я подключил дисплей к макетной плате с микроконтроллером ATmega48PA как показано на схеме.
В среде AVR Studio 5 была написана тестовая прошивка. После подачи питания и прошивки микроконтроллера, дисплей заработал сразу, но символы отображались только в верхней строке, также была недостаточная контрастность изображения. Эти проблемы я быстро исправил путём записи правильных значений в регистры при инициализации, и дисплей заработал должным образом.
Контроллер дисплея ST7032 имеет систему команд совместимую с HD44780, но инициализация немного отличается от стандартной. Из преимуществ данного дисплея можно отметить: небольшое количество выводов для подключения к микроконтроллеру, широкий диапазон питающего напряжения (работает как от 3 Вольт, так и от 5 Вольт), а также программную регулировку контрастности. Ещё данный дисплей путём подачи специальной команды умеет превращаться в однострочный, при этом шрифт становится удвоенный по высоте. Выглядит это вот так:
Для всех желающих выкладываю исходный код, вдруг кому-то пригодится. Реализованы все необходимые функции для работы с дисплеем: инициализация, очистка, управление курсором, настройка контрастности, вывод букв, строк, чисел.
Прикрепленные файлы:
- ST7032_Sitronix.pdf (1057 Кб)
- LCD_HP_LaserJet_P2055_Zlodey_v20200229.zip (102 Кб)
Комментарии (8) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Работают нормально и контрастность регулируется так же. Подстроечным резистором на третью ногу (Vo).
Распиновка совпадает полностью, за исключением того, что пины D0-D3 не выведены. И нет пинов подсветки.
Т.е. попросту те пины которые обычно не подключаем по 4 битной версии, отсутствуют на таких дисплеях.
[Автор]
Распиновка контактов разъема LCD по плате:
1 - не используется
2 - +5V
3 - GND
4 - к контроллеру
5 - к контроллеру
6 - к контроллеру
7 - к контроллеру
8 - к контроллеру
9 - GND
10 - GND
11 - к контроллеру
12 - +5V
13 - +3.3V LED
14 - GND LED
15 - не используется
Представляется вероятным, что контакты 4-7 это данные, а 8-10 управление (E и CS).
[Автор]