硬汉嵌入式论坛

 找回密码
 立即注册
查看: 658|回复: 11
收起左侧

[有问必答] STM32F407的FSMC读写外部SRAM如何设置时序?

[复制链接]

32

主题

103

回帖

199

积分

高级会员

积分
199
发表于 2023-5-4 20:00:24 | 显示全部楼层 |阅读模式
62WV51216ALL.pdf (190.6 KB, 下载次数: 6)
使用的SRAM是62WV51216,数据手册在附件。
SRAM的读有2种,写有4种时序图.STM32非扩展模式,有2种,扩展模式下,有4种。
读时序的参数
下载 (1).png

读时序1

下载 (2).png
读时序2

下载 (3).png
写时序参数
下载 (4).png
经过对比时序图,我觉得写时序2和读时序2与STM32的MODEA比较匹配,如图
下载 (5).png
下载 (6).png
问题一:为什么网上的代码和AN2784都是采用MODE1,而不是MODEA?它们时序图不一样,手册里也写了The differences compared with mode1 are the toggling of NOE and the independent read
and write timings.MODEA和MODE1的区别在于NOE引脚的变化,而MODE1里,NOE是没变化的。对比如如下:
下载 (7).png




AN2784里给了计算ADDSET和DATAST的公式
下载 (8).png

红色部分在数据手册里找到,这部分的参数是在其他条件下测得的,不能直接使用。tv(A_NE)是片选低电平到地址线有效,问题是SRAM读时序图里,没有这段时间,而且SRAM读时序图里,地址线是先于片选线拉低的。tSU(DATA_NE)是数据开始到片选失效的时间,SRAM读时序图里也没有。虽然AN2784给出了参考值2tHCLK+25,但是AN2784里是F1系列,且SRAM是61WV51216,不能直接用。

下载 (9).png
下载 (10).png
问题二:如何正确计算STM32配置时需要的ADDSET和DATAST,根据公式算,找不到数。
看参考手册的时序图,MODEA的话,读的时候,ADDSET等于通信开始到NOE下降沿,SRAM时序图没有,DATAST等于NOE低电平的时间,SRAM时序图里也没有;写的时候ADDSET等于通信开始到NWE的下降沿,SRAM里是tSA,DATAST是NWE低电平的时间,也就是tPWE。也有2个数找不到
问题三:有时候可以读写用相同的时序,但是看SRAM读写完全不一样啊,怎么使用相同的时序呢?
谢谢。




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106583
QQ
发表于 2023-5-5 00:56:00 | 显示全部楼层
1、我们V5就是用的modeA,我们的是2MB高速SRAM,10ns,IS61WV102416BLL-10TL
2、IS61WV102416BLL-10TL
下载 (1).png

下载.png

3、参数有较大的容错范围,读写可以一起


回复

使用道具 举报

32

主题

103

回帖

199

积分

高级会员

积分
199
 楼主| 发表于 2023-5-5 08:40:26 | 显示全部楼层
我才发现,F1和F4的时序图不一样啊。F1写的更详细一些,有采样点,F4的整个都是DATAST

modeAF1和F4读对比.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106583
QQ
发表于 2023-5-5 09:32:23 | 显示全部楼层
伊森亨特 发表于 2023-5-5 08:40
我才发现,F1和F4的时序图不一样啊。F1写的更详细一些,有采样点,F4的整个都是DATAST

解释为更详细不一定对,这个也可以解释为后续的系列A模式,这个地方不需要多余的2个HCLK了。
回复

使用道具 举报

32

主题

103

回帖

199

积分

高级会员

积分
199
 楼主| 发表于 2023-5-5 14:39:56 | 显示全部楼层
eric2013 发表于 2023-5-5 00:56
1、我们V5就是用的modeA,我们的是2MB高速SRAM,10ns,IS61WV102416BLL-10TL
2、IS61WV102416BLL-10TL

1、我看的是 高级篇例程(裸机)V5-104外部SRAM访问例程,
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
扩展模式是disable,那就没有mode A B C D了,而是mode1 2。根据MYTP位,应该是mode1。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106583
QQ
发表于 2023-5-5 15:32:54 | 显示全部楼层
伊森亨特 发表于 2023-5-5 14:39
1、我看的是 高级篇例程(裸机)V5-104外部SRAM访问例程,
FSMC_NORSRAMInitStructure.FSMC_ExtendedMod ...

