最详细的MPU6050寄存器说明手册中文.docx

上传人:b****8 文档编号:23880604 上传时间:2023-05-21 格式:DOCX 页数:28 大小:28.18KB
下载 相关 举报
最详细的MPU6050寄存器说明手册中文.docx_第1页
第1页 / 共28页
最详细的MPU6050寄存器说明手册中文.docx_第2页
第2页 / 共28页
最详细的MPU6050寄存器说明手册中文.docx_第3页
第3页 / 共28页
最详细的MPU6050寄存器说明手册中文.docx_第4页
第4页 / 共28页
最详细的MPU6050寄存器说明手册中文.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

最详细的MPU6050寄存器说明手册中文.docx

《最详细的MPU6050寄存器说明手册中文.docx》由会员分享,可在线阅读,更多相关《最详细的MPU6050寄存器说明手册中文.docx(28页珍藏版)》请在冰豆网上搜索。

最详细的MPU6050寄存器说明手册中文.docx

最详细的MPU6050寄存器说明手册中文

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.

6.#defineMPU6050_RA_ZG_OFFS_TC0x02//[7]PWR_MODE,[6:

1]ZG_OFFS_TC,[0]OTP_BNK_VLD

7.#defineMPU6050_RA_X_FINE_GAIN0x03//[7:

0]X_FINE_GAIN

8.#defineMPU6050_RA_Y_FINE_GAIN0x04//[7:

0]Y_FINE_GAIN

9.#defineMPU6050_RA_Z_FINE_GAIN0x05//[7:

0]Z_FINE_GAIN

10.

11.#defineMPU6050_RA_XA_OFFS_H0x06//[15:

0]XA_OFFS两个寄存器合在一起

12.#defineMPU6050_RA_XA_OFFS_L_TC0x07

13.

14.#defineMPU6050_RA_YA_OFFS_H0x08//[15:

0]YA_OFFS两个寄存器合在一起

15.#defineMPU6050_RA_YA_OFFS_L_TC0x09

16.

17.#defineMPU6050_RA_ZA_OFFS_H0x0A//[15:

0]ZA_OFFS两个寄存器合在一起

18.#defineMPU6050_RA_ZA_OFFS_L_TC0x0B

19.

20.#defineMPU6050_RA_XG_OFFS_USRH0x13//[15:

0]XG_OFFS_USR两个寄存器合在一起

21.#defineMPU6050_RA_XG_OFFS_USRL0x14

22.

23.#defineMPU6050_RA_YG_OFFS_USRH0x15//[15:

0]YG_OFFS_USR两个寄存器合在一起

24.#defineMPU6050_RA_YG_OFFS_USRL0x16

25.

26.#defineMPU6050_RA_ZG_OFFS_USRH0x17//[15:

0]ZG_OFFS_USR两个寄存器合在一起

27.#defineMPU6050_RA_ZG_OFFS_USRL0x18

28.

29./*陀螺仪的采样频率*/

30./*传感器的寄存器输出,FIFO输出,DMP采样、运动检测、

31.*零运动检测和自由落体检测都是基于采样率。

32.*通过SMPLRT_DIV把陀螺仪输出率分频即可得到采样率

33.*采样率=陀螺仪输出率/(1+SMPLRT_DIV)

34.*禁用DLPF的情况下(DLPF_CFG=0或7),陀螺仪输出率=8khz

35.*在启用DLPF(见寄存器26)时,陀螺仪输出率=1khz

36.*加速度传感器输出率是1khz。

这意味着,采样率大于1khz时,

37.*同一个加速度传感器的样品可能会多次输入到FIFO、DMP和传感器寄存器*/

38.#defineMPU6050_RA_SMPLRT_DIV0x19//[0-7]陀螺仪输出分频采样率

39.

40./*配置外部引脚采样和DLPF数字低通滤波器*/

41.#defineMPU6050_RA_CONFIG0x1A

