用于控制 MMC/SDC 的SPI 模式的介绍

时间:2023-01-11

    用于控制 MMC/SDC 的SPI 模式。SPI 模式是一种替代操作模式,定义为在没有本地主机接口的情况下使用 MMC/SDC。SPI 模式的通信协议与其原生操作模式相比略显简单。MMC/SDC 可以通过通用 SPI 接口或一些 GPIO 端口连接到大多数微控制器。因此,SPI 模式适用于没有可用本地主机接口的低成本嵌入式应用。有四种不同的 SPI 模式,0 到 3,取决于时钟相位和极性。SPI 模式 0 是为 SDC 定义的。对于MMC,它不是SPI规范,锁存和移位操作都是用SCLK的上升沿定义的,但它似乎在SPI模式下工作在模式0。因此SPI 模式 0(CPHA=0, CPOL=0) 是控制 MMC/SDC 的正确设置,但模式 3 (CPHA=1, CPOL=1) 在大多数情况下也能正常工作。DO 上的上拉不能省略,否则有些卡会初始化失败。

    命令与响应

    在 SPI 模式下,信号线上的数据方向是固定的,数据以字节为导向的串行通信方式传输。从主机到卡的命令帧是一个固定长度的数据包,如下所示。当卡将 DO 驱动为高电平时,该卡已准备好接收命令帧。命令帧发送到卡后,卡会发回对命令(R1、R2、R3 或 R7)的响应。因为数据传输是由主机控制器产生的串行时钟驱动的,所以主机控制器必须继续读取数据,发送一个 0xFF 并获取接收到的字节,直到检测到有效响应。DI 信号在读取传输期间必须保持高电平(发送 0xFF 并获取接收到的数据)。响应在命令响应时间内发回(N CR), SDC 为 0 到 8 字节,MMC 为 1 到 8 字节。必须在发送命令帧之前将 CS 信号驱动为高电平至低电平,并在事务期间将其保持为低电平(如果存在命令、响应和数据传输)。CRC 功能在 SPI 模式下是可选的。卡不检查命令帧中的 CRC 字段。

    命令框架
    SPI 命令集
    每条命令都用GO_IDLE_STATE或CMD等缩写表示,为命令索引号,取值范围为0~63。初始化。有关所有命令的详细信息,请参阅 MMCA 和 SDA 的规格表。

    有一些命令响应格式,R1、R2、R3 和 R7,取决于命令索引。大多数命令都会返回一个响应字节 R1。R1响应的位域如右图所示,值为0x00表示成功。当发生任何错误时,将设置响应中的相应状态位。R3/R7 响应(R1 + 尾部 32 位数据)仅适用于 CMD58 和 CMD8。
    有些命令花费的时间比 N CR长,它会响应R1b。它是一个 R1 响应,后跟忙标志(只要内部进程在进行中,DO 就会被驱动为低电平)。主机控制器应等待过程结束,直到 DO 变为高电平(收到 0xFF)。
上一篇:了解陶瓷电容器,全面了解陶瓷电容器
下一篇:TTL 电平如何转换为 RS-232C 电平

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料