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.

[参考译文] CCS/CC2642R:TRF7970使用来自 CC2642R1的读取 NFC 标签:似乎在时钟回调中工作,但在排队后不能从主应用程序中工作

Guru**** 2587365 points
Other Parts Discussed in Thread: TRF7970A

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/925605/ccs-cc2642r-trf7970-use-from-cc2642r1-to-read-nfc-tag-seems-working-within-clock-callback-but-not-from-main-application-after-being-queued

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

工具/软件:Code Composer Studio

您好!

我需要在 CC2642R1上运行一个使用 TRF7970读取 NFC 标签的应用。

之前的开发人员采用 CC2642R1简单外设应用(simplelink_cc13x2_26x2_SDK_3_40_00_02\examples\rtos\cc26X2R1_LAUNCHXL_ble5stack\simple_peripheral)、并添加了从 TRF7970A 示例应用(TRF7970A_rw_1.0_p3b_sp_40r_models\TRF401p401r_sp_model_1r_sp_sp_sp_sp4r_modes)获取的 NFC 读数。

这种方法非常正确、可以连续读取 NFC 标签值并通过 UART 发送(即使有时读取失败、可能是由于尚未调整 NFC 天线)。

我的问题是 NFC 状态机在时钟回调中运行、因此不应在回调中执行长时间处理、以避免影响实时(来自文档)。

然后、我尝试通过时钟回调对事件进行排队(正如 simple_peripheral 代码中已经完成的那样)。

第一次调用正常、NFC 标签被正确读取、但10秒后的下一次调用不起作用、NFC 状态似乎停留在 NFC_Protocol_activation 上。

如果我直接从时钟回调调用相同的代码、而不是推入事件、它的工作方式非常正确。

我不明白这个问题、NFC 代码(如 NFC_RW_T2T_sendReadCmd)是否需要在高优先级线程中运行?

在 NFC 读取期间,其它较短周期的时钟(3s)回叫中断较低优先级的应用程序?

此致

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

    您好、Nicolas、

    我一点也不熟悉 SimpleLink 的工作原理、因此您可能需要详细地向我介绍某些组件的含义。

    例如、我不知道这个"时钟回调"在做什么、它被调用的频率等

    [引用 user="Nicolas Libpari"]我不理解问题,是否 需要在高优先级线程中运行的 NFC 代码(如 NFC_RW_T2T_sendReadCmd)?

    一般而言、是的。 NFC 具有严格的计时驱动能力、如果在通信开始期间未向标签提供回复、则它们将超时。

    根据我的经验、NFC 应该被指定为系统中最高优先级之一、这样它能够以毫秒为单位而不是以整秒为单位处理和响应标签查询。 通常、来回通信在10-100ms 的时间范围内进行。 这可能是问题所在。 至少、这是我的最佳猜测。