您的位置 首页 传感器

STM32 FSMC接口驱动TFT-LCD规划

0 引言随着电子产品的不断更新,各种显示界面的开发越来越多,由于TFT彩屏的性价比高,因而被广泛用在各种电子设备上作为显示屏。目前驱动TFT彩屏的方案有很多,可以用底端单片机驱动一个终端类

  0 导言

  跟着电子产品的不断更新,各种显现界面的开发越来越多,因为TFT彩屏的性价比高,因此被广泛用在各种电子设备上作为显现屏。现在驱动TFT彩屏的计划有许多,能够用底端单片机驱动一个终端类型的液晶模组,这种模组价格比较贵,当然用起来仍是很便利的。

  只需单片机经过串口或并行口向TFT发送几个字节的指令,就能在屏幕上显现你需求的作用。本规划运用STM32FSMC 总线直接驱动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时刻给用户程序。其硬件电路结构简略、操控办法灵敏、关于其他类型的接口芯片也有参考价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/299062.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部