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.

[参考译文] CC1352R:1GHz 以下的 CW 测试

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1067448/cc1352r-cw-test-for-sub-1ghz

部件号:CC1352R
“线程:测试BLE 堆栈”中讨论的其他部件

您好,

我们拥有用于2.4GHz 的 HCI_EXT_ModemTestTxCmd(),HCI_EXT_ModemTestRxCmd()。

对于低于1GHz 的产品,我们是否有类似且易于使用的产品?

我们希望在项目中实施低于1GHz 的无线电测试。 我们可以为2.4GHz,读取 RSSI 等实现此功能

在上一个项目中,我们使用了 EasyLink,并在该项目中运行低于1GHz 的 CW 测试(EasyLink_Ctrl_Test_Tone,EasyLink_Ctrl_Test_Signal),

但是,我们没有在新项目中使用 EasyLink,项目中有 BLE 和 TI 15.4堆栈。

如何使用 TI 15.4 (低于1GHz)启动连续的 TX/Rx 测试?

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

    也许尝试使用 SmartRF Studio。

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

    我知道,但我们希望在固件的内联测试期间运行低于1GHz 的测试。 有可能吗?

    实际上,我们在 TX/RX 模式下使用 SmartRF 作为2.4GHz 的参考端,并在我们的设备上的固件中运行 TX/RX 测试。 但我们不知道如何为低于1GHz 的用户提供支持。

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

    为什么要使用 TI 15.4堆栈来实现此目的? 您可以使用 Prop API 执行此操作,并且只需使用与使用 TI 15.4堆栈时计划使用的 PHY。 请参阅

    https://dev.ti.com/tirex/explore/node?node=AL6GtuZsDzmzmirIdG71dA__BSEc4rl__LATEST

    西里

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

    谢谢! 看起来正是我们需要的,我会尝试。

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

    我在我们的项目中实施了 rfCarrierWate 的代码,但它在项目之后就停止了

    rfHandle = RF_OPEN (&rfObject,&RF_prop,(RF_RadioSetup*)和 RF_cmdPropRadioDivSetup_,&rfParams);

    在命令中

    rf_runCmd (rfHandle,(RF_Op*)和 rf_cmdf,rf_PriorityNormal,NULL,0);

    因为 rfHandle 为 NULL。


    因此,对讲机接口似乎忙于 TI15.4堆栈,无法重复使用。

    我想我应该运行 RF_CLOSE (RF_HANDLE h)或其他一些操作,但我需要知道 TI15.4句柄。

    如何解决这一问题?

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

    我不熟悉 TI 15.4堆栈,因此我需要找其他人对此发表评论。 但是,我不理解为什么您需要使用 TI 15.4堆栈来实现这一点。 我认为发送 CW 是为了进行某种 RF 测试,而不是您在应用中要做的事情。 对于射频测试,您为什么不只使用堆栈运行测试代码。 运行 prop 时,可以使用与堆栈相同的 PHY。

    西里

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

    亚历克斯:

    [引用 userid="153242" url="~ë/support/wireless-connectivity /Zigbe-thread-group/ZigBee 和线程/f/ZigBee 线程-forum/1067448/cc1352r-cw-test-for-sub-1GHz /3952990#3952990">

    因此,对讲机接口似乎忙于 TI15.4堆栈,无法重复使用。

    我想我应该运行 RF_CLOSE (RF_HANDLE h)或其他一些操作,但我需要知道 TI15.4句柄。

    [/引用]

    遗憾的是,TI 15.4层堆栈中没有与 RF_handle 等效的产品。 堆栈确实会按照您正确指出的那样接管对讲机的所有权,这样您就只能以特定方式使用对讲机(这与 CW 测试不真正兼容)。

    正如 Siri 所提到的,对于射频测试,最好的方法就是制作运行时不需要堆栈的代码。

    巴西,
    安德烈斯  

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

    无线电 CW 测试应该是我们主要固件的一部分。 因此,我们的设备支持两个堆栈:BLE 和 TI15.4,并在我们的系统中执行常规工作。

    我们有一个 CLI 和几个命令来启动测试。 测试应随时在设备中可用,而不仅仅是用于生产中的临时测试。

    我们可以停止 BLE 广告并使用 HCI 命令开始2.4GHz 测试。

    因此,我的问题是:

    1. TI15.4堆栈是否可以像 BLE 堆栈一样运行载波测试? 您的答案似乎是“否”

    2.我们可以停止 TI15.4堆栈并释放射频核心以使用 prop_RF 载波代码吗?

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

    请看一下我之前的答案。

    因此,在我看来,可能唯一可行的解决方案是实施 CLI 命令,该命令将使用标记“请勿启动 ti15.4堆栈”重新启动设备,这样低于1GHz 的射频核心就不会忙,然后我们就可以开始 prop_RF 载波测试。 完成测试后,我们设置了标志“start ti15.4 stack”,并重新启动它。 对吗?

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

    您好,

    [引用 userid="153242" url="~ë/support/wireless-connection/Zigbe-thread-group/ZigBee 和线程/f/ZigBee 线程-forum/1067448/cc1352r-cwe-test-for-sub-1GHz /3954031#3954031"] TI15.4堆栈是否可以像 BLE 堆栈一样运行载波测试? 您的答案似乎是“否”

    TI 15.4堆栈中没有可用于此操作的 API。 我猜,HCI_EXT_ModemTestTxCmd () HCI_EXT_ModemTestRxCmd ()是 TI BLE-Stack 的一部分,以满足特定标准的要求。  

    ~引用 userid="153242" url="支持/无线连接/ZigBee 线程组/ZigBee 和线程/f/ZigBee 线程论坛/1067448/cc1352r-cwc-test-for-sub-1GHz /3954031#3954031"],我们能否停止 TI15.4堆栈并释放射频核心以使用代码[_prop_rf?]

    我在 TI 15.4堆栈中没有看到一个 API,该 API 在应用程序调用 ApiMac_init()后用于停止 MAC,但值得查看 DMM 文档以了解如何在多个堆栈之间共享对讲机。 也许这可以提供一些关于如何做到这一点的想法。

    [引用 userid="153242" url="~ë/support/wireless-connection/Zigbe-thread-group/Zigbe-and-thread/f/Zigbe-thread-forum/1067448/cc1352r-cw-test-for-sub-GHz/3954041#3954041"]这样,在我的案例中唯一可行的解决方案就是实施一个繁忙的 RF 命令,而不能启动核心层设备的 CLI 测试,因为子层无法启动 RF 命令。 完成测试后,我们设置了标志“start ti15.4 stack”,并重新启动它。 对吗?

    这也可能是一个好的选择,因为它允许您控制 TI 15.4堆栈何时启动。

    巴西,
    安德烈斯  

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

    您好,

    我成功地在我们的项目中运行了代码,

    但它在命令“RF_cmdTxTest”后卡住。

    我在 rfCarrierWave 示例中看到,这是预期行为,因为

    如何更改命令

    是否要通过并能够从函数返回到我们的代码?

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

    在您使用的示例中,命令的结束触发器设置为 trig_never,这意味着命令永远不会结束

    您需要将其更改为 trig_REL 起始:

    RF_cmdTxTest.endTriggerType  = trig_REL 启动;

    然后,您需要将 RF_cmdTxTest.EndTime 设置为希望设备传输的时间长度(以 RAT 刻度表示)。

    如果您不想在 TX 中停留一段固定的时间,则可以使用中断,并使用 RF_CancelCmd()

    巴西

    西里

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

    谢谢,但我问了一些不同的问题。

    为什么程序计数器从不到达断点?

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

    这正是我试图解释的。

    rf_runCmd 正在阻止并等待命令完成,但命令未完成,因为您告诉它永不完成(Trig_never )。

    更改触发器以结束命令,将返回该功能,并且您将到达断点。

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

    好的,谢谢,我理解。 看起来我应该使用 RF_postCmd()而不是 RF_runCmd()

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

    如果这样做而不更改触发器,则需要在不想再传输时手动取消命令。

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

    我注意到,rfCarrierWave 代码只有在禁用 BLE 堆栈时才有效,因此它完全不依赖于 TI15.4堆栈。

    如果我只禁用 BLE 广告,这就没有帮助,只能使用 define xBLE _start 禁用整个堆栈。 所以当我尝试 rfCarrierWave 函数中的 RF_open()时,它只在一个堆栈当前处于活动状态时才起作用。

    我还发现了一些类似的主题:

    https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/950304/cc2652p-can-rf_runcmd-don-t-block-system-cpu

    https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/849979/cc1352r-combined-code-from-the-sensor-2-4g-example-and-the-rfcarrierwave-example-resetting-mcu

    很遗憾,我们无法在 Ti15.4项目中直接运行 CW 测试而没有问题。

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

    实际上,我也找到了禁用 TI15.4堆栈初始化的方法。 因此,rfCarrierWave 仅在其中一个叠块(BLE 或 TI1.4)被禁用(或两者都被禁用)时才起作用。 否则,它在运行 RF_open()时会失败。

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

    我认为您尝试做的不是一个非常常见的用例,因此 API 不支持。

    一旦您开始直接使用射频驱动程序控制射频,同时使用两种不同的堆栈来处理此问题,就很容易混乱。 很抱歉,我们没有一个好的解决方案。

    巴西

    西里