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.

[参考译文] TRF7960A:未找到15693标签时的时序

Guru**** 2589265 points
Other Parts Discussed in Thread: TRF7960A, MSP430G2553, TRF7970A

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/584112/trf7960a-timing-when-no-15693-tag-is-found

器件型号:TRF7960A
主题中讨论的其他器件: MSP430G2553TRF7970A

您好!

我有一个时间非常重要的应用。 当 TRF7960A 尝试从 ISO15693标签读取时、与预期的时间差为~5毫秒。 现在、当天线中没有标签时、"等待"时间为39.88毫秒。 寄存器中是否有任何方法可以缩短等待时间? 这~40毫秒是我的应用的一个很长的时间。 有没有办法解决这个问题? 是否有一个命令查找是否存在标签并使其快速执行?

请参见下图。

谢谢、

Robert

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

    尊敬的 Roberto:

    我建议在 MCU 端定义 RX 超时、如果在超时到期之前没有收到响应、则假设没有针对此应用准确的回复。

    您需要做的是、您将获得 TX 完成指示、启动计时器并等待以下操作之一发生:

    • IRQ 已接收
    • 定时器中断发生、表示已达到超时

    如果已经达到超时、那么读取 IRQ 状态寄存器只是为了验证它没有被设定为0x40、但是 IRQ 还未被触发(这可能会发生、因为 RX IRQ 通常在 RX 完成或者 FIFO 水印被命中时被触发)

    如果 IRQ 状态为0x00、则应用程序应该继续、假定标签没有回复。

    对于 ISO15693、如果您进行单槽资源清册、我会说大约10ms 就足够超时了。 我想、大多数(如果不是所有)标签在5-6毫秒内回复、正如您所见。

    另一个理论上是可行的、但我从未尝试过以这种特定方式使用的选项是调整 TRF7960A 的 RX 无响应等待时间并在此处使用。 这一特性通常用于针对 ISO15693防冲突的插槽市场、并且能够很好地处理低于1ms 的时序、但是最大值可被设定为9.6ms。 要使用此功能、您需要在发送库存命令之前设置寄存器0x0D (中断屏蔽寄存器)中的启用无响应中断位(B0)。 同样、我从未以这种方式使用过该功能、但我看不到它也无法正常工作的原因。 因此、您可以选择首先尝试哪种方法。

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

    您好、Ralph、

    我建议在 MCU 端定义 RX 超时、如果在超时到期之前没有收到响应、则假设没有针对此应用准确的回复。

    我使用"Read Single Block"命令尝试了这种方法、这是我发布的图片中的内容。 问题是、有一个"[""]"\r\n"待处理的时间间隔为39.88 ms、将其发送回 MCU。 因此、如果您发送读取命令、然后等待10ms、然后发送下一个读取命令、它将使 MCU 中的 RX 卡滞。 注意:我在多路复用一些天线的同时执行多次读取。 它工作得很好。 我只需要将其清除掉、就可以消除40mS 的间隙。

    我没有使用单槽资源清册命令尝试过此操作。 我将在本周进行一次尝试。

    另一个理论上是可行的、但我从未尝试过以这种特定方式使用的选项是调整   TRF7960A 的 RX 无响应等待时间 并在此处使用。 这一特性通常用于针对 ISO15693防冲突的插槽市场、并且能够很好地处理低于1ms 的时序、但是最大值可被设定为9.6ms。 要使用此功能、您需要在发送库存命令之前设置寄存器0x0D (中断屏蔽寄存器)中的启用无响应中断位(B0)。 同样、我从未以这种方式使用过该功能、但我看不到它也无法正常工作的原因。 因此、您可以选择首先尝试哪种方法。

    这种方法看起来很有希望。 您是否介意告诉我整个命令如何更改该寄存器? 我使用以下序列启动 TRF7960A、

    Ping:0108000304FF0000

    启用外部天线:01080003042B0000

    设置 ISO15693模式:010C00030410002101020000

    AGC 切换:0109000304F0000000

    AM/PM 切换:0109000304F1FF0000

    然后、我将使用以下命令读取标签、

    读取块5:010B000304180020050000

    您建议将此寄存器修改放在启动序列中的"AM/PM Toggle (AM/PM 切换)"之后吗? 您能否将整个命令发布到此寄存器修改?

    谢谢、

    Robert

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

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

    不、我使用的是 DLP-RFID2。

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

    尊敬的 Roberto:

    您当时可能不太幸运。 我对该模块固件的了解有限、但我很确定您无法删除串行通信方面的内容。 这就是导致延迟的原因、如 "[""]"\r\n"数据包所示。 它使用 UART 来实现该目的、而 UART 通信正在减慢速度。

    对于无响应中断的想法、我不知道从一系列命令的角度来看这是否可能、因为我不确定器件是否配置为了解该中断在防冲突上下文之外的含义。 我也不知道它的寄存器设置。

    遗憾的是、该模块确实限制了您的 TRF79xx 选项。

    如果您可以选择更改评估硬件、我建议您获取我们的 TRF7970A BoosterPack 和 MSP430G2553 LaunchPad、并将我们的 TI 示例用于您的应用、然后您需要将多路复用器代码添加到该应用中。 但是、一旦达到该点、您就可以以更精细的方式控制固件、并将时序控制在所需的范围内。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    OH 也适用于主机命令本文档可能有所帮助: www.ti.com/.../sloa141.pdf

    该资源应该能够为您提供尝试无响应中断创意的指导。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的、如果无法使用 DLP 模块、我将尝试使用 BoosterPack。 谢谢、

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

    嗯、我没有任何东西会让它尝试。 本技术白皮书更详细地介绍了寄存器。 www.ti.com/.../slos732e.pdf

    让我们看一下。 我会随时向您发布。

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

    尊敬的 Roberto:

    是的、该数据表为您提供了所有详细信息、但在使用 DLP 模块时受该文档中所述的主机命令的限制。 这就是我不知道寄存器设置的意思。

    此外、您无法修改它处理各种 IRQ 状态的方式。 我不知道当您发送自定义命令时、它是否会忽略 IRQ 状态为0x01、而不会发生任何回复、或者它是否会对其做出反应、因为标签没有及时回复等

    基本上、DLP 模块是一个黑盒、您只能以有限的方式进行交互、虽然对于一般应用来说是可以的、但一旦您需要执行诸如控制时序之类的特定操作、事情就会变得非常棘手。

    在主机命令指南和数据表之间、您至少应该能够将寄存器设置为无响应超时、但如果模块中的其余代码甚至知道如何处理 TRF 设置、则该设置为待定。

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

    顺便说一下、这是什么类型的中断? 这是软件中断还是硬件中断? 无论如何、我会尝试一下、看看会发生什么情况。 我也没有使用过太多资源清册命令、所以我也会尝试。

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

    这是 IRQ 线路上的硬件中断、它将提示模块内的主机 MCU (您要向其发送 UART 命令的 MCU)发生在 TRF7970A 上的事件。 然后、主机 MCU (其固件无法修改)需要正确解释和处理 IRQ。 鉴于这是对该中断的非常规用途(至少在我们的经验中)、我不知道主机 MCU 将如何处理该中断。