42.//bit5-bit3一个连接到FSYNC端口的外部信号可以通过配置EXT_SYNC_SET来采样

43.//也就是说,这里设置之后,FSYNC的电平0或1进入最终数据寄存器,具体如下

44.//0不使用1FSYNC电平进入所有数据寄存器2FSYNC电平进入GYRO_XOUT_L3FSYNC电平进入GYRO_YOUT_L

45.//4FSYNC电平进入GYRO_ZOUT_L5FSYNC电平进入ACCEL_XOUT_L6FSYNC电平进入ACCEL_YOUT_L

46.//7FSYNC电平进入SYNC_ACCEL_ZOUT_L

47.//bit2-bit0数字低通滤波器用于滤除高频干扰高于这个频率的干扰被滤除掉

48./*对应关系如下

49.**|加速度传感器|陀螺仪

50.**DLPF_CFG|带宽|延迟|带宽|延迟|采样率

51.*-------------+--------+-------+--------+------+-------------

52.*0|260Hz|0ms|256Hz|0.98ms|8kHz

53.*1|184Hz|2.0ms|188Hz|1.9ms|1kHz

54.*2|94Hz|3.0ms|98Hz|2.8ms|1kHz

55.*3|44Hz|4.9ms|42Hz|4.8ms|1kHz

56.*4|21Hz|8.5ms|20Hz|8.3ms|1kHz

57.*5|10Hz|13.8ms|10Hz|13.4ms|1kHz

58.*6|5Hz|19.0ms|5Hz|18.6ms|1kHz

59.*7|Reserved|Reserved|Reserved

60.**/

61.

62.

63./*陀螺仪的配置,主要是配置陀螺仪的量程与自检(通过相应的位765开启自检)*/

64.#defineMPU6050_RA_GYRO_CONFIG0x1B

65.//bit4-bit3量程设置如下

66.//0=+/-250度/秒

67.//1=+/-500度/秒

68.//2=+/-1000度/秒

69.//3=+/-2000度/秒*/

70.

71./*加速度计的配置,主要是配置加速度计的量程与自检(通过相应的位765开启自检)

72.*另外,还能配置系统的高通滤波器*/

73.#defineMPU6050_RA_ACCEL_CONFIG0x1C

74.//bit7启动X自检加速度计的自检

75.//bit6启动Y自检

76.//bit5启动Z自检

77.//bit4-bit3加速度传感器的量程配置

78.//0=+/-2g

79.//1=+/-4g

80.//2=+/-8g

81.//3=+/-16g*/

82.//bit0到bit2加速度传感器的高通滤波器

83./*DHPF是在路径中连接于运动探测器(自由落体,运动阈值,零运动)的一个滤波器模块。

84.*高通滤波器的输出值不在数据寄存器中

85.*高通滤波器有三种模式:

86.*重置:

在一个样本中将滤波器输出值设为零。

这有效的禁用了高通滤波器。

这种模式可以快速切换滤波器的设置模式。

87.*开启:

高通滤波器能通过高于截止频率的信号

88.*持续:

触发后,过滤器持续当前采样。

过滤器输出值是输入样本和持续样本之间的差异

89.*设置值如下所示

90.*ACCEL_HPF|高通滤波模式|截止频率

91.*----------+-------------+------------------

92.*0|Reset|None

93.*1|On|5Hz

94.*2|On|2.5Hz

95.*3|On|1.25Hz

96.*4|On|0.63Hz

97.*7|Hold|None

98.*/

99.

100.#defineMPU6050_RA_FF_THR0x1D

101./*自由落体加速度的阈值

102.*这个寄存器为自由落体的阈值检测进行配置。

103.*FF_THR的单位是1LSB=2mg。

当加速度传感器测量而得的三个轴的绝对值

104.*都小于检测阈值时,就可以测得自由落体值。

这种情况下,(加速度计每次检测到就+1以下,所以还要依靠加速度采样率)

105.*自由落体时间计数器计数一次(寄存器30)。

当自由落体时间计数器达到

106.*FF_DUR中规定的时间时,自由落体被中断(或发生自由落体中断)

107.**/

