你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

入门级的低功耗-STM32L031-Nucleo-32 评测  

[复制链接]
creep 发布时间:2016-3-3 23:42
' [6 p; _/ z4 f3 I6 H
ST在使用NUCLEO (NUCLEO -64)系列开发板推广其Cortex-M内核MCU取得成功后,再接再厉推出了32引脚的NUCLEO-32 和144引脚的NUCLEO-144 ,通过差异化的配置使受众更加广泛。今天要测试的是非常小巧的STM32L031-NUCLEO-32,板载的是低功耗系列的入门级芯片STM32L031。感谢与非网和ST官方提供的开发板,同时感谢苏柚和沐紫的辛勤劳动!
. M; T$ C" o* y8 U  L
IMG_1004.JPG
4 [- H: p# S" ^4 u
1、关于L0系列和STM32L031
         STM32 L0 MCU 作为ST低功耗MCU系列中的一员,其每个部分都通过优化达到了卓越的低功耗水平,是一款功耗性能破纪录的真正超低功耗MCU,其采用的Cortor-M0+内核与STM32超低功耗特性的独有结合,使STM32 L0非常适合电池供电或供电来自能量收集的应用。整个系列不断的完善和推出新品,满足各个方面的需求。

- p# r7 C2 [$ e) E1 ]
L0newseries.jpg

& |7 Z4 W0 h% e7 E3 Q  ]- B, Z
        STM32 L0提供了动态电压调节、超低功耗时钟振荡器、LCD接口、比较器、DAC及硬件加密。新的自主式外设(包括USART、I²C、触摸传感控制器)分担了ARM Cortex-M0+内核的负荷,减少了CPU唤醒次数,因此有助于减少处理时间及功耗。它还内置有其它一些增值特性,例如16位ADC(硬件过采样)、无需外晶振的USB、超低功耗模式中的短唤醒时间及低功耗模式下仍可工作的通信外设,实现了集成特性、高性能与超低能耗之间的完美平衡。STM32 L0具有高达64 KB闪存、8 KB RAM及高达2 KB的嵌入式EEPROM(无需闪存模拟),采用32到64针封装,包括节省空间的WLCSP36。
其整个系列通过外设的不同又分为STM32L0X1、STM32L0X2、STM32L0X3:

