1. //技术文档未公布的寄存器主要用于官方DMP操作
2. #defineMPU6050_RA_XG_OFFS_TC0x00//[bit7]PWR_MODE,[6:1]XG_OFFS_TC,[bit0]OTP_BNK_VLD
3. #defineMPU6050_RA_YG_OFFS_TC0x01//[7]PWR_MODE,[6:1]YG_OFFS_TC,[0]OTP_BNK_VLD 4. //bit7的定义,当设置为1,辅助I2C总线高电平是VDD。当设置为0,辅助I2C总线高电平是VLOGIC
5. #defineMPU6050_RA_ZG_OFFS_TC0x02//[7]PWR_MODE,[6:1]ZG_OFFS_TC,[0]OTP_BNK_VLD
6. #defineMPU6050_RA_X_FINE_GAIN0x03//[7:0]X_FINE_GAIN 7. #defineMPU6050_RA_Y_FINE_GAIN0x04//[7:0]Y_FINE_GAIN 8. #defineMPU6050_RA_Z_FINE_GAIN0x05//[7:0]Z_FINE_GAIN
9. #defineMPU6050_RA_XA_OFFS_H0x06//[15:0]XA_OFFS两个寄存器合在一起 10. 11.
#defineMPU6050_RA_XA_OFFS_L_TC0x07
#defineMPU6050_RA_YA_OFFS_H0x08//[15:0]YA_OFFS两个寄存器合在一起
12. 13.
#defineMPU6050_RA_YA_OFFS_L_TC0x09
#defineMPU6050_RA_ZA_OFFS_H0x0A//[15:0]ZA_OFFS两个寄存器合在一起
14. 15.
#defineMPU6050_RA_ZA_OFFS_L_TC0x0B
#defineMPU6050_RA_XG_OFFS_USRH0x13//[15:0]XG_OFFS_USR两个寄存器合在一起
16. 17.
#defineMPU6050_RA_XG_OFFS_USRL0x14
#defineMPU6050_RA_YG_OFFS_USRH0x15//[15:0]YG_OFFS_USR两个寄存器合在一起
18. 19.
#defineMPU6050_RA_YG_OFFS_USRL0x16
#defineMPU6050_RA_ZG_OFFS_USRH0x17//[15:0]ZG_OFFS_USR两个寄存器合在一起
20. 21. 22.
#defineMPU6050_RA_ZG_OFFS_USRL0x18 /*陀螺仪的采样频率*/
/*传感器的寄存器输出,FIFO输出,DMP采样、运动检测、
23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
*零运动检测和自由落体检测都是基于采样率。
*通过SMPLRT_DIV把陀螺仪输出率分频即可得到采样率 *采样率=陀螺仪输出率/(1+SMPLRT_DIV)
*禁用DLPF的情况下(DLPF_CFG=0或7),陀螺仪输出率=8khz *在启用DLPF(见寄存器26)时,陀螺仪输出率=1khz
*加速度传感器输出率是1khz。这意味着,采样率大于1khz时,
*同一个加速度传感器的样品可能会多次输入到FIFO、DMP和传感器寄存器*/ #defineMPU6050_RA_SMPLRT_DIV0x19//[0-7]陀螺仪输出分频采样率 /*配置外部引脚采样和DLPF数字低通滤波器*/ #defineMPU6050_RA_CONFIG0x1A
//bit5-bit3一个连接到FSYNC端口的外部信号可以通过配置EXT_SYNC_SET来采样 34.
//
也就是说,这里设置之后,FSYNC的电平0或1进入最终数据寄存器,具体如下
35.
//
0不使用1FSYNC电平进入所有数据寄存器2FSYNC电平进入GYRO_XOUT_L3FSYNC电平进入GYRO_YOUT_L 36.
//
4FSYNC电平进入GYRO_ZOUT_L5FSYNC电平进入ACCEL_XOUT_L6FSYNC电平进入ACCEL_YOUT_L 37. 38.
//
7FSYNC电平进入SYNC_ACCEL_ZOUT_L
//bit2-bit0数字低通滤波器用于滤除高频干扰高于这个频率的干扰被滤除掉
39. 40. 41. 42. 43.
/*对应关系如下 **
|加速度传感器|陀螺仪
**DLPF_CFG|带宽|延迟|带宽|延迟|采样率
*-------------+--------+-------+--------+------+------------- *0 |260Hz|0ms|256Hz|0.98ms|8kHz
44. 45. 46. 47. 48. 49. 50. 51. 52.
*1 *2 *3 *4 *5 *6 *7 **/
|184Hz|2.0ms|188Hz|1.9ms|1kHz |94Hz|3.0ms|98Hz|2.8ms|1kHz |44Hz|4.9ms|42Hz|4.8ms|1kHz |21Hz|8.5ms|20Hz|8.3ms|1kHz |10Hz|13.8ms|10Hz|13.4ms|1kHz |5Hz|19.0ms|5Hz|18.6ms|1kHz |Reserved|Reserved|Reserved
/*陀螺仪的配置,主要是配置陀螺仪的量程与自检(通过相应的位765开启自检)*/
53. 54. 55. 56. 57. 58. 59.
#defineMPU6050_RA_GYRO_CONFIG0x1B //bit4-bit3量程设置如下 // // // //
0=+/-250度/秒 1=+/-500度/秒 2=+/-1000度/秒 3=+/-2000度/秒*/
/*加速度计的配置,主要是配置加速度计的量程与自检(通过相应的位765开启自检)
60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71.
*另外,还能配置系统的高通滤波器*/ #defineMPU6050_RA_ACCEL_CONFIG0x1C //bit7启动X自检加速度计的自检 //bit6启动Y自检 //bit5启动Z自检
//bit4-bit3加速度传感器的量程配置 // // // //
0=+/-2g 1=+/-4g 2=+/-8g 3=+/-16g*/
//bit0到bit2加速度传感器的高通滤波器
/*DHPF是在路径中连接于运动探测器(自由落体,运动阈值,零运动)的一个滤波器模块。
72.
*高通滤波器的输出值不在数据寄存器中
73. 74.
*高通滤波器有三种模式:
*重置:在一个样本中将滤波器输出值设为零。这有效的禁用了高通滤波器。这种模式可以快速切换滤波器的设置模式。
75. 76.
*开启:高通滤波器能通过高于截止频率的信号
*持续:触发后,过滤器持续当前采样。过滤器输出值是输入样本和持续样本之间的差异
77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91.
*设置值如下所示
*ACCEL_HPF|高通滤波模式|截止频率
*----------+-------------+------------------ *0|Reset|None *1|On|5Hz *2|On|2.5Hz *3|On|1.25Hz *4|On|0.63Hz *7|Hold|None */
#defineMPU6050_RA_FF_THR0x1D /*自由落体加速度的阈值
*这个寄存器为自由落体的阈值检测进行配置。
*FF_THR的单位是1LSB=2mg。当加速度传感器测量而得的三个轴的绝对值 *都小于检测阈值时,就可以测得自由落体值。这种情况下,(加速度计每次检测到就+1以下,所以还要依靠加速度采样率)
92. 93. 94. 95. 96. 97. 98. 99. 100.
*自由落体时间计数器计数一次(寄存器30)。当自由落体时间计数器达到 *FF_DUR中规定的时间时,自由落体被中断(或发生自由落体中断) **/
#defineMPU6050_RA_FF_DUR0x1E /*
*自由落体加速度的时间阈值
*这个寄存器为自由落体时间阈值计数器进行配置。
*时间计数频率为1khz,因此FF_DUR的单位是1LSB=1毫秒。 *当加速度器测量而得的绝对值都小于检测阈值时,
101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113.
*自由落体时间计数器计数一次。当自由落体时间计数器 *达到该寄存器的规定时间时,自由落体被中断。 *(或发生自由落体中断)
**/
#defineMPU6050_RA_MOT_THR0x1F /*
*运动检测的加速度阈值
*这个寄存器为运动中断的阈值检测进行配置。 *MOT_THR的单位是1LSB=2mg。
*当加速度器测量而得的绝对值都超过该运动检测的阈值时, *即可测得该运动。这一情况下,运动时间检测计数器计数一次。 *当运动检测计数器达到MOT_DUR的规定时间时,运动检测被中断。 *运动中断表明了被检测的运动MOT_DETECT_STATUS(Register97)的轴和极性。
114. 115. 116. 117. 118. 119. 120. 121.
*/
#defineMPU6050_RA_MOT_DUR0x20 /*
*运动检测时间的阈值。
*这个寄存器为运动中断的阈值检测进行配置。
*时间计数器计数频率为1kHz,因此MOT_THR的单位是1LSB=1ms。 *当加速度器测量而得的绝对值都超过该运动检测的阈值时(Register31), *运动检测时间计数器计数一次。当运动检测计数器达到该寄存器规定的时间时,
122. 123. 124. 125. 126. 127.
*运动检测被中断。
**/
#defineMPU6050_RA_ZRMOT_THR0x21 /*
*零运动检测加速度阈值。
*这个寄存器为零运动中断检测进行配置。