|
0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63
|
|
LCD 1602 инициализация только после Reset11.04.2017, 15:54. Показов 21402. Ответов 77
Метки нет (Все метки)
Доброго времени суток.
Чрезвычайно удивляет ситуация, которая сложилась у меня с моим девайсом. Требуется совет. Имею в девайсе экранчик LCD типа 1602 (какой то китайский друг), подключается по 4х битной шине. Последовательность инициализации коротко: Настраиваем порт; Ждем 20 мс; Разрядность шины = 8 бит ($3); NOP ($0 - это для случая, если экран был инициализирован под 4-х битную разрядность: переводим обратно в 8-битный режим); Ждем 4.1 мс; Разрядность шины = 8 бит ($3); Ждем 100 мкс; Разрядность шины = 4 Бит ($2); Ждем; Разрядность шины = 4 Бит ($2); + размер символа ($8) Очистка; Ждем 5 мс; Проблема в следующем. При включении питания экран не инициализируется. Первая строка залита черными квадратами. Если микроконтроллер сбросить, инициализация и вывод на экран проходит в штатном режиме. Пробовал увеличивать время первоначального ожидания (фактически делал остановку, пока не будет нажата кнопка, выжидал секунды). Пробовал садить RESET контроллера на ноль, после этого подавать питание, немного погодя отпускать RESET - та же история. Пробовал увеличивать все задержки по максимуму (1,5 мс - строб = 1 - 1,5 мс - строб = 0 - 1,5 мс), не помогает. То, что дисплей после сброса работает четко, наталкивает на мысль, что выдержки я выбрал правильно. Не понятно, почему заводится только после ресета... P.S. В протеусе всё ОК.
0
|
|
| 11.04.2017, 15:54 | |
|
Ответы с готовыми решениями:
77
I2C и LCD 1602 STM32F030F4 + 74HC595 + 1602 LCD
|
|
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 380
|
|||
| 27.05.2025, 19:10 | |||
|
я использую в
В даташите 8-ми и 4-х битный указаны. Дисплею всё равно, напрямую с контроллера идёт или через айтуси прокладку ![]() В принципе мой ответ под заголовок темы..
0
|
|||
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
||
| 27.05.2025, 20:15 | ||
Сообщение было отмечено ValeryS как решение
Решение- 8-битный, готов к приему команды целиком - 4-битный, готов к приему старшей тетрады команды - 4-битный, старшую тетраду команды принял, ждет младшую тетраду. Для перевода его в 4-битный режим нужно 3 раза подать команду 3x и 1 раз 2x. Обозначим эти команды как a, b, c, d Допустим, дисплей был в 8-битном режиме. Тогда: команда a - не влияет на работу, он и так в 8-битном режиме команда b - то же самое команда c - то же самое команда d - воспринимается как 8-битная команда и переводит в 4-битный режим. Допустим, дисплей был в 4-битном режиме и ждал команду. Тогда: команда a - воспринимается как старшая тетрада команды перевода в 8-битный режим команда b - воспринимается как младшая тетрада команды перевода в 8-битный режим, дисплей переходит в 8-битный режим команда c - не влияет на работу, он и так в 8-битном режиме команда d - воспринимается как 8-битная команда и переводит в 4-битный режим. Теперь допустим, дисплей был в 4-битном режиме и уже получил первую тетраду команды когда проц сбросили. Тогда: команда a - воспринимается как младшая тетрада предыдущей команды. Да и фиг с ней, все равно инитим дисплей. команда b - воспринимается как старшая тетрада команды перевода в 8-битный режим команда c - воспринимается как младшая тетрада команды перевода в 8-битный режим, дисплей переходит в 8-битный режим команда d - воспринимается как 8-битная команда и переводит в 4-битный режим. Эта последовательность работает 100% с любым 44780-совместимым дисплеем. Добавлено через 9 минут Добавлено: кстати да, эта последовательность описана в некоторых даташитах на контроллер, но нигде не дается ее объяснение, до него я доходил сам.
2
|
||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
|
| 29.05.2025, 16:14 | |
|
извиняюсь но вот ваш ответ не объясняет как после перевода в 4 бит режим давать следующие команды уже по 4 шинам , да и ни черта у меня не работало по этой стандартной , везде упомянутой схеме. Может китайцы намудрили но у меня заработало совсем по другому.
0
|
|
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
||
| 29.05.2025, 20:14 | ||
|
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 29.05.2025, 20:30 | |||
![]() всю жизнь использовал
0
|
|||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
|
| 30.05.2025, 10:58 | |
|
Dushevny а вот и неправильно , вы так много начинающих введёте в заблуждение . в 4 битном режиме надо посылать уже 4 байта на одну команду или символ только вот прикол как я уже раньше и говорил что для перевода в 4 битный режим нужно всего 2 байта послать а уже настройки по 4 байта посылать вот об этом нюансе я говорю.
0
|
|
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
||
| 30.05.2025, 11:34 | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
||
| 30.05.2025, 11:44 | ||
|
0
|
||
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
||
| 30.05.2025, 11:53 | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
||
| 30.05.2025, 11:57 | ||
|
0
|
||
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
|
| 30.05.2025, 11:59 | |
|
Хотя... Есть у меня одно предположение: я писал о посылках, которые надо подать на контроллер дисплея. Каждая посылка дисплею состоит из перевода входа E контролера в 1 и потом перевода его в 0. Разумеется, каждое это действие требует отдельной посылки на расширитель I2C, через который у вас подключен контроллер дисплея.
0
|
|
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
|
| 30.05.2025, 12:01 | |
|
дополнительные 2 байта нужны для сброса строба Е в 0
0
|
|
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
|
| 30.05.2025, 12:02 | |
|
Ну вот и разобрались.
0
|
|
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
|
| 31.05.2025, 17:40 | |
|
да разобрались и НЮАНЬСИК есть.
0
|
|
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
||
| 31.05.2025, 19:57 | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
|||
| 01.06.2025, 12:02 | |||
|
все такие специалисты, даже Вы мне писали что в 4 битном режиме нужно 2 посылки делать .
Вот в этом даташите почти правильно написано на 11 странице и то надо домысливать.
1
|
|||
|
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 380
|
|
| 01.06.2025, 12:10 | |
|
За документ спасибо..
![]() Но я повторюсь: разницы нет, управлять дисплеем напрямую с контроллера или через i2c контроллер. Потому как дисплей не понимает кто им управляет, он понимает только управляющие последовательности
1
|
|
|
1510 / 527 / 76
Регистрация: 22.09.2023
Сообщений: 1,674
|
||
| 01.06.2025, 13:30 | ||
|
1
|
||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
|||
| 01.06.2025, 17:17 | |||
|
Добавлено через 5 минут всегда пожалуйста
0
|
|||
|
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 380
|
|||
| 01.06.2025, 17:37 | |||
![]() Я вообще-то говорил что: Допустим вы дёргаете строб, на Atmeg-е за 1 такт.. Берёте другой МК - у вас на дёрнуть стробом уйдёт 7 тактов.. Какая дисплею разница как это реализовано ![]() Или под каждую ситуацию отдельный ДШ писать? ![]() Вам нужно соблюсти на выходе промежуточного преобразователя интерфейса необходимую последовательность, и всё. Каким образом вы это реализуете- всем на это пофиг, и разработчикам и дисплею.
0
|
|||
| 01.06.2025, 17:37 | |
|
как подружить stm32f4discovery + 16x2 (1602) lcd Вывод слова на LCD 1602 в МК PIC16F628 с помощью C++ Подключение LCD 1602 через I2C к STM32F4 без библиотеки Hal LCD 1602 не работает - подсвечиваются только ячейки первой строки Не находит адрес lcd 1602 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|