全部学习汇总:GreyZhang/g_TC275: happy hacking for TC275! (github.com)
- Idle模式每一个核都可以单独进入,但是standby、sleep模式是会影响整个系统的。
- 进入idle模式的几种方法:软件请求、其他的CPU进行软件请求、SMU因为报警等处理进行请求。
- idle模式下,CPU会停止运行但是很多外设还在运行状态。
- 退出idle的几种方式:中断发生、NMI trap、看门狗超时、看门狗定时器溢出、各种reset被触发。
- 这部分寄存器的描述其实是跟前面的文字描述功能部分重合了。
- 进入standby模式的几种方法:软件请求、二级监控异常之后触发了进入standby模式、NMI/ESR1引起的事件触发。
- standby退出的几种方法:出现了ESR1的唤醒事件、上电复位事件。
- 最后给出了几种降低功耗的方法,从跟上来看都是降低各种时钟。甚至说,干脆禁用相应的时钟。
这一页文档给出了几种低功耗模式的状态切换流程图。
- 进行Idle模式的寄存器名称从缩写上来看其实是sleep设置的意思。
- 进入Idle模式可以通过自我请求进入idle的形式来进行,在进行请求的时候,生效的时刻会受到ENDINIT的影响,这个主要是为了避免看门狗带来的异常影响。
- 从进入模式看,其实能够看到寄存器赋值是可以有多个数值的,夜里也出现了SLEEP以及STANDBY等模式的相应的数值。
- 进入到Idle还可以通过由其他的CPU请求来实现。
- Idle的模式也可能是通过来自于SMU的请求事件触发。
- 请求进入Idle之前可以关闭看门狗或者降低看门狗定时器的速度以避免由看门狗带来的一些异常事件。
- 如果在Idle器件有其他的CPU访问了Idle CPU的DMI或者PMI,则与之相应的模块会被短暂唤醒,处理完相应的信息之后继续休眠。
- 退出Idle模式的描述与前面的描述是一样的。
- 如果在退出的时候有一个一直发生的SMU的idle事件,那么这个idle模式的退出只能够通过复位来实现。
- 睡眠模式的进入请求可以通过寄存器的配置实现,与前面的Idle类似。
- 睡眠模式下其实还是有时钟保持激活状态的。
- 可以禁用sleep模式,这样其他的CPU无法强制让自己的CPU进入到休眠模式。
- 退出休眠模式的几种方式:CPU的唤醒事件是可以唤醒相应的CPU的、NMI可能导致所有的CPU都被唤醒、看门狗定时器的溢出也会产生相应CPU的唤醒事件。
- 待机模式的默认时钟是100K。
- 如何进入待机模式,整个的触发模式跟sleep是非常相似的。
- 与休眠模式不同的地方在于待机模式是可以选择专门的供电的,这个供电可以外置。如果采用了外置的电源,那么有一些根据电源变化实现的触发事件便无法识别了。
采用单独的PIn给standby供电,这种设计方式跟MCU的封装有关。只有BGA封装模式的MCU支持这样的功能。
- 成功唤醒之后,有寄存器可以读出唤醒源是什么。
- ESRWKEN可以支持唤醒,唤醒事件的电平类型是可以配置的。