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.

[参考译文] CC1352P7:更新设置后唤醒无线电

Guru**** 2392905 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1388789/cc1352p7-waking-up-radio-after-updating-settings

器件型号:CC1352P7

工具与软件:

您好!

打开对讲机时、我尝试更改对讲机的参数 centerFreq、loDivider。 运行以下命令后:

1) 1) RF_postCmd

2) 2) RF_CONTROL

3) 3) RF_Yield

应使用什么命令为射频内核加电、以影响新的设置?

谢谢!

Alex

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

    您应该只运行下一个 RX 或 TX 命令、而电源驱动器和射频驱动器将确保首先执行正确的设置命令和 FS 命令。

    Siri

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

    你好、Siri、

    感谢您的快速响应。

    因为我需要更改许多参数:frequency、fractFreq、centerFreq、intFreq、loDivider、 对于跳频无线电、使用 RF_OPEN 和 RF_CLOSE 的 TtxPower 很耗时:~15ms.I 需要做得更快。 这就是我尝试更新设置、关闭射频内核和打开射频内核的原因。 我需要多长时间? 或者是否有其他解决方案?

    由于某些原因、您推荐的操作顺序不起作用:对讲机不接受数据、也不进行 RF 传输。 请验证使用的函数顺序是否正确:

    1)使用默认频率和功率初始化无线电、Executiog RF_OPEN。

    2) 2)设置为跳频:使用更新的结构 RFC_CMD_PROP_RADIO_DIV_SETUP_PA_t 执行 RF_postCmd

    3) 3)设置跳频:使用更新的结构 RFC_CMD_FS_t 执行 RF_postCmd  

    4) 4)设置功率: 使用更新的结构 RFC_CMD_SET_TX_POWER_t 执行 RF_postCmd  

    5)更新设置命令: RF_Cntrl = RF_CONTROL (rfHandle、RF_CTRL_UPDATE_SETUP_CMD、NULL)。

    6) 6)执行 rf_yield;

    5)加载 指向 Tx 数据的第一部分的指针。

    6) 6)使用具有更新结构 RFC_CMD_PROP_TX_ADV_t 的 RF_postCmd 开始传输

    7)无线电不进入传输模式:无射频发射,无采集数据。

    您在我的序列中看到了什么问题吗?

    谢谢!

    Alex

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

    无法确切地确定您的代码是什么样的、因此我从 SDK 中获取了 rfPacketTx 示例并进行了一个小型演示。

    我使用默认的50kbps PHY、在868 MHz @ 10dBm OUT 时的数据包发送和915 MHz 以0dBm OUT 时的数据包发送之间进行切换。

    代码如下:

    void *mainThread(void *arg0)
    {
        RF_Params rfParams;
        RF_Params_init(&rfParams);
    
        GPIO_setConfig(CONFIG_GPIO_GLED, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
    
        GPIO_write(CONFIG_GPIO_GLED, CONFIG_GPIO_LED_OFF);
    
        RF_cmdPropTx.pktLen = PAYLOAD_LENGTH;
        RF_cmdPropTx.pPkt = packet;
        RF_cmdPropTx.startTrigger.triggerType = TRIG_NOW;
    
        uint8_t i;
        for (i = 0; i < PAYLOAD_LENGTH; i++)
        {
            packet[i] = rand();
        }
    
        // open the rfDriver
        rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdPropRadioDivSetup, &rfParams);
    
        while(1)
        {
            packet[0] = (uint8_t)(seqNumber >> 8);
            packet[1] = (uint8_t)(seqNumber++);
    
            // Set freq 868 MHz
            RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);
    
            // Transmit packet at 868 MHz
            RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0);
    
            // Change frequency
            RF_cmdFs.frequency = 915;
            RF_cmdPropRadioDivSetup.centerFreq = 915;
    
            // Set output power to 0
            RF_setTxPower(rfHandle, RF_TxPowerTable_findValue(txPowerTable, 0));
    
            // Make sure the setup command is being updated
            status = RF_control(rfHandle, RF_CTRL_UPDATE_SETUP_CMD, NULL);
            RF_yield(rfHandle);
    
            packet[0] = (uint8_t)(seqNumber >> 8);
            packet[1] = (uint8_t)(seqNumber++);
    
            // Set freq to 915 MHz
            RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);
    
            // Transmit packet at 915 MHz
            RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0);
    
            // Change frequency back to 868 MHz
            RF_cmdFs.frequency = 868;
            RF_cmdPropRadioDivSetup.centerFreq = 868;
    
            // Set output power to 10
            RF_setTxPower(rfHandle, RF_TxPowerTable_findValue(txPowerTable, 10));
    
            // Make sure the setup command is being updated
            status = RF_control(rfHandle, RF_CTRL_UPDATE_SETUP_CMD, NULL);
            RF_yield(rfHandle);
        }
    }

    测量从退出 TX (在一个频率下)到进入下一个频率下大约1ms:

    Siri

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

    非常感谢你的评分