108.

109.#defineMPU6050_RA_FF_DUR0x1E

110./*

111.*自由落体加速度的时间阈值

112.*这个寄存器为自由落体时间阈值计数器进行配置。

113.*时间计数频率为1khz,因此FF_DUR的单位是1LSB=1毫秒。

114.*当加速度器测量而得的绝对值都小于检测阈值时,

115.*自由落体时间计数器计数一次。

当自由落体时间计数器

116.*达到该寄存器的规定时间时,自由落体被中断。

117.*(或发生自由落体中断)

118.**/

119.

120.#defineMPU6050_RA_MOT_THR0x1F

121./*

122.*运动检测的加速度阈值

123.*这个寄存器为运动中断的阈值检测进行配置。

124.*MOT_THR的单位是1LSB=2mg。

125.*当加速度器测量而得的绝对值都超过该运动检测的阈值时,

126.*即可测得该运动。

这一情况下,运动时间检测计数器计数一次。

127.*当运动检测计数器达到MOT_DUR的规定时间时,运动检测被中断。

128.*运动中断表明了被检测的运动MOT_DETECT_STATUS(Register97)的轴和极性。

129.*/

130.

131.#defineMPU6050_RA_MOT_DUR0x20

132./*

133.*运动检测时间的阈值。

134.*这个寄存器为运动中断的阈值检测进行配置。

135.*时间计数器计数频率为1kHz,因此MOT_THR的单位是1LSB=1ms。

136.*当加速度器测量而得的绝对值都超过该运动检测的阈值时(Register31),

137.*运动检测时间计数器计数一次。

当运动检测计数器达到该寄存器规定的时间时,

138.*运动检测被中断。

139.**/

140.

141.#defineMPU6050_RA_ZRMOT_THR0x21

142./*

143.*零运动检测加速度阈值。

144.*这个寄存器为零运动中断检测进行配置。

145.*ZRMOT_THR的单位是1LSB=2mg。

146.*当加速度器测量而得的三个轴的绝对值都小于检测阈值时,

147.*就可以测得零运动。

这种情况下,零运动时间计数器计数一次(寄存器34)。

148.*当自零运动时间计数器达到ZRMOT_DUR(Register34)中规定的时间时,零运动被中断。

149.*与自由落体或运动检测不同的是,当零运动首次检测到以及当零运动检测不到时,零运动检测都被中断。

150.*当零运动被检测到时,其状态将在MOT_DETECT_STATUS寄存器(寄存器97)中显示出来。

151.*当运动状态变为零运动状态被检测到时,状态位设置为1。

当零运动状态变为运动状态被检测到时,

152.*状态位设置为0。

153.**/

154.

155.#defineMPU6050_RA_ZRMOT_DUR0x22

156./*

157.*零运动检测的时间阈值

158.*这个寄存器为零运动中断检测进行时间计数器的配置。

159.*时间计数器的计数频率为16Hz,因此ZRMOT_DUR的单位是1LSB=64ms。

160.*当加速度器测量而得的绝对值都小于检测器的阈值(Register33)时,

161.*运动检测时间计数器计数一次。

当零运动检测计数器达到该寄存器规定的时间时,

162.*零运动检测被中断。

163.**/

164.

165.

166./*

167.*设备的各种FIFO使能,包括温度加速度陀螺仪从机

168.*将相关的数据写入FIFO缓冲中

169.**/

170.#defineMPU6050_RA_FIFO_EN0x23

171.//bit7温度fifo使能

172.//bit6陀螺仪Xfifo使能

173.//bit5陀螺仪Yfifo使能

174.//bit4陀螺仪Zfifo使能

175.//bit3加速度传感器fifo使能

176.//bit2外部从设备2fifo使能

177.//bit1外部从设备1fifo使能

178.//bit0外部从设备0fifo使能

179.

