[原创]STM32L476RG Nuleo 评测
很高兴能幸运的接触到ST最新的低功耗M4Nuleo板。
下面从以下几方面来开始STM32L476RG Nuleo产品评测:
系列化芯片和资料概述
STM32L476RG芯片介绍
STM32L476RG Nuleo板子硬件介绍
开发环境之STM32CUBEMX使用
开发环境之MDK使用
开发环境之 IAR使用
开发环境之MBED跑程序
低功耗测试
总结
系列化芯片和资料概述
STM32经过多年的发展已经有从F0,F1,F2,F3,F4到F7,L0,L1到L4全系列的产品。
STM32有完善易用的标准库,最近一年多又推出了STM32CUBEMX初始化和框架代码生成及配置软件和STM32CUBEXX芯片软件库。也为用户提供了STM32SnippetsXX芯片寄存器访问例子库。还有很多的使用例程库。STM32软件开发环境齐全,MDK,IAR,T rueSTUDIO, CoIde,等诸多开发环境,更有MBED开发环境的支持,包括UCOS,FREERTOS等在内的诸多嵌入式操作系统的支持,包括STemWin在呢的图型GUI等的支持。
具体请看下面的链接:
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1580/LN1840/PF260095#
硬件开发提供了方便实用的全系列DISCOVER开发板和NULEO开发板系列,都带有ST的STLINK。这些让开发者很容易的开始我们的使用STM32为主CPU的产品开发。
STM32L476RG芯片介绍
意法半导体构建了新型架构,得益于其高度灵活性,达到了同类最佳的超低功耗性能。STM32L4 MCU在比较超低功耗微控制器效率的标准化EEMBC™ULPBench®测试中获得123分(世界纪录)。此外,STM32L4系列打破了超低功耗领域的性能限制。基于带有FPU的ARM® Cortex®-M4内核以及意法半导体ART Accelerator™,该系列在80 MHz的CPU频率下性能达到100 DMIPS。
STM32L4微控制器提供根据处理需求平衡功耗的动态电压调整功能、适用于停止模式的低功耗外设(LP UART、LP定时器)、安全和保密特性、大量智能外设,以及诸如运算放大器、比较器、LCD、12位DAC和16位ADC(硬件过采样)等先进的低功耗模拟外设。
该系列包含2条不同的产品线:STM32L476(USB、LCD)和STM32L486(USB、LCD、AES)。
为了简化移植步骤和为您提供所需的灵活性,STM32L4与不同的STM32系列均引脚兼容,为您打开了通往整个STM32生态体系的大门。
超低功耗模式:30 nA,有备份寄存器没有RTC(5个唤醒引脚)
超低功耗模式 + RTC:330 nA,具有备份寄存器(5个唤醒引脚)
超低功耗模式 + 32 KB RAM:360 nA
超低功耗模式 + 32 KB RAM+ RTC:660 nA
动态运行模式:低至100 μA/MHz
唤醒时间:5 μs
看看上面的介绍就知道STM32L476是高速M4兼低功耗,两者并举的芯片。运行时功耗也是蛮低的。
STM32L476RG Nuleo板子硬件介绍
和其他NUCLEO板一样,板子STLINK(这个STLINK和DISCOVERY的STLINK不一样,可以直接在MBED里面拖放烧写,具体可以参考MBED的使用)
用户按键和复位按键,电流测试点引出,外部RTC都具备,还有就是标准的NUCLEO板引出接口。
STM32L476NUCLEO板主要特性
LQFP64封装的微处理器STM32L476RG
两种类型扩展接口 ARDUINOUNO R3兼容接口;STM32NUCLEO经典蝶形扩展接口,引出全部引脚
支持MBED开发
板载STLINK/V2-1支持VCP
灵活的供电接口选择 支持3.3V, 5V, 7-12V供电
板载3个LED灯 用来指示开发板工作状态,其中LD2可用户编程控制
两个用户按钮 实现复位及用户控制
USB可重新枚举 实现三种不同功能:虚拟串口、大容量存储设备支持、调试
丰富的编程环境支持 包括IAR,MDK,其它基于GCC的支持
STM32L476RG芯片特征
STM32L476RGT6 采用LQFP64封装
ARM®32-bit Cortex®-M4 CPU
采用自适应实时加速器ART加速器™可以让程序在Flash中0等待执行。
最大80 MHz CPU 频率
VDD 从 1.71 V to 3.6 V
1 MB Flash
128 KB SRAM
Quad SPI (1)
常用定时器 (7)
高级定时器(2)
基本定时器(2)
低功耗定时器(2)
Systick
Watchdog (2)
SPI (3)
I2S (3)
USART (3)
UART (2)
LPUART (1)
USB OTG Full Speed
CAN (1)
SAI (2)
SDMMC
SWPMI
LCD 8x28 or 4x32
GPIO (51)带外部中断
12通道触摸电容传感器
16通道12-bit ADC (3)
2通道12-bit DAC
模拟比较器(2)
运放 (2)
代码产生器STM32CUBEMX
下载stm32cubemx-4.10.0后,把库文件也都下下来,如下:
每一个库下载下来后。C:\Users\Administrator.DFCEMCSB7N1HU7Z\STM32Cube\Repository\STM32Cube_FW_L4_V1.0.0\Projects的目录里面有完整的例子可供我们试用。如下图:
这个就相对于我们前面的标准库。
这里要说明一下,STM32CUBEMX正不断更新,老的版本也许不支持新的库,所以最好是用在线更新,FROM那里离线更新有时候会出问题。留意有坑的。
不过STM32CUBEMX是可以直接定制我们的程序架构的。
菜单中的NEW开始选择新项目,然后选择芯片型号和封装,就可以开始了:
这里可以配置IO,时钟,配置是否选择外设和中间层软件:FATFS FREERTOS LWIP(这个板子没有就没显示)。
选择好后,填写项目名称和目录,生成MDK还是IAR等,然后按下CodeGernetor
就产生代码了。可以直接用相应软件打开。
还是很方便了。
开发环境
目前支持STM32的开发环境很多,从下面的链接就可以知道:
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1580/LN1840/PF260095#
下面主要介绍几种大家常用的开发环境:
MDK
MDK是大家熟悉的开发环境,现在归ARM公司拥有。现在绝大部分开发ARM的工程师都熟悉这个软件。目前最新版本为5.16A,已经支持STM32L476 Nuleo开发板
IAR
因本人电脑没安装最新的IAR,所以暂时就不加讨论。反正大家也都很熟悉。
MBED
ARM® mbed™ IoT 设备平台提供了操作系统、云服务、工具和开发人员体系,以便能够大规模创建和部署基于标准的商业 IoT 解决方案。
http://www.mbed.com/zh-cn/
使用MBED先要注册,登陆后就可以使用。目前已经部分支持中文。
从下面网页的页面可以看到STM32L476RG Nuleo开发板
https://developer.mbed.org/platforms/
从这里就可以选择它到你的开发中去。
低功耗测
试跑一下下面的例子测试停止模式+RTC唤醒,让我们了解一下低功耗的情况,
C:\Users\Administrator.DFCEMCSB7N1HU7Z\STM32Cube\Repository\STM32Cube_FW_L4_V1.0.0\Projects\STM32L476RG-Nucleo\Examples\PWR\PWR_STOP1_RTC
当然这个目录里还有很多例子你可以跑跑,摸摸低功耗的一些情况。
测试结果:
运行时:板子电流13.82MA
停止模式+RTC 10.9UA(这里估计是包括了一些漏电流)
运行时:
停止模式:
这里停止时估计还有其他外设或者IO漏掉了电流(还是我的万用表太差了呢? 没搞懂)。
总之,还是有一个低功耗的感官效果了。
目前CPU低功耗的芯片很多家都已经做到很好了。目前TI,ST,ATEML。MICROCHIP等很多家的芯片都已经做到停止电流在1UA以下,RTC运行电流也都小于等于1UA。低功耗ARM的运行功耗也都在下降。达到接近100UA每MHZ。ST表现还是不错的。目前这款芯片应该是会大家看好。
1UA的电流是个什么概念呢:就是两节南孚7号电池 容量大约是500mAh左右,两节7号电池理论算下:500000小时。哈哈57年。
总结
STM32L476RG Nuleo开发板诸多方面表现都不错。芯片的低功耗和运行功耗有其独特之处,板子预留了测试电流的测试点。所有IO都引出方便实验,板载STLINK。多种开发环境的支持。特别是支持MBED。总之,STM32L476RG Nuleo将很方便我们对STM32L476芯片的评估和实验。