最详细的MU寄存器说明手册中文.docx
- 文档编号:6757063
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:20
- 大小:27.59KB
最详细的MU寄存器说明手册中文.docx
《最详细的MU寄存器说明手册中文.docx》由会员分享,可在线阅读,更多相关《最详细的MU寄存器说明手册中文.docx(20页珍藏版)》请在冰豆网上搜索。
最详细的MU寄存器说明手册中文
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.#defineMPU6050_RA_XA_OFFS_L_TC0x07
11.#defineMPU6050_RA_YA_OFFS_H0x08//[15:
0]YA_OFFS两个寄存器合在一起
12.#defineMPU6050_RA_YA_OFFS_L_TC0x09
13.#defineMPU6050_RA_ZA_OFFS_H0x0A//[15:
0]ZA_OFFS两个寄存器合在一起
14.#defineMPU6050_RA_ZA_OFFS_L_TC0x0B
15.#defineMPU6050_RA_XG_OFFS_USRH0x13//[15:
0]XG_OFFS_USR两个寄存器合在一起
16.#defineMPU6050_RA_XG_OFFS_USRL0x14
17.#defineMPU6050_RA_YG_OFFS_USRH0x15//[15:
0]YG_OFFS_USR两个寄存器合在一起
18.#defineMPU6050_RA_YG_OFFS_USRL0x16
19.#defineMPU6050_RA_ZG_OFFS_USRH0x17//[15:
0]ZG_OFFS_USR两个寄存器合在一起
20.#defineMPU6050_RA_ZG_OFFS_USRL0x18
21./*陀螺仪的采样频率*/
22./*传感器的寄存器输出,FIFO输出,DMP采样、运动检测、
23.*零运动检测和自由落体检测都是基于采样率。
24.*通过SMPLRT_DIV把陀螺仪输出率分频即可得到采样率
25.*采样率=陀螺仪输出率/(1+SMPLRT_DIV)
26.*禁用DLPF的情况下(DLPF_CFG=0或7),陀螺仪输出率=8khz
27.*在启用DLPF(见寄存器26)时,陀螺仪输出率=1khz
28.*加速度传感器输出率是1khz。
这意味着,采样率大于1khz时,
29.*同一个加速度传感器的样品可能会多次输入到FIFO、DMP和传感器寄存器*/
30.#defineMPU6050_RA_SMPLRT_DIV0x19//[0-7]陀螺仪输出分频采样率
31./*配置外部引脚采样和DLPF数字低通滤波器*/
32.#defineMPU6050_RA_CONFIG0x1A
33.//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.//7FSYNC电平进入SYNC_ACCEL_ZOUT_L
38.//bit2-bit0数字低通滤波器用于滤除高频干扰高于这个频率的干扰被滤除掉
39./*对应关系如下
40.**|加速度传感器|陀螺仪
41.**DLPF_CFG|带宽|延迟|带宽|延迟|采样率
42.*-------------+--------+-------+--------+------+-------------
43.*0|260Hz|0ms|256Hz|0.98ms|8kHz
44.*1|184Hz|2.0ms|188Hz|1.9ms|1kHz
45.*2|94Hz|3.0ms|98Hz|2.8ms|1kHz
46.*3|44Hz|4.9ms|42Hz|4.8ms|1kHz
47.*4|21Hz|8.5ms|20Hz|8.3ms|1kHz
48.*5|10Hz|13.8ms|10Hz|13.4ms|1kHz
49.*6|5Hz|19.0ms|5Hz|18.6ms|1kHz
50.*7|Reserved|Reserved|Reserved
51.**/
52./*陀螺仪的配置,主要是配置陀螺仪的量程与自检(通过相应的位765开启自检)*/
53.#defineMPU6050_RA_GYRO_CONFIG0x1B
54.//bit4-bit3量程设置如下
55.//0=+/-250度/秒
56.//1=+/-500度/秒
57.//2=+/-1000度/秒
58.//3=+/-2000度/秒*/
59./*加速度计的配置,主要是配置加速度计的量程与自检(通过相应的位765开启自检)
60.*另外,还能配置系统的高通滤波器*/
61.#defineMPU6050_RA_ACCEL_CONFIG0x1C
62.//bit7启动X自检加速度计的自检
63.//bit6启动Y自检
64.//bit5启动Z自检
65.//bit4-bit3加速度传感器的量程配置
66.//0=+/-2g
67.//1=+/-4g
68.//2=+/-8g
69.//3=+/-16g*/
70.//bit0到bit2加速度传感器的高通滤波器
71./*DHPF是在路径中连接于运动探测器(自由落体,运动阈值,零运动)的一个滤波器模块。
72.*高通滤波器的输出值不在数据寄存器中
73.*高通滤波器有三种模式:
74.*重置:
在一个样本中将滤波器输出值设为零。
这有效的禁用了高通滤波器。
这种模式可以快速切换滤波器的设置模式。
75.*开启:
高通滤波器能通过高于截止频率的信号
76.*持续:
触发后,过滤器持续当前采样。
过滤器输出值是输入样本和持续样本之间的差异
77.*设置值如下所示
78.*ACCEL_HPF|高通滤波模式|截止频率
79.*----------+-------------+------------------
80.*0|Reset|None
81.*1|On|5Hz
82.*2|On|2.5Hz
83.*3|On|1.25Hz
84.*4|On|0.63Hz
85.*7|Hold|None
86.*/
87.#defineMPU6050_RA_FF_THR0x1D
88./*自由落体加速度的阈值
89.*这个寄存器为自由落体的阈值检测进行配置。
90.*FF_THR的单位是1LSB=2mg。
当加速度传感器测量而得的三个轴的绝对值
91.*都小于检测阈值时,就可以测得自由落体值。
这种情况下,(加速度计每次检测到就+1以下,所以还要依靠加速度采样率)
92.*自由落体时间计数器计数一次(寄存器30)。
当自由落体时间计数器达到
93.*FF_DUR中规定的时间时,自由落体被中断(或发生自由落体中断)
94.**/
95.#defineMPU6050_RA_FF_DUR0x1E
96./*
97.*自由落体加速度的时间阈值
98.*这个寄存器为自由落体时间阈值计数器进行配置。
99.*时间计数频率为1khz,因此FF_DUR的单位是1LSB=1毫秒。
100.*当加速度器测量而得的绝对值都小于检测阈值时,
101.*自由落体时间计数器计数一次。
当自由落体时间计数器
102.*达到该寄存器的规定时间时,自由落体被中断。
103.*(或发生自由落体中断)
104.**/
105.#defineMPU6050_RA_MOT_THR0x1F
106./*
107.*运动检测的加速度阈值
108.*这个寄存器为运动中断的阈值检测进行配置。
109.*MOT_THR的单位是1LSB=2mg。
110.*当加速度器测量而得的绝对值都超过该运动检测的阈值时,
111.*即可测得该运动。
这一情况下,运动时间检测计数器计数一次。
112.*当运动检测计数器达到MOT_DUR的规定时间时,运动检测被中断。
113.*运动中断表明了被检测的运动MOT_DETECT_STATUS(Register97)的轴和极性。
114.*/
115.#defineMPU6050_RA_MOT_DUR0x20
116./*
117.*运动检测时间的阈值。
118.*这个寄存器为运动中断的阈值检测进行配置。
119.*时间计数器计数频率为1kHz,因此MOT_THR的单位是1LSB=1ms。
120.*当加速度器测量而得的绝对值都超过该运动检测的阈值时(Register31),
121.*运动检测时间计数器计数一次。
当运动检测计数器达到该寄存器规定的时间时,
122.*运动检测被中断。
123.**/
124.#defineMPU6050_RA_ZRMOT_THR0x21
125./*
126.*零运动检测加速度阈值。
127.*这个寄存器为零运动中断检测进行配置。
128.*ZRMOT_THR的单位是1LSB=2mg。
129.*当加速度器测量而得的三个轴的绝对值都小于检测阈值时,
130.*就可以测得零运动。
这种情况下,零运动时间计数器计数一次(寄存器34)。
131.*当自零运动时间计数器达到ZRMOT_DUR(Register34)中规定的时间时,零运动被中断。
132.*与自由落体或运动检测不同的是,当零运动首次检测到以及当零运动检测不到时,零运动检测都被中断。
133.*当零运动被检测到时,其状态将在MOT_DETECT_STATUS寄存器(寄存器97)中显示出来。
134.*当运动状态变为零运动状态被检测到时,状态位设置为1。
当零运动状态变为运动状态被检测到时,
135.*状态位设置为0。
136.**/
137.#defineMPU6050_RA_ZRMOT_DUR0x22
138./*
139.*零运动检测的时间阈值
140.*这个寄存器为零运动中断检测进行时间计数器的配置。
141.*时间计数器的计数频率为16Hz,因此ZRMOT_DUR的单位是1LSB=64ms。
142.*当加速度器测量而得的绝对值都小于检测器的阈值(Register33)时,
143.*运动检测时间计数器计数一次。
当零运动检测计数器达到该寄存器规定的时间时,
144.*零运动检测被中断。
145.**/
146./*
147.*设备的各种FIFO使能,包括温度加速度陀螺仪从机
148.*将相关的数据写入FIFO缓冲中
149.**/
150.#defineMPU6050_RA_FIFO_EN0x23
151.//bit7温度fifo使能
152.//bit6陀螺仪Xfifo使能
153.//bit5陀螺仪Yfifo使能
154.//bit4陀螺仪Zfifo使能
155.//bit3加速度传感器fifo使能
156.//bit2外部从设备2fifo使能
157.//bit1外部从设备1fifo使能
158.//bit0外部从设备0fifo使能
159.#defineMPU6050_RA_I2C_MST_CTRL0x24
160.//配置单主机或者多主机下的IIC总线
161.//bit7监视从设备总线,看总线是否可用MULT_MST_EN设置为1时,MPU-60X0的总线仲裁检测逻辑被打开
162.//bit6延迟数据就绪中断,直达从设备数据也进入主机再触发相当于数据同步等待
163.//bit5当设置为1时,与Slave3相连的外部传感器数据(寄存器73到寄存器96)写入FIFO缓冲中,每次都写入
164.//bit4主机读取一个从机到下一个从机读取之间的动作为0读取之间有一个restart,为1下一次读取前会有一个重启,然后
165.//一直读取直到切换写入或者切换设备
166.//bit3-bit0配置MPU作为IIC主机时的时钟,基于MPU内部8M的分频
167./*I2C_MST_CLK|I2C主时钟速度|8MHz时钟分频器
168.*------------+------------------------+-------------------
169.*0|348kHz|23
170.*1|333kHz|24
171.*2|320kHz|25
172.*3|308kHz|26
173.*4|296kHz|27
174.*5|286kHz|28
175.*6|276kHz|29
176.*7|267kHz|30
177.*8|258kHz|31
178.*9|500kHz|16
179.*10|471kHz|17
180.*11|444kHz|18
181.*12|421kHz|19
182.*13|400kHz|20
183.*14|381kHz|21
184.*15|364kHz|22
185.**/
186./**************************MPU链接IIC从设备控制寄存器,没使用从机连接的基本不用考虑这些************************************/
187./*指定slave(0-3)的I2C地址
188.*注意Bit7(MSB)控制了读/写模式。
如果设置了Bit7,那么这是一个读取操作,
189.*如果将其清除,那么这是一个编写操作。
其余位(6-0)是slave设备的7-bit设备地址。
190.*在读取模式中,读取结果是存储于最低可用的EXT_SENS_DATA寄存器中。
191.*MPU-6050支持全5个slave,但Slave4有其特殊功能(getSlave4*和setSlave4*)。
192.*如寄存器25中所述,I2C数据转换通过采样率体现。
用户负责确保I2C数据转换能够
193.*在一个采样率周期内完成。
194.*I2Cslave数据传输速率可根据采样率来减小。
195.*减小的传输速率是由I2C_MST_DLY(寄存器52)所决定的。
196.*slave数据传输速率是否根据采样率来减小是由I2C_MST_DELAY_CTRL(寄存器103)所决定的。
197.*slave的处理指令是固定的。
Slave的处理顺序是Slave1,Slave2,Slave3和Slave4。
198.*如果某一个Slave被禁用了,那么它会被自动忽略。
199.*每个slave可按采样率或降低的采样率来读取。
在有些slave以采样率读取有些以减小
200.*的采样率读取的情况下,slave的读取顺序依旧不变。
然而,
201.*如果一些slave的读取速率不能在特定循环中进行读取,那么它们会被自动忽略
202.*更多降低的读取速率相关信息,请参阅寄存器52。
203.*Slave是否按采样率或降低的采样率来读取由寄存器103得DelayEnable位来决定
204.**/
205.//从机0设置相关
206.#defineMPU6050_RA_I2C_SLV0_ADDR0x25
207.//bit7当前IIC从设备0的操作,1为读取0写入
208.//bit6-bit0从机设备的地址
209./*要读取或者要写入的设备内部的寄存器地址,不管读取还是写入*/
210.#defineMPU6050_RA_I2C_SLV0_REG0x26
211./*iic从机系统配置寄存器*/
212.#defineMPU6050_RA_I2C_SLV0_CTRL0x27
213.//bit7启动或者禁止这个设备的IIC数据传送过程
214.//bit6当设置为1时,字节交换启用。
当启用字节交换时,词对的高低字节即可交换
215.//bit5当I2C_SLV0_REG_DIS置1,只能进行读取或者写入数据。
当该位清0,可以再读取
216.//或写入数据之前写入一个寄存器地址。
当指定从机设备内部的寄存器地址进行发送或接收
217.//数据时,该位必须等于0
218.//bit4指定从寄存器收到的字符对的分组顺序。
当该位清0,寄存器地址
219.//0和1,2和3的字节是分别成对(甚至,奇数寄存器地址),作为一个字符对。
当该位置1,
220.//寄存器地址1和2,3和4的字节是分别成对的,作为一个字符对
221.//bit3-bit0指定从机0发送字符的长度。
由Slave0转换而来和转换至Slave0的字节数,(IIC一次传输的长度)
222.//该位清0,I2C_SLV0_EN位自动置0.
223./*IICSLAVE1配置寄存器,与0相同*/
224.#defineMPU6050_RA_I2C_SLV1_ADDR0x28
225.#defineMPU6050_RA_I2C_SLV1_REG0x29
226.#defineMPU6050_RA_I2C_SLV1_CTRL0x2A
227./*IICSLAVE2配置寄存器,与0相同*/
228.#defineMPU6050_RA_I2C_SLV2_ADDR0x2B
229.#defineMPU6050_RA_I2C_SLV2_REG0x2C
230.#defineMPU6050_RA_I2C_SLV2_CTRL0x2D
231./*IICSLAVE3配置寄存器,与0相同*/
232.#defineMPU6050_RA_I2C_SLV3_ADDR0x2E
233.#defineMPU6050_RA_I2C_SLV3_REG0x2F
234.#defineMPU6050_RA_I2C_SLV3_CTRL0x30
235./*slave4的I2C地址IIC4与前几个的寄存器定义有所不同*/
236.#defineMPU6050_RA_I2C_SLV4_ADDR0x31//与IICSLAVE1类似
237.#defineMPU6050_RA_I2C_SLV4_REG0x32/*slave4的当前内部寄存器*/
238.#defineMPU6050_RA_I2C_SLV4_DO0x33
239./*写于slave4的新字节这一寄存器可储存写于slave4的数据。
240.*如果I2C_SLV4_RW设置为1(设置为读取模式),那么该寄存器无法执行操作*/
241.#defineMPU6050_RA_I2C_SLV4_CTRL0x34
242.//当设置为1时,此位启用了slave4的转换操作。
当设置为0时,则禁用该操作
243.#defineMPU6050_I2C_SLV4_EN_BIT7
244.//当设置为1时,此位启用了slave4事务完成的中断信号的生成。
245.//当清除为0时,则禁用了该信号的生成。
这一中断状态可在寄存器54中看到。
246.#defineMPU6050_I2C_SLV4_INT_EN_BIT6
247.//当设置为1时,只进行数据的读或写操作。
当设置为0时,
248.//在读写数据之前将编写一个寄存器地址。
当指定寄存器地址在slave设备中时
249.//,这应该等于0,而在该寄存器中会进行数据处理。
250.#defineMPU6050_I2C_SLV4_REG_DIS_BIT5
251.//采样率延迟,这为根据采样率减小的I2Cslaves传输速率进行了配置。
252.//当一个slave的传输速率是根据采样率而降低的,那么该slave是以每1/(1+I2C_MST_DLY)个样本进行传输。
253.//这一基本的采样率也是由SMPLRT_DIV(寄存器25)和DLPF_CFG(寄存器26)所决定的的。
254.//slave传输速率是否根据采样率来减小是由I2C_MST_DELAY_CTRL(寄存器103)所决定的
255.#defineMPU6050_I2C_SLV4_MST_DLY_BIT4//[4:
0]
256.#defineMPU6050_I2C_SLV4_MST_DLY_LENGTH5
257./*slave4中可读取的最后可用字节*/
258.#defineMPU6050_RA_I2C_SLV4_DI0x35
259./*
260.*IIC辅助从机系统中断状态
261.**/
262.#defineMPU6050_RA_I2C_MST_STATUS0x36
263.//bit7此位反映了一个与MPU-60X0相连的外部设备的FSYNC中断状态。
264.//当设置为1且在INT_PIN_CFG(寄存器55)中断言FSYNC_INT_EN时,中断产生。
265.//bit6当slave4事务完成时,设备会自动设置为1如果定义了INT_ENABLE中的I2C_MST_INT_EN则产生中断
266.//bit5I2C主机失去辅助I2C总线(一个错误状态)的仲裁,此位自动设置为1.如果断言了INT_ENABLE寄存器
267.//(寄存器56)中的I2C_MST_INT_EN位,则中断产生
268.//bit4slave4的NACK状态
269.//bit3slave3的NACK状态
270.//bit2slave2的NACK状态
271.//bit1slave1的NACK状态
272.//bit0slave0的NACK状态
273./*中断引脚配置寄存器*/
274.#defineMPU6050_RA_INT_PIN_CFG0x37
275.//bit7中断的逻辑电平模式,高电平时,设置为0;低电平时,设置为1
276.//bit6中断驱动模式,推拉模式设置为0,开漏模式设置为1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 详细 MU 寄存器 说明 手册 中文
![提示](https://static.bdocx.com/images/bang_tan.gif)