SDIO接口WIFI驱动之一:初始化过程

SDIO接口WIFI驱动之一:初始化过程-电子工程专辑

. 前言

 

本文分享SD模式,I/O only WIFI卡初始化过程,结合命令/响应格式和波形,能清晰的了解整个过程。

 

 

二. 初始化流程

 

这里以RTL8189FTV-VC-CG为例,初始化过程参考其规格书,时序如下,这里以SDIO接口为例。

 

 

1)上电则至少需要T33Ramp’时间以上,可以维持久一点等稳定再进行后续操作。3.3V如果下电要维持下电Toff时间,掉电不充分,可能影响下次上电,然后上电T33Ramp时间使得电压稳定。

 

 

2)VDDON,上电时间T12Ramo,等其稳定,这个一般和3.3V同步上电即可。

 

 

3)上电稳定,TPOR时间之后,硬件自动产生POR复位,Ton_ndy之后硬件的复位自动完成, 此时就会对CMD5进行响应C=1(见后续命令说明),如果在Ton_ndy之前发送CMD5则响应C=0。我们一般都是等的比较久才发CMD5,所以一般远远超过Ton_ndy这个时间,所以第一个CMD5就会响应C=1.

 

 

4)CMD5响应后,只需要CMD3/CMD7获取并选择RCA即可,此后就可以使用CMD52/CMD53操作WIFI卡了。

 

 

对应的时序参数如下

 

 

 

复位命令(CMD0)仅用于内存或组合卡的内存部分。仅I/O卡或组合卡的I/O部分不会用CMD0复位,而是用I/O复位(通过CMD52设置RES位为1(CCCR中地址6的位3))。在CMD52响应后调用I/O复位。

 

 

参考

 

 

[REF1]SD Specifications Part E1 SDIO Simplified Specification Version 3.00 July 25, 2018

 

 

[REF2]SD Specifications Part 1 Physical Layer Specification Version 3.01 February 18, 2010

 

 

2.1CMD5

 

2.1.1命令

 

参考[REF1]的3.2章节。

 

 

IO卡的IO_SEND_OP_COND命令(CMD5),功能类似于SD存储卡的ACMD41操作。用于查询I/O卡所需的电压范围。对CMD5的正常响应是SD或SPI格式的R4。

 

 

一旦SDIO卡收到CMD5,该卡的I/O部分将能够正常响应所有其他命令。

 

 

命令格式如下

 

 

S:开始位,始终为0

 

 

D:方向位,始终为1表示方向为主机到卡

 

 

Command Index: 5即CMD5

 

 

Stuff bits:为0.

 

 

S18R: 是否请求切换到1.8V,设置为1请求。

 

 

I/O OCR: 操作条件寄存器, 即支持的VDD的范围,

 

 

对应如下,HOST发送支持的范围,卡也会返回一个范围,两者的公共部分就是可以工作的范围。SDIO 2.0版本支持2.7~3.6V范围,一般通讯没有强制支持2.0V~2.7V, 所以注意支持SDIO 2.0时在一般通讯时不要使用2.0V~2.7V.

 

 

Crc7:校验

 

 

E:停止位,始终位1

 

 

2.1.2响应

 

2.1.2参考[REF1]的3.3章节。

 

 

SD模式和SPI模式下的R4响应如下,超时时间是Ncr。

S:开始位,始终为0

 

 

D:方向位,始终为0表示方向为卡到主机

 

 

Reserved:保留位,设置为1

 

 

C:如果卡初始化完成则设置为1, 所以用户需要充份股发送CMD5直到卡返回该位置位。

 

 

Number of I/O functions:卡支持的功能数,0~7,注意不包含Function 0,0是必须的。

 

 

Memory Present: 如果为1表示卡还支持SD存储,否则仅仅是I/O卡。如果是memory only卡则Memory Present = 1 且Number of I/O Functions = 0. SD卡则不对CMD5响应。

 

 

S18A: 设置为1表示切换到了1.8V模式(仅SD模式支持,SPI模式不支持)。

 

 

I/O OCR: 操作条件寄存器, 即支持的VDD的范围,见命令解释

 

 

Modified R1是SPI模式特有,对应如下

 

 

2.1.3波形

 

实测波形如下

 

 

请求如下S18R=0 2.7~3.6[23:15]=1 Reserved[7:0]=1

 

 

响应如下

 

 

C=1表示卡已经初始化完成,可以接收后续命令

 

 

Number of I/O functions=1表示除了function 0还有一个function

 

 

Memory Present=0表示为I/O only卡

 

 

S18A=0,主机没有S18R请求或者不支持切换到1.8V

 

 

I/O OCR,b[24:18]表示支持3.0~3.6V,其他Reserved位都是为1.

 

 

2.2CMD3

 

2.2.1命令

 

见[REF2] 4.7.4章节,请求卡返回RCA地址,参数为0

 

 

2.2.2响应

 

见[REF1]的4.3章节

 

 

CMD3的响应是R6,高16位是RCA,低16位为状态。

 

 

2.2.3波形

 

命令如下

响应如下,返回RCA为0x10

这个RCA卡是掉电保存的,下一次获取就会递增,比如这里递增到了0x11

 

 

2.3CMD7

 

2.3.1命令

 

见[REF2] 4.7.4章节,根据RCA选择卡,参数高16位为刚才CMD3获取到的RCA地址。

 

 

 

2.3.2响应

 

响应为R1b 见[REF2]的4.9.1 4.9.2章节

 

 

card status见[REF2]的4.10.1章节

 

 

card status的位定义如下

 

 

以下表格,表示哪些命令对应哪些位可能置位

 

 

2.3.3波形

 

命令如下,RCA为刚才CMD3获取的RCA

 

 

响应如下

 

 

状态的bit[12:9]=1111b,IO模式保留为1111. 其他状态位都是为0

 

 

三. 总结

 

SD模式,I/O only WIFI卡初始化非常简单, 仅需3条命令即可,以上分享了三条命令对应其波形,对照波形能更加清晰的了解其过程,如果有问题可以方便对照分析。后面就开始CMD32和CMD52和CMD53进行WIFI卡的配置和数据收发。

 

posted @ 2025-06-27 16:00  tianxincode  阅读(11)  评论(0)    收藏  举报