查阅资料发现,在睡眠时间小于3ms的时候,系统要进入PM1低功耗模式,如何进入PM1模式?查看halsleep()函数,发现其中只有PM1和PM2模式,TI的工程师,能否指点一下
Viki Shi:
只要定义了 POWER_SAVING , OSAL 里有机制判断进入哪种模式,一般来说,PM2,PM3更多,PM1模式用得很少,为什么一定要PM1呢?
shuai zhang6:
回复 Viki Shi:
工程师,您好,目前我使用的是ADS1293,也是TI的一款产品,需要1.87ms来一个外部的IO中断(问题1:中断唤醒CPU,不知道中断处理完成之后,CPU会不会重新进入低功耗?),进行数据的读取,在没有其他定时事件的情况下,电流达到了接近6mA,这显然和数据手册是不符的,查看论坛,发现有人说过有小于3ms的事件时候,适宜进入PM1模式,减短切换到Active的时间,所以想请问问题2:怎么进入PM1模式?,还有如果我想判断中断处理完毕,设备处于什么Power Mode,问题3:可以采用什么方法?已开启了Power saving。再次感谢
shuai zhang6:
回复 Viki Shi:
CC2541开发,不知道我这样的理解是否正确,希望TI的工程师给予帮助:在协议栈的基础上,如果有定时事件的话,电源管理可以根据不同的事件的定时时间进行睡眠安排,但如果是中断事件呢,这样CPU怎么判断中断事件处理完了,从而进入休眠呢?或者说这样理解,中断来了,我直接给一个XXX_EVT,进入事件处理函数,当事件处理完毕以后,CPU会自动进入休眠吗?希望得到回答!