命令CMD0就是0,CMD16就是16,以此类推。 SPI命令格式为6字节构成,高位在前(MSB)。 字节1的最高2位固定是01,低6位为命令号(CMD0就是0,CMD16就是16,以此类推),字节2-5为命令参数,有些命令是没有参数的;字节6的高7位为CRC,最低位恒为1。 SD卡的命令总共有12类,下表为几个比较重要的命令: SD卡的...
cmd0命令,是单向命令,host->device。不能保证硬件连接。 cmd8命令,是双向命令,能接收到ack,说明硬件通信是ok的。 MMC/SD/SDIO介绍 http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html 了解一个功能模块,硬件接口是一个入门点。 mmc、sd,sdio。 有1根clk,1根cmd,8根data(可以选择1根或者4根)。
同时通过 CMD7 命令也可以让已经被选择的目标卡返回到待机状态。 数据传输模式下的数据通信都是主机和目标卡之间通过寻址命令点对点进行的。 CMD12 可以中断正在进行的数据通信,让卡返回到传输状态。 CMD0 和 CMD15 会中止任何数据编程操作,返回卡识别模式,这可能导致卡数据被损坏。 3.3 SDIO适配器(是STM32控制器...
MMC卡的上电和初始化发送CMD0:软件复位命令,将卡置于空闲状态。发送CMD1:获取MMC卡的OCR(Operation Conditions Register)。 读取OCR中的Busy(Card power up status)bit,判断MMC卡的上电过程是否完成,直到该位置1说明上电完成。 MMC卡的识别过程发送CMD2:获取MMC卡的CID(Card IDentification)Register。发送CMD3:设置...
(&SDIO_CmdInitStructure); /* 检测是否正确接收到cmd0 */errorstatus = CmdError(); /* 命令发送出错,返回 */if (errorstatus != SD_OK) {/* CMD Response TimeOut (wait for CMDSENT flag) */return(errorstatus);}/***//* CMD8: SEND_IF_COND * 发送 CMD8 检查SD卡的电压操作条件 * * 参...
第一条SD命令应当是 GO_IDLE_STATE, 也就是 CMD0, 将SD卡恢复到IDLE状态。不过看SD规范的文档,这条命令是没有应答的,所以执行成功与否也无从知道,比如电路本身就有问题的话…… 发送命令还不难,写SDIO_ARG和SDIO_CMD寄存器就是了,命令号在SDIO_CMD里。MCU里面有一个状态机来实现命令过程(Command Path State...
命令号:它固定占用6bit,所以总共有64个命令(代号: CMD0 ~ CMD63 ),每个命令都有特定的用途,部分命令不适用于SD卡操作,只是专门用于MMC卡或者SD I/O卡。 地址/参数:每个命令有32bit地址信息/参数用于命令附加内容,例如,广播命令没有地址信息,这32bit用于指定参数,而寻址命令这32bit用于指定目标SD卡的地址。
该函数首先发送复位命令(不过该命令只有SDIO类型的卡才能够识别),然后发送CMD0,让设备进入IDLE模式,紧接着发送CMD8,获取该卡所支持的电压值,最后就是重点了(从1998-2003行),从所调用的各个函数名字可以看出,它是在试探该卡是否为SDIO? SD? MMC? 那么接下来的文章就是要分析上面的三个函数,看它是如何识别SDIO...
这个操作是在每个卡的CMD线上单独操作的。在卡识别模式中,所有数据通信只使用CMD线。 4.2.1、卡复位 GO_IDLE_STATE (CMD0)命令是软件复位命令,它会使每个卡进入空闲(Idle)状态而不管卡当前所处的状态。 处于不活动状态的卡不受此命令的影响。 由主机上电之后,所有卡处于空闲(Idle)状态(包括之前处于不活动状态...
命令通道单元向SD卡发送命令,并接收SD卡的响应,命令与响应都使用SDIO_CMD(命令线)进行传输。 1.主机(STM32SDIO外设)发送命令给SD卡 1)命令参数寄存器 2)命令寄存器(命令索引(6位),命令使能位ENCMDcompl) SD 命令格式固定为 48bit,都是通过 CMD 线连续传输的(数据线不参与)。