LCD与FSMC基于野火资料个人理解

文章详细介绍了STM32通过FSMC驱动LCD的过程,比较了FSMC对SRAM的控制与8080协议,以及NORFLASH与8080在写入时序上的区别。重点讲解了地址线和数据/命令选择线的处理,以及如何通过FSMC控制LCD屏幕的操作。
摘要由CSDN通过智能技术生成

以下图片基本上都是来自 【野火】零死角玩转STM32—F407霸天虎.pdf (野火资料网址野火产品资料下载中心 — 野火产品资料下载中心 文档);推荐使用野火的资料,优先完整看一遍,再参考正点原子的资料回顾一下自己的理解是否正确,[正点原子] STM32F407 探索者开发指南V1.2.pdf。

LCD与FSMC结合达到的最终目的:MCU的代码操作变量,就是操作屏幕

1、LCD的驱动:

如下图,MCU通过8080或者SPI协议控制液晶屏幕;由于:(1)SPI速度太慢,(2)MCU没有现成的8080接口协议(需要自己软件模拟);所以引入了FSMC,因为它的协议与8080非常相近,只要做些修改就能对应上8080协议。

2、FSMC是啥?

总结一句话,FSMC是MCU用来管理外部存储器的,这个外部存储器的类型有:SRAM(NOR FLASH)、NAND FLASH、PC卡等类型。不同类型有不同的控制方式,不同的硬件接口,不同的地址范围,它们都放在FSMC里面。在这里,我们只关注FSMC对SRAM的控制方式,因为FSMC对SRAM的控制与8080协议非常相似。(NOR Flash与SRAM使用的是同一组控制器及外部接口,FSMC可以选择不同模式区分,8080对应模式B即NOR FLASH的方式)

3、FSMC的SRAM控制与8080协议

NOR FLASH 与8080协议,关于写入的时序对比;我根据自己理解描述一下:

NOR FLASH:

(1)确定好地址[25:0],26根线的电平,不同01组合对应不同地址;

(2)NEx片选拉低;

(3)因为是写入,所以NOE(读)拉高,NWE(写)拉低,低电平有效;

(4)因为是在NWE上升沿的时候数据写入,所以数据D[15:0]提前准备(一个地址16位);

8080:

(1)确定好此次操作的是命令还是数据,D/CX(0代表命令,1代表数据);

(2)CSX片选拉低;

(3)因为是写入,所以RDX(读)拉高,WRX(写)拉低,低电平有效;

(4)因为是在WRX上升沿的时候数据写入,所以数据D[15:0]提前准备(一个地址16位);

综上:NOR FLASH的协议与8080协议只在地址线与D/CX的处理有不一样,参照上图实际的硬件接线也一一对应。

这里讲下NEx,它是一组IO线从1到4,FSMC把NOR/SRAM区分为了四块,每块64M,每块对应有个输出引脚。例如把一个变量定位到了0x68000000-0x6BFFFFFF,,操作这个变量,对应的NE3的引脚就会输出低电平,因为NEx接了CSX,就相当于LCD的片选被拉低。

选择哪个片选NEx接CSX,也就确定了,变量的范围,如上图(其实这个变量就是LCD屏,操作变量就是操作屏)

4、地址线与数据/命令选择线的处理(以下内容来自野火,讲的太好,不需要再增加别的)

如果地址,对应的A0地址线是1:内容表示数据;如果地址,对应的A0地址线是0:内容表示命令

注意:实际程序里面的变量的地址是HADDR,它与地址线有错位关系

5、代码实现与操作



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值