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.

[参考译文] CC1312R:使用 Driverlib 在 CC1312R 上无 TX 输出

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/923609/cc1312r-no-tx-output-on-cc1312r-using-driverlib

器件型号:CC1312R

当不使用较高的层时、CC1312上 TX 输出的先决条件是什么? 我们使用 Driverlib、运行 CW TX 测试时不会获得输出。

下面的代码是我们在开始时所做的一些简单的测试代码、用于简单地测试 RFC。 我们能够运行此代码和以下 rf_cmdNop (由 SmartRF Studio 生成)。 RFCDoorSendto RF_cmdNop.status 的返回值正确、表明 RF_cmdNop 命令成功。 然后,我们运行 RF_cmdPropRadioDivSetup RF_cmdF,这两个也成功地运行了 PROP_DONE_OK / DONE_OK。

但是、在运行 RF_cmdTxTest 时、我们不会看到任何射频输出、即使命令的状态为(并保持)活动(0x0002)。 无论电源设置如何、电流消耗都大约为8mA。 RF_cmdNop 之后的电流消耗减少了几 mA、如果我们运行 RF_cmdRXTest、则电流消耗约为10mA。 因此、命令之间确实存在差异。

静态空 start_CW_test (void)
{
uint32_t Stat;

IntMasterDisable();

OSCHF_TurnOnXosc();
while (!OSCHF_AttempToSwitchToXosc ());

HWREG (PRCM_BASE + PRCM_O_RFCMODESEL)= RF_MODE_AUTO;
rf_patch_cpe_prop();

PRCMPowerDomainOn (PRCM_DOMAIN_RFCORE);
while (PRCMPowerDomainStatus (PRCM_DOMAIN_RFCORE)!= PRCM_DOMAIN_POWER_ON);
PRCMDomainEnable (PRCM_DOMAIN_RFCORE);

PRCMLoadSet();
while (PRCMLoadGet ()=false);

RFCClockEnable();
while (PRCMRfReady ()=false);

STAT = RFCDoorbellSendto ((uint32_t)&RF_cmdNop);
if ((Stat & 0x000000FF)!= CMDSA_DONE) while (1);//出现错误。 永远锁定。
while (rf_cmdNop.status!= don_OK);//锁定直到完成

…………

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

    不使用 TI-RTOS 或 noRTOS 的背景是什么?  

     start_CW_test 是第一个运行的域、还是您在代码中的其他位置设置了其他电源域和时钟?   

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

    原因是空间。 我们有一个引导加载程序、它使用的闪存页少于1个(最后一页、包括 CCFG)、并且我们只需要无线电方面的基本功能、例如 CW 测试。

    在代码的前面部分、我们设置了其他电源域、时钟等 我们使用的是 UART、SPI、I2C 等、使用 Driverlib 时已经没有任何问题了。 我们面临的唯一问题是无线电上的实际输出;其他一切似乎都可以正常工作。

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

    我必须与下周同一时间再见、其中一位软件专家。 我假设您已经了解了射频驱动器、以了解它在打开射频域时会做什么。  

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

    您好、Frode、

    您还需要启动 RAT 模块以使 CW 启动传输:


    静态易失性 RFC_CMD_START_RAT_t RF_RAPDStartCmd;

    (笑声)

    //启动 RAT
    RF_ratStartCmd.commandNo = 0x0405;

    STAT = RFCDoorbellSendto ((uint32_t)&RF_ratStartCmd);
    if ((Stat & 0x000000FF)!= CMDSA_DONE) while (1);//出现错误。 永远锁定。