...
The (1-bit) initialization process reveals that commands can be executed and responses are returned with the proper bits in the correct byte-order. Example responses for each step in the sequence are given in and Figure - Command responses (SD card) and Figure - Command responses (MMC card). The first command executed, GO_IDLE_STATE
, never receives a response from the card. Only V2 SD cards respond to SEND_IF_COND
, returning the check pattern sent to the card and the accepted voltage range. The OCR register, read with SD_SEND_OP_COND
or SEND_OP_COND
, assumes basically the same format for all card types. Finally, the CID (card ID) and CSD (card-specific data) registers are read—the only times ‘long’ (132-bit) responses are returned.
Multiple-bit initialization (often 4-bit) when performed on a SD card further confirms that the 8-byte SCR register and 64-byte SD status can be read and that the bus width can be set in the BSP. Though all current cards support 4-bit mode operation, the SD_BUS_WIDTHS
field of the SCR is checked before configure the card bus width. Afterwards, the 64-byte SD status is read to see whether the bus width change was accomplished. When first debugging a port, it may be best to force multi-bit operation disabled by returning 1 from the BSP function FSDev_SD_Card_BSP_GetBusWidthMax()
.
Panel |
---|
borderWidth | 0 |
---|
title | Figure - Simplified SD/MMC cardmode initialization and state transitions |
---|
|
Image Added |
Panel |
---|
borderWidth | 0 |
---|
title | Figure - Command responses (SD card) |
---|
|
Image Added |
Panel |
---|
borderWidth | 0 |
---|
title | Figure - Command responses (MMC card) |
---|
|
Image Added |
Panel |
---|
borderWidth | 0 |
---|
title | Figure - SD SCR register |
---|
|
Image Added |
Panel |
---|
Image Added |