Part Number:CC2640R2F
目前手头上有一低功耗项目大概要求:MCU在空闲时进入standby睡眠,10ms左右唤醒一次MCU,执行一次I/O电平操作,执行完再睡眠10ms,再执行一次I/O电平操作…..
请问,
1.CC2640R2F在standby模式下,能否使用RTC通道2的连续比较模式来进行周期性唤醒呢?要求是毫秒级的周期性唤醒
2.如果1可以实现,那么SDK中有没有相关例程可供参考??
3.如果1可以实现,那么从RTC通道2唤醒事件发生,经过Power domain重新初始化,再到执行完成I/O电平操作,整个唤醒流程大概需要多久?
谢谢
Kevin Qiu1:
1&2.可以参考SDK中的例程C:\ti\simplelink_cc2640r2_sdk_5_30_00_03\examples\rtos\CC2640R2_LAUNCHXL\drivers\pinStandby
3.这是具体的应用,我们这个测试数据,你可以自己通过翻转IO来测试
从standby到M3核Active需要151us,这可以在数据手册中找到
,
Kairui Chen:
谢谢,我正在学习pinStandby,但我还有一个问题:
RTC唤醒MCU后是不是会进入一个ISR?那怎么注册这个callback呢,应该使用哪个函数来注册一个唤醒回调函数呢?
,
Kairui Chen:
可以麻烦您解答一下吗?
,
Kevin Qiu1:
Kairui Chen 说:RTC唤醒MCU后是不是会进入一个ISR?那怎么注册这个callback呢,应该使用哪个函数来注册一个唤醒回调函数呢?
这里使用了power policy,例程底层已经处理好了,会在延时到了自动唤醒
,
Kairui Chen:
那RTC唤醒过后,CPU会从哪里开始运行程序呢?power policy里面吗?
,
Kevin Qiu1:
从pin驱动程序运行,参考readme中的说明:https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_Bluetooth_node
,
Kairui Chen:
谢谢,我看pinStandby例程中,unsigned sleep(unsigned seconds)函数的单位是秒,请问能否使用sleep()实现ms级睡眠呢?
,
Kevin Qiu1:
可以使用usleep,单位是us,注意最小精度为10us
,
Kairui Chen:
谢谢,usleep很有用。
但请问usleep唤醒的原理其实就是RTC定时器唤醒吗?
如果不是,它又是怎么实现定时唤醒的呢?因为我的看用户手册,在standby模式下,外设定时器都不能使用了,除了RTC。
,
Kevin Qiu1:
Kairui Chen 说:但请问usleep唤醒的原理其实就是RTC定时器唤醒吗?
是的