I just have a question that I am hoping someone will be able to clarify. Basically i have one board of 10 that does not seem to operate properly with the DDR3 values found using the following method:
http://processors.wiki.ti.com/index.php/AM335x_DDR_PHY_register_configuration_for_DDR3_using_Software_Leveling
All 10 were working wonderfully for weeks now then i decided to move my speed from 303MHz to 400MHz. After doing this i redid all the timing values and reran the leveling procedure. 9 of 10 worked fine after this, but the 10th was not functioning properly. I found if i changed the CMDX_REG_PHY_CTRL_SLAVE_RATIO from 0x80 (which was the value given to my by the RatioSeed spreadsheet) to 0x40 then my last board works too. So I was looking into the reason for this and noticed in the RatioSeed spreadsheet this value is calculated by the following:
If PHY_INVERT_CLKOUT = 1 Then 0x100 Else 0x80
Then when i look in the TRM i notice this register says it can only have a value from 0 to 0x80.
So is there an error in either the TRM or in the ratio spreadsheet? According to the TRM this number is used to generate a ratio of 256ths so it would make sense that it could goto 0x100, but the values column says otherwise. Plus i have that board that doesn't work with it set to 0x80 making me almost think the ratio spreadsheet should be:
If PHY_INVERT_CLKOUT = 1 Then 0x80 Else 0x40
I don't know though, I guess I don't fully understand what this value does and I'm just trying to figure out why changing it allows all my boards to function properly.