聊聊STM32L476-NUCLEO
写着前面的话,个人非常喜欢看评测手机的文章和视频,从用户的角度去测评一个手机的各个方面,暂且不讨论测评后得出的结论,仅从一个工程师的角度就欣赏测评产品的方方面面,OK,扯远了……
回到测评STM32L476-NUCLEO板卡,前段时间拿到了板子,做了一个简评,本来计划中秋对L476进行深入的测评,不过计划有变,但在申请板子的时候我注明一周完成测评,想测试L476的整体功耗及FPU打开和关闭对功耗的影响,于是连夜进行资料阅读,代码编写,写测评,直到现在才发现其实时间还是蛮紧张的,如前面简评提到了,需要重新下载最新的IAR软件,数据手册要详细看几遍,各种资料要去官网下载,在测试过程中还会出现各种错误现象(本测评中会提及一个重要下载失败问题及解决方法),由于STM32L4xx系列的主打还是低功耗,下面正式功耗测评开始:
首先熟悉参考手册,在写完测试代码后,出现了一个非常奇怪的现象,我用IAR通过STlink竟然无法下载程序!!!具体下载调试提示的错误如下:


测试过程中很奇怪不知道为什么每次点击下载就会出现这个错误导致程序无法进行下载,于是网上进行查找,找了好多资料后发现了一个STM32L476xG Bootloader V9.0 patch.zip是否是Bootloader的bug?对压缩包的内容大体看了一下,好像又不是这个问题,只是串口、USB、CAN的通信问题补丁,但是从这个提示了我,是否是程序在下载过程中L476没有正常复位?于是我在下载程序之前先按住L476的RESET按键,点击下载程序,然后松开RESET后程序正常下载!!!这个问题折腾了好久。。。之前使用其他系列NUCLEO板卡都没出现这个问题,不知道是不是个例,如果其他网友也发现了这个问题,如果有机会ST官方人有看到这个问题,可以具体说明一下原因,以及更好的解决方法。
OK,总算下载程序问题解决了,可以折腾程序,实际测试L476的功耗了:
(1)在这首先看了芯片手册:
– 30 nA Shutdown mode (5 wakeup pins)– 120 nA Standby mode (5 wakeup pins)
– 420 nA Standby mode with RTC
这三项由于手头万用表的限制无法测量到这么小的电流,只能测试1.1 μA Stop 2 mode
测试L476进入低功耗程序代码:
HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);
这个模式下我测试到的数据是1.6uA~1.7uA(打开FPU单元,这个是在IAR的设置中可以选择的),考虑到手头的这个万用表精度问题,测试的数据意义远大于是否测得准确,可以看出STM32L476在 Stop 2 mode的低功耗在2uA以内!

(2)测试运行模式下的功耗:数据手册上写的是100 μA/MHz run mode
实际测试L476运行主频为80MHz(打开FPU)------理论结果为8mA
配置L476的主频程序:SystemClock_Config();
* System Clock source = PLL (MSI)
* SYSCLK(Hz) = 80000000
* HCLK(Hz) = 80000000
* AHB Prescaler = 1
* APB1 Prescaler = 1
* APB2 Prescaler = 1
* MSI Frequency(Hz) = 4000000
* PLL_M = 1
* PLL_N = 40
* PLL_R = 2
* PLL_P = 7
* PLL_Q = 4
* Flash Latency(WS) = 4
实际测试结果为13.1mA:


上述条件不变,将FPU关闭


实际测试结果为11.2mA更加接近手册值,看了如果打开L476的浮点运算单元会增加一点功耗。
虽然实际的测试值偏大,可能和L476的内部一些模块关闭有关系,但总体而言L476的整体功耗还是非常不错的,在高性能的同时做到这么低的功耗,也算是不错的!
上述测试仅是个人发挥,如有不当地方,大家一起讨论。
