Sdio 简单概述

SD卡总线速度模式:

Default Speed mode: 3.3V供电模式,频率上限25MHz,速度上限 12.5MB/sec

High Speed mode: 3.3V供电模式,频率上限50MHz,速度上限 25MB/sec

SDR12UHS-I卡, 1.8V供电模式,频率上限25MHz,速度上限 12.5MB/sec

SDR25UHS-I卡, 1.8V供电模式,频率上限50MHz,速度上限 25MB/sec

SDR50UHS-I卡, 1.8V供电模式,频率上限100MHz,速度上限 50MB/sec

SDR104UHS-I卡, 1.8V供电模式,频率上限208MHz,速度上限 104MB/sec

DDR50UHS-I卡, 1.8V供电模式,频率上限50MHz,性能上限 50MB/sec

上述sdio 频率与速度关系,可以看到sdio速率对吞吐速率有直接影响。

一般sdio3.0只适用于11ac 以下。 11ax 很难跑起来

速率计算:

HZ和bit/s是一个相同的概念。时钟周期为1HZ,则传输数据的速率为1bit/s;时钟周期为100KHZ,则传输数据的速率为100kbit/s

sdio 4线:

208MHZ=208Mbps

V=208Mbps*4 = 832Mbps = 832/8 = 104MB/s

流程:

host上电后,使所有的卡设备处于卡识别模式,完成设置有效操作电压范围,

卡识别和请求卡相对地址等操作。

1、发送2CMD52CMD52 可以读写sdio 寄存器数据,此处用于判断sdio状态

2、发送指令CMD0使卡设备处于idle状态;

3、发送指令CMD8,如果卡设备有response,说明此卡为SD2.0以上;

4、发送指令CMD55+ACMD41,该指令是用来探测卡设备的工作电压是否符合host端的要求;在发送ACMD41这类指令之前需要先发送CMD55指令,SDIOACMD41指令被CMD5替代。

5如果支持uhs,发送指令CMD11转换工作电压到1.8V

6、发送指令CMD3获取RCA(relative card address)

7、 发送CMD7+RCA选卡,RCA是之前CMD3读取到的卡RCA,发送CMD7+0不选中卡片

代码流程:

RTK 部分芯片在 RK host 速率上不到200M,就是CMD11 交互存在问题,可参考RK 给出的patch解决.

发送CMD5,( S18R 1 )以及回复:

CMD5格式



 

CMD5回复格式如下,Log中打印的是去掉前8位,后8位的值

具体代码流程可以加log跟踪

主要寄存器:OCR,CID,CSD,RCASCR

Operation condition register(OCR)32位的OCR包含卡设备支持的工作电压列表

Card identification number register (CID):包含用于在卡识别阶段的卡信息,包括制造商ID,产品名等;

Card specific data register(CSD)CSD寄存器提供了如何访问卡设备的信息,包括定义了数据格式,错误校验类型,最大访问次数,数据传输率等;

Relative card address register(RCA):存放在卡识别阶段分配的相对卡地址,缺省相对卡地址为0000h

SD card configuration register(SCR)SCR是一个配置寄存器,用于配置SD memory card的特殊功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值