MPU6050相关材料.docx
《MPU6050相关材料.docx》由会员分享,可在线阅读,更多相关《MPU6050相关材料.docx(15页珍藏版)》请在冰点文库上搜索。
![MPU6050相关材料.docx](https://file1.bingdoc.com/fileroot1/2023-6/8/6f629070-727e-4f41-a1a8-41ac76a4cc20/6f629070-727e-4f41-a1a8-41ac76a4cc201.gif)
MPU6050相关材料
MPU-60X0对陀螺仪和加速度计分别用了三个16位的ADC将其测量的
模拟量转化为可输出的数字量。
为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±500,±1000,
±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g。
由于本人也处于学习阶段,翻译的可能不太准确,只能表达一下简单的意思,以官方数据手册为准。
引御编号
MPU4000MPUb«064
引脾霁称
描述
1
Y
Y
CLKIN
町选的外部时钟输入.如果不用则连aGND
6
Y
Y
AUXDA
I2C主串行数据「川于外接传感器
1
¥
Y
AUXCL
I2C主串行时钟•用手针接传感器
8
Y
/CS
SPI片选〔0二SPImode>
8
¥
VLOGIC
数字I/O供电电斥
9
Y
ADO/SDO
I2CSlave地址LSBfADOh
SPI串行数据输出(EDO)
9
¥
ADO
I2CS怕ve地址LSBfADO)
10
Y
Y
REGOUT
校准滤波电容连线
11
Y
Y
FSYNC
顿同步数字输入
12
Y
Y
INT
中断数字输出(推挽或开漏>
13
Y
Y
VDD
电源电压及数字I/O供电电压
18
Y
Y
GND
电源地
1I9,21,22
Y
Y
RESV
预留,不接
20
Y
Y
CPOUT
电荷泵电容连线
23
Y
SCUSCLK
I2C串行时钟(SCL):
SPI串祁时钟(SCLK)
23
Y
SCL
I2C串厅时钟(SCL)
24
Y
SDA/SDI
I2C串行数(SDA):
SPI串行数据输入<SDh
24
Y
SDA
I2C串行数据^SDA)
2.3.4,5J4,
15,16,17
Y
Y
NC
不接
引脚说明
VDD供电电压为2.5V±5%3.0V±5%3.3V±5%VDDIO为1.8V±5%
内建振荡器在工作温度范围内仅有±1%频率变化。
可选外部时钟输入32.768kHz或19.2MHz
找出几个重要的寄存器:
1)Register25-SampleRateDivider
(SMPRT_DIV
Type;Read/Wriie
Regjstw(Hex!
Register
{D«ebal)
Bitr
B怖
'Bits
Bil4
BM
Bit2
Ktl
Bit#
$9
25
SMPLRTJ叩
1)SMPLRT_DIV8位无符号值,通过该值将陀螺仪输出分频,得到采样频率
该寄存器指定陀螺仪输出率的分频,用来产生MPU-6OX0勺采样率。
传感器寄存器的输出、FIFO输出、DMP采样和运动检测的都是基于该采样率。
采样率的计算公式
采样率=陀螺仪的输出率/(1+SMPLRT_DIV)
当数字低通滤波器没有使能的时候,陀螺仪的输出率等于
8KHZ反之等于1KHZ
2)Register26-Configuration
(CONFIG
Type:
Read/Write
(Hex)
Register(Decimal)
BW
Bite
BhS
Bh4
Bit!
Bhl
BM
lA
2«
■
■
EXTJWC^SETipO]
DLPFJ词2;D|
1)EXT_SYNC_SET位无符号值,配置帧同步引脚的采样
2)DLPF_CFG3位无符号值,配置数字低通滤波器
该寄存器为陀螺仪和加速度计配置外部帧同步(FSYNC引脚采样和数字低通滤波器(DLPF)。
通过配置EXT_SYNC_SET可以对连接到FSYNC引脚的一个外部信号进行采样。
FSYNC引脚上的信号变化会被锁存,这样就能捕获到很短的频闪信号。
采样结束后,锁存器将复位到当前的FSYNC言号状态。
根据下面的表格定义的值,采集到的数据会替换掉数据寄存器中上次接收到的有效数据
EXTSYNCSET
FSYNCBitLocation
0
Inputdisabled
1
TEMPOUTL10]
2
GYROXOUTL[0]
3
GYROYOUTL[01
4
GYROZOUTL[D]
5
ACCELXOUTL[0]
6
ACCELYOUTL[0]
1
ACCELZOUTLI01
数字低通滤波器是由DLPF_CF碌配置,根据下表中DLPF_CFG勺值对加速度传感器和陀螺
仪滤波
DLPF_CFG
Accelerometer(F,=IkHzJ
Gyroscope
Bandwidth(Hz>
Delay(ms)
Bandwidth(Hz)
Defay(ms)
Fs(kHz)
0
260
0
256
0.98
8
1
184
2.0
188
1.9
1
2
94
3,0
98
2.3
1
3
44
4.9
42
4.8
1
4
21
8.5
20
8.3
1
5
10
13.8
10
13.4
1
6
5
1I9.0
5
1&6
1
7
RESERVED
IRESERVED
8
3)
(GYRO_CONFIG
Register27-GyroscopeConfiguration
4)
Type:
Read/Write
Register(呦
IRegSstei(Decinial)
IBhS
歇3
飾2
Bill
IB
27
X6ST
1YG*T
ZGST
FS_SELI[10]
9
—:
这个寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围。
和ZGSTbits可以激活陀螺仪对应轴的自检。
每个轴的检测可以独立进行或同时进行。
在MPU-6000/MPU-6050数据手册的电气特性表中已经给出了每个轴的限制范围。
当自检的响应值在规定的范围内,就能够通过自检;反之,就不能通过自检。
根据下表,FS_SEL选择陀螺仪输出的量程:
FSSEL
FulllScaleRange
0
±250嗨
1
±50D
2
±1000°/s
3
±2000
5)
(ACCEL_CONFI)
Register28-AccelerometerConfiguration
6)
Type:
Read/Write
R西btwIKei)
妊刨牝rID蝕Imai)
Bit/
Bits
Bit4
6it3
BW
iBrtl
BitO
28
XAST
VA_ST
■■
ZAST1
1AFSSE屮0]
根据下表,AFS_SEL选择加速度传感器输出的量程。
AFSSEL
FulllScaleRange
0
1
2
±
3
±IIeg
具体细节和上面陀螺仪的相似。
7)Registers59to64-AccelerometerMeasurements(ACCEL_XOUT_HACCEL_XOUT_L,
ACCEL_YOUT_H,ACCEL_YOUT_L,ACCEL_ZOUT_H,andACCEL_ZOUT_L
Type:
ReadOnly
r:
Regisiei(Hen}
Regk苗r
(Decimal1
Bit?
Bil5
Bii4
Bin
&h?
Bitl
B刖
36
59
ACCEL,XOUT[16:
fl|
3C
60
ACCELXOmp0]
j迪
ei
ACCELYOUT[l5:
e)
3E
63
ACCEL¥OUT[70|
3F
63
ACCELJOUTlISei
40
64
1
[ACCELZOUT[7:
q
1)ACCEL_XOUT16位2's补码值。
存储最近的X轴加速度感应器的测量值。
2)ACCEL_YOUT16位2's补码值。
存储最近的丫轴加速度感应器的测量值。
3)ACCEL_ZOUT16位2's补码值。
存储最近的Z轴加速度感应器的测量值。
这些寄存器存储加速感应器最近的测量值。
加速度传感器寄存器,连同温度传感器寄存器、陀螺仪传感器寄存器和外部感应数据寄
存器,都由两部分寄存器组成(类似于STM32F10X系列中的影子寄存器):
一个内部寄存
器,用户不可见。
另一个用户可读的寄存器。
内部寄存器中数据在采样的时候及时的到更新,仅在串行通信接口不忙碌时,才将内部寄存器中的值复制到用户可读的寄存器中去,避免了直接对感应测量值的突发访问。
在寄存器28中定义了每个16位的加速度测量值的最大范围,对于设置的每个最大范围,都对应一个加速度的灵敏度ACCEL_xOUT如下面的表中所示:
AFSSIEL
FiuilllScaleRange
LSBSensitivity
0
±2g
16384LSBfg
1
±4g
8192LSB/g
2
±8g
4096LSB/g
3
±l6g
2043LSB/g
8)Registers65and66-TemperatureMeasurement(TEMP_OUT_HndTEMP_OUT_L
Type:
ReadOnly
(Hex)
(DecimalJ
Bii7
B怖
Bits
BIt4
Bin
Bhf
Ktl
Bitfl
41
&5
TEMP^0iJTI15:
Si
42
&6
1)TEMP_OUT16位有符号值。
存储的最近温度传感器的测量值。
GYRO_YOUT_H,GYRO_YOUT_L,GYRO_ZOUT_H,andGYRO_ZOUT_L
Type:
ReadOnly
R料i軌制
)h«k3
(Decimal)
BiM
Bi恬
BirS
BiM
6ft3
Bit2
Bfti
BitO
43
67
GVRO,XOUT|1S:
$]
68
QYRO^XOUTPOI
4&
69
4$
70
GYROVOtrT[701
47
71
GYROzouTiisa]
72
GYROZOUT{701
这个和加速度感应器的寄存器相似
对应的灵敏度:
FSSEL
FullScaleRange
LSBSensitivity
0
±2507S
131LSBr/S
1
士5D0対
65.5LSB/^/S
2
士10007S
32.8LSB/7S
3
±2000Vs
16.4LSB/*/S
(PWR_MGMT_1
8)Register107-PowerManagement1
Type:
Read/Write
RegjstH
R骂居怡I(Decirnal)
Bjt?
Bh5
Bill
Bid
Bid
Bid
BitD
66
OEVfce.RESET
SLEEP
CYCLE
=
吒1MPP$
CLK陡遐q
该寄存器允许用户配置电源模式和时钟源。
它还提供了一个复位整个器件的位,和一个关闭温度传感器的位
1)DEVICE_RESET置1后所有的寄存器复位,随后DEVICE_RESE自动置0.
3)CYCLE
当CYCLE被设置为1且SLEEP没有设置,MPU-60X0进入循环模式,为
了从速度传感器中获得采样值,在睡眠模式和正常数据采集模式之间切换,每次获得一个
采样数据。
在
LP_WAKE_CTRL108)寄存器中,可以设置唤醒后的采样率和被唤醒的频率。
时钟源的选择:
CLKSEL
ClockSource
0
Internal8MHzoscillator
1
PLLwithXaxisgyroscopereferenee
2
PLLwithYaxisgyroscopereference
3
PLLwithZaxisgyroscopereference
4
PLLwithexternal32,768kHzreference
5
PLLwithexternal19.2MHzreference
6
Reserved
7
Stopsthedockandkeepsthetiminggeneralorinreset
(WHO_AM_I
9)Register117-WhoAmI
Type:
ReadOnly
Register(H«x)
IRegisier(Dedm^rl)
Btl?
Bi怡
Bit5
BH4
Bit!
Bh2
Bit!
BiW
?
5
111?
I
I
■
WHO_AM_I中的内容是MPU-60X0的6位I2C地址
上电复位的第6位到第1位值为:
110100
为了让两个MPU-6050能够连接在一个I2C总线上,当AD0引脚逻辑低电平时,设备的地址
MPU-6000可以使用SPI和I2C接口,而MPU-6050只能使用I2C,其中I2C的地址由ADO引
2000deg/s)*/
自检,2G,5Hz)*/
#defineACCEL_XOUT_L0x3C#defineACCELYOUTH0x3D#defineACCELYOUTL0x3E#defineACCEL_ZOUT_H0x3F
#defineACCEL_ZOUT_L0x40
#defineTEMP_OUT_L0x42
#definePWR_MGMT_10x6B//
电源管理,典型值:
0x00(正常启用)*/
编程时用到的关于I2C协议规范:
信号
描述
s
卄始标志:
SCL为卜SDA的卜•降沿
AD
从栈备地址(Slave地址)
W
「q数据位9)
R
i£数据位'1)
ACK
应答fn:
亿弟9个讨仲周期SCL为injll]*SDA対te
NACK
拒绝血答:
在第9个时钟周期.SDAliJF;』
RA
MPU-60X0内部寄心器地址
CATA
1/
血动救据变化数搠有效SCLIII
~~ir\SDAfI[
图1I2C总线通信毎议
要求两条总线线路一条串行数据线SDA—条串行时钟线SCL
IC传送过程中,其地址(slaveraddress)是7bits
送入SDA中的每个字节长度必须是8-bits,在IIC总线上,START信号后,一个从地址(slaveaddress)被传送,在该字节中的bit7是一个读写选择信号,
“0”表示写,“1”表示读。
但在实际中传送的地址是8bits的
1.(数据的有效性)SDA线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。
2.(起始和停止条件)当SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示起始条件。
当SCL线是高电平时,SDA线由低电平向高电平切换表示停止条件。
3.(总线空闲状态)DA和SCL两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高;
4.(数据传输与应答信号ACK)发送到SDA线上的数据必须是8位的。
每次传输可以发送的数据不受限制。
每个字节后必须在时钟的第9个脉冲期间释放数据总线(SDA为高),由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。
在起始条件之后,发送一个7位的从机地址,紧接着第8位是数据方向(R/W),0-表示发
送数据(写),1-表示接收数据(读)。
数据传输一般由主机产生的停止位(P)终止。
一个字节(为slaveaddress由7位地址和一位R/W读写位组成的,这字节是个器件地址。