关于sdcard 的学习和问题解决

1. sdcard 的工作原理

         器件理解: sdcard 与tf 卡的区别(摘自:tf卡和sd卡的区别 - 知百科

目前手机手机用的严格的说叫TF卡,也叫microsd卡,和传统的sdcard是不同的。

1. 定义不同。SD是一种完全开发的标准(系统),用于多媒体。TF是极其细小的快速存储卡。闪迪发明。

2. 外观大小不同。TF卡叫t-flash卡,全名叫transflash,又叫microsd卡. 是SD卡的1/4的大小。

3. 产品不同,目前手机都是使用tf卡,体积小节省空间,TF卡可以安装卡套充当sdcard使用。

4. 适用范围不同,TF是功能机中,sdcard都是多媒体机器中。

5.安全性,sdcard的侧面有个读写操作的控制快  ,能控制读写内容不被轻易改变。但是tf卡没有这个功能。

6. 原理不同,tf卡是快闪存存储卡,是记忆卡,基于NANDMLC的技术,俗称小卡;sdcard是基于半导体快闪记忆器,俗称大卡。

TF的工作原理

当设备需要读取或写入TF卡中的数据时,首先需要将TF卡插入相应的插槽中。当插入TF卡后,设备会发送对应的指令给TF卡,以控制数据的读取或写入操作。TF卡会根据指令来寻址存储芯片中的数据,并通过数据线将数据传输给设备。

2. sdcard 的代码逻辑

要驱动SD卡工作,主要涉及两个步骤。
第一个步骤是SD卡的识别过程。
第二个步骤是对SD卡进行读写过程,即主机控制器和SD卡之间进行数据传输的过程。
要使SD卡能正常工作,一是要给SD卡供给稳定的电压,二是要SD卡按用户规定的方式工作。这两项工作的实现,都是主机控制器通过给SD卡发送控制命令来实现的。
主机(SDIO控制器)要驱动SD卡工作,要使用许多的命令,包括应用层命令ACMD 和 通用命令 CMD. 主机(SDIO控制器)把命令发送给SD卡,SD卡会作出回应,这里的回应叫做响应,响应命令分为6类,分别是R1、R1b、R2、R3、R6、R7。
主机(SDIO控制器)给SD卡发送命令之后,SD卡会作出响应,响应中包含主机(SDIO控制器)需要的数据,这些数据有SD的信息,容量,和存储数据等等。

上面已经提到了,SD卡工作,主要是识别和数据传输,它的识别过程有些复杂,写代码的时候,可以参考协议给的初始化流程图。数据传输包括读和写,单字节和多字节读写。下两节描述识别初始化流程图和数据读写时序图。

代码:

       mmc_rescan(struck work_struct *work) -- > mmc_resacan_try_freq(host,host->f_min)

      --> mms_powwer_up, mmc_hw_reset_for_init(host)-->mmc_attach_sdio(host)-->

      mmc->mmc_send_io_op_cond (host, &ocr) -->mmc_wait_for_cmd(host, &cmd,           MMC_CMD_RETRIES) -->mmc_wait_for_req-->mmc_resume_bus, __mmc_start_req

-->mmc_wait_for_req_done --> wait_for_completon_io(&mrq->completion)

其中completion 是一个完成量。所以这个问题表象是一个超时问题,实际上一个信号等待时间。

偷懒的修改方案: sd卡槽的几路供电设置成always.

s

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值