我们选用STM32L552 ,因为看指标,这款芯片的功耗很低,看指标 106 μA/MHz Run mode 但是我们实测下来,2MHz的时候 电流为0.89mA 16MHz的时候电流为2.8mA。差异太大,不知道是我们对指标的理解不对,还是我们那里使用不对,我们什么外设都没加,甚至什么自己的代码都没加,只焊接了CPU,所有IO全部为模拟输入。 另外,用STM32L552 做FFT 好像速度也是很慢,比ST其他芯片慢了不少,在2MHz的时候,64 FFT 需要20ms ,跟我们预想的差了很多,不知道是552 性能就是这样,还是我们用的不对 |
通常这种最好的功耗都是有附加条件的,不能单一来看。这些测试条件包括但不限于: 1. 电源条件,电源类型和工作模式 2. 时钟条件, 时钟相关模式的配置 3. 代码运行位置,在FLASH 还是RAM中 4. 指令相关模式,CACHE的工作模式 5. 代码内容模式,运行不同类型的代码 ............................... 106 μA/MHz Run mode 是在一定条件下得出来的最优功耗。实际应用条件不同,结果就会有差异 所以楼主考虑功耗时除了普通的IO等设置外,还有一些其他条件考虑。这一点在DATASHEET 上已经有详细条件说明和一些测试结果来参照。
通常这种最好的功耗都是有附加条件的,不能单一来看。这些测试条件包括但不限于:
- 电源条件,电源类型和 ...
我看了DATASHEET ,没有发现那里硬件不对或则软件不对的地方,另外我是用STM32CUBEMX 来配置的,如果是软件那里设置不对,对应STM32CUBE里应该有配置的地方啊,我试了各种配置都没有 实在不行我换了STM32U575 但是还是一样的 指标为 19.5 μA/MHz Run mode @ 3.3 V 我实际测试下来是500uA 感觉可能是那里配置不对,但怎么也找不到那里有问题
下面是手册中列出的最理想的条件下,运行特殊代码时最优的功耗。 当然还有运行不同代码时不同的功耗。