Hello all
in my design I use the chip OMAP-L138, but I meet trouble when I debug the DDR2 , there is different between the data I write to DDR2 and the data I read from it.
The basic description is this
1/ I use the DDR2 which is MT47H128M8CF-3, the datawidth is 8, and I use 2 chip to compose a 16 bit datawidth referring to the page 129 in the datasheet of OMAP-L138
2/ the frequency to DDR2 is 150Mhz, and I use the device.c file which come from < OMAP-L138_FlashAndBootUtils_2_36> to configure the OMAP-L138 ,and given that there is mDDR in OMAP-L138EVM and DDR2 in my board, I change some registers as this
SDCR 0x00134A32
SDRCR 0x00000492
SDTIME1 0x26922A09
SDTIMR2 0x3C14C722
DRPHYC1R 0x000000C6
3/ I attempt to read one data right now after when I write to it and find that it’s the same data. But when I write a heap of data and then read it ,I find that it’s wrong, such as
0x00000001 0x00040001
0x00000002 0x00040002
0x00000003 0x00040003
…… . ……
The left side is the data I write , and the right is the data I read . I don’t think it is the address line has problem, because I can read the same data right now after when I write to it byte by byte. But how does it be this?
4/ I use the same program to write the OMAP-L138EVM except the configuration of the 5 registers above because there is mDDR in OMAP-L138EVM. And I find I can get the same data with the which I have written. But in my board, I changed these registers and find it can’t work.
Generally speaking, I think the DDR2 can’t hold the data I have written, so does any one meet the same problem?
Best Regards,
xunliang