关于C6678的DDR3测试(基于Keystone1_Memory的Memory_Test例程)
1、测试中出现以下错误,但其他测试都正常,什么原因导致?(测试结果详附件)
Memory Test fails at 0x80000000, Write 0x8000000480000000, Readback 0x8000200480002000
Memory Test fails at 0x8fffac78, Write 0x8fffac7c8fffac78, Readback 0x8fff8c7c8fff8c78
更改KeyStone_external_memory_test(DDR_TEST_START_ARRD, DDR_TEST_START_ARRD+256*1024*1024, 1)为KeyStone_external_memory_test(DDR_TEST_START_ARRD, DDR_TEST_START_ARRD+1024*1024*1024, 1),错误如下
Memory Test fails at 0x80000000, Write 0x8000000480000000, Readback 0x8000200480002000
Memory Test fails at 0xcfffac78, Write 0xcfffac7ccfffac78, Readback 0xcfff8c7ccfff8c78
2、关于DDR3的存储空间访问
修改哪些地方可以测试2GB-4GB的存储空间?所选DDR3芯片为H5TQ8G63AMR。
Allen35065:
从结果看你的DDR3其中一根数据线上的数据出现错误,可以多测几次看看是不是相同的线上出现。
另外自制的板卡需要根据你的DDR3布线以及颗粒修改DDR3初始化参数,否则可能会有读写错误,修改参数后再测试,如果没有改善,可以降频看看。
要访问>2G的DDR3地址空间需要修改MPAX的映射,参考 TMS320C66x DSP CorePac User Guide 7.3节。
zhou1:
回复 Allen35065:
附件为DDR3的Datasheet
zhou1:
回复 zhou1:
另一个现象,将DDR3工作在32bit模式,出错的数据位向低位移1bit位(如0x2000变成0x1000);改为16bit宽,出错的数据位又向低位移1bit宽(如0x0800)。
微调整时延参数,出错数据位无变化。
zhou1:
回复 zhou1:
问题出在地址A10上,0x80002000和0x80000000的内容一样。
示波器看了下A10信号,没有短路,读写有跳变电平和其他地址线一样。
纠结中……
zhou1:
回复 zhou1:
将EBANK改为仅DCS0,PAGESIZE改为1024,DDR3测试可以通过。
但是还有一个问题,所选择的DDR3芯片为H5TQ8G63AMR。其有两个片选,PAGESIZE大小为2048。要让C6678支持DDR3两个片选和2k的PAGESIZE,除了设置SDCFG寄存器外,Memory_Test例程还需要做哪些改动?(硬件状态可以保证)