FM1702 LoadKey错误 踩坑

来源:互联网 发布:java \\是转移吗 编辑:程序博客网 时间:2024/06/10 18:00

新的公司也是FM1702刷卡,硬件不是我做的,仅仅是调试到读卡5cm,我负责移植FM1702读卡函数。

移植很快,但是读卡中发现随机出现LaodKey函数失败。浪费了一天时间,排除了其他软件原因。

目前怀疑硬件有点问题。因为同样的东西,以前刷卡板没有出现过这种问题。(当然仅仅是猜测,没有进一步验证。项目急)

目前解决办法是,WriteFIFO函数调用两次,就是说,连续两次写入Key到FIFO,很奇妙,能用了。。。

后面再调试找坑了。。。



////////////////////////

2017-11-23更新

目前仍然不清楚什么原因,之前做的板子都没有遇到过这个问题。

遇到的坑有

1、FM1702发烫,最终检查PCB发现天线短路!因为天线是一个网络,如果不仔细检查,很容易发生这个情况。割线解决后,FM1702明显不烫了,手触摸有点温而已。

2、刚上电,读卡正常,后面逐渐不正常,参见问题1.

3、Loadkey失败,两次写FIFO后,Loadkey正常,但是鉴权错误。因此怀疑Loadkey并没有真的成功。

解决办法是Loadkey失败后,写空闲命令到命令寄存器,再次进行Loadkey过程,就OK了。

4、滤波电感最好用绕线的,层叠的也能用,只不过效果可能并没有那么好。之前一家公司用的层叠电感,读卡距离4cm~5cm,现在用绕线,随便调调就到6cm.

5、天线的匹配电容,一般在100pF~200+pF。在问题1的情况下,匹配电容竟然是470pF,才能达到最大都卡距离。

6、接收滤波电路,也是需要调试的一部分,隔直电容如果68nF不行,就换小的试试?我调整的结果是27pF。另外串联的电阻,也是需要调整。后面的820欧姆和68nF基本是固定的。

7、TVSS或者称为TGND的引脚,推荐是接地,因为人家说了,TVDD是发射部分的供电,有流入的,总得有流出的吧?

实际试了接不接地,对读卡距离没有影响。但猜测可能是天线对称,没有影响,如果不对称,就不清楚效果了。

8、另外,用示波器看波形,单端输出要达到20V才差不多,如果达不到,那就继续调整吧。