新闻  |   论坛  |   博客  |   在线研讨会
S3c2410_SDIO_调试笔记
xiajiashan | 2012-08-28 15:27:06    阅读:855   发布文章

作者:下家山

(见Simplified SDIO Card Specification.pdf 35page)因为,CMD52响应后返回数据为8bit,所以要送三次。第一次:

rSDICARG == 0x00001200;

rSDICCON == 0x00000B74;

响应

rSDICSTA == 0x00000A34;

rSDIRSP0 == 0x00001000;

解读0x00001200

0 000 0 0 00 0000 0000 0001 001 0 0000 0000

R/W flag

Function Number

RAW flag

Stuff

Register Address

Stuff

Write data or stuff bits

1 3 1 1 17 1 8

解读0x00000B74(略)

解读0x00000A34(略)

解读0x00001000

0x00001000的低8位表示从地址0x09读出来的值为0x00;

第二次:

rSDICARG == 0x00001400;

rSDICCON == 0x00000B74;

响应

rSDICSTA == 0x00000A34;

rSDIRSP0 == 0x00001010;

解读0x00001400

0 000 0 0 00 0000 0000 0001 010 0 0000 0000

R/W flag

Function Number

RAW flag

Stuff

Register Address

Stuff

Write data or stuff bits

1 3 1 1 17 1 8

解读0x00000B74(略) 解读0x00000A34(略)解读0x00001010

0x00001010的低8位表示从地址0x0a读出来的值为0x10;

第三次:

rSDICARG == 0x00001600;

rSDICCON == 0x00000B74;

响应

rSDICSTA == 0x00000A34;

rSDIRSP0 == 0x00001000;

解读0x00001600

0 000 0 0 00 0000 0000 0001 011 0 0000 0000

R/W flag

Function Number

RAW flag

Stuff

Register Address

Stuff

Write data or stuff bits

1 3 1 1 17 1 8

解读0x00000B74(略)解读0x00000A34(略)

解读0x00001000

0x00001000的低8位表示从地址0x0b读出来的值为0x00;

最后,可以得到FN0 CIS指针地址为0x001000。

3.4 读出ID

同样,读出ID号也是通过CMD52来实现的。(见5.2 CMD52及响应剖析

我们可以从SDIO 协议规范中看出CIS 的整个区域地址范围为0x00001000~0x00017fff。

而,我刚才读出FN0 的CIS指针地址为0x001000,这证明是正确的。那么出厂时,这些CIS信息是如何存放在0x001000所在的区域的呢?以FN0为例,听我一一道来:

在0x001000起始的区域,SDIO 协议规范是以一个或多个链(连起来的列表)被称为数据块或tuples(便士)来组织这些CIS信息的。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
02年接触ARM和ucos,开发过有线和无线图像报警器,IPCamera,人脸识别系统,OCR识别系统,指纹识别系统,05年开始从事Linux及Rtems下WiFi,camera,Ethernet等驱动开发工作,专做嵌入式linux培训,致力于把我十年来的研发经验传授给每一个学员,招人的可以找我,ximenpiaoxue4016@sina.com
推荐文章
最近访客