
问题:在 STM8L152 数据手册中,参数 IDD(RUN)的典型值是 1.97mA。![]() 调研: 使用 STM8L-discovey 板进行测试,得到的结果和客户的测试结果类似,偏高。进一步测试,改变测试代码后,得到的结果和数据手册中的数据符合。 初始的测试代码框架:
改进的测试代码:
结论: 当 while 循环中没有任何指令时,CPU 每次仅取 1 条指令(尽管预取缓冲是 32 位,可以存 4 条指令)。这样,CPU 需要经常访问存储器取指而造成电流增大; 当 while 循环中增加 3 个 NOP 指令时,CPU 取指频率降低,从而降低了功耗。 建议: 对于功耗测试,软件配置和硬件配置都很重要。一般而言,低功耗模式下的数值意义比较大,因为外设或者 CPU 是关闭的。测试时主要是避免可能的漏电流(如 IO 口不确定状态可能不停翻转带来的漏电流)。但是在普通工作模式下,一者条件比较多,二者测试代码本身也有可能影响测试结果。这个因素在实际测试中要加以考虑。 |