模块介绍
根据2025 Make Blocks第三期任务4,来设计一款IMU模块扩展板,IMU芯片选择ST的LSM6DSO16IS,内置三轴数字加速度计和三轴数字陀螺仪,还包括温度传感器。LSM6DSO16IS内嵌意法半导体的一款新型处理器件ISPU(智能传感器处理单元),支持依赖传感器数据的实时应用。
模块框图
LSM6DSO16IS芯片一共有14个引脚,其中包含供电和GND,I2C和SPI通信引脚,还包括数字电压、模式选择等外部配置引脚,有INT1和INT2,一个内部中断输出,一个外部中断输入引脚。
使用一个6p2.54mm间距的排针,可兼容4针的OLED屏幕引脚,进行快速连接。使用一个4p2.54mm间距的排针,方便在使用SPI通信时的连接。

模块设计思路

H1为6p的2.54mm排针,H2为4p的2.54mm排针,H1兼容OLED屏幕四针插座,H2方便SPI输出时的连接
U1是IMU模块,ST的LSM6DSO16IS,VDD引脚采用10uF和100nF的电容进行滤波
为方便兼容不同的板卡,I2C可通过0603跳线电阻进行连接,更改SDA和SCL方向
所有的数据引脚,均连接到上下拉电阻中,实现三个焊盘选两个,可进行上拉或者下拉的操作
PCB设计选用2层板,进行大面积铺铜
PCB中绘制2025 Make Blocks的文本

debug过程
STM32CubeMX V6.14.1
STM32Cube FW_H5 V1.5.0
MDK-ARM V536
板卡:STM32H503RB-nucleo
ST对于自家传感器的软件适配做的十分优秀,传感器的驱动代码在GitHub上,通过弱定义的收发函数,来方便用户驱动起来传感器。
在MDK-ARM中新建IMU文件夹,添加文件包含路径


局部定义一个写函数和一个读函数

stmdev_ctx_t是结构体,包含传感器驱动所需的相关参数
最后在while循环中添加一个闪烁LED灯的

本工程从H503的flash读写工程上新建的,上电后会完成一次flash的擦写
之后打印LSM6DSO_WHO_AM_I的值和传感器的ID

心得体会(包括意见或建议)
IMU小传感器 焊接还是比较有挑战性的