低功耗拇指小板——NUCLEO-L011K4测评

本次测评的NUCLEO-L011K4开发板同属于Nucleo-32系列,之前本人做过NUCLEO-F031K6的测评,两者结构基本一致,只是核心微控制器本次是低功耗的STM32L011K4,重复部分内容这里就没有写上,大家可以参看《“小身材,大智慧”——STM32 NUCLEO-F031K6测评》。

本次测评包括以下内容:

1、开箱

2、结构

3、功耗

4、开发

5、总结

一、开箱

初次拿到NUCLEO-L011K4开发板后,有种非常熟悉的感觉,Nucleo风格塑封包装非常简洁。

图1-1 NUCLEO-L011K4开发板包装

打开包装,你会感觉所有的Nucleo-32开发板都长得一模一样,如果不通过开发板上的标签来判断,很难判断开发板的型号,Nucleo开发板不仅电路的布局一致,电路布线也一样,因此,你想评估其它型号的MCU时,也可以将主芯片去掉,焊接一款其他型号的MCU,是不是STM32的兼容性很好?

图1-2 NUCLEO-L011K4开发板

意法半导体ST公司目前共推出了几十种低成本的Nucleo系列开发板,包括Nucleo-32、Nucleo-64和Nucleo-144三种,其中有5款拇指开发板Nucleo-32系列,采用只有32引脚STM32微控制器,NUCLEO-L011K4是目前Nucleo系列最小配置的开发板。

图1-3 Nucleo系列生态系统

NUCLEO-L011K4开发板主要特点:

(1)采用32引脚封装的STM32L011K4微处理器

(2)提供Arduino Nano扩展接口

(3)支持云端开发环境Mbed

(4)板载ST-LINK/V2-1编程调试器

(5)USB支持三种接口:

a.虚拟串口

b.存储器

c.调试接口

(6)可变的电源供电

a.USB接口供电

b.Arduino Nano扩展接口供电

(7)提供三个LED灯:

a.LD1作为USB通信指示灯

b.LD2作为电源指示灯

c.LD3是用户指示灯

(8)1个复位按键

(9)支持多种可选的集成开发环境:IAR™, Keil®, GCC-based IDEs等

二、结构

NUCLEO-L011K4评估板是意法半导体ST公司推出的针对小封装低成本的STM32L011K4微控制器的开发板,隶属于Nucleo-32系列,目前Nucleo产品的核心板有3个系列。

图2-1 Nucleo开发板系列

NUCLEO-L011K4开发板由1个STM32 MCU、1个ST-LINK/V2-1编程调试器、Arduino Nano扩展接口、1个复位按键和一个用户LED组成。下面是NUCLEO-L011K4的功能框图。

图2-2 NUCLEO-L011K4开发板结构

下图是NUCLEO-L011K4开发板的原件布局图,我们可以感觉虽然NUCLEO-L011K4开发板体积不大,但是布局非常紧凑,该有的功能都有了,电路板两面都有元件放置,正面是目标单片机部分,背面是ST-LINK部分。

图2-3 NUCLEO-L011K4开发板正面布局

图2-4 NUCLEO-L011K4开发板背面布局

通过NUCLEO-L011K4开发板与之前的NUCLEO-F031K6开发板对比,可以看出Nucleo-32系列和以前的Nucleo-64开发板一样,所有型号共用相同的电路板,只是主微控制器不同,还有一些锡桥配置不同而已,而关于Nucle-32开发板的硬件资源在我之前的测评《“小身材,大智慧”——STM32 NUCLEO-F031K6测评》中有详细介绍,这里就不再重复了,有兴趣的朋友可以参看!

下面来看看NUCLEO-L011K4开发板的核心微控制器STM32L011K4T6,该MCU隶属于低功耗的STM32L0系列微控制器,基于ARM®Cortex®-M0+内核,ULPMarkTM-C认证测试取得135分。同时意法半导体独有的制造工艺具有很高的温度稳定性,因此可以确保STM32L0系列在125°C时拥有同类最低功耗,兼备出色的能效和稳健性。具有动态电压调节,超低功耗时钟振荡器,LCD接口,比较器,DAC,真随机数发生器和硬件加密(AES-128)。存储容量范围从8KB到192KB FLASH,20KB SRAM,高达6KB EEPROM。此外,最新推出的14引脚封装使其成为最小的STM32微控制器。

