您好!
我遇到了以下问题:当两个 ISO 14443A 卡靠近天线时、我无法选择一个卡并读出完整的 uid。
设置寄存器(TRF_REGISTER_ISO、0x88);
设置寄存器(TRF_REGISTER_SYSCLK、0x01);
设置寄存器(TRF_REGISTER_CHIP、0x21);
发送以下内容后:
contWriteTRF[0]= TRF_INITFIFO;
contWriteTRF[1]= TRF_Transmit _START_CRC;(0x90)
contWriteTRF[2]= TRF_WRITEFIFO;
contWriteTRF[3]= 0x00;
contWriteTRF[4]= 0x20;
contWriteTRF[5]= 0x93;
contWriteTRF[6]= 0x20;
我得到一个 IRQ、该 IRQ 发生碰撞。 现在、我读取寄存器0x0D 和0x0E 以获取位置。 然后、我读取 FIFO 以获取 UID 的有效位。
在我的情况下、冲突位于第二个位、第一个(有效)位为"0"。
那么、现在我要发送:
contWriteTRF[0]= TRF_INITFIFO;
contWriteTRF[1]= TRF_Transmit _START_NOCRC;(0x91)
contWriteTRF[2]= TRF_WRITEFIFO;
contWriteTRF[3]= 0x00;
contWriteTRF[4]= 0x20;
contWriteTRF[5]= 0x93;
contWriteTRF[6]= 0x22;(有效位0、之后添加位(1))
contWriteTRF[7]= 0x02;
我甚至得到一个带有0xC0的 IRQ、但是当我读取 FIFO 状态寄存器时、它会显示没有数据。 但是、当我理解我读的所有不同论文时、卡片应使用重校正 UID 进行回复
我现在尝试了几种稍微不同的方法,但都没有成功。
问题出在哪里?
谢谢、
猜测