BLEMotion-Kit 支蓝牙运动传感评估套件
文章目录
- 1. 说在最前面
- 2. BLEMotion-Kit 的颜值
- 2.1 [**开发板购买链接**](https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-12236672109.17.81875d44LJ6kzB&id=682514576792)
- 2.2 引脚分配
- 2.3 CH573
- 3. 开发环境
- 3.1 `firmware` 例程
- 3.2 开发资源
- 4. 视频展示
- 4.1 静止状态下1分钟零偏测试
- 4.2 加速度计输出重力加速度&陀螺仪输出角速率
- 4.3 3D 欧拉角输出
1. 说在最前面
接触了惯性导航相关产品的开发之后,我感觉要利用业余时间做些什么,思考了很久也没发现自己能有什么好的想法,做一个不一样的东西。但是一直停留在思考的阶段挺痛苦的,于是我决定不如先行动,先动起来在调整。最终利用业余时间设计了一款基于BLE+6轴传感器的评估套件。 在做例程规划的时候,我突然发现,我可以做一些垂直于行业的方案评估,支持蓝牙的环境和运动传感解决方案。于是就有了这套基于 RISC-V BLE(CH573) 的嵌入式开发板,我给它取名为:BLEMotion-Kit
2. BLEMotion-Kit 的颜值
板子BLE模块
2.1 开发板购买链接
2.2 引脚分配
端口功能 | 引脚名 | 功能 | 备注 |
---|---|---|---|
按键S1 | PB23 | RESET | |
按键S2 | PB22 | BOOT | 下载程序前,先按下boot再上电LED |
LED1 | PB15 | IIC,JP7短接有效 | |
扩展PIN20 | PB15 | MISO | SPI,JP8短接有效 |
SDA1 | PB14 | OLDE数据线 | IIC,JP5短接有效 |
扩展PIN18 | PB14 | MOSI | SPI,JP6短接有效 |
SCL1 | PB13 | OLDE时钟线 | IIC,JP3短接有效 |
扩展PIN16 | PB13 | SCLK | SPI,JP4短接有效 |
扩展PIN4 | PB12 | NSS | SPI |
TXD | PA9 | UART_TX | JP15短接有效 |
扩展PIN2 | PA9 | JP16短接有效 | |
RXD | PA8 | UART_RX | JP13短接有效 |
扩展PIN1 | PA8 | JP14短接有效 | |
SDA0 | PB7 | MEMS传感器数据线 | JP11短接有效 |
扩展PIN14 | PB7 | JP12短接有效 | |
SCL0 | PB4 | MEMS传感器时钟线 | JP9短接有效 |
扩展PIN12 | PB4 | JP10短接有效 | |
INT0 | PA4 | MEMS传感器中断线 | JP1短接有效 |
扩展PIN3 | PA4 | JP2短接有效 | |
扩展PIN6 | PA5 | ||
扩展PIN5 | PA15 | AIN5 | |
扩展PIN7 | PA14 | AIN4 | |
扩展PIN9 | PA13 | AIN3 | |
USB | PA11 | USB1_D- | |
PA12 | USB1_D+ |
2.3 CH573
- 32位RISC处理器
- 支持RV32 IMAC指令集,支持单周期乘法和硬件除法
- 内置18K SRAM,512K Flash ROM,支持ICP、ISP和IAP,支持OTA无线升级
- 集成2.4GHz RF收发器和基带及链路控制,提高优化的协议栈和应用层API,支持组网
- 支持3.3V和2.5V电源,内置DC/DC转换,0dBm发送功率时电流为6mA
- 多种低功耗模式:Idle,Halt, Sleep, Shutdown, 内置电池电压低压监控,最低睡眠电流0.3uA
- 内置USB控制器和USB收发器,支持USB2.0全速和低速主机或设备
- 内置实时时钟RTC,支持定时和触发两种模式
- 提供8通道12位ADC模数转换器,支持8通道触摸按键
- 提供4组26位定时器,支持捕捉/采样,支持4路26位PWM输出,支持6路8位PWM输出
- 提供4组独立UART,兼容16C550,最高通讯波特率可达6Mbps
- 提供1组SPI,内置FIFO,支持Master和Slave模式
- 内置温度传感器
- 提供20个GPIO,其中4个支持5V信号输入,所有GPIO支持中断和唤醒功能
- 内置AES-128加解密单元,芯片唯一ID
- 封装:QFN28_4X4
3. 开发环境
支持 MounRiver Studio (MRS)。
MRS 的介绍和软件资源在:MRS 官网
3.1 firmware
例程
文件目录
|
|-- CH573: 低功耗蓝牙 - 32位RISC-V内核微控制器
| |
| |-- EVT: CH573相关例程
| | |-- EXAM:
| | | |-- SRC
| | | | |-- Ld:link文件
| | | | |-- RVMSIS:内核系统头文件
| | | | |-- Startup:CH57x系列启动文件
| | | | |-- StdPeriphDriver:基本外设驱动源文件及头文件
| | | |-- ADC:adc采样例程,包括温度检测、单通道检测、差分通道检测、TouchKey检测、中断方式采样
| | | |-- FLASH:片上flash例程:包括Code区,DataFlash区的擦/读/写
| | | |-- IAP
| | | | |-- APP:和IAP配套使用的APP程序例程
| | | | |-- USB_IAP:通过USB更新片上程序的例程
| | | | |-- UART_IAP:通过串口更新片上程序的例程
| | | | |-- WCHMcuIAP_WinAPP:IAP上位机工具及源码
| | | |-- PM:系统睡眠模式并唤醒例程:GPIOA_5作为唤醒源,共4种功耗等级
| | | |-- PWMX:PWM4-11输出功能例程
| | | |-- SPI0:SPI0例程,Master/Slave 模式数据收发
| | | |-- TMR:定时器功能例程
| | | |-- UART1:串口1收发例程
| | | |-- USB
| | | | |-- Device
| | | | | |-- COM:USB模拟CDC设备例程
| | | | | |-- VendorDefinedDev:模拟自定义USB设备(CH372设备)例程,提供8个非0通道(上传+下传),实现数据先下传,然后数据内容取反上传
| | | | | |-- CompoundDev:USB模拟键鼠例程,支持增加数据上传;USB唤醒功能,USB HID类命令。
| | | | | |-- HID_CompliantDev:USB模拟HID兼容设备例程
| | | | |-- Host
| | | | | |-- HostEnum:USB常见设备hid键鼠,hub的枚举数据上下传演示等
| | | | | |-- HostAOA:USB主机应用例子,支持连接安卓设备与APP进行通讯。
| | | | | |-- U_DISK:U盘文件系统示例
| | | | | | |-- EXAM1.C:C示例源程序,以字节为单位读写文件,包括文件创建、删除、修改文件属性,修改文件名
| | | | | | |-- EXAM10.C:C示例源程序,包括文件创建、删除、修改文件属性,修改文件名
| | | | | | |-- EXAM11.C:C示例源程序,枚举根目录或者指定目下的文件
| | | | | | |-- EXAM13.C:C示例源程序,创建长文件名文件
| | | | | |-- USB_LIB:U盘文件系统库文件
| | | |-- BLE
| | | | |-- Broadcaster:广播者角色例程,处于广播态一直广播
| | | | |-- CyclingSensor:骑行传感器例程,连接主机后定时上传速度和踏频
| | | | |-- CentPeri:主从一体例程,整合了主机例程和从机例程的功能同时运行
| | | | |-- Central:主机例程,主动扫描周围设备,连接至给定的从机设备地址,寻找自定义服务及特征,执行读写命令,需与从机例程配合使用,并将从机设备地址修改为该例程目标地址,默认为(84:C2:E4:03:02:02)
| | | | |-- HeartRate:心率计例程,连接主机后定时上传心率
| | | | |-- Peripheral:外设从机角色例程,自定义包含五种不同属性的服务,包含可读、可写、通知、可读可写、安全可读
| | | | |-- RunningSensor:跑步传感器例程,连接主机后定时上传速度
| | | | |-- HID_Keyboard:蓝牙键盘例程,模拟键盘设备,连接主机后定时上传键值
| | | | |-- HID_Mouse:蓝牙鼠标例程,模拟鼠标设备,连接主机后定时上传键值
| | | | |-- HID_Consumer:蓝牙拍照器例程,模拟用户控制设备,连接主机后定时上传音量键下键
| | | | |-- HID_Touch:蓝牙触摸例程,模拟触摸笔设备,连接主机后定时上传触摸值
| | | | |-- MultiCentPeri:多主机多从机例程,支持同时连接三个主机三个从机
| | | | |-- MultiCentral:主机多连接例程,主动扫描周围设备,连接至给定的三个从机设备地址,寻找自定义服务及特征,执行读写命令,需与从机例程配合使用,并将从机设备地址修改为该例程目标地址,三个从机设备地址默认为 (84:C2:E4:03:02:02)、(84:C2:E4:03:02:03)、(84:C2:E4:03:02:04)
| | | | |-- Observer:观察者角色例程,定时扫描,如果扫描结果不为空,则打印扫描到的广播地址
| | | | |-- Direct_Test_Mode:DTM测试例程序,结合RF测试工具使用
| | | | |-- RF_PHY:非标准无线收发例程
| | | | |-- RF_PHY_Hop:非标准无线跳频收发例程
| | | | |-- MESH
| | | | | |-- adv_ali_light:天猫精灵灯例程,可通过天猫精灵找队友配网设备,控制开关状态。默认只有开关属性,如需添加其余属性(亮度,电量,温度等),需要自行根据阿里云产品配置的属性描述添加对应处理函数以及状态上报函数。
| | | | | |-- adv_ali_light_add_lightness:MESH通用属性添加例程。天猫精灵灯例程的基础上,添加了亮度属性,用于对照原天猫精灵灯例程,快速熟悉添加其他MESH通用属性的方法。
| | | | | |-- adv_ali_light_add_windspeed:天猫定义属性添加例程。天猫精灵灯例程的基础上,添加了风速属性,用于对照原天猫精灵灯例程,快速熟悉添加其他天猫定义属性的方法。
| | | | | |-- adv_ali_light_multi_element:多元素天猫精灵风扇灯例程。同时包含风扇开关摇头和灯开关颜色控制。用于对照原天猫精灵灯例程,快速熟悉添加多个属性的方法。
| | | | | |-- adv_ali_light_with_peripheral:天猫精灵灯例程的基础上,添加亮度和色温控制,并支持手机BLE调试助手连接控制。
| | | | | |-- adv_proxy:代理节点例程,可通过PB_GATT层(BLE连接)进行配网。
| | | | | |-- adv_vendor:厂商自定义模型例程,配合self_provisioner_vendor使用,支持有应答传输和无应答透传两种通信属性,自行拟定通信协议。
| | | | | |-- adv_vendor_friend:厂商自定义模型例程的基础上,支持朋友节点功能
| | | | | |-- adv_vendor_low_power:厂商自定义模型例程的基础上,支持低功耗节点功能,需与朋友节点配合使用
| | | | | |-- adv_vendor_self_provision:厂商自定义模型例程的基础上,支持本地自配网,适配无配网者或简化配网流程等特殊应用场景
| | | | | |-- adv_vendor_self_provision_with_peripheral:厂商自定义模型例程的基础上,支持手机BLE调试助手连接控制,通过BLE接收配网信息并将自身配网,适用于终端控制组网应用,可自行拟定通信协议实现手机控制mesh网络中所有设备。
| | | | | |-- self_provisioner_vendor:厂商自定义模型自配网发起者例程,配合adv_vendor使用,自动配网周围未配网设备,并将其加入自身mesh网络,默认支持配网6个设备。默认配置设备绑定1个APPKEY,用于有应答传输和无应答透传,配置设备绑定1个订阅地址,用于群发无应答消息
| | | | | |-- self_provisioner_vendor_with_peripheral:厂商自定义模型自配网发起者例程的基础上,支持手机BLE调试助手连接控制,中转手机与mesh网络的通信,可自行拟定通信协议实现手机控制mesh网络中所有设备。
| | | | | |-- MESH_LIB:MESH协议栈库文件及其头文件
| | | | | |-- 沁恒低功耗蓝牙MESH软件开发参考手册.pdf
| | | | |-- LWNS:LWNS无线组网例程,包含broadcast、unicast、netflood、mesh等功能。
| | | | |-- BackupUpgrade_IAP:备份无线升级IAP例程,检测当前代码标志,判断是否搬运备份区代码到用户区并运行用户区代码
| | | | |-- BackupUpgrade_JumpIAP:备份无线升级跳转IAP例程,放在代码起始地址,负责跳转到IAP程序
| | | | |-- BackupUpgrade_OTA:备份无线升级用户例程,外设从机例程基础上添加OTA功能,可将升级固件保存到备份区后跳转IAP程序进行升级
| | | | |-- OnlyUpdateApp_IAP:固定库无线升级IAP例程,具备OTA功能,接收升级固件后对用户区代码进行升级
| | | | |-- OnlyUpdateApp_JumpIAP:固定库无线升级跳转IAP例程,放在代码起始地址,负责跳转到IAP程序
| | | | |-- OnlyUpdateApp_Peripheral:固定库无线升级用户例程,外设从机例程基础上添加跳转IAP程序进行后续升级的功能
| | | | |-- BLE_UART:蓝牙串口透传例程,详细说明参考根目录<说明.txt>文档
| | | | |-- BLE_USB:蓝牙与USB合用例程,USB模拟340设备转发蓝牙数据
| | | | |-- SpeedTest_Central:蓝牙测速主机例程
| | | | |-- SpeedTest_Periphera:蓝牙测速从机例程
| | | | |-- HAL:例程共用的硬件相关文件
| | | | |-- LIB:BLE协议栈库文件及其头文件
| | | | |-- 沁恒低功耗蓝牙软件开发参考手册.pdf
| | | | |-- WCH蓝牙空中升级(BLE OTA).PDF
| | | | |-- BLE认证证书:产品:WCH CH57x QDID:135567
| | | | : 运动传感解决方案
| | | | |-- ICM40607_AttitudeAngle:输出原始数据/四元数/欧拉角, 在上位机上展示
| | | | |-- ICM40607_WakeonMotion: (基于硬件寄存器)运动唤醒功能
| | | | |-- ICM40607_PedometerFeature:计步器功能 【正在开发中...】
| | | | |-- ICM40607_RaisetowakeFeature:抬起唤醒功能 【正在开发中...】
| | | | |-- ICM40607_TiltFeature:倾斜功能 【正在开发中...】
| | | | |-- ICM40607_Freefall:自由跌落功能 【正在开发中...】
| | | | |-- ICM40607_TapFeature:敲击功能 【正在开发中...】
| | | | |-- QMI8658_AttitudeAngle:输出原始数据/四元数/欧拉角, 在上位机上展示 【正在开发中...】
| | | | : 更多应用方案
| | | | |--
| | | | |-- PocketMultimeter:袖珍万用表 【正在开发中...】
| | | | |-- wristband:手表 【正在开发中...】
| | | | |-- OLED_Demo:OLED 图形库显示动态效果
3.2 开发资源
- CH573 介绍页面 (WCH)
- CH573 沁恒官方例程
- CH573 芯片手册 (WCH)
4. 视频展示
4.1 静止状态下1分钟零偏测试
静止1分钟零偏测试
4.2 加速度计输出重力加速度&陀螺仪输出角速率
3轴重力加速度-3陀螺仪角速度输出
4.3 3D 欧拉角输出
最优角度