Monday 4 February 2019

What is the correct command sequence for microSD card initialization in SPI?


I am trying to interface a microSD card (2 GB, Kingston, Sandisk) with a Silicon Labs C8051F931 controller.


I am very much confused about the sequence which I have to follow for initialization. In the book SD Card Projects Using the PIC Microcontroller, page 135 mentions:




The steps to switch the SD card into SPI mode should therefore be as follows:
Power-up.
• Send at least 74 clock pulses to the card with CS and Data Outlines set to logic “1.”
• Set CD line low.
• Send 6-byte CMD0 command “40 00 00 00 00 95” to put the card in SPI mode.
• Check R1 response to make sure there are no error bits set.
• Send command CMD1 repeatedly until the “in-idle-state” bit in R1 response is set to “0,”
• and there are no error bits set. The card is now ready for read/write operations.




I tried this, but I am getting 01 even for CDM1. 00 is expected.


Also here I see a different command sequence where he sends CMD8 after CMD0. But the book says I have to send CMD1.


What is the correct sequence?




No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...