QVGA TFT-LCD 直接驱动使用 STM32F10xx FSMC 外设
前言
本应用笔记讲解的低成本解决方案可使用任何未配备片上 LCD 控制器的 STM32F10xxx 微控制器,直接驱动 QVGA TFT-LCD。强大的 STM32F10xxx 器件具有嵌入式的 FSMC(灵活的静态存储控制器),它可与片上 DMA 控制器共同使用,实现对 TFT-LCD 的直接驱动。此低成本解决方案为数字相框、独立信息显示器、静态广告板等应用的理想选择。
本应用笔记说明了怎样将 STM32F10xx 用作 LCD 控制器,驱动一个与 FSMC 接口的 QVGA3.5" TFT 面板。此解决方案实现的优化意味着仅需 1% CPU 负荷即可显示静态图片。
固件的演示已在 320x240 像素分辨率的 CT05350DW0000T QVGA 3.5" LCD 模块上开发并测试。
1 STM32 QVGA TFT-LCD 直接驱动
STM32 微控制器具有一个嵌入式的灵活静态存储控制器 (FSMC),可连接 NAND、 NOR、SRAM、PSRAM 等外部存储器接口。该微控制器还有大量通用 I/O 端口引脚,可与 FSMC 共同工作,成为低端显示器的低成本 TFT-LCD 控制器:
● FSMC外设的16位数据线可方便地与TFT-LCD面板的565 RGB格式线接口(在565 RGB格式中, 5 位用于红色, 6 位用于绿色, 5 位用于蓝色)。
● 外部存储器可用作图片源,也可作为 TFT-LCD 刷新的帧缓冲。
● 通用 I/O 引脚可为 LCD 提供同步逻辑。
1.1 STM32 QVGA TFT-LCD 直接驱动原理
无控制器 TFT-LCD 面板具有多种数据线配置,例如 16 位、 18 位、 24 位 RGB 线。具有 16位数据接口的 TFT-LCD 为每个像素提供了 565 格式。
TFT-LCD面板显示器以行列结构管理。垂直扫描控制行数据输出,水平扫描控制列数据输出。
除数据线配置不同外,其它数据显示管理信号对所有 TFT-LCD 面板通用:
● 帧同步信号 (VSYNC)管理垂直扫描,作为图片 (帧)更新选通。
● 行同步信号 (HSYNC)管理水平线扫描,作为行显示选通。
● 同步信号与像素数据时钟 (DCLK)执行数据输出到 TFT RGB 数据线。
● DCLK仅作为TFT的数据有效信号。仅在DCLK信号沿时TFT才将数据作为输入。DCLK有效沿 (上升 / 下降)在 TFT 数据手册中讲述。
水平扫描构建一条线显示,垂直扫描构建整个帧。每秒连续执行多帧图片的垂直和水平扫描。
TFT 还需要一个 TFT 使能信号,它仅作为芯片使能信号和 TFT 复位信号。
必须根据显示时间的限制同步 TFT 信号,以确保显示具有连续视觉效应。
图 1 显示了水平和垂直扫描信号。
FSMC 总线数据宽度为 16 位,因此,若 TFT-LCD 面板有 24 位 RGB 线,则 LCD RGB 数据线的 MSB 能以 565 格式接口。
图片必须在 TFT-LCD 上连续显示,这可以由 STM32 微控制器方便管理。
图 2 显示了 TFT 同步信号波形。
|