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.

[参考译文] CC2651P3:FCC/CE 无线电测试支持

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1163234/cc2651p3-fcc-ce-radio-testing-support

器件型号:CC2651P3
Thread 中讨论的其他部件: 、SysConfig

我们有一个 CC2651P3设计、即将用于 FCC/CE 无线电测试/认证。  请注意、我们仅测试802.15.4 (而不是蓝牙)。 我已经从实验室中确认了测试模式要求。 它们是:

1.在低、中、高通道连续传输调制载波(100%占空比)。

2.在 低、中、高通道持续接收。

我知道、我们可以使用 Smart RF Studio 和 JTAG 连接进入这些测试模式。 但是、产品上没有 JTAG 连接器。 请告知我们如何在固件中以编程方式执行此操作。

谢谢、

Andy

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

    尊敬的 Andy:

    Smart RF Studio 依赖于 JTAG 连接、但您可以考虑以下两种其他方法:

    1. 使用 收集 器和 传感器 示例的 certation_mode 需要15.4-Stack 网络的调试。
    2. 将 AT API 与 rfDiagnostics 示例一起使用、该示例通过 UART 与主机进行通信。

    如果您对其中任何一个选项有任何疑问、请告诉我。

    此致、
    Ryan

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

    谢谢 Ryan。 rfDiagnostics 对我来说很好。 如果有任何问题、我会尝试并告知您。

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

    您好、Ryan、

    我正在对 LP-CC2651P3测试 rfDiagnostics。 在电路板上、我移除了 C16并在 C15处放置了一个15pF 电容、以使用 U.FL 连接器。 我加载了 rfDiagnostics 项目(未更改任何配置或代码)。 我输入了以下命令以启用2.425GHz 下的 CW:

    AT+I 1
    ATPFR=2425000000
    ATPTM=0

    我还读取了功率级别设置:

    ATPPW?
    5dBm
    好的

    但是、当我测量输出功率时、我得到+1.1dBm (3.9dBm 过低)。 有什么想法吗?

    谢谢、
    Andy

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

    您已经了解了 AT 命令的基本知识。  您不必将 ATPTM 初始化为零、您可以设置为1以启用载波模式、然后设置为0以重置。   由于您使用的是 LaunchPad、该设置在 Smart RF Studio 中的表现如何?  为什么选择15pF 的电容值、在评估高 PA 模式(在 SysConfig -> Custom -> IEEE 模块中启用)时会得到什么结果?

    此致、
    Ryan

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

    您好、Ryan、

    我试用了 Smart RF Studio、获得了相同的结果。 然后、我更改了射频布线、现在测量的功率级别仅比设置低0.8dB。 这是一个好消息、那就是电缆问题。

    供参考、15pF 电容器值来自原理图中的注释:

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

    很高兴听到结果有所改善

    此致、
    Ryan

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

    您好、Ryan、

    我现在正在尝试为我们的定制板构建 rfDiagnostics。 我使用了"开关器件"、这允许我更改射频驱动器部分中的天线开关 GPIO 配置。 现在、当我构建时、我收到错误"yout_mUST_Imple_rfDriverCallbackAntennenSwitching_se_se_generated ti_drivers_config_c_in_debug_folder_OR_sysconfig/preview ./syscfg/ti_drivers_config.o

    这将我指向以下代码:

    void __attribute__((WEAK )) rfDriverCallbackAntennaSwitching(RF_Handle 客户端, RF_GlobalEvent 事件, void *arg)

    /*===== 请阅读此====
    *
    *此函数被声明为弱函数、以便应用程序覆盖它、
    *下面未定义的函数调用旨在捕获
    *开发人员在链接时的注意事项。
    *需要一个'rfDriverCallbackAntennaSwitching'的新定义。
    *
    *请复制此函数定义以创建您自己的、但创建
    *确保为您的定义和删除'__attribute__((WEAK )'
    *删除以下函数声明和函数调用。
    *
    *要处理".globalEventMask"中列出的事件、请参阅
    *上面'rfDriverCallback'中提供的帮助文本。
    *
    *有关如何与所选天线引脚交互的示例、
    *请参阅下面的代码片段:
    *
    *--代码片段开始---
    *
    *//>这假设天线开关引脚已通过添加到 GPIO 中
    *//>具有以下属性的 SysConfig:
    *//> mode:输出
    *//>初始输出状态:低电平
    *//> outputStrance:高
    *
    *//>手动设置引脚输出值
    * GPIO_WRITE (CONFIG_RF_24GHz、0);//低电平
    * GPIO_write (CONFIG_RF_24GHz、1);// High
    *
    *//>由射频内核驱动/控制的多路复用器引脚
    *//>(RFC GPIO0仅用作示例)
    * GPIO_setMux (CONFIG_RF_24GHz、IOC_PORT_RFC_GPO0);
    *
    *//>要手动控制的多路复用器引脚(即释放射频内核控制)
    * GPIO_setMux (CONFIG_RF_24GHz、IOC_PORT_GPIO);
    *
    *--代码片段结束---
    *
    extern void You _MUST_Imple_rfDriverCallbackAntennaSwitching_se_generated ti_drivers_config_c_in_debug_folder_OR_SysConfig_preview (void);
    Yout_made_imple_rfDriverCallbackAntennaSwitching_se_generated_ti_drivers_config_c_in_debug_folder_or_sysconfig/preview();

    现在我有一些问题。 我是否需要使用以下命令控制固件中的天线 GPIO:

    GPIO_WRITE (CONFIG_RF_24GHz、0);//低电平
    GPIO_WRITE (CONFIG_RF_24GHz、1);//高电平

    或者、我能否让它由射频内核控制:

    GPIO_setMux (CONFIG_RF_24GHz、IOC_PORT_RFC_GPO0);

    此外、如果我必须在固件中控制它、我不确定这是怎么可能的、因为没有用于启用/禁用 PA 的 RF_GlobalEvent:

    typedef 枚举{
    RF_GlobalEventRadioSetup =(1 << 0)、//<通过设置命令重新配置射频内核。
    RF_GlobalEventRadioPowerDown =(1 << 1)、//<射频内核断电。
    首次调用 RF_GlobalEventInit =(1 << 2)、//< RF_open()(已注册客户端数从0更改为1)。
    RF_GlobalEventCmdStart =(1 << 3)、//<一个命令链正在发送到对讲机。
    RF_GlobalEventCmdStop =(1 << 4)、//<命令终止事件被处理。
    RF_GlobalEventCoexControl =(1 << 5)、//<请求更改为 COEX 配置
    RF_GlobalEventTempNotifyFail =(1 << 6)、//<温度通知注册失败
    } RF_GlobalEvent;

    谢谢、
    Andy

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

    尊敬的 Andy:

    由于您不使用 LaunchPad 设计、 因此您必须在应用中包含 rfDriverCallbackAntennaSwitching。  以下代码摘录从默认项目 ti_drivers_config.c 复制:

    #include <ti/drivers/rf/RF.h>
    void __attribute__((weak)) rfDriverCallbackAntennaSwitching(RF_Handle client, RF_GlobalEvent events, void *arg)
    {
    
        if (events & RF_GlobalEventRadioSetup) {
            /* Switch off all paths. */
            GPIO_write(CONFIG_RF_HIGH_PA, 0);
            GPIO_write(CONFIG_RF_24GHZ, 0);
    
            /* Decode the current PA configuration. */
            RF_TxPowerTable_PAType paType = (RF_TxPowerTable_PAType)RF_getTxPower(client).paType;
    
            if (paType == RF_TxPowerTable_HighPA) {
                /*
                * Mux GPIOs to RF Core signals:
                * - High PA    --> HIGH PA
                * - LNA enable --> 2.4 GHz
                */
                GPIO_setMux(CONFIG_RF_HIGH_PA, IOC_PORT_RFC_GPO3);
                GPIO_setMux(CONFIG_RF_24GHZ, IOC_PORT_RFC_GPO0);
            } else {
                /* RF Core active --> 2.4 GHz   */
                GPIO_write(CONFIG_RF_24GHZ, 1);
            }
        }
        else if (events & RF_GlobalEventRadioPowerDown) {
            /* Switch off all paths. */
            GPIO_write(CONFIG_RF_24GHZ, 0);
            GPIO_write(CONFIG_RF_HIGH_PA, 0);
    
            /* Reset the IO multiplexer to GPIO functionality */
            GPIO_setMux(CONFIG_RF_24GHZ, IOC_PORT_GPIO);
            GPIO_setMux(CONFIG_RF_HIGH_PA, IOC_PORT_GPIO);
        }
    }

    在 rfDiagnostics.c 的底部插入此代码将允许您构建代码。  在为该函数内的每个事件设置正确配置之外、您不必控制天线 GPIO。  SysConfig -> RF 模块提供引脚选择和 GPIO 配置、包括"Value Invise"。  您还可以查看 此主题的相关 E2E 主题。

    此致、
    Ryan