快乐生活^_^飞得更高 https://bbs.21ic.com/?451749 [收藏] [复制] [RSS] 在这里,让我们共同交流,共同学习,共同提高!

日志

S3C2440读写大容量SD卡(二)High Capacity SD Memory Card Rea

已有 2220 次阅读2009-5-22 05:17 |系统分类:嵌入式系统| SD

二、S3C2440手册中关于SD卡的操作说明

 串行时钟对数据线的信息进行移位同步并采样,设置SDIPRE来控制传输频率。


 


基本编程过程:1、设置SDICON来选择时钟和中断。


2、将SDIPRE设置为适当的数值。


3、等待74个SDCLK,让SD卡初始化完毕


命令的发送过程:  1、写32位命令变量到SDICmdArg


2、设置SDICmdCon寄存器,选择命令类型并启动传输


3、检查SDICmdSta的指定位是否置位,判断命令是否传输完毕。


4、若有响应,检查响应寄存器SDIRSPn


5、对SDICmdSta寄存器相应的位写1,清除标志位


数据通道编程:1、写超时寄存器SDIDTimer


2、写入要操作的块大小到SDIBSize


3、设置块模式,总线宽度,DMA等,设置SDIDatCon.启动传输


4、发送数据时,当TCFIFO有效、过半、空时,将数据写入SDIDAT中,


5、接收数据时,当RXFIFO有效、过半、空时,将数据写入SDIDAT中,


6、确认数据是否传送完毕。


7、清除SDIDatSta中相应的标志


 


一、初始化命令的差别:


1、加入CMD8命令,以识别是否为大容量卡,如果是,则响应为R7,返回可接受的电源范围及和发送一致的检验码。


2、ACMD41与V1.0版本稍有不同,它的响应一般是rSDIRSP0=0xc0ff8000,为了兼容要多增加一个分支。


3、发送CMD2,响应为CID。如某卡的rSDIRSP0:rSDIRSP1:rSDIRSP2:rSDIRSP3值为:0x1b534d30:0x30303030:0x10b1846c:0xdc00879d意义如下:


127                                                                                                          0




































位数



8



16



40



8



32



4



12



7



1





1b



534d



3030303030



10



b1846cd



c



008



79d



 



意义



MID



“SM



00000”



PRV



PSN



RSV



MDT



CRC



 


 


二、读写差别


V2.0是对块操作,每块512字节。V1.0是可以对字节操作,用CMD16设置块的大小。用CMD17,CMD18分别对单个块、多块操作。


值得注意的是,三星的例程比较经典,但不能读大容量SD卡,原因是没有设置SDI Data Control Register,对于大容量卡,一定要设置该寄存器,使之等于0x200,且必须是此值。


 


以下是对某大容量卡的起始扇区的读出数据:


0x  0: Rx-0xeb068005,0x2039ffff,0xe800005b,0xc1eb048c


0x  4: Rx-0xc801c38e,0xdb536a19,0xcbf60602,0x   4740f


0x  8: Rx-0x31c08ec0,0xbffc0566,0xb8445543,0x4566ab68


0x  c: Rx-0x  2017bc,0x  9031c9,0x51ba8000,0x52b408f9


0x 10: Rx-0xcd135a58,0x16077217,0x80e13ff9,0x741191b4


0x 14: Rx-0x 289c531,0xdb4152f9,0xcd135a72,0x 2f6dc0e


0x 18: Rx-0x1f9c31f6,0x31ffb9df,0x  fcf3a5,0xbbfc1966


0x 1c: Rx-0xb8475255,0xaaea7a00,0x  20161f,0x66390775


0x 20: Rx-0x549d723c,0x e1fad88,0xe6ad89c1,0x243f741f


0x 24: Rx-0x29e848f6,0xd8bf0300,0xb4026800,0x d0731db


0x 28: Rx-0x60cd1361,0x730a6031,0xc0cd1361,0x4f75e9f9


0x 2c: Rx-0xe8c50977,0x2883c60c,0x81fefe01,0x72c67715


0x 30: Rx-0xbeb231b4,0x 89952cd,0x13587209,0x9991243f


0x 34: Rx-0x740341eb,0xc0be5101,0xe86f00eb,0xfe1e0666


0x 38: Rx-0x608cc3fa,0x f011660,0x a0f20c0,0x c010f22


0x 3c: Rx-0xc0be0800,0x8ec66631,0xf66631ff,0x66b90024


0x 40: Rx-0x    fcf3,0x66a5be10,0x  8ec624,0xfe0f22c0


0x 44: Rx-0x8ec3b900,0x 231f656,0xbf007c57,0x 61f5607


0x 48: Rx-0xfcf3a5bf,0x107ebe00,0x ab91e00,0xfcf3662e


0x 4c: Rx-0xa5061ffb,0xcbfab800,0x208ed0bc,0xdc8ffb66


0x 50: Rx-0x61071fe9,0x6fffb40e,0xcd102eac,0x3c0075f6


0x 54: Rx-0xc30d0a4d,0x69737369,0x6e67204d,0x42522d68


0x 58: Rx-0x656c7065,0x722e0000,0x       0,0x       0


0x 5c: Rx-0x       0,0x       0,0x       0,0x       0


0x 60: Rx-0x       0,0x       0,0x       0,0x       0


0x 64: Rx-0x       0,0x       0,0x       0,0x       0


0x 68: Rx-0x       0,0x       0,0x       0,0x       0


0x 6c: Rx-0x       0,0x       0,0x9bb43b00,0x    8001


0x 70: Rx-0x 1000cfe,0x7ff23f00,0x    c17f,0x7a000000


0x 74: Rx-0x       0,0x       0,0x       0,0x       0


0x 78: Rx-0x       0,0x       0,0x       0,0x       0


0x 7c: Rx-0x       0,0x       0,0x       0,0x    55aa


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)