
1. 引言 移动、工业和消费应用的发展使得对图形用户界面(GUI)的需求更强,并且所需硬件资源也有所增加。这些应用需要更高质量的图形、更多的硬件和软件资源以及更高的处理性能。为了应对这些要求,STM32 MCU 提供了丰富的图形产品组合。由于采用了嵌入式LCD-TFT 显示控制器(LTDC),STM32 MCU 可以直接驱动高分辨率显示面板,无需任何 CPU 干预。 对于使用 LTDC 来开发图形应用的案例,客户经常有以下问题:STM32 MCU 的LTDC 最大支持的屏幕分辨率是多少?STM32F4 或者 F7 能支持 1280×720 的屏幕分辨率,达到 60Hz 的刷新率吗?SDRAM 的位宽如何选取性价比最高,是选择 16 位还是 32位? 如何判断当前的设计应用产生了 SDRAM 带宽不足问题?针对这些问题,本文档从问题产生的原理、LTDC 控制器的组成出发,介绍了 STM32 GUI LTDC 最大像素时钟评估的方法,通过最大像素时钟间接可以判断支持的最大屏幕分辨率。 2. 带宽不足产生的 FIFO underrun 对于使用 LTDC 控制器的 GUI 应用,如果参数设置不合理,可能会出现显示屏幕抖动的问题,这个问题有时就是由于带宽不足导致的 LTDC FIFO underrun 现象。例如,对于同样的硬件配置,使用的是 STM32H750DK 开发板,帧缓冲存放在外部 SDRAM, SDRAM 是 16 位,显示屏是 1024×600 分辨率,帧缓冲的颜色格式分别设置为 RGB565和 RGB888,颜色格式为 16bpp(RGB565)的配置视频流畅,而颜色格式为 24bpp 的配置视频出现明显抖动,有花屏,如图 1、图 2 所示。这就是由于 SDRAM 带宽不足,产生了 LTDC FIFO underrun 的现象。 ![]() ![]() 3. LTDC 控制器 3.1. LTDC FIFO underrun 产生的机理 要了解 LTDC FIFO underrun 产生的机理,首先介绍下 LCD-TFT 显示控制器(简称LTDC)。如图 3 所示,LTDC 是 AHB 架构上的主设备,可以对内部和外部存储器进行读访问。LTDC 有两个独立的层,层 1 和层 2,每层都有自己的 FIFO,从而使显示更加灵活。LTDC 控制器以 AHB 总线速度自动从帧缓冲区提取图形数据,然后将图形数据存储在其中一个 FIFO 内部层中,随后驱动到显示器。该系统架构使图形可以在没有任何 CPU 介入的情况下构建并绘制到屏幕上。LTDC 从帧缓冲区中检索属于图像的数据,而 DMA2D则准备下一张图像。LTDC 的功能是在每个像素时钟上升沿或时钟下降沿,并在屏幕有效区域内,LTDC 层从其 FIFO 中检索一个像素数据,将其转换为内部 ARGB8888 像素格式,并将其与背景和/或其他图层像素颜色进行混合。得到的像素以 RGB888 格式编码,通过抖动单元并被驱动到 RGB 接口中,像素便会显示到屏幕上。当 FIFO 为空时,如果发生请求像素的情况,就会产生 FIFO underrun。 LCD-TFT 控制器外设使用 3 个时钟域:AHB 时钟域(HCLK),用来将数据从存储器传输到 FIFO 层。 APB 时钟域(PCLK),用来访问配置和状态寄存器。像素时钟域(LCD_CLK),用来生成 LCD-TFT 接口信号。 可以看出,在像素时钟比较高的情况下,由于 LTDC 没有及时从帧缓冲区提取图形数据,导致 FIFO 里边空了,如果发生请求像素的情况,就产生了 FIFO underrun。在正常的 GUI 开发中,我们应该避免 FIFO underrun 的产生,从而保证视频显示的流畅。 ![]() 完整版请查看:附件 |
LAT1169_STM32_GUI_LTDC最大像素时钟评估方法_v1.0.pdf
下载571.84 KB, 下载次数: 15
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南
急需