搜索
bottom↓
回复: 28
打印 上一主题 下一主题

STM32+AS3910读取14443A的UID成功, 读取14443B的UID失败, 同行可以共同探讨

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2011-8-23 10:23:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
官方的14443B的初始化代码如下:
s8 iso14443BInitialize(u8* result)
{
    u8 buf[2];
    s8 err;

    buf[0] = 0x40;
    buf[1] = 0xd0;

    /* set iso14443 mode B, lowest Rx and TX rate. Enable Rx and Tx */
    err = as3910WriteMultipleRegisters(AS3910_REG_ISO_MODE, buf, 2);
    EVAL_ERR_NE_GOTO(ERR_NONE, err, out);
    /* enable AGC */
    err = as3910ModifyRegister(AS3910_REG_RCV_CONF, 0x80, 0x80);
    EVAL_ERR_NE_GOTO(ERR_NONE, err, out);

    /* Set modulation depth to 10%. */
    err = as3910WriteRegister(AS3910_REG_MOD_DEP_DEF, 0x1c);
    EVAL_ERR_NE_GOTO(ERR_NONE, err, out);
    /* calibrate modulation depth */
    err = as3910CalibrateModulationDepth(result);
    DEBUG_PRINT("<--iso14443BInitialize, End OK, result = 0x%02X ------\n\n", *result);

out:
    return err;
}


相关的Debug流程如下:

-->as3910ExecuteCommand: cmd = 0x01
<--ReadRegister: reg = 0x07, val = 0x00
-->WriteRegister: reg = 0x07, val = 0xFF
<--ReadRegister: reg = 0x08, val = 0x00
<--ReadRegister: reg = 0x07, val = 0xFF
-->WriteRegister: reg = 0x07, val = 0x7F
<--ReadRegister: reg = 0x02, val = 0x00
-->WriteRegister: reg = 0x02, val = 0x02
<--ReadRegister: reg = 0x05, val = 0x00
-->WriteRegister: reg = 0x05, val = 0x04
<--ReadRegister: reg = 0x01, val = 0x00
-->WriteRegister: reg = 0x01, val = 0x80
<--ReadRegister: reg = 0x08, val = 0x80
<--as3910Isr: irqStatus = 0x80, as3910InterruptStatus = 0x80, as3910InterruptMask = 0x80
<--ReadRegister: reg = 0x07, val = 0x7F
-->WriteRegister: reg = 0x07, val = 0xFF
<-----as3910Initialize: Ok Return, -------
<--ReadRegister: reg = 0x06, val = 0x00
-->WriteRegister: reg = 0x06, val = 0x00
<--ReadRegister: reg = 0x01, val = 0x80
-->WriteRegister: reg = 0x01, val = 0x80
-->as3910Write MultiReg: 00 40 D0
<--ReadRegister: reg = 0x06, val = 0x01
-->WriteRegister: reg = 0x06, val = 0x81
-->WriteRegister: reg = 0x10, val = 0x1C
-->as3910ExecuteCommand: cmd = 0x17
<--ReadRegister: reg = 0x11, val = 0x80
<--iso14443BInitialize, End OK, result = 0x80 ------

-->iso14443BSelect, Start, cmd = 0x00, slotCount = 0
<--ReadRegister: reg = 0x03, val = 0x00
-->WriteRegister: reg = 0x03, val = 0x00
-->as3910PrepareReceive: Start, exec CMD_CLEAR ---
-->as3910ExecuteCommand: cmd = 0x02
<--ReadRegister: reg = 0x07, val = 0xFF
-->WriteRegister: reg = 0x07, val = 0xCB
<--as3910PrepareReceive: OK Return ----
-->as3910TxNBytes: Start, numbytes = 3, numbits = 0, frame = 05 00 00 00 00 00
<--ReadRegister: reg = 0x07, val = 0xCB
-->WriteRegister: reg = 0x07, val = 0xC3
<--ReadRegister: reg = 0x05, val = 0x04
-->WriteRegister: reg = 0x05, val = 0x06
-->WriteRegister: reg = 0x0B, val = 0xC0
-->WriteRegister: reg = 0x0C, val = 0x00
-->as3910Write FIFO: 80 05 00 00
-->as3910ExecuteCommand: cmd = 0x04
<--ReadRegister: reg = 0x08, val = 0x08
<--as3910Isr: irqStatus = 0x08, as3910InterruptStatus = 0x08, as3910InterruptMask = 0x3C
<--as3910TxNBytes: OK, numbytes = 0, numbits = 0
<--ReadRegister: reg = 0x07, val = 0xC3
-->WriteRegister: reg = 0x07, val = 0xEB
-->as3910RxNBytes, start---
<-- ???? as3910RxNBytes: Error = FIFO waterlevel or end of receive interrupt
<--ReadRegister: reg = 0x08, val = 0x00
<--ReadRegister: reg = 0x07, val = 0xEB
-->WriteRegister: reg = 0x07, val = 0xFF
-->as3910ExecuteCommand: cmd = 0x02
<--as3910RxNBytes, err = 4, length = 0, buf =

