TFT-LCD技能是微电子技能和LCD技能奇妙结合的高新技能。跟着人们对图画明晰度、刷新率、保真度的要求越来越高,TFT-LCD的运用规模越来越广。本文提出了一种能直接驱动数字液晶屏的规划计划,计划先介绍了TFT数字彩屏的作业原理,运用STM32处理器的FSMC接口规划的硬件电路和软件程序均能对显现操控芯片进行有用的操控。在实践运用中显现明晰流通,而且CPU有满意的时刻来处理用户程序。该计划能成功运用在电脑横机的人机界面显现中,且其硬件电路结构简略、操控办法灵敏、关于其他类型的接口芯片也能供给参阅。
0 导言
跟着电子产品的不断更新,各种显现界面的开发越来越多,因为TFT彩屏的性价比高,因此被广泛用在各种电子设备上作为显现屏。现在驱动TFT彩屏的计划有许多,能够用底端单片机驱动一个终端类型的液晶模组,这种模组价格比较贵,当然用起来仍是很便利的。
只需单片机经过串口或并行口向TFT发送几个字节的指令,就能在屏幕上显现你需求的作用。本规划运用STM32 的FSMC 总线直接驱动TFT 数字彩屏。这种计划对相应的寄存器进行装备后就能够自意向TFT数字彩屏发送数据,无需CPU参加,让CPU有满意时刻来处理其他程序。
1 STM32 简介
STM32 是依据ARM 内核Cortex-M3 的32 位微操控器系列。Cortex-M3内核是为低功耗和价格灵敏的运用而专门规划的,具有杰出的能效比和处理速度。经过选用Thumb-2 高密度指令集,Cortex-M3 内核降低了体系存储要求,一起快速的中止处理能够满意操控范畴的高实时性要求,使依据该内核规划的STM32 系列微操控器能够以更优越的性价比,面向更广泛的运用范畴。
STM32系列微操控器为用户供给了丰厚的挑选,可适用于工业操控、智能家电、修建安防、医疗设备以及消费类电子产品等多方位嵌入式体系规划。STM32系列选用一种新式的存储器扩展技能—FSMC,在外部存储器扩展方面具有共同的优势,可依据体系的运用需求,便利地进行不同类型大容量静态存储器的扩展。
2 TFT彩屏模块作业原理
本规划选用3.2 寸分辨率为320×240 的液晶屏,并运用ILI9341芯片操控液晶屏。
液晶屏的操控芯片电路十分复杂。GRAM 中一个存储单元对应显现屏的一个像素点。芯片内部有电路把GRAM存储单元的数据转化成液晶屏的操控信号,使每个点出现特定的亮度和色彩,而这些点组合起来则成为显现界面。ILI9341 里有首要装备引脚和操控信号线,能够依据它的设置使芯片作业在不同的形式;运用8080 接口或SPI接口与MCU 进行通讯;运用8080 接口的什么形式。MUC经过SPI或8080接口与ILI9341进行通讯,然后拜访它的地址计数器(AC)、操控寄存器(CR)、GRAM及一个LED 操控器。LCD自身不会发光,它需求凭借背光源才完结显现功用,LED操控器便是用来操控液晶屏模块中发光二级管的背光源。LI9341运用8080通讯时序作业,ILI9341的8080接口有5条操控信号线:写使能信号线WRX,读使能信号线RDX,复位信号线RESX,片选信号线CSX,区别数据和指令信号线D/CX.除了操控信号,还有数据信号线。
3 总体计划的硬件规划
本文以STM32F103VE 芯片的FSMC接口衔接RGB接口数字屏,并运用DMA 从片外FLASH 读取显现数据。DMA即直接内存存取,CPU只需装备DMA相关的寄存器后,DMA 操控器就会主动将数据从一个地址传送到别的一个地址,不占用CPU 时刻。本文选用STM32F103VE 芯片外部衔接FLASH 用作显存,其全体硬件计划如图1所示。
因为图片的数据太大需求外接FLASH存储器用来存储图片数据,电路如图2 所示。
本规划运用的AT25DF041A芯片是一个串行接口的闪存设备,灵敏的架构AT25DF041A擦掉、消除粒度小至4 KB,使它十分合适数据存储,不再需求额定数据存储E2PROM设备。
4 软件规划
本规划的软件首要有硬件层装备和显现驱动函数。硬件层装备首要是对STM32 的I/O 口的输入/输出和FSMC 相关的寄存器装备。显现驱动函数首要是向TFT彩屏发送操控指令和数据,别的还有一些简略的画图函数。
4.1 FSMC简介
FSMC是灵敏静态存储操控器。STM32芯片可运用FSMC 操控NOR FLASH、PSRAM 和NAND FLASH 存储芯片[3]。这儿,只运用FSMC 的NOR/PSRAM 形式操控LCD,所以只需剖析NOR FLASH 操控信号线部分。
STM32 寻址空间的地址映射中的0×60000000 ~0x6FFFFFFF 是分配给PSRAM、NOR FLASH 这类可直接寻址的器材。当外部接了NOR FLASH,而且FSMC外设被设置为正常作业,当向0×60000000 地址写入数据0xFFFF,FSMC会主动把数据转化成各信号线上相应的电平信号写入数据。
4.2 用FSMC模仿8080时序
FSMC写NOR 时序跟8080接口的时序是十分相似的,对它们的信号线比照如表1所示。
为了模仿出8080 时序,把FSMC 地址线中的A0 衔接8080的D\CX,当A0为低电平时,数据线D[15:0]的信号会被理解为ILI9341指令,若A0为高电平时,传输的信号则会被理解为数据。所以传送数据时只需向地址为0x6xxxxxx1,0x6xxxxxx3,0x6xxxxxx5 这些奇数地址写入数据,此刻地址线A0(D/CX)会为高电平;需求发送指令时向0x6xxxxxx0,0x6xxxxxx2,0x6xxxxxx4 这些偶数地址写入数据时,地址线A0(D/CX)会为低电平,这个数据会被理解为指令。在代码中运用指针变量,向不同的地址单元写入数据,就能够由 FSMC 模仿出8080 接口向ILI9341写入操控指令或GRAM的数据了。
4.3 部分代码规划
(1)初始化液晶屏
初始化液晶屏是对液晶操控器ILI9341 用到的I/O口、FSMC 接口进行初始化,而且向该操控器写入了指令参数,装备好LCD液晶屏的基本功用。除了复位、背光用的PD11和PD0设置为通用推挽输出外,其他的与FSMC 接口相关的操控信号、地址信号、数据信号的端口悉数设置为复用推挽输出。代码如下:
(2)初始化FSMC形式
LCD_Init()函数调用LCD_FSMC_Config()设置FSMC的形式使它模仿出8080接口,函数首要作用是设置各个信号的发生时刻,使FSMC接口的时序与8080接口匹配。LCD_FSMC_Config()设置FSMC形式的代码如下:
以上首要运用FSMC_NORSRAMInitTypeDef类型的结构体和 FSMC_NORSRAMTimingInitTypeDef类型的结构体对FSMC 进行装备。第一种类型结构体首要装备存储器类型,数据宽度等用于NOR FLASH 的形式装备;另一种类型结构体用于装备FSMC 的NOR FLASH形式下读/写时序中的地址树立时刻、地址坚持时刻等。
(3)FSMC模仿8080读/写参数、指令
初始化完结FSMC 接口后,就能够运用FSMC 向ILI9341发送数据了。在LCD_Ini(t )中调用Lcd_init_conf()函数向ILI9341写入一系列的操控参数:
限于篇幅,以上仅仅该函数其间的一部分,省掉部分的代码仅仅写入的参数和指令有些不一样,这些指令和参数设置了像素点色彩格局、屏幕扫描办法、横屏/竖屏等初始化装备,能够从ILI9341的datasheet指令列表中查到这些指令的含义。函数 LCD_ILI9341_CMD()的作用是写入指令,函数LCD_ILI9341_Parameter()的作用是写入指令参数。
5 结语
本文对依据STM32的TFT液晶显现模块的驱动办法进行了讨论,规划的硬件电路和软件能对显现操控芯片ILI9341进行有用的操控,一切程序均在STM32系列的软件编译环境下调试经过。经实践证明,本计划是可行的,能确保320×240 点阵的TFT 刷新率,且留有满意CPU时刻给用户程序。其硬件电路结构简略、操控办法灵敏、关于其他类型的接口芯片也有参阅价值。(作者:汤莉莉,黄伟)