This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TRF7970A:读取/写入 ISO14443A 标签的正确命令序列

Guru**** 2756835 points

Other Parts Discussed in Thread: DLP-7970ABP, TRF7970A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1611817/trf7970a-correct-command-sequence-to-read-write-iso14443a-tag

器件型号: TRF7970A
主题中讨论的其他器件: DLP-7970ABP

E 正在使用 DLP Design 中的 DLP-RFID2 模块 (https://www.dlpdesign.com/rf/rfid2.php)、该模块在内部使用 TI 的 TRF7970A 收发器(该收发器应是 DLP-7970ABP Booster Pack 中的相同硬件)。 目前我们有这个 NFC 标签: https://www.amazon.it/dp/B00B0O1CPW 似乎是 NTAG213 从 NXP。

目标是从内部存储器写入和读取多达 8 个字节。

我们可以使用以下命令始终读出 UID:

> 01080003042B0000  
> 010A0003041001210000  
> 010C00030410002101090000  
> 0109000304A0010000  
<寄存器写入请求。  
<寄存器写入请求。  
< 14443A REQA。  
<[04152FB6422B1491EC、76]

使用此命令时、模块始终以某种方式在括号[]的末尾返回 UID。

下面是我们如何尝试读取 8 个字节的示例。  FSM 在发送下一个数据包之前等待 RX 线上的任何活动:


> [15285] 01080003042B0000
>[15325] 010A0003041001210000
> [15375] 010C00030410002101090000
< [15425]寄存器写入请求。
>[15426] 0109000304A0010000
> [15475] 010A0003041830040000
< [15627]寄存器写入请求。

没有更多答案、因此我的 FSM 超时(2000 毫秒后)。
但如果我再次发送相同的顺序,答案是相当不同的:

>[142093] 01080003042B0000
>[142131] 010A0003041001210000
<[142181] 14443A REQA。
>[142182] 010C00030410002101090000
>[142232] 0109000304A0010000
<[142282][04152FB6422B1491EC、7F]//获得 UID
>[142283] 010A0003041830040000
<[142484]请求模式。
<[142585][0103A00C340300FE0000000000008533]//获得了存储器内容、我想要什么!
<[142786]寄存器写入请求。
<[142787]寄存器写入请求。
<[143189] 14443A REQA。
<[143290][04152FB6422B1491EC、7F]//再次获得 UID
<[143491]请求模式。\x1B
<[143592][0103A00C340300FE0000000000008533]//再次获得存储器内容

 

DLP 设计表明、其模块不会干扰主机(我的 MCU)和标签之间的通信。 因此、我们想知道在哪里查找可靠的文档:标签、收发器、模块? 基本上,我们需要找出请求的命令的正确顺序和可能的答案的描述(无,一个,更多等...)。 否则我们无法编写功能代码!