一、所选主题和项目介绍
本项目的方向是感知方向——智能家居和无需——蓝牙方向的结合项目
本项目设计并实现了一个极致尺寸、低功耗的无线运动感知平台。通过集成 STM32WB09KE (支持 BLE 5.4) 与高性能 6轴惯性测量单元 (IMU) LSM6DSO,实现对物体姿态和运动轨迹的实时监测。该设计可广泛应用于可穿戴设备、无人机姿态反馈及物联网传感器节点。
二、使用到的所有硬件介绍
1. 核心控制器:STM32WB09FETTR
- 封装:VFQFPN-32_L5.0-W5.0-P0.50-TL-EP3.5
- 核心:ARM Cortex-M0 + 内核,最高主频 64MHz
- 无线:集成蓝牙 5.3 低功耗 (BLE) 控制器,支持 2Mbps、1Mbps、500kbps、125kbps 多种速率
- 存储:256KB Flash,24KB SRAM
- 外设:多个 GPIO、SPI、I2C、UART、ADC、RTC 等
- 功耗:深度睡眠模式下电流低至 0.5μA,非常适合电池供电应用
2. MEMS 传感器:LSM6DSO32TR
- 封装:LGA-14_L3.0-W2.5-P0.50-TL
- 功能:3 轴加速度计 + 3 轴陀螺仪六轴传感器
- 加速度量程:±2/±4/±8/±16/±32g
- 陀螺仪量程:±125/±250/±500/±1000/±2000dps
- 接口:支持 SPI 和 I2C 两种通信接口
- 功耗:高性能模式下电流约 0.6mA,低功耗模式下电流约 10μA
- 特点:内置温度传感器,支持运动检测、自由落体检测、敲击检测等多种中断功能
3. 电源管理芯片:ADP171AUJZ-R7
- 封装:SOT-23-5_L3.0-W1.6-P0.95-LS2.8-BR
- 类型:低压差线性稳压器 (LDO)
- 输入电压:2.2V~5.5V
- 输出电压:固定 1.8V
- 输出电流:最大 150mA
- 静态电流:典型值仅 1.2μA,关断电流 < 0.1μA
- 压差:100mA 负载下仅 120mV
- 特点:内置过流保护、过热保护和反向电流保护,符合工业级温度范围 (-40℃~+125℃)
4. 其他关键硬件
- 电池座:BAT-SMD_CR1220-2ZX,支持 CR1220 纽扣电池
- 晶振:32MHz 主晶振 (CRYSTAL-SMD_4P-L1.6-W1.2-BL) 和 32.768kHz RTC 晶振 (CRYSTAL-SMD_L1.7-W1.1)
- RF 滤波器:FILTER-SMD_6P-L1.6-W1.0-P0.50-BL,用于蓝牙射频信号滤波
- 电感:L1 (22nH) 用于 RF 匹配,L2 (10uH) 用于电源滤波
- 排针:两个 12P 直插排针 (H2、H3),提供 SWD 调试、UART 通信和 GPIO 扩展接口
- 板载天线:倒 F 型 PCB 天线,集成在 PCB 顶层
三、方案框图和项目设计思路介绍
1. 系统方案框图

