Data Transmission Mode:
The controller uses the FOD clock frequency before the SD card recognition mode ends. In data transmission mode, the Controller may use the FPP frequency. The controller sends an ssend_csd (ipv9) command to obtain the description value in the SD card CSD register (card specific data), such as the block length and card capacity information. Broadcast command set_dsr (Serial 4) for each identified SD cardConfiguration driver stage (??). It writes relevant information to the DSR register of the SD card. The clock frequency of the controller is also transferred from FOD to FPP at this time. The set_dsr command is optional.
The Dig 7 command is used to select an SD card and bring it into the transfer state. Only one card can be in the transfer state within a specified period of time. When a previously selected transfer SD card receives latency 7, the connection to the Controller is released and enters the stand-by state. When iis7 uses the reserved address 0x0000, all SD cards will enter the stand-by status.
The conversion relationships between statuses in data transmission mode are summarized as follows:
All data read commands can be terminated at any time by the Stop command (Limit 12. Data transmission is terminated, and the SD card returns the transfer status. Read Commands include: block read operation (Limit 17), multi-block read operation (Limit 18), sending write protection (Limit 30), sending SCR (acmd51), andCommon commands(56)
All data write commands can be terminated at any time by the Stop command (Limit 12. Writing a command will also stop before canceling the selection command (sequence 7. Write Commands include: block write operations (24, 25), programming commands (27), lock/unlock commands (42), and Common commands in write mode (56)
Once data transmission is complete, the SD card will exit the data write status and enter the programming status (Transfer successful) or transfer status (Transfer failed)
If the block write operation is stopped, but the final block length and CRC Check contained in the write operation are correct, the data will be programmed to the SD card (From cache writing to flash?)
The SD card may provide the cache mode, which means that when the block is programmed to flash for the previous write, the controller can then send the next data block.
When the write cache is full and the SD card is in the programming state, dat0 is kept as low (busy), indicating it is busy.
Write CSD, write protection, and erase operations without caching. When the SD card is processing these commands, other data transmission commands will be ignored. When the SD card is busy and in the programming status, dat0 will also be low by SD Kara,
When the SD card is in the programming status, the controller is not allowed to send the parameter setting command. The command for setting parameters is as follows: Set block length (Limit 16), erase block start (Limit 32), and erase block end (Limit 33)
Reading commands are not allowed during SD card programming.
When another card is switched from the stand-by status to the transfer status, the operations on the card in the erase and programming status will not be terminated, and it will automatically enter the disconnect status and release the data line.
A card in the disconnect status can be detached from this status by sending the dig 7 command and enters the programming status,And reactivate the busy identifier
Resetting the SD card (with limit 0 or limit 15) will terminate any pending or ongoing programming operations. This may damage the SD card data.
CMD34-37 limit 50, limit 57 Reserved