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.

[参考译文] CC3230SF:传导 TX 功率限制为~7–8 dBm、而不是 18 dBm (802.11b)

Guru**** 2769425 points

Other Parts Discussed in Thread: CC3230SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1615236/cc3230sf-conducted-tx-power-limited-to-7-8-dbm-instead-of-18-dbm-802-11b

器件型号: CC3230SF

我将在 CC3230SF 上执行 FCC 认证测试、但遇到 TX 功率问题。 该器件规格要求在 1 DSSS (802.11b) 时为 18.0dBm、在 54 OFDM (802.11g) 时为 14.5dBm、但我只在天线端口上测量到大约 7-8 dBm 的传导功率。


测试设置:

MODE:ROLE_TAG(原始射频模式)、用于 FCC 认证
通道:1 (2412MHz)
速率:1 Mbps (802.11b、DSSS)
测量:频谱分析仪通过射频电缆直接连接到天线端口
分析仪读数:~5 dBm(具有内部 10 dB 衰减)
计算出的传导功率:~7-8 dBm
目标功率:18dBm

代码实现:

int32_t 无线电工具 FCC_TxStart(SlWlanRateIndex_e 速率、uint8_t 通道)

    int32_t = 0;
    uint16_t 大小= 1500;
    Uint8_t txPower = 20; //这是 ROLE_TAG 模式中唯一重要的地方
    uint8_t 前导码 Seq = 0;
    uint8_t dummyMac[6]={0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF};
    uint32_t 长度;
    uint16_t macLen = 6;
    INT frameCount = 0;
    字符 userInput[10];

    uart_print(“\n\r== FCC 连续 TX 测试====\n\r“);
    UART_print(“Ch%d rate=%d (%.1fMbps) Power=%ddBm\n\r“、通道、速率、RateToMbps (rate)、txPower);

    /*=======================================
     *步骤 1 : NWP 模式设置
     *======================================= */

    sl_Stop (0);
    sl_WlanSetMode (ROLE_TAG);

    RET = sl_Start (NULL、NULL、NULL);
    if (ret < 0){
        uart_print(“[error] sl_Start (ROLE_TAG) 失败:%ld\n\r“、ret);
        返回 ret;
    }
    uart_print(“[1/6] NWP ROLE_TAG(原始测试模式)\n\r“);

    /*=======================================
     *第 2 步:准备 802.11 帧
     *======================================= */

    RET = sl_NetCfgGet (sl_netcfg_mac_address_get、NULL、&macLen、Template_Hdr [TA_OFFSET]);

    for (int i = 0;i < size;i++){
        tx_frame[i]=(uint8_t) i;
    }

    memcpy (&memcpy[da_offset] Template_Hdr、dummymac、6);
    memcpy (&memcpy[SA_offset] Template_Hdr、dummyMac、6);
    memcpy (&memcpy[TA_OFFSET] Template_Hdr、&memcp[TA_OFFSET]、Template_Hdr 6);
    memcpy (Tx_frame、Template_Hdr、30);
    uart_print(“[2/6] 802.11 帧就绪(30B HDR + 1500B 数据)\n\r“);

    /*=======================================
     *第 3 步:创建原始 RF 插座
     *======================================= */

    RadioTool_rawSocketdesc = sl_Socket (SL_AF_RF、SL_SOCK_RAW、channel);
    if (radioTool_rawSocketdesc < 0){
        uart_print(“[错误 3/6] RAW 套接字失败:%d\n\r“、radioTool_rawSocketdesc);
        退还 RadioTool_rawSocketdesc;
    }
    uart_print(“[3/6] RAW 套接字 Ch%d fd=%d\n\r“、通道、radioTool_rawSocketdesc);

    /*=======================================
     *第 4 步:启用硬件连续 TX
     *======================================= */

    RET = sl_SetSockOpt (radioTool_rawSocketdesc、
                        SL_SOL_PHY_OPT、
                        SL_SO_PHY_NUM_FRAMES_TO_TX、
                        frameCount (&F)
                        sizeof (frameCount));
    if (ret < 0){
        uart_print(“[错误 4/6]连续 TX 设置失败:%ld\n\r“、ret);
        sl_Close (radioTool_rawSocketdesc);
        返回 ret;
    }
    uart_print(“[4/6]硬件无限 TX 发生器已布防\n\r“);

    /*=======================================
     *第 5 步:触发传输
     *======================================= */

    长度= sl_Send (radioTool_rawSocketdesc、
                     TX_FRAME
                     尺寸、
                     SL_WLAN_RAW_RF_TX_PARAMS(通道,速率,txPower、前导码 Seq);

    if(length != size){
        uart_print(“[错误 5/6] sl_Send failed:sent =%lu expected =%u\n\r“,长度,大小);
        sl_Close (radioTool_rawSocketdesc);
        APP_TX_STATUS = 0;
        返回 RADIO_TOOL_ERROR_TX_FULL_SIZE_DATA;
    }
    uart_print(“[5/6] sl_Send Success — 硬件 TX 有效\n\r“);

    /*=======================================
     *第 6 步:验证并等待
     *======================================= */

    APP_TX_STATUS = 1;
    uart_print(“***连续 TX:ch%d %.1fMbps Power=%ddBm ***\n\r“、
               通道、RateToMbps (RATE)、txPower);
    uart_print(“***验证:检查电流消耗+频谱分析仪***\n\r“);
    uart_print(“===类型完成以结束==\n\r\n\r“);

    while (1){
        GetCmd (userInput、sizeof (userInput));
        if (strcmp (userInput、“done")“)== 0){
            uart_print(“\n\rTest completed by user.\n\r“);
            RadioTool_FCC_TxStop();
            vTaskDelay (PDMs_to_ticks (2000));
            MAP_PRCMHibernateCycleTrigger();
            休息;
        }其他{
            uart_print(“\n\r 输入无效。 请键入“完成“:“);
        }
    }

    返回 0;
}  

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

    您好 Hamza,

    很抱歉、此处延迟的回复。

    通常、对于无线电认证测试(如 FCC)、无线电工具用于轻松配置纯射频模式。 这里提供了无线电工具的文档: https://www.ti.com/lit/ug/swru471b/swru471b.pdf 

    我建议您先尝试使用无线电工具进行测试、以检查您是否看到相同的较低输出功率。

    在 对讲机工具中、确保正确设置国家/地区代码。

    在使用的收发器模式代码中、可能导致 TX 功率配置不正确。 请注意、txPower 参数值表示 0 到 15 的阶跃、反映为最大功率的 dBm 偏移(0 表示最大功率)、因此在定义 20 时、要降低功率。  

    确保在此处定义国家/地区代码 US 以进行 FCC 测试。

    建议您参考以下文档:

    SimpleLinkTM Wi-FiRegisteredCC3x20、CC3x3x 网络处理器指南: https://www.ti.com/lit/ug/swru455m/swru455m.pdf — 章节:

    • 4.3.2.1 正确使用设置模式命令
    • 第 13 章正确使用收发器模式

    此致、

    Jonathan