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.

[参考译文] CC1312R:中止 RF_cmdRx 以发送 RF_cmdTx 后、RF_cmdRx 无法重新启用

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1136341/cc1312r-after-aborting-rf_cmdrx-to-send-rf_cmdtx-the-rf_cmdrx-cannot-re-enabled

器件型号:CC1312R

大家好、

在处理 RF_cmdPropTx 后、很少无法 启动 RF_cmdPropRx。

我们的用例:

我们同时使用多达200个具有 CC1312的定制板。
我们应用中的通信像主从系统一样运行、因此有一个主从系统、所有其他主系统都是从系统。  所有运行 RF_cmdPropRx 的从器件。
要发送响应、Rx 命令被中止。 发送完成后、从器件 重新启动 RF_cmdPropRx。
 当主器件请求多个从器 件时、从器件在发送响应之前使用单独的等待时间(最多1.8秒)。

但在处理 RF_cmdPropTx 后、很少会 使 RF_cmdPropRx 不重新启动(随机影响1个或2个从器件)。
在一种情况下、我看到 RF_cmdPropRx.status 设置为0x0405 (DONE_ABORT)、但为什么不设置为0x0002 (有效)?

在文件中、我添加了使用过的 RFC_CMD_。 配置和功能来发送数据并重新启动 Rx 命令。

此致、

Martin

e2e.ti.com/.../rfwrite.txt

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

    忘记说我们正在使用  
    simplelink_cc13x2_26x2_SDK_3_10_01_11

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

    尊敬的 Martin:

    很抱歉、响应时间太长。

    [引用 userid="533911" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1136341/cc1312r-after-aborting-rf_cmdrx-to-send-rf_cmdtx-the-rf_cmdrx-cannot-re-enabled "]但在处理 rf_cmdPropTx 后,很少会使 rf_cmdPropRx 不重新启动[/quot]

    您能解释一下"RF_cmdPropRx 未重新启动"时会发生什么情况吗? 链中所有命令的状态是什么?

    此致、
    尼古拉伊

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

    Nikolaj、您好!
    我将尝试获取其他命令的状态。
    正如我已经提到的、这是一种罕见的行为、因此需要一些时间才能获得所需的信息。
    请耐心等待。

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

    嗯、我在主循环中添加了一个针对  RF_cmdPropRx 上错误/意外状态的检查、以将所有命令的状态代码写入闪存。 因此我可以稍后读取它们。 但现在这种行为不再出现。

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

    尊敬的 Martin:

    很难调试这个问题、而无法重现这个问题。

     rfWrite 何时调用?

    我不知道如何解决您的问题、但您能否尝试这些更改、看看它是否有帮助:

    • 将 RF_flushCmd 函数的模式参数更改为0 (突然中止)
    • 将  RF_PendCmd 函数的 bmEvent 参数更改为0。 这将导致 RF_PendCmd 仅在命令完成后返回。

    此致、
    尼古拉伊  

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

    Nikolaj、您好!

    调用 rfWrite 以发送对已发送给电路板的已接收消息的响应。 如果电路板未被寻址、消息将被丢弃。

    我将 rf_flushCmd 的模式参数 和 rf_pendCmd 的 bmEvent 更改为0。  

    我们在测试环境中对其进行了测试、错误磁性消失了。 现在、我们将软件发送给客户、以便他们可以在环境中测试软件。 我们将等待他们的答复。

    希望通过这些更改来修复该误差。

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

    尊敬的 Martin:

    是否有关于该问题的任何更新?

    此致、

    Arthur

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

    尊敬的 Arthur:
    很抱歉、响应时间很长。

    错误仍然存在。

    我们从客户那里收集到的一个新信息。 我们板上有一个 LED 指示超时(未接收到此板的有效数据)。 LED 不会指示超时、因此接收到数据、但不发送响应。 因此错误必须位于 TX 命令中。

    此时、我们通过代码搜索一些错误(错误的 RAM 访问、未处理的中断或其他错误)。

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

    尊敬的 Martin:

    是否还可以尝试在 RF_cmdPropRx 命令中启用.PastTrig,以及将 RF_cmdPropRx 的 endTrigger 设置为 TRIG_REL_START (0x04)和某个值(例如,1秒)?

    我还想了解引脚卡在什么状态、因为器件可能卡在 RX 模式下。 为此、请在程序初始化阶段插入该代码:


    //LNA to IOID_6
         IOCPortConfigureSet(IOID_6, IOC_PORT_RFC_GPO0,
                            IOC_IOMODE_NORMAL);
    //TX (PA) to IOID_7
    IOCPortConfigureSet(IOID_7, IOC_PORT_RFC_GPO3,
                    IOC_IOMODE_NORMAL);

    参考资料: https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_6_30_01_03/docs/proprietary-rf/proprietary-rf-users-guide/rf-core/signal-routing.html#routing-doorbell-signals-to-gpio-pins

    此致、

    Arthur