16 of 1000 boards using the K70 have failed memory tests to date.
Here is the background:
1) Used the TWR-K70F120M tower board as a reference design
a) Followed the schematic
b) Used the artwork/routing from the design files of the tower board to prevent introducing errors.
2) MQX 3.8
3) Using Micron MT47H64M16NF-25E:M - The Tower board uses the MT47H64M16HR-25:H
Originally used the DDR INIT settings from the MQX 3.8 K70 tower board BSP. (FYI... Found that CR53 was repeated in CR54 and CR55. Manually changed CR54 and CR55)
ddr->CR50 = 0x00000064;
ddr->CR52 = 0x02000602;
ddr->CR53 = 0x03c80000;
ddr->CR54 = 0x03c803c8; ///AVM/// ddr->CR53 = 0x03c803c8;
ddr->CR55 = 0x03c803c8; ///AVM/// ddr->CR53 = 0x03c803c8;
ddr->CR56 = 0x020303c8;
ddr->CR57 = 0x01010002;
4) Created a memory test procedure (tested all 1000 boards)
Fill DDR memory with random data. While filling, look at the first byte of the memory to see if it changes (points to addressing error). Once filled, the test reads back the entire range of memory to verify contents. On the 16 failed units there are thousands of errors and it appears and it appears to be the high byte in multiple of 4 bytes.
5) Replaced 4 of the non working boards with new K70 micros and the error disappeared. Memory test passes every time.
6) Then tried to use the K70 DDR INIT tool and came up with different values than the tower board init settings. In fact, a few of the registers were left empty. Found out that there is a bug in the K70 DDR INIT tool
Tried using the DDR Init values from the above and still get memory errors
Any ideas on what is going on or how to proceed?