Hi, I'm having a strange problem with a custom board containing a BF547, reading a 2GB uSDcard.
All the cards I have to hand are relatively new, so all support v2 of the SD spec.
1. All work perfectly in a PC card reader.
2. All of the cards I have work perfectly in an older version of our custom board which uses a BF533, an SPI channel, and my own code to implement the SD protocol.
3. In the BF547-based board (using 1-bit SDbus mode and built-in SDH controller), everything works except for SanDisk 2GB uSDcards (made in China). SanDisk 1GB, and 512MB both work (both made in Taiwan). SanDisk 16GB SDHC cards made in China also work. Kingston 2GB cards work.
4. The code I use in the BF547 board is more or less a merge of my old SPI module plus the ADI sample code from the BF548 POST example and the code examples in the hwref. Basically, the SendCommand comes from ADI code, but the commands being sent are as per the old board.
5. I can't get any evidence that the card responds to the GO_IDLE command at all.
6. I do not use the ADI libraries / Linux etc. This is a small self contained firmware project.
Of course the people who make our boards for us bought up a nice stock of these SanDisk 2GB cards - which they claim came from a reputable supplier - i.e. not fakes, and anyway fakes would not pass tests 1 and 2 above.
I've been banging away at the problem for more than a week with nothing to show for it. So, last resort is to come here. Can anyone suggest what this might be? I hate to just wash my hands of the problem.