<--iso14443BSelect, End OK, err = 52
-->as3910ExecuteCommand: cmd = 0x02
<--ReadRegister: reg = 0x06, val = 0x81
-->WriteRegister: reg = 0x06, val = 0x01
<--ReadRegister: reg = 0x01, val = 0xD0
-->WriteRegister: reg = 0x01, val = 0x80

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

2
 楼主| 发表于 2011-8-23 10:34:59 | 只看该作者
>as3910Write&#160;FIFO:&#160;80&#160;05&#160;00&#160;00
-->as3910ExecuteCommand:&#160;cmd&#160;=&#160;0x04
<--ReadRegister:&#160;reg&#160;=&#160;0x08,&#160;val&#160;=&#160;0x08
<--as3910Isr:&#160;irqStatus&#160;=&#160;0x08,&#160;as3910InterruptStatus&#160;=&#160;0x08,&#160;as3910InterruptMask&#160;=&#160;0x3C

发送了05 00 00 这3个字节, 也收到了发送结束的中断标志, 剩下的就是等待接受返回数据. 但总是无数据.

此硬件部分读取14443A的UID已经稳定成功, 应该可以排除硬件和底层接口的Bug.

出0入0汤圆

3
发表于 2011-9-8 16:44:14 | 只看该作者
兄弟,你这个代码及参考资料,能发我一份吗? zjczm@163.com
正在学习.
另,该ic价格如何?
谢谢了!

出0入0汤圆

4
发表于 2011-9-8 16:48:01 | 只看该作者
搞stm32的usb确实要有一定的基础,不是像串口那样说搞就搞。

出0入0汤圆

5
发表于 2011-10-13 20:28:20 | 只看该作者
回复【3楼】howard.yu
-----------------------------------------------------------------------

必须必

出0入0汤圆

6
发表于 2012-1-2 14:19:28 | 只看该作者
楼主,AS3910的价格大概是多少,支持MifareOne的三重认证吗?

出0入0汤圆

7
发表于 2012-1-3 14:28:36 | 只看该作者
等牛人探讨

出0入30汤圆

8
发表于 2012-1-7 16:13:36 | 只看该作者
正在搞AS3910读TYPEA的UID,哎,就是看重它读Desfire EV1卡距离远,不然不会用它。

出0入0汤圆

9
发表于 2012-2-21 16:51:11 | 只看该作者
回复【楼主位】qiushui
-----------------------------------------------------------------------

你好,你的AS3910做好了么?

出0入0汤圆

10
发表于 2012-2-21 16:51:44 | 只看该作者
回复【7楼】lovelywwei
-----------------------------------------------------------------------

你好,你的AS3910做好了么?

出0入30汤圆

11
发表于 2012-2-21 17:10:28 | 只看该作者
读TYPEA UID的搞定了。不得不说,AS3910采用什么新工艺,QFN封装,用刀头烙铁焊接引脚竟然都不上锡,后来去供应商那边才知道,解决办法是,用刀把芯片每个引脚都刮一下,再焊就OK了。

出0入12汤圆

12
发表于 2012-2-22 08:34:40 | 只看该作者
关注1下这个新芯片 AS3910

出0入12汤圆

13
发表于 2012-2-22 08:39:02 | 只看该作者
来来来,大家来关注1下这个很烧包的芯片.下面是官方手册.貌似外围很简单,有很多独到的技术.就是不知道哪里有样片出售或者申请

点击此处下载 ourdev_721003K9SS33.pdf(文件大小:1.17M) (原文件名:AS3910_Datasheet_v2-3D.pdf)

出0入0汤圆

14
发表于 2012-2-22 10:03:15 | 只看该作者
回复【10楼】lovelywwei
-----------------------------------------------------------------------

