Hello,
I have a custom board and i currently have 2 units built up as prototypes. They are setup to boot from MMC0, which has a micro SD connector on it. Now one board works fine, the micro SD card gets inserted and the SPL is loaded and executed and i get terminal output.
The other board however, will hang for about 20 seconds then i will see a stream of 8 Cs and then it will hang again for 20 seconds and this cycle repeats. So it takes 20 seconds to fail on the mmc0 boot and pass to the UART boot. I can see the MMC0 CLK going during the whole 20 seconds.
Now i have the benefit of the working board for comparison, but that was not much help in figuring out the problem. Basically, i found this out about the non-working board:
The CLK goes from a lower speed to a higher speed, indicating to me that the card is communicating. The CLK from the good board and bad board match up.
The CMD line has data going.
DAT0 (Serial data for one-wire) has no data on it on the bad board. The good board does have data on this line.
So getting no data on DAT0 would definitely be the problem, but i don't know why there is no data? I tried making every SD Pin a GPIO and ensured i could toggle each one high and low separately. That was all good. I tried removing the ESD chips to make sure they weren't the issue and still no success. There are pullups on the lines and i verified they are all 10K. I also connected via JTAG and verified my SYSBOOT settings, the value of register 0x44E10040 being 0x00400353 . I found that during that 20 seconds the boot rom code tends to just continually loop through like the 0x2419x area. Here is the excerpt from my schematic (VDDSHV4 and VDDSHV6 are both 3.3V):
Im not really sure where to head from here, i would like to pinpoint what the problem is so i can eliminate it in the future, but im not sure what else to try : /. Any help our suggestions would be greatly appreciated!!!
