DDR布线的问题,能否用调整timing来补救?
时间:10-02
整理:3721RD
点击:
嵌入式系统的平台,PowerPC的MPC8548
DDR2的型号是HY5PS121621B
由于是自己画的板子,可能是因为匹配没有做的很好,系统相当不稳定
原先bootloader和linux都起不来,后来把系统频率从500M下调到了333M,勉强bootloader和linux能起来了,但是还是非常不稳定,经常出illegal instruction的错,然后系统挂掉。
说明是硬件上的布线问题造成频率无法提高。现在想再降频使系统稳定。
想再把频率下调到266M时,系统又起不来的。估计是DDR2不支持那么低的频率。
u-boot的配置中有那么一段
/*Timing for DDR2 400*/
#define CFG_EXT_REFREC_400 0x00000000
#define CFG_TIMING_CFG_1_400 0x3935D322
#define CFG_TIMING_CFG_2_400 0x14904cca
#define CFG_DDR_SDRAM_MODE_400 0x000a0432
#define CFG_DDR_SDRAM_INT_400 0x06090100
/*Timing for DDR2 533*/
#define CFG_EXT_REFREC_533 0x00010000
#define CFG_TIMING_CFG_1_533 0x4C474432
#define CFG_TIMING_CFG_2_533 0x13984cce
#define CFG_DDR_SDRAM_MODE_533 0x000a0442
#define CFG_DDR_SDRAM_INT_533 0x08000100
/*Timing for DDR2 667*/
#define CFG_EXT_REFREC_667 0x00020000
#define CFG_TIMING_CFG_1_667 0x5E593543
#define CFG_TIMING_CFG_2_667 0x12a06cd1
#define CFG_DDR_SDRAM_MODE_667 0x000a0452
#define CFG_DDR_SDRAM_INT_667 0x0a000100
是设置DDR2的timing的,最低的timing也是针对400的,但现在想自己改个针对266或333这么低频率的。
但不知道怎么改。想通过配置针对DDR2的寄存器,调整timing来消除布线不好的影响,不知可行吗?
如果要调的话,要调哪些时序?
现在u-boot起来后,在u-boot下改这些寄存器,试着改了好几个值“WRLAT,ACTTORW,
CKE_PLS,ODT_CFG......”,都不见好转。
猜测可能会有一组值是行得通的,但是我经验匮乏,不知怎么去找啊。