- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SD卡工作原理分析.
sd卡工作原理分析
侯会明
2005-11-22
一 CPU相关,ssio的连接和设置 2
1 硬件初始化,ssio的相关配置 2
1) 端口功能选择寄存器——GPCTL 2
2) 端口模式寄存器——GPPMA,GPPMB,GPPMC,GPPMD,GPPME 2
3) 同步SIO控制寄存器——SSIOCON 3
4) 同步SIO状态寄存器——SSIOST 3
5) 同步SSIO测试控制寄存器——SSIOTSCON 4
6) 同步SIO收发缓冲寄存器——SSIOBUF 5
7) 同步SIO中断申请寄存器——SSIOINT 5
8) 同步SIO中断使能寄存器——SSIOINTEN 5
2 CPLD片选 6
3 第三步,ssio收发字符相关 6
二 数据包的封装与命令协议相关 6
1 sd卡指令数据包 6
2 sd卡命令索引表 7
3 命令回应repond 10
1) R1模式 10
2) R2模式 11
3) R3模式 11
三 命令的控制与实现 12
1程序中调用的sd卡命令 12
1) 命令响应函数——UCS_DRSD_niCommandRespond 12
2) sd卡驱动程序初始化——UCS_DRSD_giSdIdentify 13
3) 读sd卡操作函数 15
4) 写sd卡操作函数 15
四 sd卡的配置信息和相关结构体 16
1卡识别寄存器——CID(card identification register ) 16
2卡特性寄存器——CSD(card specific data register) 17
一 CPU相关,ssio的连接和设置
1 硬件初始化,ssio的相关配置
端口功能选择寄存器——GPCTL
地址:0xB7000000
功能描述:这个寄存器配置各组GPIO的管脚原始功能或者第二功能;CPU可以对这个寄存器进行读/写访问;复位后的默认值是0x0000。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 GPCTL -* At reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
这里对这个寄存器有两处操作
首先将此寄存器和~0x0008与,来操作GPPMB;
GPCTL3(bit3)位控制管脚PIOB[4]和PIOB[1:0]的功能,设置如下:
GPCTL3 = “0” (原始功能) GPCTL3 = “1” (第二功能) Function In/Out Function In/Out PIOB[0] In/Out DREQ0 Input PIOB[1] In/Out DREQCLR0 Output PIOB[4] In/Out TCOUT0 Output
然后将此寄存器和0x0100或,来操作GPPME。
GPCTL9(bit9)位控制管脚的功能,它的第二功能是ssio
GPCTL9 = “0” (原始功能) GPCTL9 = “1” (第二功能) Function In/Out Function In/Out PIOE[3] In/Out SDA In/Out PIOE[4] In/Out SCL Output 0xB7A01008~0xB7A01088
功能描述:这些寄存器指定相应管脚的I/O流向(PIOA[7:0], PIOB[7:0],PIOC[7:0], PIOD[7:0] and PIOE[9:0]);CPU可以对这个寄存器进行读/写访问;复位后的默认值是0x0000。
GPPMA[7:0]/GPPMB[7:0]/ GPPMC[7:0]/GPPMD[7:0] (bits 0 to 7)/GPPME[9:0] (bits 0 to 9):,这些位置0时表示input;置1时表示output。GPPMA[7:0]/GPPMB[7:0]/GPPMC[7:0]/
GPPMD[7:0]/GPPME[9:0],
GPPME uses bit9 bit8.
For other GPPMx, bit9 bit8 are “-*”. At reset 0 0 0 0 0 0 0 0 0 0
这里对寄存器GPPMB和0x0002,将PIOB[2]作为输出,作用是CPLD的片选。
对寄存器GPPME先后进行了三步操作:
首先将寄存器和0x0001或
将PIOE[0]作为输出,该管脚输出时钟clock。
再次将寄存器和0xfffd与
将PIOE[1]作为输入,该管脚为SDI,即SD卡的输入。
最后将寄存器和0x0004或
将PIOE[4]作为输出,该管脚为SDO,即SD卡的输出。
同步SIO控制寄存器——SSIOCON
地址:0xB7B01010
文档评论(0)