mpu6050寄存器详解文档_第1页
mpu6050寄存器详解文档_第2页
mpu6050寄存器详解文档_第3页
mpu6050寄存器详解文档_第4页
mpu6050寄存器详解文档_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角、翻 滚角、偏航角(2014-01-16 16:53:41) 转载是什么MPU6050是一个6轴运动处理组件,包含了 3轴加速度 和3轴陀螺仪。MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了 组合陀螺仪与加速器时之轴问差的问题,减少了大量的包装空间。MPU-6000整合了 3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速 器、磁力传感器、或其他传感器的数位运动处理 (DMP: Digital Motion Processor) 硬件加速引擎,由主要I2C端口以单一数据流的形式,向应

2、用端输出完整的9轴融合演算技术InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理 运算对操作系统的负荷,并为应用开发提供架构化的API。MPU-6000的角速度全格感测范围为 ±250 ±500 ± 1000t ± 2000§ec (dps),可 准确追余他快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为 ±2 g ±4g±8g± 16 g产品传输可透过最高至 400kHz的I2C或最高达20MHz的 SPIMPU-6000可在不同电压下工作,VDD供电电压介为

3、77;5% ±5威±5%逻辑接 口 VVDIO供电为± 5% MPU-6000的包装尺寸(QFN),在业界是革命性的尺寸。 其他的特征包含内建的温度感测器、包含在运作环境中仅有±1喳动的振荡2 .加速度传感器是干嘛用的总而言这,加速度传感器,其实是力传感器。用来检查上下左右前后哪几个面都受了多少力(包括重力),然后计算 角度。3 .陀螺仪是干嘛用的简而言之,陀螺仪就是 角速度检测仪。比如,一块板,以 X轴为轴心,在一秒钟的时间转 到了 90度,那么它在 X轴上的角速度就是 90度/秒(DPS,角速度单位,Degree Per Second的缩写/S ,体

4、现了转动的快慢)分辨率是多少3轴加速度 和3轴陀螺仪分别用了 3个16位的ADC,也就是说,加速度有 3个16位ADC, 其中每个轴使用了一个。也是说,每个轴输出的数据,是 2A16也就是-32768 - +32768。 陀螺仪也是一样。5 .单位换算上面说的-32768 - +32768 ,那么这个数字到底代表了什么呢比如陀螺仪32768到底是指角速度达到多少度/秒这个其实是根据MPU6050设置的量程来决定的,量程不一样, 32768代表的值就不一样。MPU6050的量程设置,在 MPU6050:initialize()(库)初始化函数中进行了设置:setFullScaleGyroRang

5、e(MPU6050_GYRO_FS_250);setFullScaleAccelRange(MPU6050_ACCEL_FS_2);分别设置为,250度/秒,2g按陀螺仪来说,MPU6050有四个量程可选:± 250 ± 500 ± 1000 ± 200渡/s比方说,设置了是±250那么-32768 - +32768就代表了 -250 - +250。此时它的LSB已傻B,最低有效位)是131 LSB/(g/s)STM32 自带 I2C,但一般有两个 I2C1 (PB6,PB7)和 I2C2 (PB10,PB11),而且,I2C 分为硬 件、和模

6、拟。软彳i2c是程序员使用程序控制SCL,SD峨输出高低电平,模拟i2c协议的时序.硬件i2c程序员只要调用i2c的控制函数即可,不用直接的去控制SCL,SD*低电平的输出本模块采用的是IIC通信方式,所以我们只需要连接四跟线就可以完成电路的连接,简单方便!原始数据有:AX、AY、AZ GX GY GZ简单的算法之后可以得到Roll, pitch, yaw参考MPU-6050数据手册引脚说明:引脚编号MPU-6000MPU-CQ60引脚名称描述1YYCLKIN可选的外部时钟输入,如果不用则 连到GND6YYAUX_DA12c主申行数据.用于外接传感器7YYAUX_CL12c主串行时钟.用于外接

7、传感器8丫ICSSPI 片选10二SPI mode)8YVLOGIC数字IfO供电电也9丫ADO/SDOI2C Steve 地址 LSI (AD0);SPI串行数据辖出(SDO)9YADO12cs伯V。地址 LSB (ADO)10YYREGOUT校准滤波电容连统11YYFSYNC帧同步数字椅入12YYI NT中断数字输出(推挽或开漏)13YYVDD电源电压及数字I/O供电电压18YYGND电源地19, 21, 22YYRESVMB,不接20YYCPOUT电荷泵电容连线23YSCUSCLKI2C串行时钟CSCLkSPI串行时钟CSCLK)23YSCLI2C串行时钟(SCL)24YSDA/SDII

