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.

[参考译文] CC2652R:cc2652r-cc2592 范围问题

Guru**** 2763585 points

Other Parts Discussed in Thread: CC2592, CC2652R

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1611721/cc2652r-cc2652r-cc2592-range-issue

器件型号: CC2652R
主题中讨论的其他器件: CC2592

尊敬的所有人:

在我的扩展范围项目中、我将 cc2592 与 cc2652r 配合使用。 距离仅 2 米。 连接配置。

 

#include

// void rfDriverCallbackAntennaSwitching (RF_handle client,
//                    RF_GlobalEvent 事件、
//                    空*arg)
//{
///  *此处无需为 CC2592 执行任何操作
//   *射频驱动器自动处理 PA/LNA
//   */
//}

void rfDriverCallbackAntennaSwitching (rf_handle 客户端、rf_GlobalEvent 事件、void *arg)
  /*当对讲机为 TX 或 RX 通电时、发生 RF_GlobalEventRadioSetup */
  IF (Events & RF_GlobalEventRadioSetup)
  {
    /* arg 包含指向无线电设置命令的指针*/
    RF_RadioSetup * setupCommand =(RF_RadioSetup *) arg;

    /*如果对讲机正在准备传输*/
    if (setupCommand->common.commandNo == CMD_RADIO_SETUP ||)
      setupCommand->common.commandNo == CMD_BLE5_RADIO_SETUP)
    {
      //将 PA_EN 设置为高电平、LNA_EN 设置为低电平
      GPIO_WRITE (CONFIG_RF_ANTENN_PIN_0、1);
      GPIO_WRITE (CONFIG_RF_ANTENN_PIN_1、0);
    }
  }
  /*当对讲机完成其任务时、RF_GlobalEventRadioPowerDown 会发生*/
  Else if (Events & RF_GlobalEventRadioPowerDown)
  {
    //关闭两者以节省电量
    GPIO_WRITE (CONFIG_RF_ANTENN_PIN_0、0);
    GPIO_WRITE (CONFIG_RF_ANTENN_PIN_1、0);
  }
}

//此函数不起作用、因为 TCXO 被硬接线至“打开“
Void Power_dummyTCXO (){
  //留空
}
 
请帮助我解决这个问题。
 
