最近,在做一个低功耗项目,要求休眠唤醒后,最快速度采集3个ADC通道数据,
先前看技术手册,发现STM32L的UA/MHZ运行电流参数非常棒,
结果采用STM32L151,最后功耗很不理想!!!
通过调试发现,主要原因出在STM32L的指令上,例如你只要对一个外设寄存器操作,就要10US以上时间!!!
STM32的低功耗参数确实好看,可是实际他的取外部RAM数据指令太垃圾了。
我用PIC18试验了一下,每ms唤醒一次采样3个通道,然后睡眠,随便写写代码,平均功耗76UA。
用STM32L151实验了一下,同样条件,平均功耗240UA,对库函数代码优化采用寄存器操作,仍然需要142UA。 |