8、2C串行数据(SDA):SPI串行数据输入(SDI)24YSDA12c串行数据(SDA)2 3, 4 5J4,15. 16, 17YYNC不接VDD 供电电压为 ±5% ±5% ±5% VDDIO 为± 5%内建振荡器在工作温度范围内仅有±1哪率变化。可选外部时钟输入 或找出几个重要的寄存器:1) Register 25 -Sample Rate Divider (SMPRT_DMType: Read/WriteRegisterR圣卬期r (D&knwl)州7BMBit5刖aBiO的2喇购Q19?5-MPLRTRIVP 见1) SMPL

9、RT_DIV眼无符号值,通过该值将陀螺仪输出分频,得到采样频率该寄存器指定陀螺仪输出率的分频,用来产生MPU-60X0的采样率传感器寄存器的输出、FIFO输出、DMP采样和运动检测的都是基于该采样 率。采样率的计算公式采样率=陀螺仪的输出率/ (1 + SMPLRT_DIV)当数字低通滤波器没有使能的时候,陀螺仪的输出平路等于8KHZ,反之等于1KHZ。2) Register 26 -Configuration (CONFIGType: ReadANrlteR»glst«rH 埠*)R即刎自r印酒BhlBill肺0-EXT SYNC SET2 0DLPFCFGpO1) ex

10、t_sync_set3无符号值,配置帧同步引脚的采样2) DLPF_CFG施无符号值,配置数字低通滤波器该寄存器为陀螺仪和加速度计配置外部帧同步(FSYNC引脚采样和数字低通滤波器(DLPF)。通过配置EXT_SYNC_SET可以对连接到 FSYNCg I脚的一个外部信号进行采样。FSYNC弓唧上的信号变化会被锁存,这样就能捕获到很短的频闪信号。采样结束后,锁存器将复位到当前的FSYNC言号状态。根据下面的表格定义的值,采集到的数据会替换掉数据寄存器中上次接收到的有效数据EXTSYNCSETFSYNC Bit Location0input dis a Ned1TEMP_OUT_L02G

11、5;RO_XOUT_L013G¥RO_YOUT_L|04GYRO_ZOUT_LOJ5ACCEL_XOUT_L06ACCEL_YOUTrU。7ACCEL_ZOUT_LQ数字低通滤波器是由 DLPF_CFG配置,根据下表中 DLPF_CFG勺值对加速度传感器和陀螺 仪滤波DLPF_CFGAccelerometer (Fs = 1kHz)GyroscopeBandwidth (Hz)Delay (ms)Bandwidth (HzJDelay (ms)Fs (k也)o -26002560 98811042.018619129430982613444.9424B142185208 315101

12、3.81013.4165I 19.0519617RESERVEDRESERVED83) Register 27 -Gyroscope Configuration(GYRO_CONFIGType: Read/WrKeRe融城讨)(Dwimai)BrtTBM擀懂BIOanBrtO27XG_STVGSTZGSTFS SEL1 0)一-1) XG_ST设置此位,X轴陀螺仪进行自我测试。2) YG_S做置此位,Y轴陀螺仪进行自我测试。3) ZG_ST设置此位,Z轴陀螺仪进行自我测试。4) FS_SEL牧无符号值。选择陀螺仪的量程。这个寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围。陀螺仪自检允许用户

13、测试陀螺仪的机械和电气部分,通过设置该寄存器的XG_ST YG_ST和ZG_ST bits可以激活陀螺仪对应轴的自检。每个轴的检测可以独立进行或同时进行。自检的响应=打开自检功能时的传感器输出-未启用自检功能时传感器的输出在MPU-6000/MPU-6050数据手册的电气特性表中已经给出了每个轴的限制范围。当自检的响应值在规定的范围内,就能够通过自检;反之,就不能通过自检。根据下表,FS_SE选择陀螺仪输出的量程:FSSELFull Scale Range01250 口用1P ± 500 9IS2±1000 7S3±2000 Vs4) Register 28 -A

14、ccelerometer Configuration(ACCEL_CONFIGType:ad/Write用”1代用诵tarBitT加幡Bbrt6K3Bit2Brt1BM1C28KA £TVASTZA_STAFS_SEl1 0-1)XA_ST设置为1时,X轴加速度感应器进行自检。2)YA_ST设置为1时,Y轴加速度感应器进行自检。3)ZA_ST设置为1时,Z轴加速度感应器进行自检。4) AFS_SEL也无符号值。选择加速度计的量程。具体细节和上面陀螺仪的相似。根据下表,AFS_SE选择加速度传感器输出的量程。AFS_SELFull Scale Range0士2g1士的2士四3土 16g

