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.

[参考译文] Starterware/TRF7961:随机写入和读取 RFID 标签失败

Guru**** 2943390 points

Other Parts Discussed in Thread: TRF7961, TRF7970A, TRF7964A, TRF7960, TRF7960A

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/618340/starterware-trf7961-fail-to-write-and-read-rfid-tag-randomly

器件型号:TRF7961
主题中讨论的其他器件: TRF7970ATRF7964ATRF7960TRF7960A

工具/软件:Starterware

您好 Ralph、
也许您对我在三态的理解有误。 我一定会遵循 TI 的建议并将其实施到新设计中、刚才发生了一个问题、这促使我了解更多有关该问题的详细信息:
问题:系统运行时间长、例如300分钟、时间长或更短(一次写入和读取 RFID 标签/分钟)、当 MCU 要求 RFID 控制器写入或读取 RFID 标签时、命令失败。 问题是随机发生的、有时甚至从未发生。
目前、我正在对其进行故障排除、原理图遵循 参考设计并由 TI 审核、天线性能在附件中列出、 但我仍然不知道问题在哪里、您能给我一些提示吗?我总结了可能的原因如下:1.天线性能?2. SPI 通信(无三态缓冲器) 3. SW 不强。4. RFID 控制器设计不稳定?是否有其他原因?是否有任何方法可以解决问题?是否有任何更精确的措施来解决问题?

非常感谢;

