搜索
bottom↓
回复: 28

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

[复制链接]
(289422293)

出0入0汤圆

发表于 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
(289421612)

出0入0汤圆

 楼主| 发表于 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.
(288017057)

出0入0汤圆

发表于 2011-9-8 16:44:14 | 显示全部楼层
兄弟,你这个代码及参考资料,能发我一份吗? zjczm@163.com
正在学习.
另,该ic价格如何?
谢谢了!
(288016830)

出0入0汤圆

发表于 2011-9-8 16:48:01 | 显示全部楼层
搞stm32的usb确实要有一定的基础,不是像串口那样说搞就搞。
(284979611)

出0入0汤圆

发表于 2011-10-13 20:28:20 | 显示全部楼层
回复【3楼】howard.yu
-----------------------------------------------------------------------

必须必
(278003343)

出0入0汤圆

发表于 2012-1-2 14:19:28 | 显示全部楼层
楼主,AS3910的价格大概是多少,支持MifareOne的三重认证吗?
(277916395)

出0入0汤圆

发表于 2012-1-3 14:28:36 | 显示全部楼层
等牛人探讨
(277564495)

出0入0汤圆

发表于 2012-1-7 16:13:36 | 显示全部楼层
正在搞AS3910读TYPEA的UID,哎,就是看重它读Desfire EV1卡距离远,不然不会用它。
(273674240)

出0入0汤圆

发表于 2012-2-21 16:51:11 | 显示全部楼层
回复【楼主位】qiushui
-----------------------------------------------------------------------

你好,你的AS3910做好了么?
(273674207)

出0入0汤圆

发表于 2012-2-21 16:51:44 | 显示全部楼层
回复【7楼】lovelywwei
-----------------------------------------------------------------------

你好,你的AS3910做好了么?
(273673083)

出0入0汤圆

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

出0入12汤圆

发表于 2012-2-22 08:34:40 | 显示全部楼层
关注1下这个新芯片 AS3910
(273617369)

出0入12汤圆

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

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

出0入0汤圆

发表于 2012-2-22 10:03:15 | 显示全部楼层
回复【10楼】lovelywwei
-----------------------------------------------------------------------

那typeB跟15693怎么样了
(273610334)

出0入0汤圆

发表于 2012-2-22 10:36:17 | 显示全部楼层
目前没有项目需要,因此暂时不会投入精力去做。TYPEB的以前用PN512做过,读身份证那个什么所谓UID的。
(273605724)

出0入0汤圆

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

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

出0入0汤圆

发表于 2012-2-23 10:53:36 | 显示全部楼层
回复【14楼】lovelywwei
-----------------------------------------------------------------------

你好,你是在给公司做么?
(273337942)

出0入0汤圆

发表于 2012-2-25 14:16:09 | 显示全部楼层
读不到TYPEB是因为底层驱动哪个地方搞错了吧,物理层天线什么的不会有问题,如果A OK,那么B也OK的。
(273296259)

出0入0汤圆

发表于 2012-2-26 01:50:52 | 显示全部楼层
来跟高人学习,请多关照。
(239278063)

出0入0汤圆

发表于 2013-3-25 19:20:48 | 显示全部楼层
高手,顶一下,正在学些ISO14443A
(239227556)

出0入0汤圆

发表于 2013-3-26 09:22:35 | 显示全部楼层
mark.
(239223292)

出0入0汤圆

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

请教Desfire EV1 是什么卡。

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

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

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

发表于 2015-7-10 16:07:17 | 显示全部楼层
dun2010 发表于 2015-7-10 15:07
童鞋,你用pn512做出来了typeB了吗?

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

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

发表于 2015-11-14 15:40:37 | 显示全部楼层
学习学习
(47758535)

出0入0汤圆

发表于 2019-4-20 11:12:56 | 显示全部楼层
现有个项目要用到AS3911,谁能提供开发板或应用板,带源码。不费话   付 RMB
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-10-24 05:28

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

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