sensorTile和st出的其他基础开发板还是有很大不同的。st的基础开发板就是nucleo系列和discovery系列。nucleo最简单,stlink+MCU,基本上就是一个最小系统。discovery系列会复杂一些,最小系统以外,会带一些st自家的其他外设,什么加速度计,麦克风什么的,现在高端的还会带上大屏啥的,但还是摆脱不了单片机开发板的形象。但是sensorTile的配置,却不是简单围绕MCU展开的,基本可以看成是一个完整的应用开发环境了,所以其整个开发环境比普通的st单片机开发会复杂很多。普通的nucleo或者discovery板,下载的cube包就万事大吉了,官方板子的例程从Examples到Applications再到Demonstrations,一应俱全,方便的不得了。sensorTile就没那么容易了,他更像是ST用来展示其MEMS肌肉的一个作品,所以还要搞定这些传感器的驱动,这当然是cube以外的事情了。同时sensorTile还有BLE加身,这可不得了,必须有移动端的配合啊。因此除了常规的编译开发,cube之类的,ST还提供了以下东东
- 基础固件包:STSW-STLKT01。这里提供了传感器驱动
- BLE传送包:FP-SNS-ALLMEMS1和FP-SNS-MOTENV1。通过BLE向终端提供数据。
- 算法扩展包:BLUEMICROSYSTEM1和BLUEMICROSYSTEM2。提供运动解算能力。
- 移动端APP:Demo
- 移动端SDK:ios and android
这么多软件包,是不是有点看花眼了?没关系,我们从简单到复杂,慢慢看,今天先来看看这个基础固件包。需要准备的材料是固件包和相应的user manual。回头我都会放到附件中。
整个固件包中包含了DataLog和AudioLoop。后者是和mems麦克风相关了,会放到后续来评测,今天主要还是针对DataLog来进行。如官方文档所说,这个项目提供了所有板上传感器的原始数据。可以记录在sd卡上,也可以通过虚拟串口传出来。从第一次的评测可以看到,只有cradle上才有sd插槽,但是cradle必须要焊接,所以我们的DataLog就只有通过扩展板,然后通过串口传出来了。系统原来烧写的是BLUEMICROSYSTEM2,所以必须重新烧写固件。正好借此来熟悉一下代码的编译下载过程。
将基础包解压,可以看到如下目录结构,我们的项目文件就在Projects中。所有软件的API文档则在Documentatation目录下。简单起见,我们先直接烧写binary中已经编写好的固件。
需要的硬件设备:stlink一个(此处选用nucleo64板),sensorTile+扩展板,micro usb和miniusb线各一根。
需要的软件:STLINK utility
首先要完成stlink和开发板的连接,sensorTile中自带了5P的杜邦线,扩展板上的接口也是5P的,不过nucleo板上的接口却是6P的,那么差在哪里呢?通过查阅资料,找到了正确的连接方式,如下图。nucleo板的stlink,最下面一个针脚不用连接。注意需要把nucleo上的CN2上的跳线帽给去掉。
打开stlink utility,点击连接目标,我们很容易就找到了L476(注意,扩展板必须上电)
然后我们打开DataLog_USB.hex文件,烧写到地址0x08004000。
烧写非常的快,烧完之后单片机重启后会出现 虚拟串口,注意哦,stlink也会有一个哦,所以不要搞错了。下图中com17就是nucleo的,有黄色叹号不能识别的,才是sensorTile的。如果不能识别,可能要装一下驱动(STSW-STM32102),关键这个驱动分32和64的!!
经过无数的折腾,终于看到有数据反馈上来了,速度太快了,100ms一组。有加速度(ACC)、陀螺仪(GYR)、磁力(MAG)和气压(PRESS)。
今天的介绍就到这里,下次准备测试下MEMS麦克风