从拿到这款美信半导体的开发板到现在已经有超过两周时间了,上班也比较忙,试用报告拖的有点长。废话不多说,直奔主题:我主要用这款开发板设计了一个简单的计步器,主要功能有时间显示,实时监控个人走路步数,以及走的相应的里程数,和预估的卡路里消耗。这个只是一个简单的功能验证,因为没有外加输入设备,卡路里预估等都是按照正常人的理论值推算的,只是个理论值,只做参考。
拿到开发板后好好研究了一下这个开发板的资源,Cortex-M4内核,flash 96kb,不需要担心空间问题,RAM也足够,就是IO口不是很多,但是对于穿戴设备已经很充足了。我选择了两个外设,一个0.96寸的OLED显示屏,就是12864屏幕。还有一个3轴加速度传感器,型号ADXL345,加速度传感器负责传感器数据采集,OLED显示屏负责数据显示。
OLED屏没有什么可讲的,买开发板开发板送的,自带SPI 和IIC两种通信方式,介于IO口数量,我简单的改装了一下,和MAX32660开发板通过IIC接口连接,电源使用3.3V供电即可,屏自带升压。使用方便,这个屏功耗很低,满屏全亮才26ma,适合用于可穿戴设备。
ADXL345,ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率很高(13位),测量范围达±16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或IIC数字接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。简单来说就是这颗加速度IC灵敏度很高。测量和读写速度都很快,我这边直接选择的SPI通信方式,理论要比IIC要快的多。
MAX32660,开发环境我就选择了我比较喜欢的Keil uVision5 环境,由于我一直用的都是Keil uVision4环境,一开始搭建这个环境的时候还遇到一些问题,好在管理员和美信半导体的技术支持都很给力,很快就都解决了。这颗单片机和我们普通使用的STM32还是有点区别的,IO口使用还有点不一样,其实每个新的单片机只要把IO口和定时器都调试好了,后面就都是功能函数了,这个就看项目需求和个人能力了。调试工具直接使用开发板送的CMSIS-DAP-DEBUGGER编程器,很方便,仿真和下载都要比我自己整的Stlink要快。
先上几张飞线图给大家看一下:
ADXL345使用的是以前项目上的板子,自己割下来飞线改装的,比较粗糙,但是可以使用。屏幕设计也比较简单,就放了几行字,也没有设计动画什么的,就是个Demo,仅仅显示最主要的功能,花哨的东西先不加了,美信半导体的这颗IC提供的IO口也都是很常用的IO口,串口,IIC,SPI和普通的IO口,应该是在现有的IC基础上精简的。没想到把我觉得很重要的ADC给省去了,这个在后续的使用中就没法直接检测电量了,或者需要我们自己去搭一个电量检测的电路,虽然不难,但是在可穿戴设备寸土寸金的板材上就显得自带电量检测尤为重要了。我本来想的电量检测功能就缺失了,不过这颗IC官方宣称功耗非常低,一般可穿戴设备使用肯定没问题。屏幕第一行我就放了个时间显示,简单明了。第二行我放了总步数,第三行走的里程数,最后一行放的消耗的卡路里。除了时间以外,剩下的三个数据都依赖于加速度传感器的数值。在调试OLED屏幕的时候因为IO口配置问题,导致耽搁了好一会,后来直接每次使用IO口都重新按照需要配置一下,就解决问题了,这点和我使用比较多的STM32不太一样。有了前面的经验,ADXL345调试还是比较顺利,接线完成了后一次成功,首先把ADXL345的硬件ID号读出来一看是0XE5我就知道已经通信成功了。ADXL345D的原始数据是6个字节,需要拼接起来,再做数字滤波,减少干扰,最后还需要找个合适的算法,我这边直接找了个网上的算法,功能算实现了。ADXL345的程序网上也很多,IIC,SPI的都有,检测步数的程序也很多,具体的程序就不贴上来了。
本来还想测试一下这颗IC的低功耗的,这颗IC比我以往使用的低功耗IC都高级很多。可以使用1.8V供电,在RTC运行下已经到500多NA级别了,功耗真的是比较低的了,这次因为时间原因没能测试,后续我再测试,硬件低功耗程序上是比较容易实现的,关键是加上自己的需求后再保持低功耗才是难点。要求开发人员对MCU,外设,程序都要理解透彻,才能调试到整个系统低功耗的平衡点。
MAX32660官方宣称是为物联网专门设计的,从关键特性上看,性能的确比较强悍,加上优异的低功耗性能,是比较适合用于可穿戴或者医疗设备的。本来准备挂载一个nRF24L01+2.4G无线射频和我们现有的基站对接上去的,后来因为没有现成的射频模块,又要自己割板焊接,时间问题先搁置了。有兴趣的网友其实可以放一个nRF51822的BT4.0蓝牙模块的,和MAX32660串口通信,也可以低功耗,关键有了蓝牙模块后就可以和手机连接,直接把数据通过蓝牙传输到手机APP,就是现在的智能手环的做法,有兴趣的小伙伴可以尝试一下。