拇指开发板——Nucleo-L031K6评测
扫描二维码
随时随地手机看文章
随着智能穿戴设备、医用电子、工业自动化生产线、智能家居等领域的发展,市场对智能产品的期待值越来越高,进而导致对微控制器各方面的要求的提升,特别是芯片功耗的表现,直接影响了智能产品的用户体验,因此各大厂商也不遗余力发展低功耗高性能微控制器产品线。
意法半导体在近期推出了超低功耗系列微控制器STM32L031,并实现了量产。该款微控制器主要面向穿戴式装置、医用监视器、工业传感器、智能生活设备等能源敏感应用,能效性和稳健性兼备,是一款超低功耗的理想型微控制器。与此同时,意法半导体也相继推出了Nucleo-32和Nucleo-144开发板,以帮助工程师朋友评估芯片、加速产品原型设计。
笔者有幸拿到了一款Nucleo-32开发板——Nucleo-L031K6。该款板卡在外包装上继续沿用了Nucleo-64的透明塑料外壳包装。这样的包装方式虽然降低了成本,但在视觉表现上却极具冲击力,透明材料的使用更是凸显出了板卡的小巧精致,也符合该板卡超低功耗、超低成本的主题。
由于包装卡扣设计十分紧凑,加上板卡的小巧,取下板卡的过程并不是十分顺利,力气用大了生怕损坏了板子,力气小了又取不下来,拿下板子也需花费一番功夫。
通过对板卡PCB的测量,该款板卡宽为18.542mm 长为50.292mm,整块PCB的面积还不到0.001平方米,甚至比拇指还要小。
块头大致与一节5号电池相当。
板卡面积极小,这势必制约了板载资源的配置,但是开发必备的资源还是配备的,如ST_Link等。
Nucleo-L031K6板载资源
1) ST_Link V2.1下载仿真器
2) SWD接口
3) USB虚拟串口
4) 功耗检测接口
5) 用户接线帽(按键)
6) 用户LED
7) 复位按键
8) Arduino Nano接口
既然同属于Nucleo系列开发板,那么就避免不了拿来与nucleo-64和nucleo-144做比较。
通过对比Nucleo-L031K6与Nucleo-L053R8可以发现,虽然后者的个头是前者的6倍,不过板载资源却大致相当,特别需要注意的是,这两块板卡的价格竟然相等,都是10.12美元!
Nucleo-L031K6板卡搭载的STM32L031K6是一颗基于ARM Cortex-M0+内核的超低功耗微控制器,在运行模式下的功耗做到了76uA/MHz。
Nucleo-L031K6特性
1) 基于ARM Cortex-M0+ 最大频率32MHz
2) 一个I²C总线接口
3) 一个12-bit ADC
4) 二个SPI控制器
5) 两个USART串口
6) 八个Timer
7) 96位唯一的设备ID
8) 32KB Flash 8KB SRAM
PCB的设计也是Nucleo-L031K6的亮点之一,拇指大小的PCB上需要集成L031以及ST_link两个最小系统,外加三个LED、一个按键以及电源电路,这也使得ST的硬件工程师在设计上花费了不少精力。值得一提的是,ST官方竟然毫无保留地把该PCB工程文件公之于众,这也相当于给工程师朋友们提供了一个硬件demo,利用4层PCB来设计L031的相关项目,将会大大缩小产品的体积,提高相关产品的用户体验。
上电体验
Nucleo-L031K6使用了一个micro usb接口来连接计算机,使用一条安卓手机数据线便可以进行程序的开发。与计算机连接之后,window开始自动安装驱动,已经安装过ST_Link驱动的计算机此时只需要点击“跳过从window update获得驱动程序软件”。
稍等片刻,就可以成功安装。
此时系统会出现一个usb盘符。
上电之后观察板卡的用户LED会每秒翻转一次。由于受限于板卡的面积,实在是没有办法再放置一个用户按键,所以demo例程只好利用一个短路冒来做文章。移除短路冒,断开PA12与GND,LED闪烁的频率将会加快。
[!--empirenews.page--]
驱动安装
若是第一次使用Nucleo系列的板卡,由于ST_Link驱动没有安装,所以系统可能会出现驱动安装失败的提示,这将导致虚拟串口功能无法使用。
虚拟串口在资源管理器中也无法识别。
此时需要在ST官网上下载ST_Link驱动stsw-link009.zip,并解压。并根据计算机是32位系统或是64位系统,相应选择“dpinst_x86.exe”或是“dpinst_amd64.exe”,双击开始安装。
在随后弹出的驱动安装确认框中点击“安装”即可。
稍等片刻驱动便安装完成。
此时在资源管理器中可以看到虚拟串口设备。
由于window盗版镜像在减少系统占用空间的同时,往往会阉割某些window的功能,这有可能会导致某些相关文件的缺失,以至于ST_LINK驱动即使安装成功,虚拟串口功能也无法使用。需要手动将缺失的文件补齐。缺失的3个文件分别是:mdmcpq.inf、mdmcpq.PNF、usbser.sys。文件的路径为C:\Windows\System32\DriverStore\FileRepository。相关的文件下载地址将会在本文最后的资源链接中给出。
STM32CUBE体验
使用STM32CUBE之前需要更新或者安装STM32L0软件,可以直接在STM32CUBE软件里面点击更新。点击菜单栏的“help->Check for update”。
在随后弹出的窗口中,选中“FW.L0.1.5.0”,并点击“install now”更新。
更新完成后,打开STM32CUBE,点击“New Project”,并在随后弹出的窗口中选择“Board Selector”选项卡,在Type of Board中选择Nucleo32。随后双击NUCLEO-L031K6。
在配置画面中,点击相应的管脚便可完成配置。
配置完成后,点击菜单栏下方的齿轮图标,对工程文件进行配置。
在Setting页面中,需要配置工程名称,在project name一栏中填入,并选择工程保存路径。在toolchain/IDE选项卡中选择希望的编译环境,由于我们接下来需要使用KEIL进行编译,所以选择MDK-ARM V5。习惯使用IAR软件或者其他编译环境的可以选择EWARM或者其他选项。最后点击“OK”即可生成工程。
接下来需要安装KEIL pack包,打开pack软件,对STM32L0系列的PACK进行升级。在软件右侧找到STM32L031并选中,然后在软件左侧找到Keil::STM32L0xx_DFP,并点击Update。
升级成功后,STM32L031K6器件的符号会由未升级前的白色变为绿色。
接下来打开STM32CUBE生成的工程文件,编写一个小代码。需要注意的是,编写代码的时候需要把代码写在特定的区域,以便可以继续使用CUBE软件进行工程维护,若没有按照要求,把代码随意放置,使用CUBE维护工程的时候,特定区域之外的代码将会被删除,造成不必要的损失。
由于CUBE软件在生成工程文件的时候已经帮我们选好了烧写仿真器相关设置,所以不需要我们再次设置,只需直接编译下载即可。总体来说,使用CUBE软件可以免去工程师朋友自己配置工程的痛苦,而且可视化的操作也大大改变了工程师编程的枯燥性,操作设计显得十分人性化。[!--empirenews.page--]
MBED体验
除了使用STM32CUBE+keil或者IAR编程之外,NUCLEO-L031K6板卡还支持MBED在线编译。
在NUCLEO-L031K6的usb设备中有MBED的链接,通过双击 “MBED.HTM”,便可以打开MBED在线编译器。
输入用户密码之登录之后,在随后的页面中点击“Open MBED Compiler”即可使用在线编译。
由于NUCLEO-L031K6刚出不久,可能MBED方面还没有来得及更新,打开编译器之后,居然连板卡的图片都没有放置,只用芯片的符号代替,例程一个都没有,只有空文件一个!这样一来也只能期待MBED尽快完善了。
低功耗测试
超低功耗芯片必然少不了功耗测试,通过查看PCB原理图,可以发现,L031K6的供电与ST_link是分开的,通过JP1接入电流表可以直接观察L031K6的功耗。
不过因为PCB面积的限制,JP1跳线在这里居然使用了间距为1.275mm排针,这使得接线变得十分棘手。最后只能借助测试钩来完成此次测试。
通过测试,在2MHz的时钟频率下,STM32L031K6运行在各个模式的功耗情况如图所示:
其中ST官方的数据显示,在待机模式和停止模式下芯片的功耗为0.28 uA和0.38 uA,实际测试时由于万用表的精度只能测到1 uA,故只能证实芯片待机模式及停止模式下的功耗确实低于1 uA。
小结
STM32L031可谓是小块头大智慧,TSSOP20以及UFQFPN28 4x4mm的超小封装,占用PCB空间减小的同时,芯片功耗也进一步降低,但外设性能却没有受到影响,反而得到了提升。该款芯片同时满足了产品小型化及低功耗的需求。小巧的NUCLEO-L031K6开发板虽然板载资源不多,但足以满足原型设计的需求,配合ST官方丰富的软、硬件资源,将会大大减轻工程师朋友的工作量,加速设计,缩减产品开发周期。
资源链接
本文系21ic原创,未经许可严禁转载