15、5) Registers 59 to 64 -Accelerometer Measurements (ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H, ACCEL_YOUT_L, ACCEL_ZOUT_H, and ACCEL_ZO UT_LType: Read OnlyRegisf«rRoister(Decimal)Bii7BMB1t5eii4Bit3Bh?BidBi陋3859ACCEL_XOUT11S:B3CGOACC£L_XOUT703DACCEL¥OUT1&»|3E62ACCEL_VOUT7q3F63AC

16、CELJOUT(i5fl4064AGGEL_;OUT7.0j1) ACCEL_XOUT 颂 2'补码值。存储最近的X轴加速度感应器的测量值。2) ACCEL_YOUT 颂 2'补码值。存储最近的Y轴加速度感应器的测量值。3) ACCEL_ZOUT 1的 2'补码值。存储最近的Z轴加速度感应器的测量值。这些寄存器存储加速感应器最近的测量值。加速度传感器寄存器,连同温度传感器寄存器、陀螺仪传感器寄存器和外部感应数据寄 存器,都由两部分寄存器组成(类似于STM32F10X系列中的影子寄存器):一个内部寄存器,用户不可见。另一个用户可读的寄存器。内部寄存器中数据在采样的时候及时

17、的到更 新,仅在串行通信接口不忙碌时,才将内部寄存器中的值复制到用户可读的寄存器中去, 避免了直接对感应测量值的突发访问。在寄存器28中定义了每个16位的加速度测量值的最大范围,对于设置的每个最大范 围,都对应一个加速度的灵敏度ACCEL_xOUT如下面的表中所示:AFS SELFull Scale RangeLSB Sensitivity0士2g15384 LS印g1i4g8192LSB/g2±8g4096 LSB/g3±16gt2048 LSB/g6) Registers 65 and 66 - Temperature Measurement(TEMP_OUT_H an

18、d TEMP_OUT_LType: Read Only快回辑18il7B郦Sh5Bit!BUIWtO41造TEW/XJTM:司42TEMP OUT|7q1) TEMP_OUT 16位有符号值。存储的最近温度传感器的测量值。7) Registers 67 to 72 -Gyroscope Measurements(GYRO_XOUT_H, GYRO_XOUT_L,GYRO_YOUT_H, GYRO_YOUT_L, GYRO_ZOUT_H, and GYRO_ZOU T_LType: Read Only(HgRegislw1:- :lat?EM6Bh5Bil4BitsBitsBillBrio心P

19、67GYRO_XOU1阴阚4JQYRQ_M(?UT7Q466目GYRO_YOUTlS:ft|必70GYRO_¥OUT54171GYR 口工酹T2GVRO.ZOUTFO这个和加速度感应器的寄存器相似对应的灵敏度:FS_SELFull Scale RangeLSB Sensitivity0士 250 "s131 LSB产尼:1t 500 e/S65.5 LSBr/S2士1000 7s32.8 LSB/ft/s31 2go 7S16.4 LSB/W8) Register 107 Power Management 1(PWR_MGMT_1)Type: Re ad/WriteRegi

20、ster (Otxirnd)Bit7Bil6刖5BiM吕ii3B同日itl01066107JESETSLEEPCYCLE-1EMP-_DL5该寄存器允许用户配置电源模式和时钟源。它还提供了一个复位整个器件的位,和一个关 闭温度传感器的位1) DEVICE_RESE皙1后所有的寄存器复位,随后 DEVICE_RESET动置0.2) SLEEP 置1后进入睡眠模式3) CYCLE当CYCLED设置为1,且SLEE般有设置,MPU-60X0进入循环模式,为了从速度传感器中获得采样值,在睡眠模式和正常数据采集模式之间切换,每次获得一个采样 数据。在LP_WAKE_CTRL 108)寄存器中,可以设置唤

21、醒后的采样率和被唤醒的频率。4) TEMP_DIS 置1后关闭温度传感器5) CLKSEL 指定设备的时钟源时钟源的选择:CLKSELClock Source0Internal 8MHz oscillator1PLL with X axis gyroscope reference2PLL with Y axis gyroscope reference3PLL with Z axis gyroscope reference4PLL with external 32,768kHz reference5PLL with external 19.2MH reference6Reserved1Stops

22、 the clock and keeps the timing generator in reset9) Register 117 - Who Am I (WHO_AM_I)Type: Read Onlyer (HexRegister (Decimdk)BH7BilftB心Bi(4B心BM1BitO75WK0_AWTl6fTnWHO_AM_I中的内容是 MPU-60X0的6位I2C地址上电复位的第6位到第1位值为:110100为了让两个MPU-6050能够连接在一个I2C总线上,当AD0引脚逻辑低电平时,设备的地址是b1101000 ,当AD0引脚逻辑高电平时,设备的地址是b11010010淘宝买的货终于到了,学习用所以没买好的,这个模块只要18块钱。MPU-6000可以使用SPI和I2C接口,而 MPU-6050只能使用I2C,其中I2C的地址由AD0引脚决定;寄存器共117个,挺多的,下面的是精简常用的,根据具体的要求,适当的添 加。#define SMPLRT_DIV 0x19 采样率分频,典型值:0x07(125Hz) */#define CONFIG 0x1A/低通滤波频率,典型值: 0x06(5Hz) */#define GYRO_CONFIG 0x1B 陀螺仪自检及测量范围,典型值:0x18(不自检,2000de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论