最近项目中用的MCU是国民技术的N32G45X,MCU的资源很丰富,RAM也很大,配套的库和例程也比较全,用起来还是不错的,但是在调试低功耗的时候还是费了不少劲。
首先由于项目低功耗需要,只能选择停机模式2(STOP2)。根据数据手册的描述,在此模式下外部低速时钟开启, RTC运行, R-SRAM保持,所有I/O状态保持,独立看门狗处于关闭状态,25℃的条件下电流为10个微安。
用的这款MCU的RAM是144KB,分为SRAM(128KB)和R-SRAM( Retention SRAM – 16KB),如果不考虑低功耗的话资源还是很充足的,R-SRAM的总线地址与 SRAM 是连续相接的,不用做特别的区分。但是在STOP2模式下SRAM 数据不能保持,R-SRAM 可以保持数据。这也就意味着全局变量和栈必须放在R-SRAM中。栈的作用是用于局部变量、函数形参、函数调用时的现场保护和返回地址,以及进入中断函数前和中断嵌套等的开销,如果栈内容丢失,退出STOP2模式后找不到函数入口,就无法运行。
|