微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于Clock_Struct,是调用底层的RTC吗?

关于Clock_Struct,是调用底层的RTC吗?

时间:10-02 整理:3721RD 点击:

Hi,各位TI大神,

我想实现芯片在无连接时,进入低功耗,有链接是正常工作。看了好久的RTC资料,还是迷迷糊糊,根本就没有找到关于RTC的注册IRQ函数。

但是,我在代码中发现Clock_Struct结构,于是想试试这个函数。

代码:

//注册定时器

Util_constructClock(&WakeUpClock,WakeUp_clockHandler,//SPPBLEServer_clockHandler,
SBP_BROADCAST_PERIOD, 0, false, SBP_BROADCASE_EVT);

//定时器中断服务程序

static void WakeUp_clockHandler(UArg arg)
{
if((gapProfileState == GAPROLE_CONNECTED) || (gapProfileState == GAPROLE_CONNECTED_ADV))
{
Power_setPM();
}
else
{
Power_relPM();
}
Util_startClock(&WakeUpClock);
}

//进入standby,开启定时器

void AT_CmdSleep(char **ppBuf)

{

extern void Util_startClock(Clock_Struct *pClock);
extern Clock_Struct WakeUpClock;
Util_startClock(&WakeUpClock);

//AONRTCEventClear(AON_RTC_CH0);
//AONRTCCompareValueSet(AON_RTC_CH0, 32258);
//SysCtrlAonSync();
AT_SendEvent(eAT_E_SleepMode);

delay_ms(500);
// release constraints for Standby and idle mode
Power_releaseConstraint(Power_SB_DISALLOW);
Power_releaseConstraint(Power_IDLE_PD_DISALLOW);
Power_sleep(Power_STANDBY, NULL, 0);

}

请问:Clock_Struct 这个底层是调用RTC吗?

Hi ,

我最近发现很奇怪的现象。

void AT_CmdSleep(char **ppBuf)
{

extern void Util_startClock(Clock_Struct *pClock);
extern Clock_Struct WakeUpClock;
//Util_startClock(&WakeUpClock);

//AONRTCEventClear(AON_RTC_CH0);
//AONRTCCompareValueSet(AON_RTC_CH0, 32258);
//SysCtrlAonSync();
AT_SendEvent(eAT_E_SleepMode);

delay_ms(500);
// release constraints for Standby and idle mode
Power_releaseConstraint(Power_SB_DISALLOW);
Power_releaseConstraint(Power_IDLE_PD_DISALLOW);
Power_sleep(Power_STANDBY, NULL, 0);

}

执行这段代码进入standby模式,烧录完成一次后的第一次执行,电流可以到达10uA左右,BLE广播看不见了。(我认为这种状态才是真正的standby模式)

重新上电,再次执行这段代码,电流0.8mA,此时可以搜索到BLE的广播。

这大神帮我一下,这个standby怎么进入。

Frank Mei,

你代码里面BLE的广播是在哪里调用的?

在你想stand by之后?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top