SD卡初始化和识别过程:
在发送CMD 8命令后,扩展ACMD 41指令,参数中包含更多HCS部分,响应中包含CCS(Card容量状态)部分。高碳钢参数不会响应CMD8命令SD卡。当控制器向不响应CMD 8的卡发送ACMD 41指令时,CMD 8位应设置为零。如果发送SDHC卡ACMD41高碳钢0命令,SDHC卡返回响应,繁忙的标记WeiYongYuan 0,忙代表国家。HCS标识符用于指示SD卡是否已完成初始化,如果HCS为零,如果HCS为零,则控制器重复ACMD 41指令SD卡,仅检查**接收到的ACMD 41指令的HCS位。
SD卡响应CMD 8而发送的ACMD 41指令的响应包含CCS部分,控制器仅用HCS标志位1检查响应中包含的CCS位。CCS = 1表示SDHC卡,或者作为标准SD卡。
然后控制器发送ALL_SEND_CID(CMD 2)命令来查询每个卡的CID(一卡标识)值,而未被标识的SD卡(处于就绪状态)发送一个CID值作为响应。发送CID值后,SD卡进入可识别状态(标识状态),控制器发送CMD 3(SendRelatedADDR)命令。每个SD卡需要发送一个新的相对地址(RCA),以便在随后的数据传输模式中寻址。RCA后发送。站到SD卡的状态,在这种状态下,如果控制器新RCA SD卡分布,它可以发送另一个CMD3命令到SD卡。最后发布的RCA是SD卡的真正RCA。
当全职的写缓存,SD卡的编程,DAT0将保持低水平(忙),显示这是一个忙!
写CSD,写保护,删除这些操作没有缓存,而SD卡正在处理这些命令,其余的数据传输命令被忽略。当SD卡繁忙且处于编程状态时,SDCarla也会降低DAT 0。
在SD卡的编程时间,不允许控制器发送命令设置参数。设置参数命令是:设置块长度(CMD 16)、擦除块启动(CMD 32)和擦除块结束(CMD 33)。
在SD卡编程时刻,读命令也是不允许的!当另一个卡从站——转换状态传输状态,正在钻的擦除和编程操作不会结束,它会自动进入断开状态,释放数据线。
处于断开状态的卡可以通过发送cmd 7命令、进入编程状态和重新激活繁忙标识符从此状态中删除。
重置SD卡(使用CMD 0或CMD 15)将终止任何挂起或正在进行的编程操作。这可能会损害SD卡数据!