那typeB跟15693怎么样了

出0入30汤圆

15
发表于 2012-2-22 10:36:17 | 只看该作者
目前没有项目需要,因此暂时不会投入精力去做。TYPEB的以前用PN512做过,读身份证那个什么所谓UID的。

出0入0汤圆

16
发表于 2012-2-22 11:53:07 | 只看该作者
回复【14楼】lovelywwei  
目前没有项目需要,因此暂时不会投入精力去做。typeb的以前用pn512做过,读身份证那个什么所谓uid的。
-----------------------------------------------------------------------

能贴点例程吗,我用512怎么也读不了身份证呢,谢谢

出0入0汤圆

17
发表于 2012-2-23 10:53:36 | 只看该作者
回复【14楼】lovelywwei
-----------------------------------------------------------------------

你好,你是在给公司做么?

出0入0汤圆

18
发表于 2012-2-25 14:16:09 | 只看该作者
读不到TYPEB是因为底层驱动哪个地方搞错了吧,物理层天线什么的不会有问题,如果A OK,那么B也OK的。

出0入0汤圆

19
发表于 2012-2-26 01:50:52 | 只看该作者
来跟高人学习,请多关照。

出0入0汤圆

20
发表于 2013-3-25 19:20:48 | 只看该作者
高手,顶一下,正在学些ISO14443A

出0入0汤圆

21
发表于 2013-3-26 09:22:35 | 只看该作者
mark.

出0入0汤圆

22
发表于 2013-3-26 10:33:39 | 只看该作者
AS3910 10年接触过 他的demo是PIC为主芯片做的
貌似我的了解是 协议需要在处理器中做的比较麻烦 所以没用。

请教Desfire EV1 是什么卡。

最近对NFC支付比较感兴趣。不知道有哪些人和我一样有兴趣。
QQ122402902  如果人多的话我也来做个开源项目。

我主要是做ISO14443A的一卡通支付的。应该算是一卡通做的比较久了有5年多了。用过的芯片从RC500到FM1702NL再到FM1702SL/FM1701/RC522,一直到现在的CV520都用过。

出0入0汤圆

23
发表于 2015-7-10 15:05:39 | 只看该作者
lovelywwei 发表于 2012-2-22 10:36
目前没有项目需要,因此暂时不会投入精力去做。TYPEB的以前用PN512做过,读身份证那个什么所谓UID的。 ...

大哥,方便用pn512 的 typeB demo发给我吗,在此小弟感激不尽。

出0入0汤圆

24
发表于 2015-7-10 15:07:21 | 只看该作者
H3LV7monster 发表于 2012-2-22 11:53
回复【14楼】lovelywwei  
目前没有项目需要,因此暂时不会投入精力去做。typeb的以前用pn512做过,读身份 ...

童鞋,你用pn512做出来了typeB了吗?

出0入30汤圆

25
发表于 2015-7-10 16:07:17 | 只看该作者
dun2010 发表于 2015-7-10 15:07
童鞋,你用pn512做出来了typeB了吗?

之前是给公司做的项目,现在已经离开那家公司了。刚找了下代码没找到,回家去电脑里看看。
印象中读TYPEB主要是初始化PN512的寄存器和读TYPEA的不同,然后就是发指令不同,读身份证的UID并不是标准的TYPEB协议。

出0入0汤圆

26
发表于 2015-8-17 14:27:52 | 只看该作者
lovelywwei 发表于 2015-7-10 16:07
之前是给公司做的项目,现在已经离开那家公司了。刚找了下代码没找到,回家去电脑里看看。
印象中读TYPEB ...

找到了吗?这几天搞的我typeB 头都大了

出0入0汤圆

27
发表于 2015-9-24 10:29:16 | 只看该作者
lovelywwei 发表于 2015-7-10 16:07
之前是给公司做的项目,现在已经离开那家公司了。刚找了下代码没找到,回家去电脑里看看。
印象中读TYPEB ...

大哥,您不忙的时候,帮我找一下吧,先谢谢了

出0入0汤圆

28
发表于 2015-11-14 15:40:37 | 只看该作者
学习学习

出0入0汤圆

29
发表于 2019-4-20 11:12:56 | 只看该作者
现有个项目要用到AS3911,谁能提供开发板或应用板,带源码。不费话   付 RMB
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 20:51

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

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