mpu6050学习(一)

一、MPU6050相关寄存器
MPU6050官方的寄存器手册上共介绍了40个寄存器的内容和功能,在此我只选取一些常用的和重要的寄存器作为了解。

1.采样分频寄存器 Sample Rate Divider

mpu6050学习(一)_第1张图片

说明:该寄存器指定陀螺仪输出速率的分频器,用于为MPU-60X0生成采样速率。
传感器寄存器输出,FIFO输出,DMP采样,运动检测,静止检测和自由落体检测都基于这个采样频率。
采样频率=陀螺仪输出频率/(1+SMPLRT_DIV)
当 DLPF(数字低通滤波器,见寄存器Configuration)禁用时(DLPF_CFG=0 or 7),陀螺输出频率=8kHz;当 DLPF 使能,陀螺仪输出频率=1KHz。注意:加速度计输出频率为 1KHz。这意味着,当采样频率大于1KHZ时,同个加速度计采样得到的数据,可能不止一次输出到FIFO、DMP、传感器寄存器。

2.配置寄存器 Configuration

mpu6050学习(一)_第2张图片

说明:该寄存器为陀螺仪和加速度计配置外部帧同步(FSYNC) 管脚的采样和数字低通滤波(DLPF)设置。
其中,数字低通滤波器DLPF由DLPF_CFG配置。根据下表所示的DLPF_CFG值对加速度计和陀螺仪进行滤波。

mpu6050学习(一)_第3张图片

其中,FS为陀螺仪输出频率。SMPLRT_DIV由预设定的采样频率根据上述的公式计算得出。一般情况下,DPLF滤波频率为采样频率的一半,如设定采样频率为50Hz,由表可知当FS为1kHz,SMPLRT_DIV的值为1000/50-1=19。

通常这个寄存器给0x06,即DLPF_CFG配置为110最平滑的滤波。外部帧同步(FSYNC)全给0不需要。

3.陀螺仪配置寄存器 Gyroscope Configuration

mpu6050学习(一)_第4张图片

说明:该寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围。
其中,XG_ST、YG_ST、ZG_ST分别用来设置陀螺仪X轴、Y轴、Z轴自检,置0则不触发自检。FS_SEL[1:0]用于设置陀螺仪的满量程,如下表:

mpu6050学习(一)_第5张图片

我们一般设置为3,即满量程为±2000°/s,由于采用16位ADC即0-65536,则灵敏度G=65536/4000=16.4LSB/(°/s),LSB表示最低有效位,即1°/s对应的数字量为16.4。最终即可将陀螺仪输出的数字量数据转化为角速度。

4.加速度计配置寄存器 Accelerometer Configuration

mpu6050学习(一)_第6张图片

说明:该寄存器是用来触发加速度计自检和配置加速度计的满量程范围。同时这个寄存器也可以用于配置数字高通滤波器(DHPF)。
其中,XA_ST、YA_ST、ZA_ST分别用来设置加速度计X轴、Y轴、Z轴自检,置0则不触发自检。AFS_SEL[1:0]用于选择加速度计的满量程范围,如下表:

mpu6050学习(一)_第7张图片

我们一般设置为0,即满量程为±2g,由于采用16位ADC即0-65536,则灵敏度G=65536/4=16384LSB/(g),LSB表示最低有效位,即1g对应的数字量为16384。最终即可将加速度计输出的数字量数据转化为加速度。

5.加速度计测量值寄存器 Accelerometer Measurements

mpu6050学习(一)_第8张图片

