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

На STM32H743 (TouchGFX) при перепрошивке начинает дергаться изображение

Товарищи,

имеется STM32H743 к которому подключен дисплей(MIPI DSI 1280x720) через MIPI DSI мост. Имеется проект на TouchGFX с кучей экранов.

Вся графика грузится в QSPI-флэшку. Для видеобуфера используется внешняя SDRAM на 16 Мбайт.

В МК включен кэш данных и кэш инструкций.

Все работает. Но иногда после перепрошивки проекта в память МК может начать дергаться изображение всегда на одном и том-же экране. На всех других экранах изображение всегда стабильное. Перезагрузка не устраняет проблему, кабели тоже ни при чём.

Меняю в программе что-то совершенно незначительное, можно например добавить какую-нибудь переменную, пересобираю проект, заливаю в память МК(QSPI-флэшку не прошиваю) и все начинает работать нормально, ничто нигде не дергается.

Уже год вся эта шляпа длится, не могу найти причину.

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


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

2 minutes ago, TOG said:

Для видеобуфера используется внешняя SDRAM на 16 Мбайт.

Возможно и не в тему. Но у меня было подобное лет 10 назад на LPC2478, когда в SDRAM размещался исполняемый код и видеобуфер. Процессор занимал надолго шину, и DMA контроллера дисплея не мог получить доступ для обновления картинки. Возможно, у Вас что-то подобное. Кстати, ещё на работе лет 5 назад было такое же на LPC1788. Всё лечилось назначением приоритетов мастеров на AHB шине/

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


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

6 часов назад, TOG сказал:

Уже год вся эта шляпа длится, не могу найти причину.

Пора уже изучать и задействовать MPU. Точнее - это надо было сделать ещё год назад.

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


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

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

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


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

8 minutes ago, EdgeAligned said:

самое время задумываться

Об использовании command mode

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


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

1 час назад, EdgeAligned сказал:

Дергание изображения - признак нехватки пропускной способности канала "память - дисплей".

Не факт. Так как:

В 20.10.2023 в 10:18, TOG сказал:

Но иногда после перепрошивки проекта в память МК может начать дергаться изображение всегда на одном и том-же экране. На всех других экранах изображение всегда стабильное.

Если бы не хватало пропускной способности, то скорее всего дёргались бы все экраны и всегда.

 

Для проверки можно попробовать остановить МК отладчиком на дёргающемся экране. И посмотреть - перестаёт дёргаться или нет? Если перестал - баг скорее всего программный. Если конечно остановка МК отладчиком не останавливает работу интерфейса дисплея.

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


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

В 20.10.2023 в 14:18, TOG сказал:

Но иногда после перепрошивки проекта в память МК может начать дергаться изображение всегда на одном и том-же экране.

Ищите чем он отличается от других - номером, адресами, он последний или первый в каких-то списках и т.д.

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


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

А, так эти экраны не одновременно работают, а сменные? Ну тогда в другом вопрос - а дорожки как проведены на плате? Всё0таки для такого большого дисплея с DSI требуется выравнивание длины проводников.

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


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

1 час назад, EdgeAligned сказал:

А, так эти экраны не одновременно работают, а сменные?

Ага, каждый юзер приходит на работу со своим сменным экраном)) Шутка.

Очевидно, под "экранами" подразумеваются некие логически выделенные менюшки в GUI.
 

3 часа назад, jcxz сказал:

Если бы не хватало пропускной способности, то скорее всего дёргались бы все экраны и всегда.

ИМХО, мало информации для гадания. Может, на "глючном" экране идет слишком активная работа с графической библиотекой, или CPU в это время загружен гораздо сильнее доступами в общие ресурсы - ту же SDRAM, например. Вариантов много.

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


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

Просто я малость не понял как именно "дергается экран". Если этот "экран" занимает всю площадь дисплея, все 1024х768 пикс и дергаются строки по горизонтали, тогда это точно нехватка производительности памяти из-за каких либо доп.действий именно в этом "экране". Например, там постоянно перерисовывается часть изображения, занимая слишком большую часть времени в обмене с SDRAM.

Кстати, в H743 нет собственного DSI, есть только DPI. 
А вот SDRAM можно (и нужно) было ставить с 32-битной шиной данных для дисплея с таким числом пикселей. 

Видео дефекта и описание железа в плане SDRAM и дисплея внесло бы больше ясности.

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


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

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

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

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

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

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

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

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

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

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