Dear community,
I used 2 micron MT41K512M16 ddr3 chips for the bus width 0f 32 bits. my board has a very strange problem. I did the ddr calibration using JLink probe, it passed all the calibration, and the results are very close to the reference board's figures. but when I write a number to an address, the data is stored to the address with is 8 bytes above the specified address. Another problem is that if I read memory address between 0x08000000-0x0FFFFFFF, it will return a number although I don't have an EIM device, it suppose to failed the read. If I read the address above the 1GB, it can also return a value.
My settings are:
MDASP=0x1F,
rows=16
cols=10
burst length=8
density=16 bits
following are my test results:
(gdb) monitor memU32 0x10000000
Reading from address 0x10000000 (Data = 0x7428B28E)
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x74B2B20E)
(gdb) monitor memU32 0x10000000=0x11111111
Writing 0x11111111 @ address 0x10000000
(gdb) monitor memU32 0x10000000
Reading from address 0x10000000 (Data = 0x00000000)
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x11111111)
(gdb) monitor memU32 0x10000004
Reading from address 0x10000004 (Data = 0x00000000)
(gdb) monitor memU32 0x1000000c
Reading from address 0x1000000C (Data = 0x75C8B214)
(gdb) monitor memU32 0x10000004=0x22222222
Writing 0x22222222 @ address 0x10000004
(gdb) monitor memU32 0x10000004
Reading from address 0x10000004 (Data = 0x00000000)
(gdb) monitor memU32 0x1000000c
Reading from address 0x1000000C (Data = 0x22222222)
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x11111111)
(gdb) monitor memU32 0x10000010
Reading from address 0x10000010 (Data = 0x2CAAA28A)
(gdb) monitor memU32 0x10000008=0x33333333
Writing 0x33333333 @ address 0x10000008
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x11111111)
(gdb) monitor memU32 0x10000010
Reading from address 0x10000010 (Data = 0x33333333)
(gdb) monitor memU32 0x10000018
Reading from address 0x10000018 (Data = 0x74AAB28E)
(gdb)
Solved! Go to Solution.
Hi
one can test various processor peripherals using SDK
https://github.com/RT-Thread/rt-thread/tree/master/bsp/imx6sx/iMX6_Platform_SDK
Best regards
igor
Hi
one can test various processor peripherals using SDK
https://github.com/RT-Thread/rt-thread/tree/master/bsp/imx6sx/iMX6_Platform_SDK
Best regards
igor
Dear igor,
I have the code you gave me. All write/reads are successful except the first two or three data. I will spend some time to find out the reason. It seems that you can not relay on debugger to test DDR.
thank you,
Hai