此致、
sushimitha、

 

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

    嗨、sushimitha、

    下面是相关的 E2E 主题:  CC2652R:天线范围问题 

    在大多数情况下、高 PA 器件使用 rfDriverCallbackAntennaSwitching 来确定 Sub-1GHz、2.4GHz 或高 PA 路径。  由于您使用的是仅 2.4GHz 的非 PA 器件、因此与您的项目无关。

    void __attribute__((weak)) rfDriverCallbackAntennaSwitching(RF_Handle client, RF_GlobalEvent events, void *arg)
    {
    
        if (events & RF_GlobalEventRadioSetup) {
            bool    sub1GHz   = false;
            uint8_t loDivider = 0;
    
            /* Switch off all paths. */
            GPIO_write(CONFIG_RF_24GHZ, 0);
            GPIO_write(CONFIG_RF_HIGH_PA, 0);
            GPIO_write(CONFIG_RF_SUB1GHZ, 0);
    
            /* Decode the current PA configuration. */
            RF_TxPowerTable_PAType paType = (RF_TxPowerTable_PAType)RF_getTxPower(client).paType;
    
            /* Decode the generic argument as a setup command. */
            RF_RadioSetup* setupCommand = (RF_RadioSetup*)arg;
    
            switch (setupCommand->common.commandNo) {
                case (CMD_RADIO_SETUP):
                case (CMD_BLE5_RADIO_SETUP):
                        loDivider = RF_LODIVIDER_MASK & setupCommand->common.loDivider;
    
                        /* Sub-1GHz front-end. */
                        if (loDivider != 0) {
                            sub1GHz = true;
                        }
                        break;
                case (CMD_PROP_RADIO_DIV_SETUP):
                        loDivider = RF_LODIVIDER_MASK & setupCommand->prop_div.loDivider;
    
                        /* Sub-1GHz front-end. */
                        if (loDivider != 0) {
                            sub1GHz = true;
                        }
                        break;
                default:break;
            }
    
            if (sub1GHz) {
                /* Sub-1 GHz */
                if (paType == RF_TxPowerTable_HighPA) {
                    /* PA enable --> HIGH PA
                     * LNA enable --> Sub-1 GHz
                     */
                    GPIO_setConfigAndMux(CONFIG_RF_24GHZ, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
                    /* Note: RFC_GPO3 is a work-around because the RFC_GPO1 (PA enable signal) is sometimes not
                             de-asserted on CC1352 Rev A. */
                    GPIO_setConfigAndMux(CONFIG_RF_HIGH_PA, GPIO_CFG_OUTPUT, IOC_PORT_RFC_GPO3);
                    GPIO_setConfigAndMux(CONFIG_RF_SUB1GHZ, GPIO_CFG_OUTPUT, IOC_PORT_RFC_GPO0);
                } else {
                    /* RF core active --> Sub-1 GHz */
                    GPIO_setConfigAndMux(CONFIG_RF_24GHZ, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
                    GPIO_setConfigAndMux(CONFIG_RF_HIGH_PA, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
                    GPIO_setConfigAndMux(CONFIG_RF_SUB1GHZ, GPIO_CFG_OUTPUT | GPIO_CFG_OUT_HIGH, IOC_PORT_GPIO);
                }
            } else {
                /* 2.4 GHz */
                if (paType == RF_TxPowerTable_HighPA)
                {
                    /* PA enable --> HIGH PA
                     * LNA enable --> 2.4 GHz
                     */
                    GPIO_setConfigAndMux(CONFIG_RF_24GHZ, GPIO_CFG_OUTPUT, IOC_PORT_RFC_GPO0);
                    /* Note: RFC_GPO3 is a work-around because the RFC_GPO1 (PA enable signal) is sometimes not
                             de-asserted on CC1352 Rev A. */
                    GPIO_setConfigAndMux(CONFIG_RF_HIGH_PA, GPIO_CFG_OUTPUT, IOC_PORT_RFC_GPO3);
                    GPIO_setConfigAndMux(CONFIG_RF_SUB1GHZ, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
                } else {
                    /* RF core active --> 2.4 GHz */
                    GPIO_setConfigAndMux(CONFIG_RF_24GHZ, GPIO_CFG_OUTPUT | GPIO_CFG_OUT_HIGH, IOC_PORT_GPIO);
                    GPIO_setConfigAndMux(CONFIG_RF_HIGH_PA, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
                    GPIO_setConfigAndMux(CONFIG_RF_SUB1GHZ, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
                }
            }
        }
        else if (events & RF_GlobalEventRadioPowerDown) {
            /* Switch off all paths. */
            GPIO_write(CONFIG_RF_24GHZ, 0);
            GPIO_write(CONFIG_RF_HIGH_PA, 0);
            GPIO_write(CONFIG_RF_SUB1GHZ, 0);
    
            /* Reset the IO multiplexer to GPIO functionality */
            GPIO_setConfigAndMux(CONFIG_RF_24GHZ, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
            GPIO_setConfigAndMux(CONFIG_RF_HIGH_PA, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
            GPIO_setConfigAndMux(CONFIG_RF_SUB1GHZ, GPIO_CFG_OUTPUT, IOC_PORT_GPIO);
        }
    }

    因此、您的应用只需要将 LNA 和 Tx 启动功能映射到正确的 DIO

        // Map LNA enable pin RFC_GPO0 to DIO12
        IOCPortConfigureSet(IOID_12, IOC_PORT_RFC_GPO0,
                            IOC_IOMODE_NORMAL);
        // Map Tx start pin RFC_GPO3 to DIO20
        IOCPortConfigureSet(IOID_20, IOC_PORT_RFC_GPO3,
                            IOC_IOMODE_NORMAL);

    此致、
    Ryan