3 U) q) \( y; B! [6 |3 m
SS1817.png

, f/ E5 S0 y$ H
STM32L0x1基本型为STM32 L0系列的入门级产品,提供WLCSP32小封装,具有高达64 K字节闪存、高达8 K字节RAM及高达2 K字节嵌入式EEPROM 此系列还具有带DMA功能的外设、实时时钟、低功耗时钟、硬件加密模块以及每秒100 K采样时仅需48 µA的超低功耗12位ADC。
由于极低的运行时功耗,STM32L0x1系列非常适合鼠标或键盘等应用。得益于嵌入式的硬件加密模块(128位AES)及超低功耗模式时仍能工作的外设,它也适合燃气表和水表等工业应用。L0系列拥有丰富的产品线,根据不同配置分布如下:
. N/ W% W7 |( B3 l1 w3 ~. C
STM32L0x1_line_LN1843.jpg

/ ?! \  I5 z+ R( {1 L
2 k% e% d- a' z9 K- T& b3 h: T
STM32L031作为入门级的一员,其低功耗功能相当优秀,各个模式模式功耗如下:
9 p1 a* b6 g: z! K  O7 @; {
· 0.25 uA Standby mode (2 wakeup pins)
· 0.38 uA Stop mode (16 wakeup lines)
· 0.68 uA Stop mode + RTC + 8 KB RAM retention
· Down to 76 uA/MHz in Run mode
· 5 us wakeup time (from Flash memory)
· 41 uA 12-bit ADC conversion at 10 ksps
3 p2 c+ l' I% R3 }  f
除了优秀的功耗消耗,STM32L031 外设也非常丰富,除了常用的外设外,还有能到低功耗模式下运行的LPTIM和LPUART能使系统功耗进一步的降低。
MCU功能外设.png
内核及外设整体结构
bd_stm32l031x6_32k.jpg
8 H* d) P* S% F  P+ R
2、关于NUCLEO-STM32L031-32 开发板
  NUCLEO-STM32L031-32开发板给我们第一感觉是非常小巧,但是板载资源依然非常丰富,用于调试的STlink、复位按键、测电流的引脚、LED、Arduino-Nano、该有的都有了,一点都不逊色于我们非常熟悉的NUCLEO-64开发板。

; ~3 _- d# A- z: m) t( Q
正面是主芯片STM32L031
# e3 S+ |5 P' O: s
IMG_1021.JPG
; G+ _' [5 i; x
背面是STlink 使用的STM32F103

+ U$ q) F( L( H- d  T
IMG_1027.JPG
. K8 C6 p  R: k& B; U9 C; A* x6 i1 \( L
由于板载了ST-LINK/V2-1,不但给我们调试带来了方便,同时还有Virtual Com port 和Mass storage .
虚拟串口可以方便用于调试输出信息了PC端串口。
VCP.png
Mass storage .功能则可以和mbed一起使用在线编写代码下载运行
* w8 k% s( j' T+ W- h! P) E
MBED.png

# L" u/ m1 W+ U. ?: ~
通过mbed网站能看到板子上的引出的外设,我们可以根据下图外设引脚的分布连接自己的
外设搭建测试平台,这样能在项目前期进行快速的评估
xnucleo32_revc_f031k6_mbed_pinout_v2.png.pagespeed.ic.GuOIIArQaM.png
# P' m) l2 F2 r% r
除了在线免费的IDE之外mbed还有很多开源的丰富的例子学习参考。

9 {  T# ^. i& I7 j# T: W  y6 g
3、关于测试程序
   下面使用keil5创建一个测试程序用于简单的打印信息及点亮LED,在使用keil5开发前要安装STM32L031对应的PACK和相应的开发包STM32Cubel0。关于如何使用STM32Cubel0里面的文件以及如何创建一个工程模板可以参考之前的一个帖子里面的最后的 Cube详解和keil建立工程部分  
在main函数里面简单的打印信息和点亮LED:
  1. <font face="Tahoma" size="3">// Header:  BSP file" H- m, ?" j8 l1 M, W' @9 c
  2. // Author:        creep
    5 J2 u1 y. F1 u" A' ?
  3. // Date:                2016-3-3
    5 ^% a1 T" {3 |/ C' D0 Q
  4. . H3 G3 Y* x) I# C0 {0 Q& i
  5. int main(void)
    * E" a* s1 X1 `3 h% W3 I
  6. {) H& `! s* Y( a( q& U4 v
  7. 8 Z  X. A% g. [) @( k! D
  8.   HAL_Init();
    7 F' ?+ E! c4 z, ], S. A
  9.   SystemClock_Config();4 q6 `% p# E+ g, U! `9 V
  10.         Uart2_init();
    5 E- {" s, m3 I
  11. 1 A) L0 B" s! `( m0 r+ G; }1 L
  12.   while (1)
    2 i7 c+ Y' z9 b& W# g$ ~1 x3 n
  13.   {
    ' [' e7 N4 X0 J# H4 b5 t
  14.     HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
    : n/ @  C# V# \. D. ^* g
  15.     HAL_Delay(1000);
    2 n* M1 y' a5 M+ T) ]
  16.                 printf("Hi,I am creep !!!\r\nNUCLEO-STM32L031-32\r\nSTÉçÇø:www.stmcu.org.cn\r\n");
    5 C- m+ _( P% h' o7 k
  17.   }1 c/ n% y" o* [" ~3 o
  18. }</font>
复制代码
输出信息如下:

' c7 O/ t: `. ]
33336.png
- z7 }! j2 n# I1 Q
     上面很简单的对L0系列及STM32L031进行了介绍,并测试了STM32L031-NUCLEO-32的串口外设打印信息。L0系列的重点在于其低功耗的休眠和低功耗外设的使用,低功耗的休眠测试可以参考STM32CUBEL0里面的详细的例子,低功耗外设也有对应的测试DEMO。LPUART和LPTIM的使用可以参考下之前L4的时候写的几个测试例子,主要是低功耗下串口唤醒和低功耗下PWM输出:LPTIM在STOP1模式下输出PWM   在最后面有详细的代码。
0 q: h. O2 o9 }4 @. d0 g
测试DEMO及相应的文档:
STM32L031.rar (572.44 KB, 下载次数: 533)
赞 收藏 3 评论27 发布时间:2016-3-3 23:42

举报

27个回答
creep 回答时间:2016-3-6 19:49:44
netlhx 发表于 2016-3-6 15:49
% \, Q. T5 m3 D% s! j严重支持一个

7 S9 N! H1 G2 k感谢N神支持! null.png null.png null.png null.png null.png 3 q) q; u, c- @) D
creep 回答时间:2016-3-6 22:01:53
watershade 发表于 2016-3-6 20:25
4 G, H0 n+ {: M' D# w楼主,给你点赞了。但是你说的L0X1应为低功耗用在鼠标键盘上,不敢苟同。因为这个系列压根不支持USB,难道 ...

# m, O$ ]" f* R$ {感谢点赞。L0X1是没有USB接口但是可以扩展外部USB控制器用于鼠标键盘等设备。
watershade 回答时间:2016-3-6 20:25:16
楼主,给你点赞了。但是你说的L0X1应为低功耗用在鼠标键盘上,不敢苟同。因为这个系列压根不支持USB,难道再外加USB不成。需要换成L0X2和L0X3才行吧。
阿莫西林 回答时间:2016-3-4 08:48:37
赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞
lisingch 回答时间:2016-3-4 08:58:52
好贴收藏了,赞!
风子 回答时间:2016-3-4 09:11:12
给大神点赞
风子 回答时间:2016-3-4 09:12:15
给橙子大神点赞
creep 回答时间:2016-3-4 09:30:25
风子 发表于 2016-3-4 09:12
( V7 V* S! ]3 X+ w  Y给橙子大神点赞
5 P( U3 A" c0 v% {- x! g
感谢风神!!
any_014 回答时间:2016-3-4 09:39:45
usb口旁边的那5个过孔是干什么用的呢?
Paderboy 回答时间:2016-3-4 09:46:48
超赞
creep 回答时间:2016-3-4 09:54:15
any_014 发表于 2016-3-4 09:39) J8 m9 o, H/ R! l" O; U% S) g' T
usb口旁边的那5个过孔是干什么用的呢?
$ C3 [0 u. r9 }
没有仔细看,好像是预留的STLINK-SWD接口。
creep 回答时间:2016-3-6 15:33:10
苏柚 发表于 2016-3-4 15:04
) }4 P( w  Z0 J( E橙子哥速度真快

7 K( ~3 E$ q% x9 F  o. {( d! E% `必须的
netlhx 回答时间:2016-3-6 15:49:18
严重支持一个
lkl0305 回答时间:2016-3-6 18:27:24
不错,学习了
creep 回答时间:2016-3-6 19:50:22
lkl0305 发表于 2016-3-6 18:27
0 o4 ]# x8 A; c9 g( i* H不错,学习了

% p, o' B4 g! b2 M; d) P                  
12下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版