2. 项目核心亮点
2.1 极致功耗:1.8V 域与 SMPS 电源架构
- 低压运行环境: 整个系统(MCU 与传感器)运行在 1.8V 电源域,而非传统的 3.3V,显著降低了系统的动态功耗 。
- 高效转换链路: 巧妙利用 WB09 内部的 SMPS (开关电源) 电路,通过外部电感 L1 (22nH) 和 L2 (10uH) 实现高效电压转换 。相比线性降压 (LDO),这种架构在蓝牙发射阶段能节省 20-30% 的电能,极大延长了电池寿命。
2.2 射频与干扰控制:多级滤波矩阵
- 集成射频前端: 放弃了繁琐的离散电感电容匹配,采用专用滤波器 FL1,有效抑制高频谐波干扰。
- 精密去耦阵列: 在电源总线上部署了从 0.9pF 到 4.7uF 的跨量级滤波电容(如 C20、C16),有效隔离射频发射时的浪涌电流对传感器数据的干扰 。
2.3 协议灵活性:物理级硬跳线设计
- 通信协议切换: 通过 R3、R4 零欧姆电阻 的焊接组合,可物理锁定通信模式 。
- I2C 模式: 焊接 R3 (拉高 CS 引脚) 以锁定 I2C 通信,此时通过 R2 可配置从机地址为 0x6A 或 0x6B。
- SPI 模式: 焊接 R4 以启用 PA9/NSS 引脚进行片选控制。
- 电源设计:采用 CR1220 纽扣电池作为唯一电源,通过低静态电流 LDO 转换为 1.8V 为整个系统供电。电源入口处增加大容量滤波电容,确保电源稳定。
- 核心控制:选用 STM32WB09 作为主控制器,它集成了 Cortex-M0 + 内核和蓝牙 5.3 控制器,单芯片实现了数据采集和无线传输功能,大大简化了电路设计,降低了系统功耗和成本。
- 传感器接口:LSM6DSO32 通过 SPI 接口与 STM32WB09 连接,相比 I2C 接口,SPI 具有更高的通信速率,适合高速采集传感器数据。同时保留了 I2C 接口的兼容性,可通过电阻配置切换。
- 无线通信:STM32WB09 内置蓝牙 5.3 控制器,通过 RF 匹配电路连接到板载倒 F 天线。RF 匹配电路采用 π 型匹配网络,确保天线与射频前端的阻抗匹配,提高通信距离和可靠性。
- 调试与扩展:设计了两个 12P 排针,提供 SWD 调试接口、UART 串口、复位引脚和多个 GPIO,方便程序下载、调试和后续功能扩展。
- 低功耗设计:整个系统采用 1.8V 低电压供电,所有芯片都选用低功耗型号。软件上通过合理配置 STM32WB09 的低功耗模式,在不采集数据时进入深度睡眠状态,最大限度延长电池寿命。
四、原理图和 PCB 展示及介绍
1. 原理图展示与介绍

原理图分为以下几个主要模块:
- 电源模块:VIN 输入经过 C2 滤波后进入 U3 (DS8972-1855) 的 VIN 引脚,EN 引脚通过 R1 上拉使能 LDO,输出 VDD1V8 为整个系统供电。输出端并联 C4 (1uF) 和 C3 (100nF) 滤波电容。
- 主控制器模块:STM32WB09FETTR 的最小系统电路,包括电源去耦电容、复位电路、32MHz 主晶振电路和 32.768kHz RTC 晶振电路。
- MEMS 传感器模块:LSM6DSO32 通过 SPI 接口与主控制器连接,CS、SCK、MOSI、MISO 引脚分别连接到主控制器的 PA9、PB3、PA11、PA8 引脚。INT1 和 INT2 中断引脚分别连接到 PB15 和 PA10。
- RF 匹配电路:主控制器的 RF 引脚经过 C14 耦合电容、FL1 RF 滤波器、R7、R6、C20、C21 组成的 π 型匹配网络,连接到板载天线 ANT1。
- 接口模块:H2 和 H3 两个 12P 排针,提供 SWD 调试、UART 通信和 GPIO 扩展功能。
2. PCB 展示与介绍

