SPI总线时序图
所有时序图使用以下原理图和缩写
所有定时值的定义如表所示。
主机在收到卡响应后,应保持时钟运行至少NcR时钟周期。此限制适用于命令和数据响应令牌。
命令/响应
主机对卡的命令响应-卡已准备好
下面的时序图描述了基本的命令响应(无数据)SPI事务。
主机命令到卡响应卡忙
下面的时序图描述了R1b响应的命令响应事务(例如SET_WRITE_PROT和ERASE)。
当卡信号繁忙时,主机可以在任何时候取消选择它(通过提高CS)。
卡将释放数据线一个时钟后,CS走高。
要检查卡是否仍然繁忙,需要通过断言(设置为低)CS信号来重新选择它。
卡将在下降沿后一个时钟恢复忙信号(拉低数据输出)。
卡对主机命令的响应
数据读取
单块读操作的时序图下面是除SEND_CSD和SEND_CID命令外的所有单块读操作的时序图。
多块读操作的停止传输时间
下表描述了多块读操作的停止传输操作。
读数据块之间的时钟周期由NAC定义(如下图所示)。
为避免CMD12响应与下一个数据块发生冲突,CMD12的时序控制如下:
(1) SPI主机应在CMD12结束位与数据块结束位重叠的时间发出CMD12。
(2) 如果(1)不可能,SPI主机应等待收到令牌(开始块令牌或数据错误令牌),然后在令牌发出一个时钟周期后发出CMD12。
在(2)的情况下,读到最后一个块后,主机收到数据错误令牌(out of range Error)。
但是,如果成功接收到数据错误令牌之前的数据块,则可以认为它是有效的。
SD NAND 读取CSD或CID寄存器
下面的时序图描述了SEND_CSD和SEND_CID命令总线事务。
响应和数据块的超时值分别为NcR和Ncx(因为Nac仍然未知)。