Part Number:LAUNCHXL-CC1312R1Other Parts Discussed in Thread:ENERGYTRACE
在simplelink_cc13xx_cc26xx_sdk_6_10_00_29\examples\rtos\CC1312R1_LAUNCHXL\easylink\rfEasyLinkNp例程中修改了主任务逻辑,挂起等待来自串口的信号量,通常情况下关闭串口外设后进入休眠状态,电流大约3uA,但添加了ADCBuf并使能采集ADC数据后再通过ADCBuf_convertCancel,ADCBuf_close关闭ADCBuf以及关闭串口,系统并没有进入低功耗状态,电流大约810uA。
操作系统应该是tirtos7,通过EnergyTrace++对比分析了下,相比原来只使能串口用Task_sleep进入休眠,在使能然后关闭ADCBuf后通过Task_sleep进入休眠,原本应该关闭的PERIPH_PD没有关闭。
Kevin Qiu1:
如果是810uA的电流那应该没有进入到standby模式,可能存在IO漏电的情况
可以尝试在ADCBuf_close之后将延时的时间改大一些看看是否会有变化,另外将测量电流的波形图传上来看一下
,
Kaiyuan Jiang:
这个是一般休眠模式下的功耗表现
这是在一般模式下打开并关闭ADCBuf进入低功耗的情况
我在ADCBuf_convertCancel以及ADCBuf_close后加了100ms延时目前没有效果。
,
Kaiyuan Jiang:
问题解决了,发现是我为了实现ADC检测多通道切换,在回调里面加入了ADCBuf_convert,在我使用ADCBuf_convertCancel时冲突了,虽然返回成功但由于回调又调用了ADCBuf_convert导致转换并未关闭,用ADCBuf_close时转换还在进行。解决办法是在关闭ADCBuf时置位一个标志位然后延时等待一会,回调中检测标志位来禁止ADCBuf_convert继续转换。
,
Kevin Qiu1:
好的,感谢反馈