SD card not responding to initialisation
Posted: Sat Feb 06, 2021 7:41 am
I'm trying to talk to an SD card using HSPI. No matter what I do, the card never responds to the initial CMD0 setup command. I think I'm sending the command correctly, but I never see any activity on MISO. I have:
My suspicion is that there's something subtly wrong I'm doing with the initialisation ritual which is causing the card to never wake up. This is the sort of thing which anyone with experience should be able to tell at a glance from the logic analyser trace, right? So here it is.
You can see the remains of the init sync sequence on the left (20 bytes clocked with CS high). Then CS goes low, and there's the 04 00 00 00 00 95 CMD0 packet going out; I would normally expect to see activity on MISO in response, but there's nothing. Pulseview's protocol decoder thinks the command is valid. Is there anything obviously wrong here?
- verified connectivity on the MISO line from the microcontroller to the card;
tried with multiple cards;
tried with multiple card readers;
tried at a variety of clock speeds (currently it's set to about 300kHz)
verified that the internal pullup resistors on MOSI and MISO are enabled
My suspicion is that there's something subtly wrong I'm doing with the initialisation ritual which is causing the card to never wake up. This is the sort of thing which anyone with experience should be able to tell at a glance from the logic analyser trace, right? So here it is.
You can see the remains of the init sync sequence on the left (20 bytes clocked with CS high). Then CS goes low, and there's the 04 00 00 00 00 95 CMD0 packet going out; I would normally expect to see activity on MISO in response, but there's nothing. Pulseview's protocol decoder thinks the command is valid. Is there anything obviously wrong here?