Comments 21
Создавать две статьи из-за дополнительных 4 бит выглядит немного странным. Проще было бы объединить, так как общего очень много.
Но ещё было бы интересно увидеть разницу между этими режимами на таком мелком экране.
Ну рунете инфы по этой теме мало, поэтому пускай будет
Если будет две одинаковые статьи, то от этого информации больше не станет.
Эта тема даже на хабре давно присутствует. Какой то смысл возможно имела бы статья об особенностях инициализации LCD индикаторов от MELT или примеры использования пользовательских символов.. Но там же самому что то писать надо, а тут целый "перевод", достойный "инженера по автоматизации"
Потому что работу с HD447XX все освоили примерно в середине нулевых. Вот тогда бы мне эти посты пригодились. Да и то, хорошо, что пришлось разбираться самому и теперь мне вообще пофигу что по какому интерфейсу подключать: открыл мануал, сделал. Иногда не без проблем, но на то мы и опытные практики, чтоб их решать.
Я вот точно помню, что ждать 180 мс не нужно, есть флаг готовности и по нему можно проверять готов ли модуль к следующей команде, может стоит им воспользоваться?
Каждый разработчик решает это по-своему на основании данных из datasheet и экспериментальных данных. Я лишь показал только вариант
Это надо лишнюю ножку использовать. А учитывая тормознутость самого дисплея и малые объемы данных, эти 180 мс не влияют ни на что. Собственно, именно поэтому 8-битный режим сейчас не используется. Тащить 6 ног или 11 — есть разница! А для особенно жадных есть еще и платы-переходники, например, под I2C, там вообще 2 ноги, причем их можно продолжать использовать для других I2C устройств.
8-битный режим был отчасти актуален если вешать дисплей прямо на системную шину, где и так есть все нужные сигналы. А сейчас, когда все это приходится эмулировать — не более чем атавизм.
Тащить 6 или 11 — да.
А вот "продолжать использовать 2 ноги I2C" — притянуто за уши. Линия дисплея "E" — является, по сути, chip select'ом. А все остальные — можно разделять с другой аппаратурой.
Да. Можно хоть кнопки навесить на эти линии. Пока EN поднят, дисплею глубоко всё равно, что происходит на его шине данных.
И не только ради системной шины можно, но и ради того, чтобы выделить под дисплей целый порт МК и одной строкой кода выставлять на выводах команду или данные.
А вот "продолжать использовать 2 ноги I2C"
Это вообще отдельная ситуация, которая требует использования дополнительной платы.
Линия дисплея "E" — является, по сути, chip select'ом. А все остальные — можно разделять с другой аппаратурой.
При желании можно. Вот только библиотеку работы с дисплеем придется допилить.
Пока EN поднят, дисплею глубоко всё равно, что происходит на его шине данных.
Пока EN опущен — тоже. Важен именно фронт переключения.
И не только ради системной шины можно, но и ради того, чтобы выделить под дисплей целый порт МК и одной строкой кода выставлять на выводах команду или данные.
Так на современных МК все равно не получается. Так и так управляющие линии приходится дергать отдельно от линий данных.
А можно глупый вопрос - кто-то сейчас эти индикаторы в параллельном режиме еще использует? Ну то есть я понимаю, что это легаси 20+ летней давности времён 8080 - тогда такой вариант подключения был удобен. Но после появления массового адаптера на i2c использовать минимум 6 ножек контроллера на LCD? Серьезно?
Или может я что-то не понимаю и все тру-разработчики именно так и делают?
не туда написал
Раз уж всё равно есть этот коммент, то отвечу. Ещё кое-где используется, потому что "работает - не трогай". Вот недавно пришлось править код общения с таким дисплеем, потому что были некоторые схемотехнические проблемы, которые частично удалось заткнуть программно.
Мы использовали в паре проектов. Если у МК есть лишние ноги, или у МК основная функция - работать с экраном и клавиатурой, зачем ещё один чип ставить?
Цена вопроса в массовом производстве. Экономия одной микросхемы сказывается на цене.
Недавно как раз добавлял как раз I2C драйвер по настоятельной просьбе заказчика на МЕЛТовский LCD Тут есть однако одно оправдание - сам этот драйвер всё равно подключается по 4 битному I2C интерфейсу и ознакомиться с ним бывает полезно. Приходится использовать мелтовские, когда нужны русские шрифты. Кстати, про само такое подключение на Хабре уже есть отличная статья. Вот только у Мелтовских есть одно мелкое отличие в инициализации, в результате которого они не работают со стандартными драйверами.
Вопрос ровно тот же, что в 4-битном режиме. Зачем такая длинная задержка после каждого символа?
Не понятно чего статью минусуют. Нормальный перевод. Пускай кто не знает учится разным вариантам подключения. С чего-то надо начинать.
Подключение жидкокристаллического дисплея LCD1602 (HD44780) к микроконтроллеру ATmega8 в 8-битном режиме