Проблемы с отображением на LCD

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем vodozhaba, 15 июл 2017.

  1. vodozhaba

    vodozhaba Нерд

    Добрый день,
    Приобрёл дисплей MT20S4A, цвет - зелёным по чёрному и столкнулся с проблемой: символы выводятся, но очень тускло и чёрным на фоне зеленой подсветки, видно только под углом. Поначалу думал, что брак, но потом заметил, что при прошивке МК (ATmega48PA-PU) некоторыми прошивками (после попыток исправить) в поздние моменты прошивки на дисплей выводится мусор, после чего он на несколько секунд вспыхивает правильной расцветкой (зелёным по чёрному), а после прошивки все возвращается. А иногда не вспыхивает, трудно сказать, от чего зависит. Программатор - Olimex AVR-ISP500. Пины для программирования и управления дисплеем пересекаются следующим образом: MOSI - DB7, MISO - A0, SCK - RW. Дисплей подключён к МК по 4-битному соединению следующим образом: PB0-PB3 - DB4-DB7, PB4 - A0, PB5 - RW, PB6 - E. МК работает на частоте 128 кГц от внутреннего источника, прошивка - 14,07 кГц. Сторонних библиотек не использую, код прошивки вскоре выложу, как и схемы подключения. Для сборки и прошивки использую Atmel Studio 7. В чем может быть проблема?
     
  2. vodozhaba

    vodozhaba Нерд

    В даташите указана инструкция Function Set, а в ней обязательно установленный бит DB3. Если его сбросить, расцветка становится нормальной, но перестают быть доступны 2-я и 4-я строки. В оригинальном даташите на HD44780 этот бит как раз управляет количеством строк. Но что с расцветкой-то?
     
    Последнее редактирование: 15 июл 2017
  3. vodozhaba

    vodozhaba Нерд

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

    mcureenab Гуру

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