TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2650

我用的是CC2650芯片,用的协议栈是TI-MAC,我看了官方的相关power management的文档。我在应用层添加了

          Power_releaseConstraint(Power_IDLE_PD_DISALLOW);
          Power_releaseConstraint(Power_NEED_FLASH_IN_IDLE);

电流好像下降了,但是降的不多。

我又添加了一句:

Power_releaseConstraint(Power_SB_DISALLOW);

电流没有降低反而升高了;通过单步调试,发现进入:

uint32 macStopRAT( void )
{
  rfOpCmd_SynchStartStopRat_t rfCmd;

  // call this instruction before CMD_SYNC_STOP_RAT or CMD_SYNC_START_RAT
  HWREG(AON_RTC_BASE + AON_RTC_O_CTL) |= AON_RTC_CTL_RTC_UPD_EN;

  // synch the RAT from the RTC and save the RAT value
  macGenericRadioCmd( CMD_SYNC_STOP_RAT, &rfCmd.rfOpCmd );   {
    uint8 result = macSynchRadioCommand( &rfCmd.rfOpCmd );

    MAC_ASSERT(rfCmd.rfOpCmd.status == RFSTAT_DONE_OK );
  }

  // call this instruction after CMD_SYNC_STOP_RAT or CMD_SYNC_START_RAT
  HWREG(AON_RTC_BASE + AON_RTC_O_CTL) &= ~AON_RTC_CTL_RTC_UPD_EN;

  // Save RAT value
  return( rfCmd.ratVal );
}

在 macSynchRadioCommand( &rfCmd.rfOpCmd )函数里面->

 while ( (cmdstaStatus = MB_SendCommand((uint32) pCmd)) == CMDSTA_SCH_ERR );

就循环了 一直等待  。好像是RAT没有办法关掉,还是我强行加了

Power_releaseConstraint(Power_SB_DISALLOW);这句话。请大神指点一下。谢谢了

VV:

你好,首先协议栈里面POWER_SAVING应该加了对吧。

然后你的poll rate这些是多少,

测试出来的功耗是多少个uA,首先判断是否已经进入低功耗状态

然后要看下是否还有外设还供着电,主要指芯片的外设模块单元。

测试的时候最好把芯片外围的连接电路断开掉,

yanan zhao1:

回复 VV:

那如何从IDLE模式唤醒!

赞(0)
未经允许不得转载:TI中文支持网 » CC2650
分享到: 更多 (0)