请教MPC8315处理器-DDR2和eLBC接口
小弟看到原理图上的eLBC(局部总线控制器)接口上外挂的NAND和NOR Flash的数据接口都是相反的,不太明白为什么,还有DDR2的接法也很奇怪,不知哪位版友有用过这款处理器能帮忙解答,感激不尽!
如图,第一张是DDR的,这个数据线的线序我不理解:
这张是Flash的,数据线和地址线都搞地位相反。请教这个是大小端的原因吗?但是大小端应该只是指字节序,为什么每个bit都反过来呢?况且在烧写Flash的时候,大小端应该是做过处理的。
都是高手啊,小弟看的云里雾里,也没有规格书,小编可以传下规格书不
当你仔细的读过DDR2的资料后,这些就不是问题了!
资料我看过了,没有发现什么问题,或许是我没注意到,还望兄台不吝赐教
另外还有flash的接口呢?
我不知道怎么说,你或许只做硬件吧?对存取机制不是很清楚?DDR是用来做什么的?它只是用来存取数据的。类似于中转仓库吧,至于数据是什么,怎么排列跟它无关。你怎么放进来的,再怎么取回去就是了。不知道你明白了没有?这个在DDRII的资料上说得非常清楚,你没有仔细读罢了。
第一张DDR的数据线是为了布线时方便布线做的交换,楼上说的正解,DDR数据位大组与大组可以交换(控制相应交换),大组内数据位可以交换,存储原理楼上已经说了!
看一下存储机制就明白了。当然有一部分原因和字节序有关,FLASH的接法为了避免在软件设计中频繁的调整字节序
恩,谢谢以上几位仁兄的解答!
关于DDR,小弟现在明白了,数据怎么存入就怎么取出,和线序无关。但是由于DQ[0:31]是分为4个字节分别由DQS[0:3]来同步取样,所以线序只是在同一组内可以随意分配,但是不能跨组。是这样理解吧?
另外,对于Flash的接法我还是有些不太明白,我在烧写Uboot之前是对烧写文件进行过大小端转换的,这里按位反接理解不了,还希望各位大神再指点一二。
恩,大组与大组可以交换,大组内数据位可以交换,相当精辟,感谢感谢!
小编没有好好看规格书,flash上地址和数据并不是反的,LBD是地址数据复用管脚,复用是LBD(0:15)对应的是data(15:0)和ADDR的高位.不复用时LBD(0:15)就是DATA(15:0)。也就是说LBD(0)本身定义就是高位。
恩,我回去又看了datasheet,的确是这样。
是我想当然了,不过不知道为什么要这样标。
仔细看看,freescale处理器的数据MSB与intel模式的MSB是反着的,所以FLASH需要调转过来,置于DDR嘛,就是个数据暂存器,数据线可以SWAP。
''freescale处理器的数据MSB与intel模式的MSB是反着的''
这就是大小端吧?!
不,这个不是大小端。这款处理器的DB[0]就是指数据总线最高位;同样的,AB[0]表示地址总线最高位。大小端只是字节序,是以字节为单位的,这个只需要在uboot,kernal,环境变量,程序的烧写时进行大小端转换就可以了。
不是很清楚,敬等高手解答