搜索
bottom↓
回复: 14

怎么用判断SD卡是不是在槽内

[复制链接]

出0入0汤圆

发表于 2009-3-31 22:42:04 | 显示全部楼层 |阅读模式
网上的那个SD-reader同到有一函数,但我看了一下是读PINC上的一个引脚而己,不知道是不是真有用,同时那网站也没有电路图。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-3-31 22:53:54 | 显示全部楼层
我以前用过的SD卡的座有一个脚,卡插进去会短路在一起

出0入0汤圆

发表于 2009-4-1 09:49:31 | 显示全部楼层
如果你的卡座有专门的卡存在触点,这是最好的,也是最可靠的方法。

按照协议,是检测SD的CD/DAT3引脚,该引脚有一个50kOhm可编程上拉电阻。
卡PowerUP之后,卡进入idle状态,该电阻自动激活,直到使用ACMDxx把这个上拉关闭。SD规范说这个可以用于检测卡存在。
注意流程和条件。这个检测只是首次插入卡后,卡的存在性。之后再检测就很麻烦了。

出0入0汤圆

 楼主| 发表于 2009-4-1 10:12:01 | 显示全部楼层
我找了个卡座试了一下,有一个引脚在没有插入卡里是悬空的,在插入卡后会和地接上,应该可以用来检查卡是不是存在。

出0入0汤圆

发表于 2009-4-1 11:12:25 | 显示全部楼层
你忘记写保护(Lock)的检测。

一般这些引脚在卡座侧面,跟9个Pin连通的肯定不是。(GND除外)

出0入0汤圆

发表于 2009-9-27 17:27:42 | 显示全部楼层
按照协议,是检测SD的CD/DAT3引脚,该引脚有一个50kOhm可编程上拉电阻。
卡PowerUP之后,卡进入idle状态,该电阻自动激活,直到使用ACMDxx把这个上拉关闭。SD规范说这个可以用于检测卡存在。
注意流程和条件。这个检测只是首次插入卡后,卡的存在性。之后再检测就很麻烦了。

dr2001 大哥,那这么说,是不是在第一次插入之后,卡的拔出检测通过dat3是不太可能了?

出0入0汤圆

发表于 2009-9-27 18:19:58 | 显示全部楼层
如果没有检测点,用软件检测也可以啊。卡不在的时候,定时发送CMD0,看回复便知道。

出0入0汤圆

发表于 2009-9-27 18:38:16 | 显示全部楼层
谢谢qlb1234 清蓝冰的回复,关键是软件不知道卡的不在啊
例如在传输数据的时候,卡被拔出,软件如何检测到卡被拔出而不是别的原因呢?

出0入0汤圆

发表于 2009-9-27 19:35:08 | 显示全部楼层
卡座上好像都有触点的。
你给卡发命令让它回复啊。

出0入0汤圆

发表于 2009-9-28 13:39:51 | 显示全部楼层
非常感谢几位的回复,不好意思,我表达的问题不是很清楚。我的意思是想用dat3去检测卡的插拔,也就是说这个时候是不用原来那个单独用来检测卡插拔的脚(这个脚原来连gpio,判断卡的插拔是直接读取gpio的,现在不用这个了)。

按照dr2001所说的,就是用dat3检测的时候,只能检测到卡的插入,一旦插入之后是要做数据的传输,这个时候需要发送acmd42命令,之后再用dat3检测卡的拔出是不太可能?

当然,按照qlb1234 清蓝冰的说法,我的理解是:在卡插入的时候可以另外起一个线程一直发送cmd,检测有没有response,如果在timeout之后还没有则认为是卡被remove了,不知道理解对吗?

其实,我现在主要想确认的是:能不能还用dat3去检测卡的拔出?

sd的spec讲的不是很清楚,恳请各位老大们再帮帮忙,感激不尽啊

出0入0汤圆

发表于 2009-10-14 16:01:01 | 显示全部楼层
简单说,准确检查卡的存在性,尤其是支持热插拔,须要卡座额外的两个触电:写保护,到位。
这两个信号和卡位置的逻辑关系记不清楚了,大约是卡没到位时,写保护提供半插入检测;到位之后,写保护那个提供写保护。正反插入测试一下就知道了。

粗糙的查了2.0的规范,ACMD42关上拉在初始化流程里不是必须的。就是说,DAT3的上拉 可能 是可以不关的,这样的话,就能够拿来在总线空闲的时候进行卡存在性的检测。但就这个我没有 认真 通读/核对过手册,具体如何就要自己研究了。至少需要进行实际实验,看是什么结果。
好多没确定的东西:上拉是不是必须关闭;DAT3的引脚状态,即什么时候是In/Out/HiZ;还有主机MCU的状态;线路本身的Pull Up/Down等等。呵呵。

SD命令除了开始的几个,别的都有命令超时,按照正常的命令操作,如果结果是超时,可能是:卡拔出,卡故障,卡进入未知状态等。经过一系列的读取状态,回复等操作之后,如果无效,就判定卡拔出了。基本上这样,没必要不停发命令操作卡。

还是认真斟酌标准吧。呵呵

出0入0汤圆

发表于 2009-10-14 16:32:25 | 显示全部楼层
mark 一下

出0入0汤圆

发表于 2010-8-28 23:14:30 | 显示全部楼层
回复【10楼】dr2001
简单说,准确检查卡的存在性,尤其是支持热插拔,须要卡座额外的两个触电:写保护,到位。
这两个信号和卡位置的逻辑关系记不清楚了,大约是卡没到位时,写保护提供半插入检测;到位之后,写保护那个提供写保护。正反插入测试一下就知道了。
粗糙的查了2.0的规范,acmd42关上拉在初始化流程里不是必须的。就是说,dat3的上拉 可能 是可以不关的,这样的话,就能够拿来在总线空闲的时候进行卡存在性的检测。但就这个我没有 认真 通读/核对过手册,具体如何就要自己研究了。至少需要进行实际实验,看是什么结果。
好多没确定的东西:上拉是不是必须关闭;dat3的引脚状态,即什么时候是in/out/hiz;还有主机mcu的状态;线路本身的pull up/down等等。呵呵。
sd命令除了开始的几个,别的都有命令超时,按照正常的命令操作,如果结果是超时,可能是:卡拔出,卡故障,卡进入未知状态等。经过一系列的读......
-----------------------------------------------------------------------
“就是说,dat3的上拉 可能 是可以不关的”……
DAT-Bus是线与逻辑,而且“0”start,“1”stop。在通信编码的角度讲,DAT3的上拉电阻开关与否不影响通信。

出0入0汤圆

发表于 2013-10-21 14:45:52 | 显示全部楼层
好像很厉害的样子,要多向各位学习才行

出0入0汤圆

发表于 2013-10-21 15:10:40 | 显示全部楼层
可以看下这个PDF 一看就明白了 SD卡有个脚上测是否有卡插入的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 00:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表