现代的MCU功耗越来越低了,也集成了非常多的外设,但是电池的技术却没有进步,一个系统里面电池占有大量的质量,那如何有效的使用这点能量就是很重要的事情,一般来说,就像兜子里面的钱,开源和节流永不过时,开源这个没想望了,电池就这么大,那就是要节流。这么多外设,这么多的寄存器,这么多的程序写法,究竟什么才是最好的搭配。一般思想是,该用的时候就启用,那就是对应的外设时钟,以及使用中断,该干活时再干活,不使用轮询,熬的系统油尽灯枯。其实就这么多办法了,如果给我1000毫安,我直接高性能,你就300毫安要求大几个小时在线,真的是粑粑上面刻东西了,难的咧。 目前牛迪克有个开源的东西好用的不行,包括淘宝也有一个,不过就是使用的人家的上位机,emmmm,这个就不评价了。 他里面出现了这样的逻辑分析仪和低功耗测量搭配的功能,我就在想,这样的仪器是不是真的有用,或者要怎么样使用? 提取与功耗变化密切相关的事件,如引脚状态的翻转、中断的发生等。 功耗数据和引脚状态数据都基于同一个高精度时钟,确保两者的时间戳是一致的。通过时间戳的对应关系,可以将每个时刻的功耗值与对应的引脚状态关联起来。通过观察功耗变化与不同模块对应的引脚状态,可以快速定位到功耗较高的模块。不同代码段的执行会引起不同的引脚状态变化,通过关联分析可以了解代码执行对功耗的影响。 也就是三个层级,瞬时的,以及代码的,关联性的。 为什么我爱TI的单片机,绝对是因为只有他给出了每个步骤的功耗情况 这里也是全新的机会
这个就是真实的例子,一个键盘,我们在不用的时候,马上进入低功耗,使用的时候马上高性能,以及一个纽扣电池配合一个一次性的传感器传输几个小时,所以这个技能真的很重要。哪个用户希望天天充电?如同一个尿袋一般。 软件千变万化,管不住,但是硬件就不一样了。
分类 中断发生时,功耗通常会有一个短暂的峰值。将功耗变化与其他相关信(如中断请求信号、CPU状态等)进行关联分析。 通过单步调试,查看中断服务程序的执行过程,了解中断对系统状态的影响。 中断服务程序的执行时间: 中断服务程序的执行时间越长,对功耗的影响越大。 中断嵌套: 中断嵌套可能会导致功耗增加,需要仔细分析中断优先级和处理流程。 调试的时候需要有这些常识,不然分析不明白。 所以要对细节特别的熟悉 不同类型中断的功耗影响中断服务程序(ISR)的执行:
也就是说,可以对比不同代码的指令数量和消耗的功耗来优化 中断响应延迟过长会导致系统无法及时处理事件,可能引起额外的功耗。中断嵌套会增加中断处理的复杂度,从而增加功耗。可以测量中断的响应时间,尽可能的短,多使用低功耗的外设,不要唤醒CPU以及无线功能这些大杀器。选择功耗较低的外设,减少外设功耗。STM32 L开口头的外设。 中断频率越高,功耗越大。中断处理时间越长,功耗越大。中断处理的复杂度越高,功耗越大。 这三条在写程序的时候深入心底,一定要短小简单,不能太深入。如果存在中断嵌套,需要仔细分析中断优先级和处理流程,以确保功耗分析的准确性。 可以测量中断发生后系统响应的时间,评估系统的实时性。调整中断频率,避免过高的中断频率。 |
|