- 版本信息:当前为 V1.0 版本,首次打样
- 层数:双层板设计
- 尺寸:20×20mm(不含排针伸出部分)
- 布局特点:
- 主芯片 U4 和 MEMS 传感器 U2 放置在 PCB 中心位置,缩短了 SPI 通信线路,减少了信号干扰
- 电源模块 U3 和电池座 U1 放置在 PCB 右上角,靠近电源输入引脚
- RF 匹配电路和板载天线放置在 PCB 顶部,远离数字电路,减少电磁干扰
- 所有去耦电容都尽可能靠近对应芯片的电源引脚放置
- 底层主要为 GND 平面,提供良好的接地和屏蔽效果
- 布线特点:
- 高速信号线(SPI、RF)采用短而直的布线方式
- RF 信号线进行了 50Ω 阻抗匹配设计
- 电源线采用较宽的走线,降低压降
- 数字地和模拟地通过 0Ω 电阻单点连接,减少地噪声
3. 打样情况
- 打样次数:1 次(V1.0 版本)
- 工艺参数:FR-4 基材,1.6mm 板厚,1oz 铜厚,绿油白字,无铅喷锡
- 重打原因:目前尚未发现明显问题,待焊接调试后根据实际情况决定是否需要改版
五、调试软件、软件流程图和关键代码介绍
为方便调试这个超小的,特使用了SMT贴片技术,花费不小。由于是券抵扣大部分,所以MCU并没有SMT,而是自己手贴的,结果到手里后发现调试不容易,焊接排针后飞线到F411的nucleo上来调试。但是一直不同,不知道是F411的问题还是啥,代码已在WB09的Nucleo上验证过了。



后测试发现F411外接下载的功能好像不行了。
遂重新绘制一个PCB,使用1.27mm间距的排母,转接成2.54mm间距的排针,同时使用老旧的STLINKV2来辅助调试