180.#defineMPU6050_RA_I2C_MST_CTRL0x24

181.//配置单主机或者多主机下的IIC总线

182.//bit7监视从设备总线,看总线是否可用MULT_MST_EN设置为1时,MPU-60X0的总线仲裁检测逻辑被打开

183.//bit6延迟数据就绪中断,直达从设备数据也进入主机再触发相当于数据同步等待

184.//bit5当设置为1时,与Slave3相连的外部传感器数据(寄存器73到寄存器96)写入FIFO缓冲中,每次都写入

185.//bit4主机读取一个从机到下一个从机读取之间的动作为0读取之间有一个restart,为1下一次读取前会有一个重启,然后

186.//一直读取直到切换写入或者切换设备

187.//bit3-bit0配置MPU作为IIC主机时的时钟,基于MPU内部8M的分频

188./*I2C_MST_CLK|I2C主时钟速度|8MHz时钟分频器

189.*------------+------------------------+-------------------

190.*0|348kHz|23

191.*1|333kHz|24

192.*2|320kHz|25

193.*3|308kHz|26

194.*4|296kHz|27

195.*5|286kHz|28

196.*6|276kHz|29

197.*7|267kHz|30

198.*8|258kHz|31

199.*9|500kHz|16

200.*10|471kHz|17

201.*11|444kHz|18

202.*12|421kHz|19

203.*13|400kHz|20

204.*14|381kHz|21

205.*15|364kHz|22

206.**/

207.

208.

209.

210./**************************MPU链接IIC从设备控制寄存器,没使用从机连接的基本不用考虑这些************************************/

211./*指定slave(0-3)的I2C地址

212.*注意Bit7(MSB)控制了读/写模式。

如果设置了Bit7,那么这是一个读取操作,

213.*如果将其清除,那么这是一个编写操作。

其余位(6-0)是slave设备的7-bit设备地址。

214.*在读取模式中,读取结果是存储于最低可用的EXT_SENS_DATA寄存器中。

215.*MPU-6050支持全5个slave,但Slave4有其特殊功能(getSlave4*和setSlave4*)。

216.*如寄存器25中所述,I2C数据转换通过采样率体现。

用户负责确保I2C数据转换能够

217.*在一个采样率周期内完成。

218.*I2Cslave数据传输速率可根据采样率来减小。

219.*减小的传输速率是由I2C_MST_DLY(寄存器52)所决定的。

220.*slave数据传输速率是否根据采样率来减小是由I2C_MST_DELAY_CTRL(寄存器103)所决定的。

221.*slave的处理指令是固定的。

Slave的处理顺序是Slave1,Slave2,Slave3和Slave4。

222.*如果某一个Slave被禁用了,那么它会被自动忽略。

223.*每个slave可按采样率或降低的采样率来读取。

在有些slave以采样率读取有些以减小

224.*的采样率读取的情况下,slave的读取顺序依旧不变。

然而,

225.*如果一些slave的读取速率不能在特定循环中进行读取,那么它们会被自动忽略

226.*更多降低的读取速率相关信息,请参阅寄存器52。

227.*Slave是否按采样率或降低的采样率来读取由寄存器103得DelayEnable位来决定

228.**/

229.

230.//从机0设置相关

231.#defineMPU6050_RA_I2C_SLV0_ADDR0x25

232.//bit7当前IIC从设备0的操作,1为读取0写入

233.//bit6-bit0从机设备的地址

234./*要读取或者要写入的设备内部的寄存器地址,不管读取还是写入*/

235.#defineMPU6050_RA_I2C_SLV0_REG0x26

236./*iic从机系统配置寄存器*/

237.#defineMPU6050_RA_I2C_SLV0_CTRL0x27

238.//bit7启动或者禁止这个设备的IIC数据传送过程

239.//bit6当设置为1时,字节交换启用。

当启用字节交换时,词对的高低字节即可交换

240.//bit5当I2C_SLV0_REG_DIS置1,只能进行读取或者写入数据。

