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:NFC 链路不稳定

Guru**** 2392015 points
Other Parts Discussed in Thread: RF430CL331H, TRF7970A

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/630174/trf7970a-unstable-nfc-link

器件型号:TRF7970A
主题中讨论的其他器件:RF430CL331H

大家好、

我有一个 TRF7970A 连接到定制标签。  该标签由 RF430CL331H 和 MSP430组成、设置为 Type4B 标签。

我能够建立 NFC 链路并在读取器和标签之间交换 NDEF 数据。  但一段时间后、链路中断。  有时标签会恢复、链路会重新建立。  其他时候、我必须将标签从磁场中取出、然后将其放回磁场中以进行恢复。

以下是链路中断但随后恢复的 SPI 跟踪: e2e.ti.com/.../STM32_2D00_TRF7970A_5F00_drop1.logicdata.zip

有没有关于 NFC 链路断开的想法?  我不确定从哪里开始查看。

此致、
Robert。

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

    您所描述的链路中断行为当然会发生在 NFC 技术上、这正是采用短距离无线通信方式的野兽的本质。 在较高的比特率下尤其如此、在较高的比特率下、数据包丢失/损坏更容易。

    我假设标签板是现场供电的吗? 如果是这样、标签板也可能耗尽了射频场能量、并且在收集更多能量之前由于断电而无法回复。

    固件旨在从这些中断中恢复、因此、您报告的唯一涉及我的情况是、在您将标签从射频场中移除之前、标签不会回复。 不过、这可能是标签侧问题、因为它无法正常恢复、甚至可能是在完全移除电压之前 MSP 也无法正常复位电源。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Robert、

    此外、NFCLink 独立固件还具有一个可指示重试次数的功能。 根据 NFC 标准、我认为最大值为5、但我们使用的默认值为2。 您可以增加该设置(首先尝试"max" 5、以查看它是否起作用)、这将使固件在完全超时之前多次 ping 标签。 如果标签用完了、需要时间重新充电然后回复、这会有所帮助、对于使用 NFC 论坛定义的最大值的应用、无论如何都很有意义。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph、

    NFC 堆栈的哪个部分设置了最大重试次数?

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

    您好、Robert、

    代码注释似乎可以更清楚...

    //默认最大 WTX 数2
    g_sRWSetupOptions.bits.ui3RWMaxWTX = 2;
    //默认最大 ACK 数2
    g_sRWSetupOptions.bits.ui3RWMaxACK = 2;
    //默认最大 NACK 数2
    g_sRWSetupOptions.bits.ui3RWMaxNACK = 2;
    //默认
    最大值3RWMaxSetupMaxOptions 数2;//默认值3RWDSLDSL.bits.uRwMaxOptions 

    为 NFC 配置更改这些值将是您想要的。 实际上、就器件超时而言、您需要更改的只是 NACK 1、那么

    G_sRWSetupOptions.bits.ui3RWMaxNACK = 2; 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将 NACK 值从2更改为5。 不过、我不确定这会产生什么影响。