STM32F4 LTDC и дисплеи подходящие для этого интерфейса.
- Войдите на сайт для отправки комментариев
Чт, 16/07/2020 - 09:01
Всем привет! Кто-нибудь знает какие дисплеи работают по интерфейсу LTDC? Вот к примеру у меня есть дисплей на драйвере ILI9486 разрешением 480х320, шина 16 бит. Его реально подключить к STM по LTDC? Подключал его по FSMC с максимально возможной скоростью STMки F407, но получилось разогнаться до частоты обновления экрана(ни одним цветом, а именно вывод картинки) 10Гц. И вот никак не могу найти инфу какие дисплеи жуют LTDC. Читая RM на мой камень толком ничего по своему вопросу не понял(
проблема не в дисплее , а в том что в stm32f407 нет LTDC.
судя по даташиту контроллера экрана , скорость обращения при записи , может быть до 20 MHz ,
при такой частоте обновление экрана разрешением 480х320 может происходить до 130 раз в секунду , а шина FSMC мозжет фунционировать на частоте больсшей чем 20 MHz (сколько точно ,не скажу ибо надо лезть в Reference manual MCU)
какой у вас модуль экрана , на какой интерфейс сконфигурирован "из коробки"(RGB565 ,8080-8 , 8080-16 ,SPI ...) и может ли он быть перегонфигурирован известно только вам и китайцу который вам его прислал.
Да, про отсутствие LTDC на F407 я узнал после того как купил отладочную плату) как в поговорке - "Сначала сделал, потом подумал!"). Дисплей подключен по 8080-16бит. Все делители, множители частоты выставил так, чтобы получить максимально возможные скорости на шинах. Проект написал на CMSIS, вродь все правильно. Но единственное смутило то что, когда писал инициализацию системы тактирования, увидел что флешь память на борту микроконтроллера, способна работать без ошибок на частоте не выше 24МГц. Т.е. пришлось выбрать латентность флешь 6 тактов при частоте шины AHB 168МГц. Ну поэтому и смог выжать 10Гц при обновлении экрана. А 130Гц очень даже заманчивое число)
Еще про возможные 130кадров/секунду. Это получается что FSMC на F407 способна выдать - 320пикселей * 480пикселей * 2байта(цвет 16бит) * 130Гц = 39,9Мбайт/секунду?
Спасибо большое, Mixail! Попробую Cubom сгенерить поект и протестировать частоту обновления дисплея. Может и правда у меня руки от пятой точки затактированы). А частоту обновления дисплея измерял логическим анализатором. В цикле крутились: инверсия одного разряда порта ВВ и заполнение дисплея пикселями(прорисовка картинки). И только сейчас дошло, что за две итерации этого цикла вывод порта переходил в одно логическое состояние, потом отрисовка картинки, опять изменение состояния вывода, но в противоположное состояние и снова отрисовка картинки. Получается ж 20Гц частота обновления! Как протестю все с Cubom отпишусь, но это не сегодня. Завтра вечером или в субботу утром.
Получилось разогнать FSMC до 60Гц! Лол я(, когда инициализировал систему тактирования не использовал оператор присвоения значения(ну "="). Писал так(строка кода которая тормозила микроконтроллер) "RCC->PLLCFGR |= RCC_PLLCFGR_PLLSRC;", ну и дальнейшая запись битов в регистр. Нужно было так: "RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC;", либо "RCC->PLLCFGR = 0;", ну суть в целом такая. Надеялся, что регистры имеют нулевое значение после сброса, а на деле нет! И вот какой-то бит(или несколько бит) мозги мне выносили) Да уж, STM далеко не AVR!