Перейти к содержанию
    

Здравствуйте, коллеги!

Речь пойдет больше про дисплеи, чем про МК, но более подходящей ветки я не смог найти.

Пытаюсь отладить устройство в котором STM32H7A3 должен управлять LCD 480*480 RGB 18bit на контроллере ST7701S. 

У дисплея есть SPI для инициализации. Посылаю в SPI несколько команд: команду выхода из спящего режима, команду на включение дисплея. После чего подаю команду, которая должна окрасить панель в белый цвет и останавливаюсь в бесконечном цикле. LTDC не инициализирую. 

При первом включении все происходит, как положено - дисплей равномерно окрашивается в белый цвет. Если оставить устройство включенным, то через несколько минут станет заметно, что дисплей начинает тускнеть (сереть), по краям появляется виньетирование. Если перевключить устройство, цвет не восстанавливается. Если подержать дисплей включенным час-другой белый цвет превратится в черный. Если после этого подать SPI-команду, погашающую пиксели, экран вместо того чтобы стать черным наоборот сделается светлее. Т.е. имеет место инверсия яркости  

Кроме того, вместо заливки белым с помощью SPI-команды на другом таком же "свежем" дисплее я пробовал инициализировать LTDC и выводить на дисплей графику (работу с LTDC и графику я до этого отладил на отладочной плате с таким же МК и дисплеем 480*272). Корректного вывода графики на новом дисплее, честно говоря, я не успел добиться, но нечто цветное дисплей показывал и таким же образом яркость и цвет постепенно падали и инвертировались.

Теперь вопросы, которые меня мучают: должна ли SPI-команда, которая зарисовывает дисплей белым, работать статитически, без тактирования LTDC?

Но даже если и не должна, с включенным LTDC цвет и яркость тоже плывут и включение-выключение начальное состояние не восстанавливают. 

В общем не хватает мне опыта работы с дислеями и нужен совет: на что можно грешить, принимая во внимание приведенный анамнез ?

 

Изменено пользователем Zuse

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, Zuse said:

должна ли SPI-команда, которая зарисовывает дисплей белым, работать статитически, без тактирования LTDC?

Нет: у драйвера нет памяти, без тактирования он ничего не может. Сперва запустите в нужном режиме LTDC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, aaarrr said:

Нет: у драйвера нет памяти, без тактирования он ничего не может. Сперва запустите в нужном режиме LTDC.

то что у драйвера нет памяти по факту не мешает драйверу закрашивать все пиксели белым и держать их в этом состоянии. Так что дело тут не в памяти

Но, ОК. Я готов допустить, что SPI-команда, которой я воспользовался, без тактирования может не работать корректно.

Но прямо вот сейчас у меня запущен LTDC. Вопрос корректности вывода через LTDC выведем пока за скобки. По факту экран горит желтым. Снимаю питание. Зажимаю reset контроллера, не отпуская сброс включаю устройство. Дисплей горит синим. А по документам это Normally black дисплей. Как он может гореть синим сразу после включения, даже не будучи выведенным из спящего режима?

Изменено пользователем Zuse

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 minutes ago, Zuse said:

Так что дело тут не в памяти

Не в памяти, в тактировании.

 

13 minutes ago, Zuse said:

Как он может гореть синим сразу после включения, не будучи выведенным из спящего режима?

Развертки на матрице нет. Что угодно может показывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, aaarrr said:

Развертки на матрице нет. Что угодно может показывать.

тогда, что означает "Normally black" ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Zuse said:

тогда, что означает "Normally black" ?

Цвет выключенного пиксела. Но без развертки выключить его нельзя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хех! Позапрошлой осенью (2020г) купил на ebay EPD-модуль, вывел на него картинку, отключил от питания и положил на полку шкафа. До сих пор он там лежит и показывает ту же самую картинку. Субъективно она даже нисколько не потускнела за прошедшие почти 1.5 года без питания!  :victory:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 пиксела.  Белый по-прежнему получился сине-зеленым с  затемнением в центре: 

image.thumb.png.b857f1751215e3e513c491cce6b2dd03.png

(на фотографии пятно в центре менее выражено, чем в реальности)

После вывода полос опять попробовал залить экран белым. В результате получил осветленную версию предыдущей картинки с белесыми полосами.

После попробовал вывести полосы в другом порядке (первая полоса черная). Порядок чередования изменился (т.е. за исключением сине-зеленого оттенка и виньетирования все ок).

Короче, пытаюсь нащупать какую-то закономерность и не получается. Буду рад выслушать любые идеи

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте тайминги. "Виньетирование" - признак отсутствия развертки.

 

16 minutes ago, Zuse said:

После попробовал вывести полосы в другом порядке (первая полоса черная). Порядок чередования изменился (т.е. за исключением сине-зеленого оттенка и виньетирования все ок).

Динамически попробуйте менять содержимое. Скорее всего, ничего меняться не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, aaarrr said:

Проверьте тайминги. "Виньетирование" - признак отсутствия развертки.

Динамически попробуйте менять содержимое. Скорее всего, ничего меняться не будет.

Динамически изменять попробую.

Вообще я пробовал снижать частоту развертки (до 15 Гц) и появлялось мерцание. Это не является признаком наличия развертки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, Zuse said:

Это не является признаком наличия развертки?

С одной стороны, является. Но с другой -

31 minutes ago, Zuse said:

попробовал залить верхнюю половину экрана белым, а нижнюю черным. Вместо появления внизу черной половины экран просто стал немного тусклее светить, чем когда я заливал его белым.

Бледные и неправильные цвета, "виньетирование", одинаковое содержимое во всех строках... В пользу отсутствия развертки аргументов пока явно больше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Zuse said:

Попробовал динамически менять чередование полос - меняется

Но разное содержимое в разных строках не получается вывести, верно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, aaarrr said:

Но разное содержимое в разных строках не получается вывести, верно?

Да, верно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже, отваливается после первой строки. То есть в таймингах экрану все же что-то не нравится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...