1. 调试软件
- IDE:STM32CubeIDE 1.15.0
- 调试器:ST-LINK V2
- 串口调试工具:SecureCRT、串口助手
2. 软件流程图
开始
↓
系统初始化(时钟、GPIO、SPI、UART、RTC)
↓
LSM6DSO32初始化(设置量程、采样率、中断)
↓
蓝牙初始化(设置设备名称、广播参数、服务和特征值)
↓
进入主循环
↓
是否有传感器中断?→ 是 → 读取加速度和角速度数据
↓ ↓
否 ←---------------------- 打包数据并通过蓝牙发送
↓
回到主循环
3. 关键代码片段
c
运行
// LSM6DSO32 SPI初始化
void LSM6DSO32_SPI_Init(void) {
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
HAL_SPI_Init(&hspi1);
}
// LSM6DSO32读取加速度数据
void LSM6DSO32_ReadAccel(int16_t *accel) {
uint8_t buf[6];
LSM6DSO32_ReadReg(LSM6DSO32_OUTX_L_A, buf, 6);
accel[0] = (int16_t)((buf[1] << 8) | buf[0]); // X轴
accel[1] = (int16_t)((buf[3] << 8) | buf[2]); // Y轴
accel[2] = (int16_t)((buf[5] << 8) | buf[4]); // Z轴
}
// 蓝牙发送传感器数据
void BLE_SendSensorData(int16_t *accel, int16_t *gyro) {
uint8_t data[12];
// 打包加速度数据
data[0] = accel[0] & 0xFF;
data[1] = (accel[0] >> 8) & 0xFF;
data[2] = accel[1] & 0xFF;
data[3] = (accel[1] >> 8) & 0xFF;
data[4] = accel[2] & 0xFF;
data[5] = (accel[2] >> 8) & 0xFF;
// 打包陀螺仪数据
data[6] = gyro[0] & 0xFF;
data[7] = (gyro[0] >> 8) & 0xFF;
data[8] = gyro[1] & 0xFF;
data[9] = (gyro[1] >> 8) & 0xFF;
data[10] = gyro[2] & 0xFF;
data[11] = (gyro[2] >> 8) & 0xFF;
// 通过蓝牙特征值发送数据
aci_gatt_update_char_value(acc_gyro_serv_handle, acc_gyro_char_handle, 0, 12, data);
}
六、硬件功能展示图及说明
- 电源指示灯:当 VIN 接入电源时,电源指示灯点亮,指示系统正常供电。
- 蓝牙广播:系统上电后自动开始蓝牙广播,可通过手机蓝牙调试工具搜索到设备名称 "WB09-LSM6"。
- 数据采集与传输:连接蓝牙后,手机端可实时接收加速度和角速度数据,采样率可通过软件配置(最高 1.6kHz)。
- 中断功能:当检测到运动、自由落体或敲击事件时,LSM6DSO32 会产生中断,唤醒主控制器并立即发送事件数据。
- 低功耗模式:在没有数据传输和中断事件时,系统自动进入深度睡眠模式,电流消耗低于 10μA,CR1220 电池可支持连续工作数月。
七、设计中遇到的难题和解决方法
1. 超小尺寸 PCB 布局难题
问题:20×20mm 的 PCB 尺寸非常有限,需要在这么小的空间内放置主芯片、MEMS 传感器、电源芯片、两个晶振、RF 匹配电路和两个 12P 排针,布局难度极大。
解决方法:
- 全部采用 0201、0402、0603 等最小封装的元件
- 将排针放置在 PCB 底部,不占用核心区域
- 合理利用 PCB 空间,将去耦电容放置在芯片周围的空隙处
- 采用双层板设计,底层主要走电源线和地线,顶层走信号线
2. RF 天线设计与匹配难题
问题:板载天线的性能直接影响蓝牙通信距离,在超小尺寸 PCB 上设计高性能天线非常困难。
解决方法:
- 采用成熟的倒 F 型天线设计,天线长度约为 1/4 波长
- 在天线下方挖空 PCB,避免铜箔对天线性能的影响
- 设计 π 型匹配网络,通过调整 R6、R7、C20、C21 的参数,实现 50Ω 阻抗匹配
- 预留 RF 测试点,方便使用网络分析仪进行实际匹配调试
3. 低功耗设计难题
问题:纽扣电池容量有限(CR1220 约 40mAh),需要尽可能降低系统功耗,延长电池寿命。
解决方法:
- 选用低静态电流的 LDO(DS8972-1855 静态电流仅 1.2μA)
- 整个系统采用 1.8V 低电压供电
- 软件上合理配置 STM32WB09 的低功耗模式,在不工作时进入 STOP2 模式
- 关闭不使用的外设时钟,降低系统功耗
- 调整蓝牙广播间隔和连接参数,在性能和功耗之间取得平衡
八、心得体会
1. 设计心得
通过本次 WB09 超小 MEMS 无线节点的设计,我深刻体会到了超小尺寸 PCB 设计的挑战和乐趣。在有限的空间内实现完整的功能,需要对元件封装、布局布线、电磁兼容等方面有深入的理解。同时,低功耗设计也是电池供电设备的关键,需要从硬件和软件两个方面综合考虑。
2. 存在的问题与改进建议
- 问题 1:当前版本使用了两个 12P 直插排针,占用了较多的 PCB 空间,并且增加了节点的厚度。
改进建议:可以考虑使用贴片排针或者邮票孔设计,进一步减小节点的体积和厚度。 - 问题 2:板载天线的性能还有提升空间,在有遮挡的环境下通信距离较短。
改进建议:可以优化天线的形状和尺寸,或者使用外置天线接口,根据实际应用场景选择合适的天线。 - 问题 3:当前版本没有设计电池保护电路,电池过放电可能会影响电池寿命。
改进建议:可以增加一个简单的电池电压检测电路,当电池电压低于阈值时,系统自动进入关机状态。 - 问题 4:MEMS 传感器没有进行减震设计,在高振动环境下可能会影响测量精度。
改进建议:可以在传感器下方增加减震垫,或者使用减震封装的传感器。
3. 总结
本次项目成功设计了一款基于 STM32WB09 和 LSM6DSO32 的超小 MEMS 无线节点,实现了加速度和角速度的采集与蓝牙无线传输功能。该节点体积小、功耗低、功能完整,具有很高的实用价值。通过本次设计,我不仅提高了自己的硬件设计能力,也对低功耗无线传感网络有了更深入的理解。在未来的工作中,我将继续优化设计,进一步提高节点的性能和可靠性。