图2-5 STM32L0系列微控制器特点

目前STM32L0系列有三个产品线:STM32L0x1基本型产品线、STM32L0x2 USB产品线(无晶体USB2.0 Full Speed)和集成 HMI模块的STM32L0x3 USB/LCD产品线。

图2-6 STM32L系列微控制器分类

这次拿到的NUCLEO-L011K4开发板的MCU属于STM32L0x1基本型产品线。该产品线包含了非常丰富的选择,而STM32L011K4T6微控制器属于其中小封装,小存储,低成本的产品。

图2-7 STM32L0x1系列微控制器

NUCLEO-L011K4开发板板载了一颗LQFP-32封装的低功耗微控制器STM32L011K4T6。

图2-8 NUCLEO-L011K4开发板主控制器

STM32L011K4T6的内部结构框图如下:

图2-9 STM32L073RZT6的内部结构框图

其主要特点:

(1)超低功耗:

支持电源1.65 V至3.6 V

温度范围-40至125°C

0.23μA待机模式(2唤醒引脚)

0.34μA停止模式(16唤醒行)

0.67μA停止模式+ RTC + 2 KB RAM保留

低至76μA/ MHz的运行模式

5微秒唤醒时间(从闪存)

41μA 12位ADC(10 ksps的转换)

(2)内核:

基于ARM®32位Cortex®-M0 +内核

时钟支持32 kHz至32 MHz

0.95 DMIPS/MHz

(3)支持USART和SPI接口的预编程引导程序

(4)丰富的模拟外设

1.14 Msps的12位ADC的多达10个通道(低至1.65V的工作电压)

2×12位带有输出缓冲器通道的DAC

2个超低功耗比较器

(5)支持ADC、SPI、I2C、USART、计时器

最后大家注意了,虽然不同的NUCLEO-32开发板使用了同样的电路板,同时接口数量也是一样的,但是可能不同的开发板之间的接口对应的MCU引脚是不同的,需要大家在使用时注意区分,下面是NUCLEO-L011K4开发板的Arduino™ nano接口引脚定义。可以看出虽然开发板外扩接口比较少,但是通过端口复用功能,提供了非常丰富的功能。

图2-10 NUCLEO-L011K4开发板接口

三、功耗

NUCLEO-L011K4评估板的核心控制器STM32L011K4T6隶属于STM32低功耗系列的产品,在意法半导体(ST)公司的宣传手册上可以查到关于STM32L0的功耗,可以看到在125度时,不同低功耗模式下的功耗从28uA到1.96Ua不等,从FLASH中由停机模式唤醒运行仅需要5us时间,如果从RAM中由停机唤醒仅需要3.5us,如果从STANDBY模式唤醒运行,需要50us时间,看了这些数据,当然要亲自测试一下。

图3-1 STM32L0系列功耗

1、准备

意法半导体公司在NUCLEO-L011K4评估板上面给用户提供了测试MCU功耗的位置JP1(IDD measurement),首先将跳线帽去掉,将电流表接入JP1的两引脚间,这种情况下就可以用电流表测量微控制器的电流IDD了。

图3-2 测试功耗接口

但是JP1跳线是间距1.27mm的小跳线,手头没有合适的连接线引出接万用表表笔,最后只能将引脚焊了一根导线引出来,然后接到万用表上测量。

图3-3 测试接口

图3-4 测试接线

意法半导体ST公司不但预留了NUCLEO-L011K4评估板功耗测试接口,还专门为用户提供了功耗测试工程实例。工程路在STM32CubeL0软件包内那测试功耗的例程默认路径为:\STM32Cube_FW_L0_V1.5.0\Projects\STM32L011K4-Nucleo\Examples\PWR,包括SELLP、STANDBY、STOP、STOP_RTC、LPRUN和LPSLEEP等低功耗模式例程,大家可以用来学习不同功耗的编程,同样可以用来测试不同工作模式下的功耗。

