STMCU小助手
发布时间:2022-2-16 20:39
问题:在 STM8L152 数据手册中,参数 IDD(RUN)的典型值是 1.97mA。. R6 b) F% l5 y' `) s: c) J8 U
% }. q0 z# ], s4 ^- @9 v% F 调研: 使用 STM8L-discovey 板进行测试,得到的结果和客户的测试结果类似,偏高。进一步测试,改变测试代码后,得到的结果和数据手册中的数据符合。 初始的测试代码框架:
6 E$ p3 F7 e/ g, I& J 改进的测试代码:
- b2 R: a$ y7 N, e" g) e 结论:7 W" h5 m o/ Y, ^ 当 while 循环中没有任何指令时,CPU 每次仅取 1 条指令(尽管预取缓冲是 32 位,可以存 4 条指令)。这样,CPU 需要经常访问存储器取指而造成电流增大; 当 while 循环中增加 3 个 NOP 指令时,CPU 取指频率降低,从而降低了功耗。6 M! ^6 E' p! @5 ? : |8 k$ u5 z0 C0 }0 c8 S# L9 Y 建议: 对于功耗测试,软件配置和硬件配置都很重要。一般而言,低功耗模式下的数值意义比较大,因为外设或者 CPU 是关闭的。测试时主要是避免可能的漏电流(如 IO 口不确定状态可能不停翻转带来的漏电流)。但是在普通工作模式下,一者条件比较多,二者测试代码本身也有可能影响测试结果。这个因素在实际测试中要加以考虑。 ' x. E- I# k# A7 ? |
微信公众号
手机版