你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F4 FMC驱动SDRAM时使用FMC_D[31:0]的后16位怎么处理??

[复制链接]
拇指大叔 提问时间:2016-5-18 15:38 /
如题,最近在使用STM32F429的FMC同时驱动NAND FLASH 和 SDRAM。NAND FLASH 使用了FMC_D[0:7],即前八位。SDRAM 我打算使用FMC_D[16:31]即后面的16位。结果数据读不出来,使用前16位FMC_D[0:15]时读写数据正常。不知道是不是和NBL[3:0]有关???如果有关的话怎么设置这里???
收藏 评论23 发布时间:2016-5-18 15:38

举报

23个回答
拇指大叔 回答时间:2016-5-19 14:23:45
wenyangzeng 发表于 2016-5-19 10:59
同时驱动NAND FLASH 和 SDRAM有点不现实吧,NAND FLASH 和 SDRAM地址会冲突的。你的时序有那么紧张到需要同 ...

时序应该不紧张到同一时间开SDRAM和NAND FLASH.我现在困惑的是NAND FLASH使用了D0-->D7,那么SDRAM如果再用D0到D15呢话,就有一部分FMC_D{也就是GPIO的PD15,PD14,PD0,PD1,PE7,PE8,PE9,PE10}公用了。这样感觉不行啊。所以我就想FMC_D不是有32位嘛,SDRAM可不可以使用后面16位?
拇指大叔 回答时间:2016-5-19 14:20:23
huaiqiao 发表于 2016-5-19 10:52
这个您使用SDRAM还是NAND flash是由FSMC 存储区域的地址来决定的吧。我用的是f407的片子,手册是否和你的42 ...

嗯嗯,你说这个存储区域来决定我明白的。我用的是F429.我现在困惑的是NAND FLASH使用了D0-->D7,那么SDRAM如果再用D0到D15呢话,就有一部分FMC_D{也就是GPIO的PD15,PD14,PD0,PD1,PE7,PE8,PE9,PE10}公用了。这样感觉不行啊
拇指大叔 回答时间:2016-5-19 14:26:59
wofei1314 发表于 2016-5-19 13:14
为啥SDRAM要用FMC的D[16:31]这种用法我没见过,我都是NAND D0: D7  ,SDRAM D0: D15....

它们有自己的片选 ...

哥们,你也是同时挂NAND FLASH 和 SDRAM ???那你是PD14,PD15,PD1,PD0,PE7,PE8,PE9,PE10这四个IO口在PCB板上同时连接在NAND FLASH和SDRAM的D0-->D8???
huaiqiao 回答时间:2016-5-19 10:52:26
这个您使用SDRAM还是NAND flash是由FSMC 存储区域的地址来决定的吧。我用的是f407的片子,手册是否和你的429一致,我倒是没有比较过。可以搜下论坛里有人分享过个429的学习笔记,你参考下呢。
wenyangzeng 回答时间:2016-5-19 10:59:02
同时驱动NAND FLASH 和 SDRAM有点不现实吧,NAND FLASH 和 SDRAM地址会冲突的。你的时序有那么紧张到需要同时操作NAND FLASH 和 SDRAM吗?
wofei1314 回答时间:2016-5-19 13:14:56
为啥SDRAM要用FMC的D[16:31]这种用法我没见过,我都是NAND D0: D7  ,SDRAM D0: D15....

它们有自己的片选的,D0-D31和A0-Ax都是复用的啊


我猜测,你用D16:31,如果想正常使用的话,SDRAM必须配置为32位数据宽度的,然后每次取高十六位,请高手指点
power568 回答时间:2016-5-19 14:08:44
这种数据线复用的方式应该是通过分时复用来读取数据,不可以一次读取两个设备的地址吧,时序都不一样...
huaiqiao 回答时间:2016-5-19 14:26:51
拇指大叔 发表于 2016-5-19 14:20
嗯嗯,你说这个存储区域来决定我明白的。我用的是F429.我现在困惑的是NAND FLASH使用了D0-->D7,那么SDRAM ...

您要NAND FLASH 和 sdram同时使用的话可能就够呛一些。
拇指大叔 回答时间:2016-5-19 14:46:52
power568 发表于 2016-5-19 14:08
这种数据线复用的方式应该是通过分时复用来读取数据,不可以一次读取两个设备的地址吧,时序都不一样... ...

如果SDRAM和 NAND FLASH都是接了D0到D8的话,就要分时复用了。所以我就想可不可以SDRAM(16位的)不接前16位,去接FMC_D的后16位??
mark0668 回答时间:2016-5-19 15:07:07
这样SDRAM要32位宽才可以实现,而且你的地址将会是不连续的了
yubinwu_3004964 回答时间:2016-5-19 16:14:14
配置没有对吗?需要在寄存器上面配置
是否是NBL[3:0]已经忘了,需要查资料
xmshao 回答时间:2016-5-20 08:28:02
数据线都得从0开始接,工作时有片选的。

NBL选择高低数据字节。
胡某某 回答时间:2016-5-20 09:16:46
439上面,NAND接了D0-D7,SDRAM接了D0-D15,程序里面应该是分时了,没仔细看过
拇指大叔 回答时间:2016-5-20 09:59:21
sxhbbde 发表于 2016-5-20 09:16
439上面,NAND接了D0-D7,SDRAM接了D0-D15,程序里面应该是分时了,没仔细看过

哥们,439的???stm32f4cube版本里面有提到??可以给一下你说的这个版本信息吗??
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版