大道科技论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 828|回复: 1
打印 上一主题 下一主题

浅谈ST8024不读卡和无法识别卡插入的故障原因

[复制链接]

9

主题

13

帖子

67

积分

版主

Rank: 7Rank: 7Rank: 7

积分
67
跳转到指定楼层
楼主
发表于 2016-4-2 17:52:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
最近使用STM32+ST8024的方案操作smartcard,遇到两个问题,1、ST8024不能操作卡片,输出端一直为低电平,输入端信号正常;2、不能够准确判断出智能卡片插入卡槽,即使插了卡,ST8024也不能给出中断信号。
上网搜索了一下,还真有人因为这些问题在论坛上发帖求助,由此看出不细心的人不光我自己,呵呵!不过回复的内容,要么不适用于我,要么不详细,总之没有找到合适的解决方法。
先来解决第一个问题:ST8024不能与卡片进行信息交互。
ST8024有一个使能引脚19脚CMDVCC,该引脚的作用是,在VDDP接5V,VDD接3.3V都OK的情况下,拉低CMDVCC就能够使能输出端,使ST8024这座连接STM32和smartcard的桥梁打通,从实现数据交换。以上指示理论功能,那是不是只要拉低CMDVCC就能操作呢?如果你这么想,那么恭喜你,咱俩想一块了,而结果就是我们都错了。怎么样才是正确的呢?后面解答。
那么我用ST官方的smartcard库函数进行操作,发现CMDVCC一直是高电平,这样ST8024这座桥是断开的,仔细看SC_Init()这个函数发现,最后一句是SC_PowerCmd(DISABLE);,就是说SC_Init这个函数并没有把CMDVCC拉低,后面有没有拉低的语句先不管,那我就把它改成SC_PowerCmd(ENABLE);再进行测试。发现效果不错,复位卡片没问题了,其他操作也没问题了。这个故障排除了。
那么好,我测试一下,如果我把卡拔了,再插上,还能不能进行操作了呢?答案是NO,STM32没有判断到有卡插入,而ST8024的OFF引脚一直是低。
第二个问题来了:不能准确判断出读卡器内是否有卡。
先来了解一下如何判断读卡器中是否有卡;
ST8024的23脚OFF引脚是送给单片机的中断引脚,告诉单片机,读卡器中是否有卡。OFF引脚是随着PRES或!PRES脚的状态变化而变化的,至于PRES和!PRES脚是如何接的,自己看datasheet吧,或者ST官方的应用笔记。我是用的是!PRES脚,即当读卡器中有卡时,该引脚为低,无卡则为高。而OFF引脚和PRES脚同相与!PRES脚反相。
万用表测量我的电路,!PRES脚的变化是有的,但是OFF引脚变化没有,尝试了各种方法(在没有看时序图的情况下),都无法解决。那么看看datasheet吧,发现了一个时序图(说实话,之前以为ST8024接上就能用,所以没看时序图,所以,我错了!好好看时序图吧):

注意时序图红色框中的时序!从时序图上可以看出来,OFF的确是随PRES的变化而变化的,但是!有一个前提,CMDVCC脚必须为高电平,如果CMDVCC是低电平,那么OFF引脚会一直是低电平。而且!如果拔出卡片,也一定要在OFF变成低电平之后才能将CMDVCC拉高,否则,OFF引脚还是不会随着PRES变化的,这个顺序一定不能乱!!!用文字描述一下吧:
插卡:PRES高(!PRES低)-> OFF高 -> CMDVCC低
拔卡:PRES低(!PRES高)-> OFF低 -> CMDVCC高
只有这样才能够是ST8024正常工作。反过来讲,只有OFF状态变成高之后,拉低CMDVCC引脚才能是ST8024工作,否则也是不行的。也就是说,对CMDVCC引脚的操作都是在OFF引脚变化之后才能进行!这也解释了,第一个故障中提到的为什么只拉低CMDVCC不能使能ST8024。
那么按照这个时序修改一下CMDVCC的拉高时机,故障排除了,能够正确操作smartcard了。
有点前后矛盾?为什么第一个问题没有提到判断OFF引脚也能复位成功呢。原因在于,第一次读卡的时候,系统刚刚初始化,读卡器内一直有卡,OFF引脚一直是高电平,CMDVCC的引脚也一直是高电平,随意只要拉低CMDVCC就能使能ST8024。而拔出卡片后,并没有释放CMDVCC,结果不能识别卡片了。
理解了时序图之后,也终于理解了datasheet中的Table22这个表了:
最后,重要的事情说三遍:顺序不能乱!顺序不能乱!顺序不能乱!
回复

使用道具 举报

22

主题

33

帖子

224

积分

版主

Rank: 7Rank: 7Rank: 7

积分
224
沙发
发表于 2016-4-5 14:30:52 | 只看该作者
总结的不错,坚持下去
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|大道科技论坛

GMT+8, 2024-9-8 09:01 , Processed in 0.562056 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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