3 硬件参考设计
本文的评估设计板载有一个 QVGA TFT 3.5 英寸显示屏。 下面的表格提供了 CT05350DW0000T TFT 信号与MCU接口时的描述。
表 3. STM32F103ZET6 信号与 CT05350DW0000T LCD 的接口。
图9. MCU评估的TFT-LCD连接器
4 固件包
与本应用说明相关的固件包括使用MCU设备直接驱动TFT,源代码示例基于MCU的标准外设抽象库。 用户可以使用相同的库和驱动器,以及不同的接口固件/硬件,构建任何类似的应用程序。 库文件夹包含了构成MCU标准外设库核心的所有子目录和文件:
CMSIS
CM3\CoreSupport:包含Cortex-M3文件
CM3\DeviceSupport\MCU:包含MCU CMSIS层文件MCU_StdPeriph_Driver
- inc子文件夹:包含标准外设库头文件
- src子文件夹:包含标准外设库源文件
项目
MCU-LCDDrive 图像:包含位图图像的Image.dfu文件。
EWARMv5:指的是IAR Embedded Workbench for ARM (EWARM) 工具链的版本5,这是一个流行的嵌入式开发环境,用于ARM Cortex微控制器的软件开发。
ARM-MDK:指的是ARM Keil MDK工具链,这是一个广泛使用的ARM Cortex-M微控制器开发工具,包含了编译器、调试器和其他必要的工具。
HiTOP:特定的开发工具链。
RIDE:嵌入式开发领域特定的开发工具链。
TrueSTUDIO:指的是Atollic TrueSTUDIO,这是一个功能齐全的跨平台工具套件,用于MCU和ARM Cortex-M微控制器的软件开发。
● inc子文件夹:包含TFT-LCD驱动和演示核心文件:
lcd_driver.h:包含驱动无控制器TFT-LCD的基本函数原型。它还包括根据TFT规格书可配置的TFT-LCD参数。
backlight_control.h:包含用于控制TFT背光的基本函数原型。
main.h:此文件包含main.c文件的函数原型。
MCU_it.h:包含中断处理程序的头文件。
MCU_conf.h:微控制器库配置文件。
● src子文件夹:包含TFT-LCD驱动和演示源文件:
lcd_driver.c:它包含驱动无控制器QVGA TFT-LCD的基本例程,包括FSMC(柔性静态存储控制器)、GPIO(通用输入输出)引脚和DMA(直接内存访问)配置。
backlight_control.c:包含用于控制TFT-LCD背光的基本函数。
main.c:初始化TFT-LCD驱动演示。
MCU_it.c:包含LCD驱动中使用的所有外设中断服务程序,并为所有异常处理器提供模板。
4.1 固件安装
与本文相关的固件是为MCU评估构建的。 在硬件设置成功和固件编程完成后,位图图像将开始在评估板上的TFT-LCD显示。 默认情况下选择横幅显示模式。 按下连接到MCU评估板上的按键,切换到幻灯片显示模式。 演示图像 16位位图图像在固件初始化期间由固件从NOR存储器复制到板载外部SRAM。然后,图像仅从外部SRAM刷新到TFT-LCD。
这些图像默认编程在MCU评估板的NOR存储器中。如果NOR存储器中没有这些图像,可以使用USB DFU固件轻松地将它们编程到NOR存储器中。
4.2 配置方法
QVGA TFT-LCD参数 LCD驱动程序可以定制以支持其他类型的QVGA LCD。可以更新的QVGA LCD参数包括前缘、后缘周期或帧率频率,以及用于VSYNC和HSYNC的I/O引脚、TFT电源控制和背光。 这些可配置参数在lcd_driver.h和backlight_control.h头文件中定义。 TFT LCD驱动程序可以轻松地移植到其他硬件上。表4描述了可配置的TFT-LCD参数。
表4. QVGA TFT-LCD驱动可配置参数
QVGA TFT-LCD参数 | 描述 |
---|---|
#define LCD_FRAME_FRONT_PORCH | 帧前缘值 |
#define LCD_FRAME_BACK_PORCH | 帧后缘值 |
#define LCD_LINE_FRONT_PORCH | 行前缘值 |
#define LCD_LINE_BACK_PORCH | 行后缘值 |
#define SRAM_IMAGE1_ADDR | 帧缓冲区中第一幅图像的地址 |
#define SRAM_IMAGE2_ADDR | 帧缓冲区中第二幅图像的地址 |
#define FRAME_RATE | 帧率频率值(可以是40 Hz或19 Hz) |
#define SLIDESHOW_TIME_GAP | 幻灯片播放时间间隔,单位为秒 |
#define TFT_VSYNC_GPIO_PIN | GPIO引脚:GPIO_Pin_8 |
#define TFT_VSYNC_GPIO_PORT | GPIO端口:GPIOA |
#define TFT_HSYNC_GPIO_PIN | GPIO引脚:GPIO_Pin_6 |
#define TFT_HSYNC_GPIO_PORT | GPIO端口:GPIOC |
#define LCD_BL_GPIO_PIN | GPIO引脚:GPIO_Pin_6 |
#define LCD_BL_GPIO_PORT | GPIO端口:GPIOB |
5 总结
在本案例中,MCU外设的多功能能力得到了很好的利用,目的是简化TFT-LCD应用并降低其成本。MCU以其强大的DMA(直接内存访问)控制器和高度灵活的FSMC(灵活静态存储控制器)周边设备相结合,为驱动QVGA TFT-LCD提供了一种成本效益高的解决方案,对于静态图像显示,CPU负载仅为1%。
这段文本总结了MCU微控制器在TFT-LCD应用中的使用优势,具体包括:
-
多功能外设:MCU的外设具有多功能性,可以适应不同的应用需求。
-
简化和降低成本:使用MCU可以简化TFT-LCD应用的设计,同时降低成本。
-
强大的DMA控制器:MCU的DMA控制器能够高效地管理内存访问,减少CPU的负担。
-
灵活的FSMC:MCU的FSMC提供了高度的灵活性,可以方便地与不同类型的内存和外设进行接口。
-
成本效益:MCU提供的解决方案在成本上很有优势,特别是在驱动QVGA TFT-LCD时。
-
低CPU负载:在显示静态图像时,CPU的负载仅为1%,这意味着MCU可以在执行其他任务的同时,以极低的资源消耗来驱动LCD显示。
本文的源代码将另行提供。