图3-5 官方提供的低功耗例程

2、测试

使用MDK打开需要测试功耗的工程文件,在工程的readme文件下面有关使用该工程的方法及使用注意事项,可以看出,所有功耗都是在内核频率2MHz时测试的。

图3-6 功耗测试工程

编译工程,分别测试不同低功耗模式下的功耗。

图3-7 PWR_LPRUN Low Power Run Mode测试

图3-8 PWR_LPSLEEP Low Power sleep Mode测试

图3-9 PWR_SLEEP Power sleep Mode测试

图3-10 PWR_STANDBY PWR standby测试

图3-11 PWR_Standby PWR_STANDBY_RTC测试

图3-12 PWR_STOP Power Stop Mode测试

图3-13 PWR_STOP_RTC Power Stop with RTC Mode测试

最后整理如下:

表3-1 功耗测试结果

序号        低功耗模式        功耗(IDD)

1        PWR_LPRUN Low Power Run Mode        22.85uA

2        PWR_LPSLEEP Low Power sleep Mode        4.32uA

3        PWR_SLEEP Power sleep Mode        110.03uA

4        PWR_STANDBY PWR standby        0.27uA

5        PWR_Standby PWR_STANDBY_RTC        0.98uA

6        PWR_STOP Power Stop Mode        0.39uA

7        PWR_STOP_RTC Power Stop with RTC Mode        1.17uA

注意:system clock设置在2 MHz

可能大家会发现上面数据比图中的要小一些,主要原因是上面图中给出的是在125度时,而且频率在32KHz下面的数据,而本次测试在室温,频率2MHz下面的数据,肯定是有差别的,但是通过实测数据可以看到,STM32L0系列MCU的功耗的确很低,能够保证在电池供电的系统中工作更长的时间!

四、开发

ST公司为为STM32建立的完备的生态系统,不但提供了种类丰富的评估板帮助用户熟悉STM32微控制器,包括低成本的Nucleo系列评估板,Discovery探索系列评估板,还有全功能评估板等。同时提供了非常丰富的开发工具。在IDE方面,支持主流的IDE,有MDK、IAR、GCC-based IDEs等,另外还支持ARM最新推出的云端开发Mbed。在软件方面,ST为STM32提供了标准库和HAL库,并提供了大量的工程实例和开发模板,帮助工程师快速开发STM32的工程。另外,ST还推出的STM32 CUBEMX配置工具可使用图形化界面完成STM32微处理器的初始化配置工作。

下图是STM32系列MCU支持的IDE。

图4-1 开发软件

下图是为STM32提供的软件库的对比,STM32Snippets库代码最底层,生成代码效率应该更高,但是使用起来是最不方便的,支持的MCU型号比较少,STM32Cube HAL库目前来说是ST公司比较推崇的开发方式,支持全系列STM32微控制器,代码的易用性等都是不错的,STM32Cube LL库代码执行效率也是比较高的,应该是ST公司下一步准备推出的支持全系列STM32微控制器的一个库。

图4-2 几种官方库的对比

下图是目前几种库的对STM32系列MCU的支持情况以及ST公司下一步的计划,目前STM32Cube LL库已经支持STM32L4系列MCU,按照之前ST官方发布的消息,支持STM32L0系列的STM32Cube LL库将在2016年4月份推出,但是现在都5月中下旬了,我查了一下STM32Cube库,目前1.5.0库还没有STM32Cube LL库的东西,希望能够早日推出测试一下。

图4-3 几种官方库的信息

下面是STM32L4的库中,大家可以看到有HAL库和LL库两部分组成,而在STM32L0的库中,只有HAL库,暂时还没有LL库的文件!

图4-4 STM32L4系列CUBE库

图4-5 STM32L0系列CUBE库

本来想要体验一下NUCLEO-L011K4的Mbed开发,但是连接到Mbed网站后,显示暂不支持NUCLEO-L011K4开发。

图4-6 Mbed暂不支持NUCLEO-L011K4

几种心得开发过程基本都要等待支持之后才能使用,那下面来分别试试STM32Snippets库和STM32CubeHAL库两种方式的开发过程吧!

