stm32的陀螺仪芯片MPU6050的初始化寄存器配置

您所在的位置:网站首页 陀螺仪模块如何使用的 stm32的陀螺仪芯片MPU6050的初始化寄存器配置

stm32的陀螺仪芯片MPU6050的初始化寄存器配置

2024-06-30 20:38| 来源: 网络整理| 查看: 265

MPU6050读取数据步骤:

1,检查MCU(主机)与MPU6050(姿态传感器)是否通信成功

2,设置MPU6050为复位状态,并且100ms延时,确保复位完成

3,唤醒MPU6050,选择PLL为时钟源

4,配置6轴数据全部输出(3轴加速度与3轴陀螺仪)

5,禁止所有中断(避免传感器读取到一个数据就中断,而耽误系统进程)

6,设置MPU6050的内部采样频率以及低通滤波器(小的飞行器一一般设施在20~30Hz即可)

7,设置陀螺仪与加速度计的满量程范围

8,主处理芯片可以直接访问MPU6050辅助I2C

下面来一步一步配置:

1,检查MCU(主机)与MPU6050(姿态传感器)是否通信成功

我们选用的读取MPU6050储存ID的寄存器即0x75,如果读出来ID是默认值0x68,那么是不是可以证明通信成功了

2,设置MPU6050为复位状态,并且100ms延时,确保复位完成

看到电源管理寄存器1(0x6B)

我们只需要将第7位寄存器置1即可复位,别的寄存器不做配置,就都置0。

那么将0x6B配置为0x80即可

3,唤醒MPU6050,选择PLL为时钟源

还是对0x6B进行配置,看到[2:0]寄存器,这里我们配置为0x01。

自动选择最好的时钟源

4,配置6轴数据全部输出(3轴加速度与3轴陀螺仪)

看到电源管理2寄存器(0x6C)

 我们看到[0:5]为加速度与陀螺仪是否待机的配置,[6:7]为低功耗模式的设置。

在这里我们不需要待机与低功耗,说话以直接每一位都置为0即可,0x6C置0x00

5,禁止所有中断(避免传感器读取到一个数据就中断,而耽误系统进程)

看控制中断使能的寄存器(0x38)

 我们不让中断产生,所以还是将寄存器配置为0x00

6,设置MPU6050的内部采样频率以及低通滤波器

配置SMPLRT_DIV的值就可以进行分频,DLPF为数字低通滤波器,后面我们为了使数据更加稳定是要进行配置的,那么陀螺仪的输出频率=1kHz,这时候我们假设SMPLRT_DIV置1,那么陀螺仪的输出频率为500Hz,这时候要考虑飞机姿态结算的频率,假设高于500Hz,那么意味着可能两次姿态结算用的都是同一组陀螺仪数据。这样不利于提升精度。所以我们这里SMPLRT_DIV置0。保持1000Hz,即0x19置为0x00

 

 0x1A寄存器是对DLPF(数字低通滤波)进行配置,一般将他们的DLPF都设为20Hz

即配置寄存器0x1A为0x04

7,设置陀螺仪与加速度计的满量程范围

我们不进行自检,所以只看[3:4]位,我们将角度设置大一些,2000度/s,

将寄存器0x1B配置为0x18

 同样的,加速度计我们也不进行自检,所以所以只看[3:4]位,我们将角度配置为+-4g

将寄存器0x1C配置为0x08

8,主处理芯片可以直接访问MPU6050辅助I2C

看到最后Bit1的I2C_BYPASS_EN的配置说明:

辅助I2C可以用来外接磁力计或其他传感器。 有两种工作模式: I2C Master Mode, 此时 MPU-60X0作为主设备与外接传感器通信; Pass-Through Mode, 此时仅用作连接, 允许 MPU 和外接传感器同时和芯片通信

我们直接将寄存器0x37配置为0x02即可



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3