Проблемы с ЖК-дисплеем (далее, для краткости буду называть его ЖКД — жидкокристаллический дисплей), похоже, являются самыми частыми проблемами при создании MegaDrum. И во многих случаях возникающую проблему описывают недостаточно точно, вроде «не работает», «ничего не происходит», «я ничего не вижу». В данном посте я постараюсь дать решение для большинства возникающих с ЖКД проблем.
Внимание! Рассматриваются только дисплеи 16x2, совместимые с HD44780. В узком смысле, совместимость с HD44780 означает следование интерфейсному стандарту, распиновка для которого такая:
Причём на самой плате пины могут располагаться по-разному, не обязательно прямой линией, возможно, например, разбиение на два ряда. Обязательно ознакомьтесь с документацией к вашему конкретному ЖК-модулю, чтобы знать наверняка. Главное, чтобы пины соответствовали приведённой выше интерфейсной таблице.
Более подробно можете прочитать здесь.
Рассмотрим теперь возможные проблемы и их решение.
1. HD44780-совместимые ЖКД делятся на два вида: с дополнительной подсветкой экрана и без. Соответственно они могут поставляться с 16 пинами и 14 пинами. Дисплеи с 14 пинами точно без подсветки. С другой стороны, дисплеи с 16 пинами могут и не иметь подсветки. ЖК модуль с подсветкой должен давать свет при подключении к плате, даже если всё остальное в нём неисправно. Если он даёт тусклый свет, то необходимо заменить резисторы на дигитальной плате (или на плате All-in-One от Synthex), которые идут на пины 15 и 16, на резисторы с меньшим номиналом. Брать резисторы нужно в пределах от 470R до 33R (т.е. от 470 Ом до 33 Ом). Если это ничего не изменит, замерьте напряжение между пинами 15 и 16 на ЖКД. Оно должно быть в пределах 3-5В. Если напряжение такое, то либо подсветка в ЖКД испорчена, либо ваш ЖКД не имеет подсветки вообще. Если напряжение 0В, проверьте провода/соединение с платой. Несколько человек сообщило о том, что на некоторых ЖК-модулях полярность диода подсветки перевёрнута — то есть если сравнивать с приведённой выше схемой интерфейса — пин 15 это LED(-), а пин 16 это LED(+). В таком случае просто поменяйте провода, идущие к пинам 15 и 16, местами.
2. Предположим, что вам удалось решить проблему с подсветкой. Хотя даже без подсветки с внешним источником освещения вы должны увидеть что-нибудь на ЖКД. Если вы ничего не видите — тому может быть несколько причин. Первая, и самая частая, — неправильно настроена контрастность. Контрастность управляется пином 3 на ЖКД. Чем ниже напряжение между пином 1 (земля) и пином 3, тем выше контрастность ЖКД. Соответственно, чем это напряжение выше, тем ниже контрастность. Контрастность экрана может упасть так низко, что на дисплее не будет видно ничего. Обычно напряжение на пине 3 должно быть между 0.5В (высокая контрастность) и 1.5В (низкая контрастность). На моём разработочном ЖКД лучшая контрастность получается при напряжении 0.9В.
Прежде, чем читать дальше, убедитесь, что у вас +5В между пинами 1 и 2 на ЖКД. Если это не так, проверьте соединение между ЖК-модулем и платой.
В старой версии MegaDrum конрастность ЖКД регулировалась потенциометром. Крайние выводы потенциометра были подключены к земле и +5В, а движок (средний вывод) — к пину 3 на ЖКД, так что можно было настроить этим потенциометром контрастность. Этот потенциометр может быть прецизионным (насколько мне известно, Synthex использовал этот тип потенциометров на своих старых китах до версии 2.8).
В текущей версии MegaDrum (включая киты Synthex 2.8), контрастность управляется прошивкой MegaDrum безо всяких потенциометров. Чтобы изменить контрастность (при условии, что ATMega прошит, правильно работает, и между ним и ЖКД установлена нормальная связь), необходимо войти в меню MegaDrum и перейти в первый пункт меню, где отображается надпись "<MegaDrum.info > (c)D.Skachkov" и при помощи клавиш ВВЕРХ/ВНИЗ повысить или понизить контрастность. Если контрастность не меняется, проверьте соединение между пином 3 на ЖКД и дигитальной платой. Также проверьте номиналы компонентов C9, R19 и R21 (по этой схеме), припаяны ли они правильно и нет ли коротких замыканий/разрывов.
Если передача данных между ATMega и ЖКД нарушена (но ATMega работает правильно), т.е. вы не видите ни индикаторов уровня сигналов (VU-метров), ни меню MegaDrum, то всё равно должно быть возможно изменить контрастность. Только в этом сучае при настройке контрастности вы должны видеть ряд чёрных квадратов в верхней строке ЖКД. Если вы измените контрастность при помощи потенциометра, но по-прежнему не видите чёрных квадратов, то ваш ЖКД неисправен. Если вы измените контрастность посредством прошивки (вслепую, посколько передача данных между ATMega и ЖКД, по всей видимости, нарушена; для это нажмите на клавишу ВЛЕВО и подержите несколько секунд, чтобы точно оказаться в первом пункте меню и затем нажимайте ВВЕРХ/ВНИЗ для изменения контрастности), но всё равно не видите чёрных квадратов, то либо ЖКД неисправен, либо ATMega работает неправильно. В таком случае временно замкните пин 3 с пином 1 на ЖКД. ОСТОРОЖНО! НЕ ЗАМКНИТЕ СЛУЧАЙНО ПИНЫ 1 И 2 НА ЖКД, ВЫ МОЖЕТЕ ПОВРЕДИТЬ USB ПОРТ ИЛИ ИСТОЧНИК ПИТАНИЯ! Если замкнуть пин 3 с пином 1 на ЖКД, контрастность LCD выставляется на максимум и чёрные квадраты в верхней строке ЖКД должны немедленно появиться. Если этого не произошло, то ваш ЖКД неисправен. Если они появляются, то ATMega работает неверно.
3. Предположим, что проблема с контрастностью решена, что ЖКД исправен, но VU-метры (если на входы не идут сигналы, то все VU-метры, за исключением педали хай-хета, если она открыта, должны отображать символ «_») и меню по-прежнему не видны. Тогда в силу вступают следующие возможные варианты (или их комбинация):
* ATMega неисправен. Замените его.
* ATMega не прошит. Прошейте его.
* Кристалл ATMega неисправен. Замените кристалл.
* К кристаллу подсоединены неправильные конденсаторы. Замените их.
* ATMega работает правильно (если MIDI активность успешно протестирована) но связь с ЖКД нарушена. Проверьте связь между пинами 4-14 ЖКД и соответствующими пинами ATMega и что нет коротких замыканий/разрывов на этих линиях. Если вы точно уверены, что соединения в порядке, то неисправен ваш ЖКД.
Надеюсь, проблемы с ЖКД теперь решены
-----
Оригинальная статья — Дмитрий
Перевод и некоторые дополнения — Firelord