|
0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63
|
|
LCD 1602 инициализация только после Reset11.04.2017, 15:54. Показов 21340. Ответов 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
|
|||
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
||
| 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
|
|
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
||
| 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
|
|
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
||
| 30.05.2025, 11:34 | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
||
| 30.05.2025, 11:44 | ||
|
0
|
||
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
||
| 30.05.2025, 11:53 | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
||
| 30.05.2025, 11:57 | ||
|
0
|
||
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
|
| 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
|
|
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
|
| 30.05.2025, 12:02 | |
|
Ну вот и разобрались.
0
|
|
|
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
|
|
| 31.05.2025, 17:40 | |
|
да разобрались и НЮАНЬСИК есть.
0
|
|
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
||
| 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
|
|
|
1509 / 526 / 76
Регистрация: 22.09.2023
Сообщений: 1,667
|
||
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|