楼主非得这么用么?
比如MP3的主控芯片是STM32,那么在关机的时候相当于休眠,我开机的时候,是不会在意等那个几百ms的。
你非要关10ms,开10ms,那就没辙了。总之办法是人想出来的,看你怎么用吧。
楼主 要用到RTC唤醒,我一般用的WK_UP引脚唤醒。还有STM32的最低功耗是待机模式,而不是停止模式! 我不晓得使用WK_UP引脚是不是就可以定时唤醒,不加外设的情况下,好像我没有看过,我再仔细查一下,避免犯了以一概全的错误,不能对STM32全盘否定啊,如果其他的朋友知道,我就想我的单片机能定时醒来,比如,睡觉5秒,醒来10毫秒,在不加外设,因为成本控制的非常严格,是不是可以实现定时醒来。 为了响应快,功耗低,一般MCU都是先起RC;事件响应程序根据具体情况,决定是否需要起外部OSC,PLL,还是直接处理完成回到休眠。
如果需要启动HSE,PLL,那肯定要异步。而且,STM32时钟管理也提供了很多中断。HSE和PLL的控制,通过时钟控制模块的中断去实现。全事件驱动。主程序只要在用到指定时钟之前同步上就行。
你的测试,可能把晶振的起振时间算上了。起振过程中是可以干别的事情的。两个稳定的时钟切换,一般也就几个低速时钟的周期。。。
具体的测试方式方法,需要明确。
STM32有一个电池备份域,有一些数据寄存器是电池持续备份的。看你的数据是否足够少。
海量SRAM内容的保持和休眠低功耗自身就是矛盾的,如果有大量数据保持的工作,考虑FRAM把。 计算上起振时间肯定是要的,我对这个稳定时间也很敏感!
我没有海量的SRAM数据需要存储,但是备份区字节肯定不够的,并且FRAM我这个东西的成本不能让我奢侈这样的东东。 起振/稳定时间我没调研过,不过印象中这点MSP确实是很强的。
由于起振的时间可以和很多初始化/计算Overlay,不一定是一个很强的要求。而且总功耗是否划算,没有具体测量,不好说。
除非应用要求准确时钟,比如UART,那真没太好办法了。
没有特别的要求,考虑某件事情总能量,可能更好一点。
如果数据不是经常改,考虑烧Flash?这样用个小容量RAM的型号,多少还能再省点。
拿数据生命周期内的总能量需求考察,写Flash的能耗不一定是亏的。
|