Zuse 0 1 февраля, 2022 Опубликовано 1 февраля, 2022 (изменено) · Жалоба Здравствуйте, коллеги! Речь пойдет больше про дисплеи, чем про МК, но более подходящей ветки я не смог найти. Пытаюсь отладить устройство в котором STM32H7A3 должен управлять LCD 480*480 RGB 18bit на контроллере ST7701S. У дисплея есть SPI для инициализации. Посылаю в SPI несколько команд: команду выхода из спящего режима, команду на включение дисплея. После чего подаю команду, которая должна окрасить панель в белый цвет и останавливаюсь в бесконечном цикле. LTDC не инициализирую. При первом включении все происходит, как положено - дисплей равномерно окрашивается в белый цвет. Если оставить устройство включенным, то через несколько минут станет заметно, что дисплей начинает тускнеть (сереть), по краям появляется виньетирование. Если перевключить устройство, цвет не восстанавливается. Если подержать дисплей включенным час-другой белый цвет превратится в черный. Если после этого подать SPI-команду, погашающую пиксели, экран вместо того чтобы стать черным наоборот сделается светлее. Т.е. имеет место инверсия яркости Кроме того, вместо заливки белым с помощью SPI-команды на другом таком же "свежем" дисплее я пробовал инициализировать LTDC и выводить на дисплей графику (работу с LTDC и графику я до этого отладил на отладочной плате с таким же МК и дисплеем 480*272). Корректного вывода графики на новом дисплее, честно говоря, я не успел добиться, но нечто цветное дисплей показывал и таким же образом яркость и цвет постепенно падали и инвертировались. Теперь вопросы, которые меня мучают: должна ли SPI-команда, которая зарисовывает дисплей белым, работать статитически, без тактирования LTDC? Но даже если и не должна, с включенным LTDC цвет и яркость тоже плывут и включение-выключение начальное состояние не восстанавливают. В общем не хватает мне опыта работы с дислеями и нужен совет: на что можно грешить, принимая во внимание приведенный анамнез ? Изменено 1 февраля, 2022 пользователем Zuse Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 февраля, 2022 Опубликовано 1 февраля, 2022 · Жалоба 29 minutes ago, Zuse said: должна ли SPI-команда, которая зарисовывает дисплей белым, работать статитически, без тактирования LTDC? Нет: у драйвера нет памяти, без тактирования он ничего не может. Сперва запустите в нужном режиме LTDC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zuse 0 1 февраля, 2022 Опубликовано 1 февраля, 2022 (изменено) · Жалоба 19 minutes ago, aaarrr said: Нет: у драйвера нет памяти, без тактирования он ничего не может. Сперва запустите в нужном режиме LTDC. то что у драйвера нет памяти по факту не мешает драйверу закрашивать все пиксели белым и держать их в этом состоянии. Так что дело тут не в памяти Но, ОК. Я готов допустить, что SPI-команда, которой я воспользовался, без тактирования может не работать корректно. Но прямо вот сейчас у меня запущен LTDC. Вопрос корректности вывода через LTDC выведем пока за скобки. По факту экран горит желтым. Снимаю питание. Зажимаю reset контроллера, не отпуская сброс включаю устройство. Дисплей горит синим. А по документам это Normally black дисплей. Как он может гореть синим сразу после включения, даже не будучи выведенным из спящего режима? Изменено 1 февраля, 2022 пользователем Zuse Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 февраля, 2022 Опубликовано 1 февраля, 2022 · Жалоба 12 minutes ago, Zuse said: Так что дело тут не в памяти Не в памяти, в тактировании. 13 minutes ago, Zuse said: Как он может гореть синим сразу после включения, не будучи выведенным из спящего режима? Развертки на матрице нет. Что угодно может показывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zuse 0 1 февраля, 2022 Опубликовано 1 февраля, 2022 · Жалоба 4 minutes ago, aaarrr said: Развертки на матрице нет. Что угодно может показывать. тогда, что означает "Normally black" ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 февраля, 2022 Опубликовано 1 февраля, 2022 · Жалоба 1 minute ago, Zuse said: тогда, что означает "Normally black" ? Цвет выключенного пиксела. Но без развертки выключить его нельзя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 1 февраля, 2022 Опубликовано 1 февраля, 2022 · Жалоба Хех! Позапрошлой осенью (2020г) купил на ebay EPD-модуль, вывел на него картинку, отключил от питания и положил на полку шкафа. До сих пор он там лежит и показывает ту же самую картинку. Субъективно она даже нисколько не потускнела за прошедшие почти 1.5 года без питания! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zuse 0 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба 22 hours ago, aaarrr said: Сперва запустите в нужном режиме LTDC Запустил LTDC. Сначала попробовал залить все белым. По факту экран оказался залит светлым оттенком сине-зеленого цвета с явным затемнением в центре. Изменил цвет на черный. Черный оказался более-менее похож на черный. Подумал, что, возможно, код белого по какой-то причине неверный - перевел линии R[0:5], G[0:5], B[0:5] в режим портов и выставил на них сначала 1, потом 0. Результат тот же (сине-зеленый вместо белого). Перевел R[0:5], G[0:5], B[0:5] обратно в режим RGB и попробовал залить верхнюю половину экрана белым, а нижнюю черным. Вместо появления внизу черной половины экран просто стал немного тусклее светить, чем когда я заливал его белым. Попробовал нарисовать чередование вертикальных белых и черных полос шириной 64 пиксела. Белый по-прежнему получился сине-зеленым с затемнением в центре: (на фотографии пятно в центре менее выражено, чем в реальности) После вывода полос опять попробовал залить экран белым. В результате получил осветленную версию предыдущей картинки с белесыми полосами. После попробовал вывести полосы в другом порядке (первая полоса черная). Порядок чередования изменился (т.е. за исключением сине-зеленого оттенка и виньетирования все ок). Короче, пытаюсь нащупать какую-то закономерность и не получается. Буду рад выслушать любые идеи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба Проверьте тайминги. "Виньетирование" - признак отсутствия развертки. 16 minutes ago, Zuse said: После попробовал вывести полосы в другом порядке (первая полоса черная). Порядок чередования изменился (т.е. за исключением сине-зеленого оттенка и виньетирования все ок). Динамически попробуйте менять содержимое. Скорее всего, ничего меняться не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zuse 0 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба 3 minutes ago, aaarrr said: Проверьте тайминги. "Виньетирование" - признак отсутствия развертки. Динамически попробуйте менять содержимое. Скорее всего, ничего меняться не будет. Динамически изменять попробую. Вообще я пробовал снижать частоту развертки (до 15 Гц) и появлялось мерцание. Это не является признаком наличия развертки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба 5 minutes ago, Zuse said: Это не является признаком наличия развертки? С одной стороны, является. Но с другой - 31 minutes ago, Zuse said: попробовал залить верхнюю половину экрана белым, а нижнюю черным. Вместо появления внизу черной половины экран просто стал немного тусклее светить, чем когда я заливал его белым. Бледные и неправильные цвета, "виньетирование", одинаковое содержимое во всех строках... В пользу отсутствия развертки аргументов пока явно больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zuse 0 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба Попробовал динамически менять чередование полос - меняется Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба 1 minute ago, Zuse said: Попробовал динамически менять чередование полос - меняется Но разное содержимое в разных строках не получается вывести, верно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zuse 0 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба Just now, aaarrr said: Но разное содержимое в разных строках не получается вывести, верно? Да, верно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 февраля, 2022 Опубликовано 2 февраля, 2022 · Жалоба Похоже, отваливается после первой строки. То есть в таймингах экрану все же что-то не нравится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться