当不使用较高的层时、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);//锁定直到完成
…………