e2e.ti.com/.../Antenna-test-report-_2D00_-20170811.pptx

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

    有助于调试的第一个问题:

    1) 1)您是否收到了针对尝试的标签应答的 IRQ 中断、或者根本没有应答?
    2) 2)如果是、返回了什么 IRQ 状态?
    3) 3)如果您重新发出读取或写入请求、它是否起作用?
    4) 4)如果否、在恢复通信之前必须采取哪些步骤?

    天线与您所连接的天线看起来非常好。

    有关原理图的几点意见:
    1) 1) IRQ 线路上不应包含该 RC 电路。 使其保持连接至 MCU、而不使用电阻器/电容器
    2) 2) EN 或 I/O_4不需要电容、但 EN 需要10k 下拉电阻器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ralph、
    请参阅我的评论:
    由于 MCU 没有空闲引脚、IRQ 未连接到 MCU、而是上拉;
    2.see item 1 commnet;
    3.in SW、如果请求不起作用、我将尝试读取/写入三次;
    4.in 当前软件,没有恢复通信的计数器测量或解决方案;我必须关闭系统电源,然后再打开系统电源,然后它可以再次工作;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:

    您需要使用 IRQ。 这是一个非常复杂的器件、没有 IRQ 将会严重阻碍您的使用。 如果您不使用 IRQ、您至少需要轮询 IRQ 状态寄存器、直到您在软件中确定超时或接收到您可以操作的结果(0x80、0x60、0x40等)。

    如果不知道您返回的 IRQ 状态、我甚至无法开始调试。

    至于重试不起作用的情况、我唯一可以提供的建议是、当您失败时、发送0x83 0x80直接命令序列来重置器件、然后重新配置所有寄存器并重试。

    同样、如果您不使用 IRQ、我也没有太多帮助。 我曾经调试过的每一个应用都连接了 IRQ、我们依靠 IRQ 触发时间和报告内容的信息来指导发生了什么以及如何解决。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ralph、
    以下哪一个文档显示0x83、0x80可以复位 RFID 控制器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:

    对于 TRF7961、这可能没有很好的记录-这是一个非常旧的器件。 在 TRF7970A 的固件开发过程中发现了类似的项目。 对于 TRF7970A、第6.10.5节和第6.11节中都提到了这一点。

    我还使用了完整的 SPI 命令-直接命令为0x03和0x00。 要使用 SPI 发送直接命令、位7必须= 1、这意味着实际的 SPI 命令0x83 (直接命令+命令代码0x03)和0x80 (直接命令+命令代码0x00)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph、

    由于我的设计中未使用 IRQ、MCU 不知道问题发生的时间。我在每次写入/读取 RFID 标签之前实施"0x03和0x00"、您认为它是好的吗?

    顺便说一下、软复位和上电复位之间有什么大区别?

    本周一、我将尝试使用新软件、我希望可以解决此问题。 老实说、这对于这个问题来说有点可怕。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    顺便说一下、对于电感器150nH 和330nH、我们使用了'0805CS-331XTLB 和'T000118、您能不能帮助检查它们是否适合此应用?
    hk.element14.com/.../2286428
    hk.element14.com/.../1711836
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mike -

    启动时发送0x83 (软初始化)、0x80 (空闲)实际上只适用于 TRF7970A 和 TRF7964A 器件。
    TRF7960、-60A、-61、-62A 和-63A 中的 SPI 彼此相同且不同于上述器件。

    您也可以在此处查看、也可访问=> www.ti.com/.../sloa168.pdf

    正如 Ralph 提到的、您不使用 IRQ 线路向 MCU 发出信号的决定并不理想。 在我支持这个器件系列的12年左右时间里、我没有见过很多人这么做、那些做出这一决定的人在他们的系统中需要软件轮询 IRQ 状态寄存器、 从代码流和节能的角度来看、这也不是理想之选。 我真诚地建议您找到连接和使用此线路的方法。

    您显示的电感器选择对我来说看起来不错、它们希望能够处理电流。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Mike / Josh、

    0x83 0x80序列不是 TRF7960A 器件的 SPI 启动要求、因为它在 TRF7970A/TRF7964A 中、但它确实会复位内部状态机、并在接收到通信故障和错误时将器件置于已知良好状态。 由于没有 IRQ、所以未知错误是什么、唯一可能的方法是对器件进行软复位、然后查看其是否成功。

    至于软复位与功率周期、我的体验没有太大差异、但偶尔将 EN 拉低将有助于解决即使软复位也无法解决的问题、但这种情况很少见。 我可以想到的最大区别是、将 EN 下拉为低电平后、SYS_CLK 将在60kHz (EN2 = 1)时或完全禁用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    拉尔夫-
    我同意这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ralph、您好 Josh、
    感谢您的回答,尤其是在周末;我现在有点困惑:
    0x83 0x80是否仅对 TRF7970A/64A 有用?它对 TRF7961没有用处?如果它对 TRF7961没有用处、那么在软件中实施0x83/0x80毫无意义、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、您好!
    感谢您的回答,尤其是在周末;我现在有点困惑:
    0x83 0x80是否仅对 TRF7970A/64A 有用?它对 TRF7961没有用处?如果它对 TRF7961没有用处、那么在软件中实施0x83/0x80毫无意义、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mike -
    要明确-如果您想使您的设计达到最佳效果、则需要使用 IRQ 线路。

    所有 TRF79xxA 器件都将这些命令单独用于它们的预期用途。

    软启动和加电后空闲命令序列组合的具体用法专门用于确保 TRF7970A 或 TRF7964A 的 SPI 已正确初始化(这是针对小错误的解决方法)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Josh:
    如果可以优化 MCU 资源、我肯定会尝试连接 IRQ 线路;
    正如您所说的、0x83 0x80已记录在案、并且对 TRF7970A/64A 有用;
    我想确认:是0x83 0x80也对 TRF7961有用,或者,它对 TRF7961根本不有用?请提供清楚的信息;
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mike -
    发送软初始化或空闲命令与所有 TRF79xx 器件一起执行记录的操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Josh:
    很抱歉、我可以很清楚地看到它、TRF7960/TRF7961中没有记录0x83/0x80、这是否意味着该命令对 TRF7960/TRF7961没有用处?
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅表6-31、第31页、该表中的前两条命令
    www.ti.com/.../trf7961.pdf

    0x00为软初始化、0x03为空闲。 发出直接命令后、命令的位7设置为"1"、使使用逻辑分析仪查看的命令的完整字节为0x80或0x83。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Josh:
    我现在明白了,谢谢 lot.it,你一定会有一个很深的夜晚,那真是一个很好的夜晚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Josh、你好 Ralph、

    正如您建议向 MCU 添加 IRQ、并且我已检查 IRQ 状态寄存器、我发现有以下故障模式、您能告诉我硬件 和软件上的故障原因以及相应的缓解措施吗?

    B0~B4错误中断:CRC、极性、无响应、冲突、EOF /帧错误。

    非常感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    第29页显示了 IRQ 寄存器的位定义
    www.ti.com/.../trf7961.pdf
    您的意思是、您在这里同时遇到5个错误吗? (即您得到的是0x1F?)

    如果您确定使用的是已知良好的标签、并且 TRF79xx 电路已经被修改为对其进行了所有更正、那么我可能会首先怀疑天线调谐。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph、您好 Josh、

    我们的软件工程师在每次读取/写入标签之前都在软件复位中实现了0x83/0x80、没有发现任何问题。 感谢您的建议。

    但 我仍然不知道为什么会出现这个问题、软件问题或硬件 问题、或者其他问题? 如您所建议、我向  MCU 添加 IRQ 信号、 如何对其进行故障排除? 我应该监视 IRQ 状态(0x0c)、还是其它寄存器?

    根据我们 的软件、如果数据(1~250)未能读取或写入 RFID 标签三次、SW 工程师应将零写入标签、但每次成功将零写入 tag.it's 都非常奇怪。写入 零和(1~250)之间的数据是否有任何差异?

    谢谢。  

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

    尊敬的 Mike:

    [引用用户="Mike 曾">但 我仍然不知道为什么会出现此问题、软件问题或硬件 问题或其他问题?

    [/报价]

    如果有任何问题、则视为器件问题。 发生的情况是、在发生故障传输或许多成功传输后、TRF79xx 器件的内部状态机可能会最终处于未知状态、然后器件将出现通信问题。 为了防止这种情况发生、软复位过程在任何接收到的故障之后以及在 NFC 标准允许的每个轮询/数据通信周期之后使用(例如、在保持持续连接时、直到连接断开才会执行此操作)。

    [引述 USER="Mike 曾">根据您的建议、我向  MCU 添加 IRQ 信号、 如何对其进行故障排除? 我应该监视 IRQ 状态(0x0c)、还是其它寄存器?

    [/报价]

    IRQ 信号应该被路由至 MCU 上的一个可中断的 GPIO 并且当一个 IRQ 被接收时、应该写入一个 ISR 来读取 IRQ 状态寄存器、然后调用一个 IRQ 处理程序来处理结果。 从 IRQ 处理程序内部、可以根据接收到的值来决定固件的后续步骤。 有关明确定义的 IRQ 处理程序的示例、请参阅 TI 示例代码。