没有合适的资源?快使用搜索试试~ 我知道了~
基于STM32的FSMC接口驱动TFT彩屏的设计方案.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 101 浏览量
2023-06-06
21:18:32
上传
评论
收藏 359KB DOC 举报
温馨提示
试读
49页
基于STM32的FSMC接口驱动TFT彩屏的设计方案.doc
资源推荐
资源详情
资源评论
[导读] 本文提出了一种能直接驱动数字液晶屏的设计方案,方案先介绍了 TFT 数字彩屏的
工作原理,利用 STM32 处理器的 FSMC 接口设计的硬件电路和软件程序均能对显示控制芯片
进行有效的控制。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 模式的代码如下:
剩余48页未读,继续阅读
资源评论
oligaga
- 粉丝: 50
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功