用STM32F407VGT6想用FSMC控制TFT再外扩一个SRAM,但是发现片选信号4个FSMC_NE[1:4]只找到一个FSMC_NE1

2019-07-21 04:34发布

用STM32F407VGT6芯片的FSMC控制TFT,另外再外扩一个SRAM,需要用到两个片选,但是发现片选信号4个FSMC_NE[1:4]只找到一个FSMC_NE1,查下手册发现只有这一个片选,100引脚的芯片片选只有一个吗?求解答,谢谢~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 08:40
用100脚的,就不要外扩SRAM了,麻烦的很.
要加锁存器.
chun307
2楼-- · 2019-07-21 11:03
 精彩回答 2  元偷偷看……
月光疾風
3楼-- · 2019-07-21 16:52
回复【2楼】正点原子:
---------------------------------
是因为片选只有FSMC_NE1一个的原因吗?需要用锁存器复用这个片选信号?
月光疾風
4楼-- · 2019-07-21 16:55
回复【4楼】chun307:
---------------------------------
原来如此,感谢你的解答~
jackwolfskin
5楼-- · 2019-07-21 19:28
回复【4楼】chun307:
---------------------------------
你好,我现在是做一个STM32F130VET6的主控CPU驱动W5300。 用FSMC接口,但是,地址线只用2根,由于A0-A15是复用了的,我就直接用A16-A17这两个地址线和W5300模块的地址线相连。由于VET6只能有BANK1_SRAM1这个NE1片选,所以我设置了W5300的基地址为
0x6000 0000
那么根据地址线的连接,相对应的W5300的
MR寄存器映射的地址就为0x6000 0000, 
IMD_AR地址(A16拉高)就为0x60000000 + ((1<<16)*2)
IMD_DR地址(A17拉高)就为0x60000000 + ((1<<17)*2)

这样设置后,我进行相应的寄存器读写操作的时候,用示波器打相应的CS,WR,RD,DATA,ADDR,端口,电平都是正确的。但是,W5300始终无法进行正常的写操作。
我怀疑是不是我FSMC的读写有问题,就先断开W5300,发现是可以进行正常读写的,但是一接上W5300,就不太对了!
是时序配置有问题?还是这个100Pin的芯片用A16,A17有问题?还是NE1这个所选的SRAM有问题?
望解答!
谢谢!

一周热门 更多>