拇指大叔 发表于 2016-5-18 15:38:10

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

如题,最近在使用STM32F429的FMC同时驱动NAND FLASH 和 SDRAM。NAND FLASH 使用了FMC_D,即前八位。SDRAM 我打算使用FMC_D即后面的16位。结果数据读不出来,使用前16位FMC_D时读写数据正常。不知道是不是和NBL有关???如果有关的话怎么设置这里???

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这种用法我没见过,我都是NAND D0: D7,SDRAM D0: D15....

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


我猜测,你用D16:31,如果想正常使用的话,SDRAM必须配置为32位数据宽度的,然后每次取高十六位,请高手指点

power568 发表于 2016-5-19 14:08:44

这种数据线复用的方式应该是通过分时复用来读取数据,不可以一次读取两个设备的地址吧,时序都不一样...

拇指大叔 发表于 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: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位?

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:26:59

wofei1314 发表于 2016-5-19 13:14
为啥SDRAM要用FMC的D这种用法我没见过,我都是NAND D0: D7,SDRAM D0: D15....

它们有自己的片选 ...

哥们,你也是同时挂NAND FLASH 和 SDRAM ???那你是PD14,PD15,PD1,PD0,PE7,PE8,PE9,PE10这四个IO口在PCB板上同时连接在NAND FLASH和SDRAM的D0-->D8???

拇指大叔 发表于 2016-5-19 14:46:52

power568 发表于 2016-5-19 14:08
这种数据线复用的方式应该是通过分时复用来读取数据,不可以一次读取两个设备的地址吧,时序都不一样... ...

如果SDRAM和 NAND FLASH都是接了D0到D8的话,就要分时复用了。所以我就想可不可以SDRAM(16位的)不接前16位,去接FMC_D的后16位??
页: [1] 2 3
查看完整版本: STM32F4 FMC驱动SDRAM时使用FMC_D[31:0]的后16位怎么处理??