Hi,
I am working with a custom board with a DM8148 and 4 16-bit DDR3 memories of type DDR3-1333 connected to DDR0/DDR1.
We have encountered some issues to read/write to the DDR3. But, if slowing down the DDR clock speed to 100Mhz, the RD/WR problem still exist but the faults are statistically less frequent. So my 2 cents idea that is a timing configuration problem and not a logic hardware connection issue.
So, I tried to configure the DDR3 PHY using the instructions from the wiki link:
http://processors.wiki.ti.com/index.php/TI814x-DDR3-Init-U-Boot
From the spreadsheet RatioSeed I fill our custom parameters:
Parameters | ||||
DDR3 clock frequency | 333.5 | MHz | ||
Invert Clkout | 0 | |||
Trace Length (inches) | ||||
Byte 0 | Byte 1 | Byte 2 | Byte 3 | |
CK trace | 1.9 | 1.9 | 1.43 | 1.43 |
DQS trace | 1.26 | 1.2 | 0.9 | 0.7 |
Seed values (per byte lane) | ||||
WR DQS | 9 | A | 8 | B |
RD DQS | 34 | 34 | 34 | 34 |
RD DQS GATE | 77 | 76 | 65 | 5F |
Seed Values to input to program | ||||
WR DQS | 9 | |||
RD DQS | 34 | |||
RD DQS GATE | 6C |
(the DDR3 layout rules seems to be OK.)
The numbers in green are inputs from my custom board layout and the speed of my DDR3 (I used half the clock speed 667Mhz /2 and reduced CL by two to match datasheet requirements.)
But it seems the RD DQS colored in red is a value that is not influenced by my configuration values in (green).
In other words, the WR DQS and the RD DQS GATE are computed regarding my custom board trace length (inches) but the RD DQS is not computed. It is hard coded to the value 0x34. maybe this value is only good for the mistral evm.
1/ How can I set the RD DQS value for my custom board.?
I modify the GEL file with the output of the spreadsheet and then I runned the DDR3_slave_ratio_search_auto.out application to know how to tune my GEL file with a more accurate configuration but the output of the API was all ZEROES.
2/ Is the program use the auto leveling chip feature to configure the DQS delays?
3/ What does means all the zeroes? (may be the program could not converge to any values / leveling failed).
4/ Is the source code of the DDR3_slave_ratio_search_auto executable could be share with us? so I can investigate the issue deeper.
I repeat the same steps with a lower ddr clock -100Mhz and also a higher one -400Mhz also I tried other RD DQS values. But the same problem was encountered.
I tried also to enable the invert clkout feature. (also in the GEL file), no success
Any help from TI support team or other users will be welcomed,
Thanks,
Jonathan.