# ICM45686陀螺仪模块 **Repository Path**: jiangxun/icm45686-gyroscope-module ## Basic Information - **Project Name**: ICM45686陀螺仪模块 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-06 - **Last Updated**: 2026-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ICM-45686 六轴 IMU 模块 基于 TDK InvenSense ICM-45686 的六轴惯性测量模块开源工程,包含硬件生产资料、BOM,以及适用于 MSPM0、STM32 和 Arduino 的 I2C/SPI 示例。 > 本仓库适合用于模块打样、传感器通信验证和嵌入式项目移植。示例程序输出加速度、角速度与温度数据,不包含完整姿态融合算法。 ## 项目内容 - 15.2 mm × 12.7 mm 四层模块板 - ICM-45686 三轴陀螺仪与三轴加速度计 - 支持 I2C、SPI 通信 - 提供原理图、BOM 和 Gerber 生产文件 - 提供 MSPM0G3507、STM32F103、STM32F407 和 Arduino 示例 - 支持普通串口文本输出与 JYTech AHRS Studio 二进制输出 ## 在线资料 - [立创开源硬件平台:ICM-45686 原理图与 PCB 工程](https://oshwhub.com/sheemia/project_ngmuvyoo) - [模块测试视频(占位链接,待更新)](https://www.bilibili.com/video/BVxxxxxxxxxx) ## 仓库结构 ```text . ├── Hardware/ │ ├── BOM_Board1_Schematic1.xlsx # 物料清单 │ ├── Gerber_PCB1.zip # PCB 生产文件 │ └── SCH_Schematic1.pdf # 原理图 ├── Software/ │ ├── 纯串口输出/ # 串口输出可读文本 │ ├── JYTech上位机输出/ # 输出上位机可解析的二进制帧 │ └── README.md # 示例工程与数据帧说明 ├── 上位机/ │ ├── JYTechAhrsStudio_v1.2.0_Setup.exe │ └── JYTech_AHRS_Studio_上位机通讯协议_V1.0.pdf ├── .gitignore # Git 忽略规则 └── README.md ``` ## 支持平台 | 平台 | 开发环境 | 通信接口 | | --- | --- | --- | | MSPM0G3507 | Code Composer Studio | I2C、SPI | | MSPM0G3507 | Keil MDK | I2C、SPI | | STM32F103 | Keil MDK | I2C、SPI | | STM32F407 | Keil MDK / HAL | 以工程配置为准 | | Arduino | Arduino IDE | I2C | 每个 MCU 子工程均包含完整工程文件。具体接线、工程导入方式和引脚配置请查看对应子目录中的 `README.md`。 ## 引脚说明 模块背面丝印标出了以下 10 个引脚: | 模块引脚 | 功能 | 接线说明 | | --- | --- | --- | | VIN | 电源输入 | 连接 3.3 V 电源 | | GND | 电源地 | 与主控共地 | | AD0 / MISO | I2C 地址选择 / SPI 数据输出 | I2C 模式为 `AD0`,SPI 模式连接主控 `MISO` | | SDA / MOSI | I2C 数据 / SPI 数据输入 | I2C 模式连接 `SDA`,SPI 模式连接主控 `MOSI` | | SCL / SCLK | I2C / SPI 时钟 | I2C 模式连接 `SCL`,SPI 模式连接主控 `SCLK` | | CS | SPI 片选 | SPI 模式低电平有效;I2C 模式保持高电平 | | ASD | 辅助 I2C 数据 | ICM-45686 辅助传感器总线数据线,不使用时可悬空 | | ASL | 辅助 I2C 时钟 | ICM-45686 辅助传感器总线时钟线,不使用时可悬空 | | INT1 | 中断输出 1 | 可配置为数据就绪等中断信号 | | INT2 | 中断输出 2 | 可配置中断信号 | > 模块使用 3.3 V 逻辑电平。接线前请同时核对原理图和所选示例工程中的 GPIO 配置,不要直接接入 5 V 电平。 ## 快速开始 ### 1. 准备硬件 你可以直接使用成品模块,也可以使用以下文件自行打样: - [`Hardware/Gerber_PCB1.zip`](Hardware/Gerber_PCB1.zip):提交给 PCB 厂商的生产文件 - [`Hardware/BOM_Board1_Schematic1.xlsx`](Hardware/BOM_Board1_Schematic1.xlsx):元器件清单 - [`Hardware/SCH_Schematic1.pdf`](Hardware/SCH_Schematic1.pdf):原理图 ICM-45686 采用底部焊盘封装,建议使用钢网、回流焊和可靠的贴装工艺。焊接后应先检查电源是否短路,再连接主控。 如果需要购买已焊接、可直接使用的成品模块,可以在淘宝搜索店铺:**JYTech**。 ### 2. 选择示例 进入 [`Software/`](Software/) 后,根据需要选择输出方式: - `纯串口输出/`:适合首次上电、检查接线和观察传感器数据; - `JYTech上位机输出/`:适合连接 JYTech AHRS Studio,串口发送固定长度二进制帧。 然后按主控、开发环境和通信接口继续选择子工程。例如: ```text Software/纯串口输出/ ├── MSPM0/ │ ├── CCS/ │ └── KEIL/ ├── STM32/ └── icm45686.ino ``` ### 3. 编译与下载 1. 按子工程 README 完成模块与开发板接线; 2. 使用对应 IDE 打开工程; 3. 检查芯片型号、下载器和 GPIO 配置; 4. 编译并下载到开发板; 5. 打开串口,使用 `115200 8N1` 接收数据。 首次调试建议从“纯串口输出”版本开始。确认传感器数据正常后,再切换到上位机版本。 ## 串口输出 ### 纯串口模式 默认输出以下可读数据: - 三轴加速度,单位 `mg` - 三轴角速度,单位 `°/s` - 温度,单位 `°C`(Arduino 示例除外) 该模式可直接使用常见串口助手查看。 ### JYTech 上位机模式 该模式连续发送 56 字节二进制帧,不能使用串口助手的文本模式判断数据是否正常,否则看到的会是乱码。上位机中应选择 **ICM45686** 产品类型。 当前示例只上传传感器数据,Roll、Pitch、Yaw 字段固定为 `0`,并不代表已经完成姿态解算。数据帧字段、校验方式及各工程默认输出频率详见 [`Software/README.md`](Software/README.md)。 配套文件位于 [`上位机/`](上位机/): - [`JYTechAhrsStudio_v1.2.0_Setup.exe`](上位机/JYTechAhrsStudio_v1.2.0_Setup.exe):Windows 上位机安装包; - [`JYTech_AHRS_Studio_上位机通讯协议_V1.0.pdf`](上位机/JYTech_AHRS_Studio_上位机通讯协议_V1.0.pdf):完整通讯协议文档。 ## 移植提示 移植到其他 MCU 时,建议保留官方驱动层,只适配以下平台接口: - SPI/I2C 寄存器读写; - 毫秒或微秒延时; - 片选与中断 GPIO; - 串口输出(如果需要)。 修改加速度计或陀螺仪量程后,必须同步修改原始数据换算系数。使用 SPI 时还需确认 SPI 模式、最高时钟频率和片选时序符合数据手册要求。 ## 常见问题 ### 无法读取传感器 依次检查: 1. 供电和逻辑电平是否为 3.3 V; 2. GND 是否共地; 3. 使用的示例是否与 I2C/SPI 接线一致; 4. I2C 地址或 SPI 片选引脚是否配置正确; 5. 焊接是否存在虚焊、连锡或器件方向错误。 ### 串口显示乱码 - 纯串口版本:检查串口是否为 `115200 8N1`; - 上位机版本:这是二进制数据,不能按文本显示,请使用配套上位机; - 不要在上位机数据流中混入 `printf`、`Serial.print` 等调试文本。 ### 数据静止时仍有零偏 MEMS 传感器存在零偏和温漂属于正常现象。高精度应用应在设备静止时进行零偏标定,并根据使用环境进行温度补偿。 ## 参与贡献 欢迎通过 Gitee Issue 反馈以下内容: - 无法复现的接线或编译问题; - 新平台的移植工程; - 驱动缺陷与修复; - 文档改进建议。 提交问题时,请尽量附上主控型号、通信方式、使用的子工程、接线图和完整报错信息。 ## 开源许可 本项目采用分级授权: - **硬件参考设计(Hardware Design)**:基于 `CC BY-NC-SA 4.0` 协议开源。允许个人学习与学术比赛免费使用;未经 JYTech 书面授权,严禁任何形式的商业制造、销售或倒卖。 - **底层驱动源码(Firmware Driver)**:基于 `MIT License` 开源。允许集成至个人或商业项目中,但须遵守 MIT License 的版权声明保留要求。 上述授权仅适用于 JYTech 拥有著作权的原创内容。仓库中的 TDK InvenSense 驱动、CMSIS、芯片厂商库及其他第三方代码仍适用各自的许可条款;使用和再发布时请保留原始版权及许可声明。 如需获得硬件设计的商业授权或进行批量采购,请联系 **sheemia**。 --- 如果这个项目对你有帮助,欢迎 Star、提交 Issue,或分享你的移植与应用案例。