MMC卡除了接口中没有第8和第9脚外,其余与SD卡接口相同。

2.2 SD通信模式下的SD/MMC卡接口电路

S3C2410与SD/MMC卡座的接口电路如图1所示。接口电路原理图说明如下:

 

基于S3C2410控制器实现SD/MMC卡驱动的设计

图1 SD/MMC卡SD模式接口电路原理图

CD/DAT3(第1脚)通过10KΩ电阻上拉到3.3V,使SD/MMC卡上电后自动进入SD模式。本接口中该引脚用于卡上电后的模式选择。

CLK(第5脚)为时钟输入信号,SDCMD(第2脚)为命令响应线,DATO-DAT;涕7,8,9引脚加上CD/DAT3组成4位数据线。

CD(第10脚)为卡插入检测信号。由于CD/DAT3引脚用于模式选择,故在卡座中增加该引脚作为卡检测信号。由于该引脚被上拉,当卡未插入卡座内时,从INT0/GPF0引脚读到的是高电平;当卡完全插入到卡座内时,卡座内部触点接地,则从INT0/GPF0读到的是低电平。通常通过检测该引脚的电平值来判断卡的动态拔插动作。

WP(第12脚)为卡座中增加的卡写保护检测信号.检测原理与CD脚相同。应当注意,SD/MMC卡并不检测该引脚,因此.卡写保护控制必须由主机实现。在设计SDfMMC卡座接12时。WP不是必需的。

为保证输入的稳定性.除VCC、VSS1和VSS2、GND外的引脚均通过10Kfl上拉到3.3V。

3 S3C2410与SD/MMC的通信实现

在SD/MMC卡与主机的通信过程中.卡一直是从设备.由主机发送命令来控制它。当S3C2410(下称主机)以查询方式获取卡已插入卡座.或者当卡插人卡座后通过CD引脚发送中断给主机后.主机首先应完成卡的初始化.之后才能对卡上的数据进行读写。

3.1 卡的初始化和识别

SD/MMC卡在上电后进入空闲状态(Idle State)。此时.主机需要按照一定的处理流程完成卡的初始化。该过程主要的工作就是卡的识别(Card Identification),包括识别卡的类型、读取卡上的信息、为卡分配地址等。卡的初始化处理流程见图2。

图2 卡初始化处理流程

在卡识别过程中.首先发送CMD8命令判断卡是否支持V2.00及以上协议。关键语句如下(语句中的SD_HC_SEND_IF_COND为CMD8命令描述的简写,其余同):

SdmmcSendCmd(SD_HC_SEND_IF_COND,0x1aa);

if((rSDIRSPO & Ox1aa) == 0x1aa ) {/* V2.00及以上协议卡 */

。..。..

}

此处CMD8命令参数中bit[7]一[0]为0/1交替的0blOl01010即0xaa.是推荐使用的检测模式;bit[1l]-[8]则用于检测卡能否在主机提供的电压下运行,Ob0001表示2.7-3.6V电压.其他取值目前不可用.若卡支持v2.00及以上协议.且能够在指定的电压下运行.则返回0xlaa。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查