STM32 описание работы LTDC.

STM32 описание работы LTDC.

Около полугода назад один из постоянных посетителей сайта отправил мне отладочную плату STM32F429I DISCO.
STM32 описание работы LTDC.

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

Совсем не давно на ютубе мне попалось видео в котором на той самой плате люди сделали осциллограф, но заинтересовал меня не он, а то что, поверх одной картинки накладывалась другая полупрозрачная. Да дело именно в полупрозрачности, в дисплеях, с которыми раньше работал, я такого не встречал, у них одна картинка рисовалась поверх другой. Этот момент меня заинтересовал и я начал искать информацию, для чего все таки нужна оперативка и как заставить дисплей работать.

Очень скоро выяснилось, что у STM32F429ZI есть такая штука LCD-TFT display controller или сокращено LTDC и смешивание слоев, прозрачность — это его фича. А дисплей на самом деле обычный с одним физическим слоем, подключается по RGB интерфейсу.
STM32 описание работы LTDC.

STM32 описание работы LTDC.

STM32 описание работы LTDC.


По большому счету все дисплеи можно разделить на две категории: с встроенной графической памятью(GRAM) и без неё.
STM32 описание работы LTDC.

STM32 описание работы LTDC.

STM32 описание работы LTDC.


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

У LTDC своей памяти нет и тут в зависимости от размера дисплея существует два варианта расположения GRAM. Либо внутри МК, либо во внешней микросхеме памяти.

STM32 описание работы LTDC.

Думаю, многие уже догадались, что оперативка, о которой шла речь в начале статьи, выступает в качестве GRAM.

Как же это все работает?

Первичная инициализация дисплея происходит по SPI, там и выбирается в качестве управляющего интерфейса RGB. Далее, при настройке LTDC мы указываем адрес начала буфера и его размер(то самое GRAM). Сам буфер будет располагаться в оперативке, но используя FMC, мы можем обращаться к регистрам оперативки, как будто они находятся в памяти микроконтроллера. После того как вся периферия инициализирована, для отрисовки картинки на дисплее достаточно запихать ее в буфер, дальше LTDC все сделает за нас. Ниже можно посмотреть видео работы дисплея.
комментарии
0