Lach , 10-10-2025, 01:42 AM
I have tested 7 boards 24h and they all passed. 3 of them in a temperature chamber also passed. The process I described above regarding Write Level calibration without running the stress test is also described in an old Freescale note for IMX6 AN4467 page 17**11.1 Calibrating Write Leveling with a Preset Delay Value**The write leveling delay parameters can be set without running the calibration sequence, by programminga preset value of absolute delay.The source of the preset value can be a write leveling calibration sequence done in the past. **Alternately,the delay values can be a manual estimation of data delays based on DDR board route lengths.**The following empirical rule, based on simulations and board experience, can be used:Each ([SDCLK_LENGTH] -[DQS_LENGTH])/6, measured in inches, implies 1 ns of delay.The time delay received by this rule should be converted to ddr_cycle/256 units, converted to hexadecimal,and applied to a delay register.Calibrating with a preset value is done by the following:• Write the write leveling preset value to MMDC0_MPWLDECTRL0,MMDC0_MPWLDECTRL1, MMDC1_MPWLDECTRL0, and MMDC1_MPWLDECTRL1registers.• Set MMDC0_MPMUR[FRC_MSR], and MMDC1_MPMUR[FRC_MSR] bits.Here, Freescale sets MMDC0_MPMUR[FRC_MSR] and MMDC1_MPMUR[FRC_MSR] bits basically instructing the DDR MMDC controller to move along with DQS Gating Calibration even if the Write level calibration is not successful due to say swapped least significant D0,D8, D16 and D24 bits, giving a chance for the user to go back to the .inc script and update MMDC0_MPWLDECTRL1, MMDC1_MPWLDECTRL0, and MMDC1_MPWLDECTRL1registers manually later- see IMX6RLM.pdf.App Note AN4467 contains the source code in C for the stress test as well.You also need NXP IMX6 DDR3 stress test tool **v2.6.0 **which doesn't stop on Write Level cal error as described above giving you a chance to update those registers manually. You can obtain it only by calling the NXP FAE