1、STM32Snippets库测试

(1)工具:MDK+STM32Snippets库

(2)准备STM32Snippets库,在官网下载STM32Snippets库,地址:http://www.st.com/content/st_com ... tm32snippetsl0.html。

图4-7 STM32L0系列的Snippets包

解压后来看看STM32Snippets库的目录,发现Drivers里面是驱动相关的内容,Projects是给出的例程,不过只有STM32L053-DISCO discovery开发板的例程,打开GPIO中01_LockingMechanism例程,是关于GPIO的Lock的测试,简单分析发现,基本没有提供相关的库函数之类,所有操作基本都需要自己操作寄存器进行,这个需要大家对STM32系列MCU要相当熟悉,然后才能使用,当然编写出的程序一般效率是比较高的。这样看来,我把STM32SnippetsL0成为库,应该是不确切的,更准确的应该按官方成为固件包吧。

图4-8 STM32Snippets工程实例

(3)下面自己也编写一个测试一下,实现一个最简单的功能,控制NUCLEO-L011K4开发板的LED灯每1秒亮灭状态改变一次!查看了原理图,发现LED灯连接了PB3引脚。

图4-9 NUCLEO-L011K4开发板LED接口

(4)使用MDK新建工程,然后写如下代码,在STM32L011K4初始化后,被默认设置成了2MHz的系统频率,设置systick频率为1KHz,之后重新将系统始终选择内部HIS,频率16MHz,最后初始化GPIO。

图4-10 测试主函数

在systick中断中计时1s,每次时间到后,将PB3的输出状态取反一次即可。

图4-11 测试systick中断函数

然后编译下载,既可以看到演示效果。

图4-12 测试工程

经过这个测试,发现STM32Snippets方式直接对寄存器操作,需要对STM32 MCU内部硬件资源非常熟悉才可以,初学者应该有一定难度,开发过程不是很友好。

2、STM32CubeHAL库测试

(1)工具:MDK+STM32 CUBE MX+HAL库

(2)工具准备就不过多说了,官网下载直接使用就行了

(3)任然来实现控制NUCLEO-L011K4开发板的LED灯每1秒亮灭状态改变一次!

(4)首先利用STM32 CUBE MX软件配置GPIO引脚状态,时钟频率等。

图4-13 引脚配置

图4-14 时钟配置

使用STM32 CUBE MX自动生成代码工程,然后再程序中添加重写的systick中断的回调函数,实现每1s使LED状态取反即可。

图4-15 CUBE HAL库测试工程

图4-16 Systick回调函数

下图是使用上面两种方法实现同一功能的工程代码使用的存储空间对比。

图4-17 两种工程对比

可以看出:首先STM32Snippets方式直接对寄存器操作,更接近硬件,编写出来的程序空间更小一些,但是需要对程序员有更高的要求,而且编程比较不便,可操作性比较差一些;而STM32CUBE HAL库有良好的函数接口支持,以及图形化的配置软件,因此对程序员而言,更加友好,但是必然导致编程代码效率低一些。最后还是比较期待STM32 CUBE LL库的体验!

五、总结

本次测试的NUCLEO-L011K4开发板,是意法半导体ST公司最新推出的低成本的Nucleo-32开发板,板载ST-LINK/V2-1编程调试器,提供Arduino Nano扩展接口。支持主流的IDE(MDK、IAR、GCC-based IDEs等)开发,另外还支持Mbed开发。同时ST为STM32提供了标准库和HAL库和STM32 CUBEMX配置工具可使用图形化界面完成STM32微处理器的初始化配置工作。

NUCLEO-L011K4开发板板载一片STM32L01K4T6微控制器,是一款超高能效的ARM® Cortex®-M0+ 低功耗MCU,LQFP32封装,具有低成本和低功耗等特点,在同类微控制器中具有出色的表现,作为穿戴式装置、医用监视器、工业传感器、智能生活设备等对成本敏感应用。

感兴趣的小伙伴抓紧机会,赶快团购一个自己的NUCLEO-L011K4开发板带回家吧!


欢迎微博@EEWORLD

(0)

相关推荐