1) SDIO_ClockEdge:主时钟 SDIOCLK 产生 CLK 引脚时钟有效沿选择,可选上升沿或下降沿。2) SDIO_ClockBypass:时钟分频旁路使用,可选使能或禁用,如果使能旁路,SDIOCLK (72MHZ )直接驱动 CLK 线输出时钟(不满足最高25HZ的要求),如果禁用,使用 SDIO_CLKCR 寄存器的 CLKDIV 位值分频 SDIOCLK,然后输出到 CLK 线...
1) SDIO_ClockEdge:主时钟 SDIOCLK 产生 CLK 引脚时钟有效沿选择,可选上升沿或下降沿。 2) SDIO_ClockBypass:时钟分频旁路使用,可选使能或禁用,如果使能旁路,SDIOCLK (72MHZ )直接驱动 CLK 线输出时钟(不满足最高25HZ的要求),如果禁用,使用 SDIO_CLKCR 寄存器的 CLKDIV 位值分频 SDIOCLK,然后输出到 CLK ...
SDIO_ClockEdge: 主时钟SDIOCLK产生CLK引脚时钟有效沿选择,可选上升沿或下降沿,它设定SDIO时钟控制寄存器(SDIO_CLKCR)的NEGEDGE位的值,一般选择设置为高电平。 SDIO_ClockBypass: 时钟分频旁路使用,可选使能或禁用,它设定SDIO_CLKCR寄存器的BYPASS位。如果使能旁路, SDIOCLK直接驱动CLK线输出时钟;如果禁用,使用SDIO_C...
1) SDIO_ClockEdge:主时钟 SDIOCLK 产生 CLK 引脚时钟有效沿选择,可选上升沿或下降沿。 2) SDIO_ClockBypass:时钟分频旁路使用,可选使能或禁用,如果使能旁路,SDIOCLK (72MHZ )直接驱动 CLK 线输出时钟(不满足最高25HZ的要求),如果禁用,使用 SDIO_CLKCR 寄存器的 CLKDIV 位值分频 SDIOCLK,然后输出到 CLK ...
CLK 线时钟频率=SDIOCLK/([CLKDIV+2])。 2.SDIO命令初始化结构体 1) SDIO_Argument:作为命令的一部分发送到卡的命令参数,它设定 SDIO 参数寄存器(SDIO_ARG)的值。 (2) SDIO_CmdIndex:命令号选择,它设定 SDIO 命令寄存器(SDIO_CMD)的 CMDINDEX位的值。
一般使用SDIOCLK分频得到。 37.5.2. 命令路径 命令路径控制命令发送,并接收卡的响应,结构见图 SDIO适配器命令路径。 关于SDIO适配器状态转换流程可以参考图 卡识别模式状态转换图,当SD卡处于某一状态时,SDIO适配器必然处于特定状态与之对应。 STM32控制器以命令路径状态机(CPSM)来描述SDIO适配器的状态变化,并加入了...
SDIO使用一个时钟信号:SDIO适配器时钟(SDIOCLK=AHB总线时钟(HCLK))。 复位后默认情况下SDIO_D0用于数据传输。初始化后主机可以改变数据总线的宽度。可选1bit(SDIO_D0)、4bit(SDIO_D[3:0])、8bit(SDIO_D[7:0])三种数据总线的宽度。 SDIO总线通信 总线上的通信是通过传送命令和数据实现。1、在多媒体卡/SD...
1) CLK:时钟信号; 2) CMD:双向命令/响应信号; 3) DAT0-DAT3:双向数据信号; 4) Vdd, Vss1, Vss2:电源和地信号。 2.6 总线协议 SD 总线通信: 1) Command:命令是一次操作开始的令牌,从主机发送到一个卡片(编址命令)或者连接到主机的所有卡片(广播命令)。命令在 CMD 线上连续传输。
maxdelay = 120000 / ((SDIO->CLKCR & 0xFF) + 2); //延时,根据时钟分频设计来计算 if (SDIO_GetResponse(SDIO_RESP1) & SD_CARD_LOCKED) //卡上锁 { errorstatus = SD_LOCK_UNLOCK_FAILED; return(errorstatus); } /* SDHC卡,地址参数为块地址,每块512字节,SDSC卡地址为字节地址 */ ...
SD卡/MMC卡在初始化阶段,时钟频率不能超过400kHz,所以一开始时钟要设得慢,待初始化完成后再调整。CLKCR这个寄存器还是容易看懂的。在STM32F411上,SDIO部分和USB OTG公用一个48MHz的时钟,所以分频以48MHz计算,而不是从CPU运行频率或APB的频率来算。