打印
[STM32F4]

STM32F407VET6 A0-A15地址线的问题

[复制链接]
2342|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ihafd|  楼主 | 2018-11-2 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用STM32F407VET6控制256*160的黑白液晶,液晶是8位并行数据的。是8080时序。

我用STM32F407VET6 LQFP100 的FSMC接口
它没有A0-A15地址线的。它是工作于地址数据复用模式,要加地址锁存。
我如果配置成不用地址数据复用模式,
我用A16连接液晶的RS。行不行?
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;//  这里我们使用NE1
STM32F407VET6 LQFP100 只有NE1

因为FSMC控制液晶只要一条地址线就行了.

谢谢!
沙发
ihafd|  楼主 | 2018-11-3 13:58 | 只看该作者
这FSMC 的问题,查不想更全面的资料。

使用特权

评论回复
板凳
ihafd|  楼主 | 2018-11-3 23:00 | 只看该作者
??

使用特权

评论回复
地板
xuanhuanzi| | 2018-11-4 12:21 | 只看该作者
没用过8080

使用特权

评论回复
5
rongzhai| | 2018-11-4 14:13 | 只看该作者
可以,这样读写命令和读写数据的地址根据地址进行区分

使用特权

评论回复
6
zhuomuniao110| | 2018-11-4 22:46 | 只看该作者
这么看确实软件上不好搞。s

使用特权

评论回复
7
ihafd|  楼主 | 2018-11-5 08:30 | 只看该作者
STM32的FSMC是默认8080时序吗?
谢谢!

使用特权

评论回复
8
guanjiaer| | 2018-11-6 12:58 | 只看该作者
可以数据线地址线复用呀

使用特权

评论回复
9
heimaojingzhang| | 2018-11-6 13:02 | 只看该作者
感觉应该是可以的

使用特权

评论回复
10
木木guainv| | 2018-11-6 17:10 | 只看该作者
个人感觉可以的

使用特权

评论回复
11
幸福小强| | 2018-11-6 22:17 | 只看该作者
大容量且引脚数在100脚的STM32芯片都带有FSMC接口。

一般的资料对其的描述是“灵活的静态存储控制器”,我对它的理解其实就是一个外部总线,且是一个可以自己定义时序的总线并且速度不慢,当驱动8080接口的器件是时,由于STM32没有自带硬件8080接口的控制器,如果只是使用GPIO来实现此时序的话,会占用大量的CPU资源,所以这个时候就可以考虑采用FSMC功能。

FSMC支持SRAM,NAND FLASH和NOR FLASH等接口。FSMC将外部设备分为三类,分别是NOR/PSRAM设备,NAND设备和PC卡设备。他们共用地址数据总线等信号,通过不同的片选CS来区分不同的设备。

为什么要把TFT当成SRAM设备来使用呢?

一般的外部SRAM有如下几根线:地址线(A0~A18),数据线(D0~D15),读信号(WE),写信号(OE),片选信号(CS),如果SRAM支持字节控制的话,还有UB和LB信号。

而8080接口的LCD有如下几根线:复位信号(RST),数据线(D0~D15),读信号(RD),写信号(WD),片选信号(CS)和读写功能标志(RS)。

好像上面两种接口都很类似诶…

唯一不同的,就是TFT没有地址信号,但是有RST信号(这两个可以通过软件来控制)。

而TFT的RS信号是用来决定传输数据还是命令的信号,所以在本质上还是可以理解为是一个地址信号。比如我们可以将A0接在RS上,那么当FSMC控制器写地址0的时候,就实现了对RS信号的改变。这样,就将TFT写命令还是写数据的过程区分开了,并且不用软件控制(在我的开发板上是将RS接在A10上的)。

STM32的FSMC支持8/16/32位的数据宽度,因为是8080并口,所以选择16位数据宽度。

FSMC分为四个256M的存储块。一个块分为4个区,一个区管理64M的空间。一个块(256M)通过28根地址线来寻址(HADDR[27:0]),其中0~25用来寻址空间,26~27来寻址四个区。其中26~27是不用干预的。

当1区接的是16位宽的外设时,HADDR[25:1]—FSMC[24:0]

当1区接的是8位宽的外设时,HADDR[25:0]—FSMC[25:0]

但是不论接16位还是8位外设的时候,FSMC_A[0]永远对应外围设备地址A[0]。

驱动TFT时,HADDR的第一位并没有用到,相当于右移了一位。

可以通过设置以下寄存器来改变FSMC时序的参数,由此来实现使FSMC适应更多的外设。

FSMC_BCRx,FSMC_BTRx,FSMC_BWTRx,其中x表示1~4个区的编号。

一般使用FSMC的异步模式A来控制TFT(具体其他模式可以参考STM32参考手册)。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

290

主题

844

帖子

3

粉丝