Initialization of SD mode and SPI mode of SD NAND
Recently, many customers require that whether CS SD NAND can use the SPI interface or not. What's the difference between SPI and SD interface? Explanation as below:
SD MODE:
CS SD NAND supports SD mode and SPI mode. SD NAND defaults to SD mode. After power on, its initialization process is as follows:
1. config timer, 0-400KHZ, and config work mode.
2. Send CMD0 to make the card into idle state, and no feedback.
3. Send CMD8. If there is a response, it means that the CRC value is the same as that sent, which indicate that the SD card is compatible with SD2.0 protocol, and it also get SD NAND’s voltage.
4. Send CMD55+ACMD41 to test the current of SD card. Successful short feedback signifies the SD card. (The 31st feedback command is 1, which means the card is HC card),Or send CM0, any feedback signifies MMC card.
5. Send CMD2 to verify the SD card is connected correctly or not. Long-term feedback(CID)
6. Send CMD3,get the RCA address of SD card,short-term feedback.
7. Send CMD9, get CSD register to obtain card related information.
8. Send CMD7
9. config high speed clock,standby for data transmission, generally 20M-25M
SPI MODE:
1. Set SPI clock to 0~400khz ------------- Initialization for SD card can only be performed in low-speed mode
2. Send at least 74 cycles of the clock signal -------------- It is recommended to send more (for fear of delay in some circuits)
3. Send CMD0 to SD card------------------------- SD card turn to SPI mode, then enter IDLE mode.
4. Send CMD8(SD2.0) ------- Identify SD2.0 and read the returned values of the next 4 bytes to check whether it supports the working voltage (for example, 0x01aa if 2.7~3.6v support)
5.Send CMD55+ACMD41(SD2.0) ----- Check the initialization is completed or not.
6.Send CMD58-----------------------Identify the edition of SD2.0
7.Send CMD55+ACMD41(SD1.0) ----------------Check the return value to identify SD1.0 or MMC card.
8.Send CMD55+ACMD41(SD1.0) ---------------- Check the initialization is completed or not.
9.Send CMD1(MMC)--------------------------------Initialize the MMC card.
10.Send CMD16------------------------------------- config the partition size of the SD(512 byte by default)
Set SPI clock to high speed, maximum 25Mhz, then the initialization is completed.
The differences between SD mode and SPI mode:
1. SD NAND is SD mode by default. To enter SPI mode, you must reset it at the first.
2. SD mode defaults to single line output date0, but in high-speed mode, you can use four lines: date0~date3; SPI mode can only use single line mode, and its communication only includes CS, CLK, DI, DO.
3. Many customers use SPI mode because there are only SPI interfaces on the board, which can reduce the complexity of the design. However, under SPI mode, SD NAND can only use a single line, which R/W speed is slower than the four lines under SD mode.
4. Interface:
5. The command length under SD mode is 16 bits, and the command length under SPI mode is 8 bits.
The above is a brief introduction about the initialization process of CS SD NAND under SD mode and SPI mode. At present, CS SD NAND is widely used in the consumer wearables market, as well as in aerospace, railway transportation, water conservancy detection and other industrial fields. You are welcome to call us if you are interested. We will serve you wholeheartedly.
Email:line@longsto.com