说明:该寄存器存储最近加速度计的测量值。加速度计根据采样频率(由采样分频寄存器寄存器设定 )写入到这些寄存器。即采样频率为50Hz,写入数据的时间间隔为0.02s。加速度计测量值寄存器和温度测量值寄存器,陀螺仪测量值寄存器,外部传感器数据寄存器都是由两组寄存器构成:一个内部寄存器集和一个用于用户读取的寄存器集。
加速度计传感器的内部寄存器集合里的数据根据采样频率更新。以此同时,每当串行接口处于闲置状态,面向用户的读取寄存器集合会复制内部寄存器集合的数据值。这保证了突发读取时传感器寄存器可以读到相同的采样时刻的测量值。需要注意的是,如果没有突发读取,则用户负责通过检查数据就绪中断(Data Ready interrupt)来确保瞬时的一组单字节读取对应于单字节的采样数据。
参数:
ACCEL_XOUT :
由 2部分组成的 16位数值存储最近X 轴加速度计的测量值。
ACCEL_YOUT :
由 2部分组成的 16位数值存储最近Y 轴加速度计的测量值。
ACCEL_ZOUT :
由 2部分组成的 16位数值存储最近Z 轴加速度计的测量值。

下表为不同量程下加速度计的灵敏度

mpu6050学习(一)_第9张图片

6.陀螺仪测量值寄存器 Gyroscope Measurements

mpu6050学习(一)_第10张图片

说明:该寄存器存储最近加陀螺仪的测量值。大致构成与加速度计测量值寄存器相同,此处便不做叙述。参数分别为:GYRO_XOUT 、GYRO_YOUT 、GYRO_ZOUT 。

下表为不同量程下加速度计的灵敏度

mpu6050学习(一)_第11张图片

7.电源管理寄存器1 Power Management 1

mpu6050学习(一)_第12张图片

说明:该寄存器允许用户配置电源模式和时钟源,还提供了复位整个设备和禁用温度传感器的位。当置SLEEP位为1时,MPU-60X0 可以进入低功耗睡眠模式。当SLEEP位禁用且 CYCLE位置 1时,MPU-60X0进入循环模式(CycleMode)。在循环模式下,设备在休眠模式和唤醒之间循环,以LP_WAKE_CTRL(由电源管理2寄存器配置)确定的速率从active sensors(此处不知如何翻译)获取单个数据样本。
该寄存器的最低三位用于设置系统的时钟源选择,默认值是0(内部8M RC振荡),不过一般设置为1,选择x轴陀螺PLL作为时钟源,以获得更高精度的时钟。同时,使能角速度传感器和加速度传感器,这两个操作通过电源管理寄存器2配置,设置对应位为0即可开启。

mpu6050学习(一)_第13张图片

其他参数:
DEVICE_RESET
该位置 1,重启内部寄存器到默认值。复位完成后该位自动清0。
TEMP_DIS
该位置 1,禁用温度传感器。

8.电源管理寄存器2 Power Management 2

mpu6050学习(一)_第14张图片说明:该寄存器允许用户在加速度计低功耗模式下配置唤醒频率。也允许用户让加速度计和陀螺仪的个别轴进入待机模式。
只让MPU-60X0的加速度计进入低功耗模式的步骤如下:
1.置 CYCLE位为 1
2.置 SLEEP位为 1
3.置 TEMP_DIS位为 1
4.置 STBY_XG,STBY_YG,STBY_ZG位为 1
在这种模式下,设备会关闭除了主 I2C接口外其他所有设备,加速度计只在固定的间隔唤醒并测量一次。唤醒的频率可以通过配置 LP_WAKE_CTRL实现如下:

mpu6050学习(一)_第15张图片

参数:
LP_WAKE_CTRL :
2位无符号数值。指定加速度计在低功耗模式下的唤醒频率。
STBY_XA :
该位置 1,加速度计的 X轴进入待机模式。
STBY_YA :
该位置 1,加速度计的 Y轴进入待机模式。
STBY_ZA :
该位置 1,加速度计的 Z轴进入待机模式。
STBY_XG :
该位置 1,陀螺仪的 X轴进入待机模式。
STBY_YG :
该位置 1,陀螺仪的 Y轴进入待机模式。
STBY_ZG :
该位置 1,陀螺仪的 Z轴进入待机模式。

9.未完待续

你可能感兴趣的:(单片机,陀螺仪,学习,单片机,stm32,物联网)