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