使能,ModeA模式测试:

下载 (3).png
回复

使用道具 举报

32

主题

103

回帖

199

积分

高级会员

积分
199
 楼主| 发表于 2023-5-5 15:33:41 | 显示全部楼层
eric2013 发表于 2023-5-5 00:56
1、我们V5就是用的modeA,我们的是2MB高速SRAM,10ns,IS61WV102416BLL-10TL
2、IS61WV102416BLL-10TL

1、写操作的ADDSET,你画出的地址线开始到DOUT的HIGH-Z结束,写入是DIN有用,DOUT没用。你是不是想画ADDRESS到DIN的DATAIN VALID,然后画错了
2、你画出的ADDSET时序图的表里没有数据啊,是等于tSA+tHZWE吗?
3、tHZWE是WE LOW to High-Z Outpu,写时序,是数据输入,DOUT在这里有啥用,为什么要给这个时间。
4、ADDSET在参考手册里和AN2784里都是地址建立时间,为什么不直接使用tSA呢,tSA是SRAM的地址建立时间。
5、DATAST你画的是DOUT的HIGH-Z到WE上升沿,使用tSD吗?AN2784里推荐是tPWE,为什么没有使用呢。
6、读操作,ADDSET是tAA,DATAST是tAA开始到片选上升沿结束,这个时间数据手册没有给出,用哪个值呢
7、DOUT的DATA VALID前面有空白的部分,代表数据是随机的?WE好像有2个下降沿,也是代表随机值的意思吗?
不好意思,问题有点多。多谢。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106583
QQ
发表于 2023-5-5 15:44:21 | 显示全部楼层
伊森亨特 发表于 2023-5-5 15:33
1、写操作的ADDSET,你画出的地址线开始到DOUT的HIGH-Z结束,写入是DIN有用,DOUT没用。你是不是想画ADDR ...

6楼已经帮你测试。
回复

使用道具 举报

32

主题

103

回帖

199

积分

高级会员

积分
199
 楼主| 发表于 2023-5-5 16:01:27 | 显示全部楼层
eric2013 发表于 2023-5-5 15:32
使能,ModeA模式测试:

那你是一开始就用mode1还是想用modeA但是配置错了?不过看起来2者都能用,OE的控制影响不大
回复

使用道具 举报

32

主题

103

回帖

199

积分

高级会员

积分
199
 楼主| 发表于 2023-5-5 16:03:50 | 显示全部楼层
eric2013 发表于 2023-5-5 15:44
6楼已经帮你测试。

7楼的问题麻烦也看一下吧。多谢。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106583
QQ
发表于 2023-5-6 09:43:52 | 显示全部楼层
伊森亨特 发表于 2023-5-5 16:01
那你是一开始就用mode1还是想用modeA但是配置错了?不过看起来2者都能用,OE的控制影响不大

经常有网友咨询,早期的时候很多模式都测试过。
回复

使用道具 举报

32

主题

103

回帖

199

积分

高级会员

积分
199
 楼主| 发表于 2023-5-7 10:00:23 | 显示全部楼层
eric2013 发表于 2023-5-6 09:43
经常有网友咨询,早期的时候很多模式都测试过。

不好意思硬汉兄,关于时序图的这几个问题能麻烦解答一下吗?谢谢,请你喝饮料。
1、写操作的ADDSET,你画出的地址线开始到DOUT的HIGH-Z结束,写入是DIN有用,DOUT没用。你是不是想画ADDRESS到DIN的DATAIN VALID,然后画错了
2、你画出的ADDSET时序图的表里没有数据啊,是等于tSA+tHZWE吗?
3、tHZWE是WE LOW to High-Z Outpu,写时序,是数据输入,DOUT在这里有啥用,为什么要给这个时间。
4、ADDSET在参考手册里和AN2784里都是地址建立时间,为什么不直接使用tSA呢,tSA是SRAM的地址建立时间。
5、DATAST你画的是DOUT的HIGH-Z到WE上升沿,使用tSD吗?AN2784里推荐是tPWE,为什么没有使用呢。
6、读操作,ADDSET是tAA,DATAST是tAA开始到片选上升沿结束,这个时间数据手册没有给出,用哪个值呢
7、DOUT的DATA VALID前面有空白的部分,代表数据是随机的?WE好像有2个下降沿,也是代表随机值的意思吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-25 15:56 , Processed in 0.304227 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表