因为SRAM的地址具有唯一性,其实数据线也有唯一性。也就是A0~A18,D0~D15,都是唯一的。正常是:A0~A18,接FSMC的A0~A18。D0~D15,接FSMC的D0~D15.
假设我们A0和A18对调了,也就是A18接FSMC的A0,A0接FSMC的A18,其他不变。这样,写地址1的时候,实际上是写到0X0004?0000,这个地址,你可能觉得有问题。但是你反过来想,读地址1的时候,你是不是也是读0X0004?0000这个地址?既然读也是这个地址,写也是这个地址,那么数据会错么?
在看D0~D15,你乱接,也一样的道理。假设按D0~D15接FSMC的D15~D0,全反了。但是有关系么?你写的时候:0B1111 1111 0000 0000;读的时候,不也是:0B1111 1111 0000 0000;
所以,只要地址线和数据线不混淆,地址线可以随便乱接,数据线同样可以随便乱接。
但是切记:这种情况,不是万用的,比如你接LCD,那就不行,因为LCD的D0~D15,具有特殊用处(寄存器需要配置),这些是不能改的,否则你会很麻烦...所以实际上,我们布SRAM的线,只要地址线和数据线不混淆。那么随便怎么接都可以,地址线的顺序、数据线的顺序,都可以乱。这样的好处,就是可以方便布线,如果一定要一一对应的接,那么布线就麻烦一点了。