根据微雪电子的【10轴传感器 ICM20948 3轴加速度/陀螺仪/磁力计】设计
使用I2C总线通信最高400KHz
ICM20948 巨贵无比(115一颗)请谨慎购买、焊接
另有低成本版本可供选择:MPU9250 低成本 十轴传感器(磁力计 陀螺仪 加速度计) - 嘉立创EDA开源硬件平台 (oshwhub.com)
链接:原装正品 ICM-20948 I2948 封装QFN-24 9轴加速度陀螺仪 ic 芯片 (1688.com)
微雪官方售价:¥370.67
本工程成本价:¥164.51
供电范围:3.3V~5V(内部低压差稳压)
加速度计特性:
分辨率:16位
量程(可选):±2、±4、±8、±16g
工作电流:68.9uA
陀螺仪特性:
分辨率:16位
量程(可选):±250、±500、 ±1000、±2000°/sec
工作电流:1.23mA
磁力计特性:
分辨率:16位
量程:±4900µT
工作电流:90uA
气压高度计特性:
气压分辨率:0.0016hPa
温度分辨率:0.01°C
量程:300~1100hPa(海拔高度:+9000m ~ -500m)
气压相对精度(700hPa~900hPa,25°C~40°C):±0.12hPa(±1m)
工作电流(1Hz更新速率,超低功耗模式):2.8uA
接口说明
引脚号
标识
描述
1
VCC
3.3V~5.5v电源
2
GND
电源地
3
SDA
I2C 数据线
4
SCL
I2C 时钟线
5
INT
ICM20948数字中断输出
6
FSYNC
ICM20948帧同步信号
ICM20948支持多种量程,包括±2g、±4g、±8g、±16g,在示例程序中采用的是±2g,如果需要更改量程,可以通过修改
寄存器,下图为datasheet中寄存器取值与量程的对应关系:
以STM32示例代码为例,±2g在代码中设置方法如下:
I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_ACCEL_CONFIG,
REG_VAL_BIT_ACCEL_DLPCFG_6 | REG_VAL_BIT_ACCEL_FS_2g | REG_VAL_BIT_ACCEL_DLPF);
如果需要修改为±8g,做如下修改即可:
I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_ACCEL_CONFIG,
REG_VAL_BIT_ACCEL_DLPCFG_6 | REG_VAL_BIT_ACCEL_FS_8g | REG_VAL_BIT_ACCEL_DLPF);
不同量程时,从传感器寄存器读出的原始值,需要除以相应的转换系数,即可转换为单位为g的加速度,下表各量程对应的系数值:
当量程为±2g, 传感器原始值/16384即可得到单位为g的加速度值。
角速度传感器
角速度传感器得到的数值为绕各坐标轴旋转的角速度,当旋转方向与坐标轴标注方向相同时为正,旋转方向与坐标轴标注方向相反时为负。角速度同样存在零偏误差,一般可采用静止放置取均值的方法进行去除。
ICM20948角速度量程设置
ICM20948支持多种量程,包括±250、±500、 ±1000、±2000°/sec,在示例程序中采用的是±1000°/sec,如果需要更改量程,可以通过修改寄存器,下图为datasheet中寄存器取值与量程的对应关系:
以STM32示例代码为例,±1000°/sec在代码中设置方法如下:
I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_GYRO_CONFIG_1,
REG_VAL_BIT_GYRO_DLPCFG_6 | REG_VAL_BIT_GYRO_FS_1000DPS | REG_VAL_BIT_GYRO_DLPF);
如果需要修改为±2000°/sec,做如下修改即可:
I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_GYRO_CONFIG_1,
REG_VAL_BIT_GYRO_DLPCFG_6 | REG_VAL_BIT_GYRO_FS_2000DPS | REG_VAL_BIT_GYRO_DLPF);
ICM20948角速度单位转换
不同量程时,从传感器寄存器读出的原始值,需要除以相应的转换系数,即可转换为单位为°/sec的角速度,下表为各量程对应的系数值:
磁力计传感器
磁力计传感器测量的是传感器周边磁场大小,当附近没有较强磁场(电机等)时,磁力计传感器输出的数值为地磁场在三个坐标轴的分量。
ICM20948磁力计
从传感器寄存器读出的原始值,需要乘以转换系数,即可转换为单位为μT($10^-6$特斯拉)的磁场强度,下表为ICM20948中磁力计的转换系数: