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

    

STM32F429 Discovery / uGFX

Провожу эксперименты на Дискавери 429 . Использую uGFX, при работе с родным LCD все устраивает. Но хочется большего. Подключил внешний LCD 800х480. Очень заметно мерцание. Повысил в два раза частотту тактирования интерфейса LTDC процессора. Мерцание снизилось до приемлемого, но при перерисовке ГУИ появились серьезные артефакты. Далее действовал методом научного тыка, а именно запретил UGFX использовать DMA2D, было интересно узнать насколько все ухудшится. Но, странно, артефакты пропали, хотя скорость перерисовки заметно снизилас. Во всех случаях RGB565 и максимальный уровень оптимизации.

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

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


Ссылка на сообщение
Поделиться на другие сайты
Но, странно, артефакты пропали, хотя скорость перерисовки заметно снизилас.

 

А что тут странного-то?? Там узкое место скорость памяти, снизили загрузку шины, уменьшилась скорость отрисовки и стало стабильнее изображение - все логично :laughing:

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


Ссылка на сообщение
Поделиться на другие сайты
А что тут странного-то?? Там узкое место скорость памяти, снизили загрузку шины, уменьшилась скорость отрисовки и стало стабильнее изображение - все логично :laughing:

 

 

Если свою плату делать с 32 битовой SDRAM то можно ожидать удовлетворительной работы с разрешением 800х480? Или сразу смотреть в сторону STM32F7xx/ STM32H7xx ?

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


Ссылка на сообщение
Поделиться на другие сайты
Если свою плату делать с 32 битовой SDRAM то можно ожидать удовлетворительной работы с разрешением 800х480? Или сразу смотреть в сторону STM32F7xx/ STM32H7xx ?

 

И что вы там увидите? Правильно, ту же сд-рам :biggrin:

 

32бита это максимум, как можно увеличить скорость, дальше только контроллеры с ДДР, но это уже не к СТМу...

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


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

Некоторые делают двойной буфер кадра, чтобы не мерцало.

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


Ссылка на сообщение
Поделиться на другие сайты
Если свою плату делать с 32 битовой SDRAM то можно ожидать удовлетворительной работы с разрешением 800х480? Или сразу смотреть в сторону STM32F7xx/ STM32H7xx ?

с разрешением 800х480, ... смотреть только в сторону старших армов с DDR3/4, под линуксами и там где есть нормальный GUI и тп.

C STM32H7xx не все алё.

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


Ссылка на сообщение
Поделиться на другие сайты
Некоторые делают двойной буфер кадра, чтобы не мерцало.

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
с разрешением 800х480, ... смотреть только в сторону старших армов с DDR3/4, под линуксами и там где есть нормальный GUI и тп.

C STM32H7xx не все алё.

Не горячитесь вы так. Если кино не надо показывать, то и не нужны все эти старшие.

Статическую картинку кто угодно отрисует. Главное, чтобы совсем уж не тормозило. А от мерцания - двойной буфер в помощь.

 

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

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

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


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

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

И никакая двойная буферизация не поможет - даже статичная картинка все равно вычитывается из памяти и отрисовывается с отображением прямо на пиксели.

Я поднимал частоту и делал другой формат: не RGB888, а ARGB565. Никаких мерцаний на дисплее 800x480.

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


Ссылка на сообщение
Поделиться на другие сайты
Как было уже озвучено - все упирается в пропускную способность шины.

И никакая двойная буферизация не поможет - даже статичная картинка все равно вычитывается из памяти и отрисовывается с отображением прямо на пиксели.

Я поднимал частоту и делал другой формат: не RGB888, а ARGB565. Никаких мерцаний на дисплее 800x480.

 

Картинка близка к статичной, таблицы, менюшки, текстовые поля. Формат у меня тоже 565б Я бы готов и и 8 битный CLUT использовать, но, насколько я понимаю, в этом случае придется попрощаться со сглаживанием шрифтов, что меня не устраивает.

И да, проблема не в мерцании, оно лечится повышением частоты, а в возникающих при этом повышении артефактах.

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

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


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

Ну покажите артефакты тогда. У меня артефакты были при некачественом питании SDRAM.

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


Ссылка на сообщение
Поделиться на другие сайты
Ну покажите артефакты тогда. У меня артефакты были при некачественом питании SDRAM.

Если только завтра. Все дела на работе, а я уже дома. Пока могу описать словами. Артефакты очень серьезные. при перемещении курсора - выделенной цветом строки по таблице, рваное изображение этой же таблицы мелькает в стороне от нее. Как то так. В принципе при отключении DMA2D все почти приемлемо, но оставляет неприятное впечатление начальное прорисовывание экрана, сравнительно медленное. Тем более что картинка пока осталась от прежнего LCD 320x240, после того как я переделаю ее на весь 800х480 это станет еще более заметным

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

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


Ссылка на сообщение
Поделиться на другие сайты
Если только завтра. Все дела на работе, а я уже дома. Пока могу описать словами. Артефакты очень серьезные. при перемещении курсора - выделенной цветом строки по таблице, рваное изображение этой же таблицы мелькает в стороне от нее. Как то так. В принципе при отключении DMA2D все почти приемлемо, но оставляет неприятное впечатление начальное прорисовывание экрана, сравнительно медленное. Тем более что картинка пока осталась от прежнего LCD 320x240, после того как я переделаю ее на весь 800х480 это станет еще более заметным

 

У меня подобное было, когда кэш был неправильно настроен, но в данном МК его нет, поэтому странно, как-будто что-то с таймингами.

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


Ссылка на сообщение
Поделиться на другие сайты
Некоторые делают двойной буфер кадра, чтобы не мерцало.

 

двойной буфер кадра не чтоб не мерцало, а чтоб не было артефактов? То есть имеем две копии экранов, перерисовываем в теневом, а потом переключаем? Интересно, uGFX поддерживает такую технику? Ухожу читать...

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

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


Ссылка на сообщение
Поделиться на другие сайты
двойной буфер кадра не чтоб не мерцало, а чтоб не было артефактов? То есть имеем две копии экранов, перерисовываем в теневом, а потом переключаем? Интересно, uGFX поддерживает такую технику? Ухожу читать...

Двойной буфер, чтобы не раздражала медленная прорисовка. Если артефакты от затыка на шине, двойной буфер не в тему - второй буфер на той же шине, что и первый.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация