瀚海微SD NAND之SD 协议(41)SPI模式命令令牌

2024-08-28 11:54:42 浏览数 (2)

控制令牌

数据块传输由一些令牌控制。

数据响应令牌

每个写入卡的数据块都会被一个数据响应令牌确认。

它是一个字节长,格式如下:

状态位的含义定义如下:

'010'-接受的数据。

'101'-由于CRC错误而拒绝数据。

'110' -由于写入错误而拒绝数据

如果在写多块操作过程中出现任何错误(CRC或写错误),主机将停止使用CMD12传输数据。

如果出现写错误(响应'110'),主机可能会发送CMD13 (send STATUS) 来获取写入问题的原因。

ACMD22可用于查找编写良好的写块的数量。

开始块令牌和停止传输令牌

读和写命令都有与之相关的数据传输。

数据通过数据令牌传输或接收。

所有的数据字节都首先以MSB传输。

数据令牌长度为4 ~ 515字节,格式如下:

For Single Block Read, Single Block Write and Multiple Block Read:

第一个字节:Start Block

2 ~ 513字节(取决于数据块长度):用户数据

最后两个字节:16位CRC。

对于多块写操作:

每个块的第一个字节。如果要传输数据,那么-启动块令牌

如果请求停止传输-停止传输令牌

注意,这种格式只用于多块写。

在多块读取的情况下,使用STOP_TRAN命令(CMD12)执行停止传输。

数据错误令牌

如果读操作失败,卡不能提供所需的数据,它会发送一个数据错误令牌。

这个令牌有一个字节长,格式如下:

清除状态bits

如前所述,在SPI模式下,状态比特以三种不同的格式报告给主机:响应R1、响应R2和数据错误令牌(相同的比特可能存在于多种响应类型中,例如Card ECC failed)。

在SD模式下,错误bits在被主机读取时被清除,而不管响应格式如何。

状态指示灯可以通过读取清除,也可以根据卡的状态清除。

下表总结了各种状态位的设置和清除条件:

1) 类型:

E:错误位。

S:状态位。

R:检测并设置为实际命令响应。

X:在执行命令时检测并设置。

主机可以通过发出带有R1响应的命令来获取状态。

2) 清零条件:

A:根据卡当前状态清零。c:按读清零

卡寄存器

在SPI模式下,只有RCA寄存器不可访问。其他寄存器的格式与SD模式下的格式相同。

sdn

0 人点赞