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

cc1310 nortos采用rfeasylinkRx实现数据接收的功耗问题

目前的流程为采样,发送数据,接收确认,然后进入sleep模式,但我在sleep模式时,平均电流大概为11uA左右,我已经关闭了采样、rf及串口等外设,但看到rfeasylinkRx中,启动了定时器,该定时器我没有关,是不是这个造成电流大的,初始化代码如下

void rfeasylinkRX_init(void)
{
#ifdef RFEASYLINKRX_ASYNC
/* Reset the timeout flag */
rxTimeoutFlag = false;
/* Set the reception flag to its default state */
rxDoneFlag = false;

/* Open the GPTimer driver */
GPTimerCC26XX_Params params;
GPTimerCC26XX_Params_init(&params);
params.width = GPT_CONFIG_32BIT;
params.mode = GPT_MODE_ONESHOT;
params.direction = GPTimerCC26XX_DIRECTION_UP;
params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF;
hTimer = GPTimerCC26XX_open(Board_GPTIMER1A, &params);
if(hTimer == NULL)
{
//while(1);
debug_print("\r\n Open the GPTimer driver error!\r\n");
}

/* Set Timeout value to 200ms */
rxTimeoutVal = (SysCtrlClockGet()*2UL)/10UL - 1UL;//(SysCtrlClockGet()*3UL)/10UL - 1UL;
GPTimerCC26XX_setLoadValue(hTimer, rxTimeoutVal);


/* Register the GPTimer interrupt */
GPTimerCC26XX_registerInterrupt(hTimer, rxTimeoutCb, GPT_INT_TIMEOUT);
#else
// Create an RX packet
rxPacket.rxTimeout = EasyLink_ms_To_RadioTime(1000);

#endif //RFEASYLINKRX_ASYNC

}

我没有定义RFEASYLINKRX_ASYNC,因此应该只执行

// Create an RX packet
rxPacket.rxTimeout = EasyLink_ms_To_RadioTime(1000);

麻烦大家帮我看一下,谢谢!
Kevin Qiu1:

11uA应该是没有关完,可以看下手册6.7节功耗情况www.ti.com.cn/…/cc1310.pdf
用pinStandby测一下

赞(0)
未经允许不得转载:TI中文支持网 » cc1310 nortos采用rfeasylinkRx实现数据接收的功耗问题
分享到: 更多 (0)