FastBond4挑战部分-基于STM32WB09的超小MEMS节点
该项目使用了STM32WB09,实现了超小MEMS节点的设计,它的主要功能为:板载电池、MEMS传感器。
标签
嵌入式系统
STM32WB09
L&T
更新2026-07-06
13
KiCad文件
全屏

一、所选主题和项目介绍

本项目的方向是感知方向——智能家居和无需——蓝牙方向的结合项目

本项目设计并实现了一个极致尺寸、低功耗的无线运动感知平台。通过集成 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

ADP171AUJZ得捷链接

  • 封装: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. 系统方案框图


image.png

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 引脚进行片选控制。
  1. 电源设计:采用 CR1220 纽扣电池作为唯一电源,通过低静态电流 LDO 转换为 1.8V 为整个系统供电。电源入口处增加大容量滤波电容,确保电源稳定。
  2. 核心控制:选用 STM32WB09 作为主控制器,它集成了 Cortex-M0 + 内核和蓝牙 5.3 控制器,单芯片实现了数据采集和无线传输功能,大大简化了电路设计,降低了系统功耗和成本。
  3. 传感器接口:LSM6DSO32 通过 SPI 接口与 STM32WB09 连接,相比 I2C 接口,SPI 具有更高的通信速率,适合高速采集传感器数据。同时保留了 I2C 接口的兼容性,可通过电阻配置切换。
  4. 无线通信:STM32WB09 内置蓝牙 5.3 控制器,通过 RF 匹配电路连接到板载倒 F 天线。RF 匹配电路采用 π 型匹配网络,确保天线与射频前端的阻抗匹配,提高通信距离和可靠性。
  5. 调试与扩展:设计了两个 12P 排针,提供 SWD 调试接口、UART 串口、复位引脚和多个 GPIO,方便程序下载、调试和后续功能扩展。
  6. 低功耗设计:整个系统采用 1.8V 低电压供电,所有芯片都选用低功耗型号。软件上通过合理配置 STM32WB09 的低功耗模式,在不采集数据时进入深度睡眠状态,最大限度延长电池寿命。

四、原理图和 PCB 展示及介绍

1. 原理图展示与介绍

屏幕截图 2026-05-31 212709.png

原理图分为以下几个主要模块:

  • 电源模块: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 展示与介绍

屏幕截图 2026-05-31 212725.png

  • 版本信息:当前为 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上验证过了。

20260531_213333.jpg20260531_213259.jpg

image.png

后测试发现F411外接下载的功能好像不行了。

遂重新绘制一个PCB,使用1.27mm间距的排母,转接成2.54mm间距的排针,同时使用老旧的STLINKV2来辅助调试

IMG_20260624_232848.jpg

1. 调试软件

  • IDE:STM32CubeIDE 1.15.0
  • 调试器:ST-LINK V2
  • 串口调试工具:SecureCRT、串口助手

2. 软件流程图


开始

系统初始化(时钟、GPIOSPIUARTRTC

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);
}

六、硬件功能展示图及说明


  1. 电源指示灯:当 VIN 接入电源时,电源指示灯点亮,指示系统正常供电。
  2. 蓝牙广播:系统上电后自动开始蓝牙广播,可通过手机蓝牙调试工具搜索到设备名称 "WB09-LSM6"。
  3. 数据采集与传输:连接蓝牙后,手机端可实时接收加速度和角速度数据,采样率可通过软件配置(最高 1.6kHz)。
  4. 中断功能:当检测到运动、自由落体或敲击事件时,LSM6DSO32 会产生中断,唤醒主控制器并立即发送事件数据。
  5. 低功耗模式:在没有数据传输和中断事件时,系统自动进入深度睡眠模式,电流消耗低于 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 无线节点,实现了加速度和角速度的采集与蓝牙无线传输功能。该节点体积小、功耗低、功能完整,具有很高的实用价值。通过本次设计,我不仅提高了自己的硬件设计能力,也对低功耗无线传感网络有了更深入的理解。在未来的工作中,我将继续优化设计,进一步提高节点的性能和可靠性。

附件下载
WB09&LSM6DSO-KICAD.zip
ProPrj_D-09-WB09_LSM6DSO_2026-05-10.kicad_pcb
ProPrj_D-09-WB09_LSM6DSO_2026-05-10.kicad_sch
WB09_LSM6DSO.zip
团队介绍
独立完成
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号