SD卡擦除后,从卡中读取什么值?所有位清除或所有位设置?

Wil*_*haw 4 flash sd-card

SD卡擦除后,从卡中读取什么值?所有位清除或所有位设置?

Kar*_*ran 7

SD 协会官方规范应该是您的第一个停靠点:

4.3.5 擦除

需要同时擦除多个写入块以提高数据吞吐量。

这些写入块的识别是通过 ERASE_WR_BLK_START (CMD32)、ERASE_WR_BLK_END (CMD33) 命令完成的。

主机应遵循以下命令序列:ERASE_WR_BLK_START、ERASE_WR_BLK_END 和 ERASE (CMD38)。

如果一个擦除(CMD38)或地址设置(CMD32,33)命令被乱序接收,卡应设置状态寄存器中的ERASE_SEQ_ERROR位并复位整个序列。

如果收到乱序命令(SEND_STATUS 除外),卡应设置状态寄存器中的 ERASE_RESET 状态位,重置擦除序列并执行最后一条命令。

如果擦除范围包括写保护扇区,则它们应保持原样,仅擦除未受保护的扇区。状态寄存器中的 WP_ERASE_SKIP 状态位应设置。

地址设置命令中的地址字段是以字节为单位的写块地址。该卡将忽略低于 WRITE_BL_LEN(参见 CSD)大小的所有 LSB。

如上所述,对于块写入,卡将通过将 DAT0 保持为低电平来指示正在进行擦除。实际擦除时间可能很长,主机可能会发出 CMD7 来取消选择卡或执行卡断开连接,如上面的块写入部分所述。

擦除操作后卡上的数据为“0”或“1”,取决于卡供应商。

SCR 寄存器位 DATA_STAT_AFTER_ERASE(位 55)定义它是“0”还是“1”。