0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63
|
|
LCD 1602 инициализация только после Reset11.04.2017, 15:54. Показов 15236. Ответов 37
Метки нет Все метки)
(
Доброго времени суток.
Чрезвычайно удивляет ситуация, которая сложилась у меня с моим девайсом. Требуется совет. Имею в девайсе экранчик 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 | |
Ответы с готовыми решениями:
37
I2C и LCD 1602 STM32F030F4 + 74HC595 + 1602 LCD
|
![]() ![]() |
||
11.04.2017, 16:01 | ||
Попробуйте:
0
|
![]() ![]() |
|
11.04.2017, 16:04 | |
Видимо да. Если у вас 0x08 это выключить, а 0x08 | 0x04 это включить.
0
|
![]() ![]() |
|
11.04.2017, 16:08 | |
0
|
![]() ![]() |
|
11.04.2017, 16:13 | |
Попробуйте сначала в 4 битный, потом выключить, настроить и включить.
0
|
0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63
|
|
11.04.2017, 16:18 [ТС] | |
Так вся настройка и заключается в том, чтобы перевести в 4-х битный режим :-)
Сделал по-другому, убрал всё лишнее. Теперь только перевод в 4-х битный режим. Ждем 20 мс; Разрядность шины = 4 бит ($2); Разрядность шины = 4 Бит ($2); + размер символа ($8) Включение $0c Очистка; Ждем 5 мс; Добавлено через 13 секунд Ничего не изменилось
0
|
![]() ![]() |
||||||
11.04.2017, 16:18 | ||||||
Вот такое когда-то писал. Работало стабильно.
0
|
0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63
|
|
11.04.2017, 16:25 [ТС] | |
Rius, увы, пишу на ассемблере, не использую флаг Busy (RW вобще не использую), ваш синтаксис не понимаю, что где происходит, какие команды отправляются... вот если бы вы накинули задержки и команды в HEX-е, было бы замечательно
Добавлено через 1 минуту Склоняюсь, всё-таки, к аппаратной проблеме, ибо испробовал различные последовательности инициализации, плюс те что нашел на форумах, плюс друг своей библиотекой поделился, плюс сам ранее писал для этого дисплея, не было проблем ![]() Но всё же не пойму, где искать? Задержка после подачи питания никак не спасает. Добавлено через 1 минуту Смириться тоже не могу, ресет контроллера не выведен, оперирую проводочком и нулевой дорожкой...
0
|
![]() ![]() |
||||||
11.04.2017, 16:33 | ||||||
А нет, была у меня именно 4 битная шина.
Задержек не использовал. Команд в HEX нет в чистом виде, их много и 3 уровня абстракции) Ожидание в инициализации и в остальных командах выполнял так:
0
|
0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63
|
|
11.04.2017, 17:08 [ТС] | |
Rius, Вы прислали кусок кода чтения флага Busy и адреса в CGRAM, немного не то, чего бы мне хотелось :-) команды в HEX-е я имел ввиду те, которые Вы засылаете в LCD (должны же они быть, если Вы сами писали библиотеку).
Я в своем девайсе не могу читать флаг Busy, потому что ногу R/W LCD посадил на ноль. Ибо никогда ей не пользуюсь.
0
|
![]() ![]() |
|||||||||||||||||||||||||||||||||
11.04.2017, 17:17 | |||||||||||||||||||||||||||||||||
А этот синтаксис вы говорите, что не понимаете: Кликните здесь для просмотра всего текста
0
|
![]() ![]() |
||
11.04.2017, 17:39 | ||
0
|
![]() ![]() |
||
11.04.2017, 18:01 | ||
И тут советы посмотрите ещё: Графический и текстовый режим дисплеев Winstar.
0
|
Модератор
![]() 8962 / 6728 / 921
Регистрация: 14.02.2011
Сообщений: 23,752
|
||
11.04.2017, 18:08 | ||
я делал по вот такой схеме http://cxem.net/mc/mc134.php на разных процессорах и с разными дисплеями никогда проблем не было Добавлено через 3 минуты и еще 8битный режим(3) выставляем три раза
0
|
0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63
|
|||
11.04.2017, 18:11 [ТС] | |||
0
|
11.04.2017, 18:11 | |
Помогаю со студенческими работами здесь
20
как подружить stm32f4discovery + 16x2 (1602) lcd Вывод слова на LCD 1602 в МК PIC16F628 с помощью C++ Подключение LCD 1602 через I2C к STM32F4 без библиотеки Hal LCD 1602 не работает - подсвечиваются только ячейки первой строки Не находит адрес lcd 1602 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
|
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution
В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
|
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
|
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
|
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
|
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
|
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
|
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
|
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
|
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
|