ICM40607 High Performance 6-Axis MotionTracking

1. 陀螺仪规格(GYROSCOPE SPECIFICATIONS)

在这里插入图片描述
从上规格可以看出陀螺仪的范围有8个等级可选(±2000 ~ ±15.625),而对应的精度分别是从16.4LSB/(°/s) ~ 2097.2 LSB/(°/s)
MPU6050陀螺仪的范围有±250、±500、±2000可选,精度分别是131LSB/(°/s)、65.5LSB/(°/s)、32.8LSB/(°/s)、16.4 LSB/(°/s)

1.1 精度和范围的关系

首先查看 ADC Word 是一个16位的,因为最高位是符号位,所以数据寄存器的输出范围是-7FFF~7FFF ,也既是-32767~32767。
假如,我们选择陀螺仪的范围是 ±2000,那么对应

-32767-2000(°/s)
327672000(°/s)

比如,通过寄存器读取陀螺仪的值是1000的,对应的角速度计算如下:

32767/2000 =1000/x;
x = 1000/16.4(°/s)

可以看出32767/2000 = 16.4 ,对应手册中的精度 16.4 LSB/(°/s)。

1.2 角度和弧度的关系

已知2Pi = 360度,那么1度换算成弧度就是:

2Pi/360=(2*3.1415926)/360=0.0174532=1/57.30

那么当量程为-2000到+2000的范围,把陀螺仪获取的数据转换为真正的弧度每秒的公式:

gyro_x/(16.4057.30)=gyro_x0.001064 (gyro_x来代表从陀螺仪读到的数据 )单位为弧度每秒。

2. 加速度计规格 (ACCELEROMETER SPECIFICATIONS)

在这里插入图片描述

同陀螺仪的计算方法一样。当AFS_SEL = 3时,

-32767-16g
3276716g

灵敏度: 32767/16 = 2048

2.1 重力加速度和时间的关系

假如从寄存器读出的数字为x, x/2048= 加速度的数值。

for example,我们从加速度计读到的数字是1000,那么对应的加速度数据是1000/2048=0.49g。g为加速度的单位,重力加速度定义为1g, 等于9.8米每平方秒。

3. ICM40607 相关寄存器配置

在这里插入图片描述

4. ICM40607 I2C 和 SPI 串行通信

4.1 速率

I2C at 1MHz; SPI at 24MHz

4.2 I2C 接口

在这里插入图片描述
*Tips: * 这里需要特别说明I2C读写的地址模式是 7bit long (is 1101 000x) 。读寄存器的时为 1101 0000;
写寄存器时为 1101 0001.

在7地址模式时,只需发送出一个地址字节。一旦改地址字节被发送,ADDR位被硬件置位,如果设置了ITEVFEN位,则产生一个中断。随后主设备等待一次读SR1寄存器,接着读SR2寄存器。根据送出地址的最低位,主设备决定进入发送模式还是接收模式。

在7位地址模式时,要进入发送模式,主设备发送从地址时最低位设置为0;要进入接收模式,主设备发送从机地址时最低位设置为1.

如上采用STM32单片机配置I2C接口的代码如下:

4.2.1 初始化
void MX_I2C1_Init(void)
{
  hi2c1.Instance = I2C1;
  hi2c1.Init.ClockSpeed = 100000;
  hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
  hi2c1.Init.OwnAddress1 = 0;
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
  hi2c1.Init.OwnAddress2 = 0;
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
  if (HAL_I2C_Init(&hi2c1) != HAL_OK)
  {
    Error_Handler(__FILE__, __LINE__);
  }
}
4.2.2 读寄存器
int i2c1_read_reg(void *i2cHandle, unsigned char reg, unsigned char *data, unsigned int len)
{
  int32_t ret;
  ret = HAL_I2C_Mem_Read(&hi2c1, 0xD0, reg, 1, data, len, 100);
  return ret;
}
4.2.3 写寄存器
int i2c1_write_reg(void *i2cHandle, unsigned char reg, unsigned char *data, unsigned int len)
{
  int32_t ret;
  ret = HAL_I2C_Mem_Write(&hi2c1, 0xD1, reg, 1, data, len, 100);
  return ret;
}

5. 民间模块

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ICM-40607-K规格书是关于一种集成电路的详细说明书。ICM-40607-K是一种具有高精度和高性能的惯性测量单元,可用于测量物体的加速度和角速度。 ICM-40607-K规格书包含了以下重要信息: 1. 尺寸和外观:规格书会详细描述ICM-40607-K的尺寸、引脚布局和外观特征,以帮助用户在设计和应用中合理安置和使用该器件。 2. 电气特性:规格书会列出ICM-40607-K的电压供应要求、电流消耗、输入和输出电平范围等电气特性。这些信息对于设计和选配电路电源和接口起到指导作用。 3. 功能和性能:规格书将对ICM-40607-K测量加速度和角速度的功能和性能进行详细说明。包括其测量范围、分辨率、灵敏度以及噪声水平等指标。这些信息对于用户选择合适的测量参数和评估传感器性能非常重要。 4. 环境适应性:规格书会描述ICM-40607-K在不同环境条件下的操作范围和性能,如温度、湿度和压力。这些信息对于在不同应用场景下合理使用传感器具有重要指导意义。 5. 接口和通信:规格书会说明ICM-40607-K的数字接口和通信协议。此外,可能还会提供示例电路和控制代码,以帮助用户与ICM-40607-K进行通信和控制交互。 6. 安装和维护:规格书还可能包含ICM-40607-K的安装和维护指南,包括焊接、印刷电路板设计和清洁等方面的建议。 用户可以根据ICM-40607-K规格书的内容,深入了解该器件的技术细节和使用特性,以选择适合的电源和接口设计,并且在实际应用中合理使用和维护ICM-40607-K,以实现预期的测量效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「Thunder Studio」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值