当该位清0,可以再读取

241.//或写入数据之前写入一个寄存器地址。

当指定从机设备内部的寄存器地址进行发送或接收

242.//数据时,该位必须等于0

243.//bit4指定从寄存器收到的字符对的分组顺序。

当该位清0,寄存器地址

244.//0和1,2和3的字节是分别成对(甚至,奇数寄存器地址),作为一个字符对。

当该位置1,

245.//寄存器地址1和2,3和4的字节是分别成对的,作为一个字符对

246.//bit3-bit0指定从机0发送字符的长度。

由Slave0转换而来和转换至Slave0的字节数,(IIC一次传输的长度)

247.//该位清0,I2C_SLV0_EN位自动置0.

248.

249./*IICSLAVE1配置寄存器,与0相同*/

250.

251.#defineMPU6050_RA_I2C_SLV1_ADDR0x28

252.#defineMPU6050_RA_I2C_SLV1_REG0x29

253.#defineMPU6050_RA_I2C_SLV1_CTRL0x2A

254.

255./*IICSLAVE2配置寄存器,与0相同*/

256.#defineMPU6050_RA_I2C_SLV2_ADDR0x2B

257.#defineMPU6050_RA_I2C_SLV2_REG0x2C

258.#defineMPU6050_RA_I2C_SLV2_CTRL0x2D

259.

260./*IICSLAVE3配置寄存器,与0相同*/

261.#defineMPU6050_RA_I2C_SLV3_ADDR0x2E

262.#defineMPU6050_RA_I2C_SLV3_REG0x2F

263.#defineMPU6050_RA_I2C_SLV3_CTRL0x30

264.

265./*slave4的I2C地址IIC4与前几个的寄存器定义有所不同*/

266.#defineMPU6050_RA_I2C_SLV4_ADDR0x31//与IICSLAVE1类似

267.#defineMPU6050_RA_I2C_SLV4_REG0x32/*slave4的当前内部寄存器*/

268.#defineMPU6050_RA_I2C_SLV4_DO0x33

269./*写于slave4的新字节这一寄存器可储存写于slave4的数据。

270.*如果I2C_SLV4_RW设置为1(设置为读取模式),那么该寄存器无法执行操作*/

271.#defineMPU6050_RA_I2C_SLV4_CTRL0x34

272.//当设置为1时,此位启用了slave4的转换操作。

当设置为0时,则禁用该操作

273.#defineMPU6050_I2C_SLV4_EN_BIT7

274.//当设置为1时,此位启用了slave4事务完成的中断信号的生成。

275.//当清除为0时,则禁用了该信号的生成。

这一中断状态可在寄存器54中看到。

276.#defineMPU6050_I2C_SLV4_INT_EN_BIT6

277.//当设置为1时,只进行数据的读或写操作。

当设置为0时,

278.//在读写数据之前将编写一个寄存器地址。

当指定寄存器地址在slave设备中时

279.//,这应该等于0,而在该寄存器中会进行数据处理。

280.#defineMPU6050_I2C_SLV4_REG_DIS_BIT5

281.//采样率延迟,这为根据采样率减小的I2Cslaves传输速率进行了配置。

282.//当一个slave的传输速率是根据采样率而降低的,那么该slave是以每1/(1+I2C_MST_DLY)个样本进行传输。

283.//这一基本的采样率也是由SMPLRT_DIV(寄存器25)和DLPF_CFG(寄存器26)所决定的的。

284.//slave传输速率是否根据采样率来减小是由I2C_MST_DELAY_CTRL(寄存器103)所决定的

285.#defineMPU6050_I2C_SLV4_MST_DLY_BIT4//[4:

0]

286.#defineMPU6050_I2C_SLV4_MST_DLY_LENGTH5

287./*slave4中可读取的最后可用字节*/

288.#defineMPU6050_RA_I2C_SLV4_DI0x35

289.

290./*

291.*IIC辅助从机

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1