[Motion]MPU9250的详细功能

简述接下来的内容将对MPU9250的基本的功能进行详细的介绍,主要会分模块进行阐述。时钟MPU9250有两个内部时钟源,以及一个PLL。内部时钟源:时钟源说明内部振荡器功耗低,但时钟精度略差X,Y或Z方向的GyroMEMS时钟,功耗较高,但时钟精确(只要Gyro一经启用,就会使用该时钟源)时钟的选择需要综合平衡时钟精度和功耗两个因素,所以从MPU9250的性

大家好,又见面了,我是你们的朋友全栈君。

简述

接下来的内容将对MPU9250的基本的功能进行详细的介绍,主要会分模块进行阐述。

时钟

MPU9250有两个内部时钟源,以及一个PLL。
内部时钟源:

时钟源 说明
内部振荡器 功耗低,但时钟精度略差
X,Y或Z方向的Gyro MEMS时钟,功耗较高,但时钟精确(只要Gyro一经启用,就会使用该时钟源)

时钟的选择需要综合平衡 时钟精度功耗两个因素,所以从MPU9250的性能参数可以看到,一旦Gyro开启,功耗都是在mA级别,而加速度计和磁力计都是在uA级别的功耗。

I2C接口

MPU9250有两个可选I2C接口,一个用来连接外部的第三方传感器(I2C Master方式),另一个I2C接口可以用来发送Motion数据给外部的控制器(I2C Slave方式)。
当然这两个I2C接口都是可选的,连接外部的第三方传感器的I2C接口只有需要连接外部传感器时才用(而且性能有限)。而用来发送Motion数据的I2C接口也是可选的,因为和SPI接口是复用的,因此只能二选一。
MPU9250 I2C接口:
这里写图片描述

第三方传感器的I2C接口

该接口用于接外部的第三方传感器,就是如果觉得MPU9250的9轴传感器还不够用,还可以外接第三方的传感器,比如压力传感器。
这个附加I2C接口有两种模式,I2C Master Mode和Pass-Through Mode。
该I2C接口因为MPU9250的性能限制,其对于外部传感器的初始化管理必须要借助于外部控制器来完成才行。MPU9250中有一个bypass multiplexer的机制,可以将与外部控制器连接的I2C接口(SDA, SCL)直接bypass到外部传感器的I2C接口(AUX_DA, AUX_CL)。
即连接着的外部传感器初始化时,MPU9250会通过bypass multiplexer的机制将其转接到外部控制器的I2C接口进行初始化配置,在配置完成后,MPU9250会关闭bypass multiplexer,接过对外部传感器的控制权,并获取外部传感器的数据。

发送Motion数据的I2C Slave

引脚物理连接要求
SDA, SCL: 通常的I2C这两根引脚是开漏的,支持双向通信(即数据可以Master发往Slave,也可以从Slave发往Master),但是MPU9250的这两根引脚需要通过上拉电阻上拉到VDD,最高速率为400kHz。
I2C通信设备角色划分
I2C通信分为Master和Slave角色,Master角色可以在I2C线上置入Slave地址,对应的Slave就需要向Master做出ACK。
MPU9250的I2C地址
MPU9250的I2C Slave地址为b110100X,其中的X是由AD0引脚的电平来决定的,这样的地址设置,可以在同一I2C总线上连接两个MPU9250的设备。

I2C通信协议

Start与Stop条件
这里写图片描述

数据格式与ACK
这里写图片描述

通信
这里写图片描述

MPU9250 I2C Write
这里写图片描述
这里写图片描述

MPU9250 I2C Read
这里写图片描述

SPI接口

MPU9250只有一个SPI接口(SPI Slave),四线(CS, SDO, SCLK, SDI),两根作为控制线,两根作为数据线。MPU9250作为SPI Slave角色。
CS线为片选,为低时选中,为高时不选。

SPI功能特性
1. 数据传输为MSB first, LSB last
2. 数据在SCLK的上升沿被锁定(latched)
3. 数据在SCLK的下降沿发送
4. SCLK最大频率为1MHz
5. SPI读写操作需要在16个或更多个时钟周期(2个或2个Bytes以上)。第一个Byte包括了SPI地址,接下来的Bytes为SPI data。第一个Byte的第一个Bit为读写标志(Read-1, Write-0)
这里写图片描述

  1. 支持多个字节的读写。

SPI Master与Slave连接图示:
这里写图片描述

自检

自检用于对传感器的机械和电子部分进行测试,自检的触发是通过对应的self-test寄存器来激活的。
自检被激活时,传感器启动并产生输出信号,输出信号用于观察自检回复。

自检回复 = 传感器带自检输出 - 传感器不带自检输出

当自检回复的值在合理范围内,该部分自检就会通过。当自检回复超出合理范围,就表明该部分自检失败。

传感器数据寄存器

数据类别 作用 特性
gyroscope/ accelerometer/ magnetometer/ auxiliary-sensor/ temperature 保存最新的传感器数据 只读,任何时候都可以通过串行口(SPI or I2C)读取

FIFO

大小 配置寄存器 Counter 读取 中断
512bytes 选定哪些数据可以暂存入FIFO,可选gyro-dataaccelerometer-data, temperatureauxiliary-sensor-data, FSYNC-input FIFO中的字节数 串行口访问(SPI or I2C) 支持burst read 可以触发中断

中断

中断功能 详细说明 中断状态
中断配置寄存器 Interrupt Status Register
INT引脚配置 配置引脚中断方式
中断latching 配置中断锁定方式
中断clearing 配置中断清除方式
中断triggers (1)Clock generator locked to new reference oscillator (used when switching clock sources); (2) new data is available to be read (from the FIFO and Data registers); (3) accelerometer event interrupts; (4) the MPU-9250 did not receive an acknowledge from an auxiliary sensor on the secondary I2C bus

INT引脚中断配置

INT引脚上可以配置(enable/disable)如下的中断类型:
这里写图片描述
中断状态标志可以查看是哪一类中断发生。

Motion Detection(Wake-on-Motion)中断

通过编程可以预先设定一个threshold阈值,这样,在动作采样时其采样得到的绝对值超出该threshold,就会发生Wake-on-Motion中断。Wake-on-Motion的配置流程如下:
这里写图片描述

高级硬件特性

通过硬件寄存器配置和使能硬件特性。
初始上电时高级硬件特性均默认关闭,必须要单独打开和配置。

硬件特性 说明
Low Power Quaternion 3轴Gyro和6轴Gyro+Accel
Android Orientation Android屏幕旋转算法低功耗实现
Tap 敲击手势检测
Pedometer 计步
Significant Motion Detection 有效动作检测
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126614.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue 调用子组件方法失败_Vue子组件调用父组件的方法及常见问题「建议收藏」

    vue 调用子组件方法失败_Vue子组件调用父组件的方法及常见问题「建议收藏」1.子组件内不允许直接修改父组件传过来的参数。错误实例:子组件代码直接对data参数进行修改,则会提示错误。vue.runtime.esm.js?2b0e:619[Vuewarn]:Avoidmutatingapropdirectlysincethevaluewillbeoverwrittenwhenevertheparentcomponentre-render…

    2022年10月2日
    3
  • 《java虚拟机》汇总所有关键要点

    《java虚拟机》汇总所有关键要点《java虚拟机》汇总所有知识点

    2022年10月18日
    2
  • kettle工具的作用和使用「建议收藏」

    kettle工具的作用和使用「建议收藏」最近公司一个同事离职,由我来接手他手上的一个项目,我负责开发后台,因为设计到脚本统计数据,需要做定时任务将日表数据统计到月表或者年表。于是该项目用到了Kettle,用了之后才发现,这是个好东西啊。一.了解Kettle工具Kettle最早是一个开源的ETL工具,以Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。二.Kettle下载和安装1.官网下载地址:https

    2022年10月16日
    2
  • 用3500预算配置一台台式计算机,高配置台式电脑清单,做出最好的预算

    用3500预算配置一台台式计算机,高配置台式电脑清单,做出最好的预算导语:电脑是如今人们使用最多的电子设备之一,对于很多对电脑都有高端要求的人来说,电脑配置的要求都比较高。现在很多市场上的电脑配置大多都是半好半坏,要想真正的找出自己心里认为的最高配置的电脑,那几乎是不大可能的。但是很多人也认识到了这一点,于是都会自己购置一些较好的物件自己进行组装。下面小编就介绍几种高配置台式电脑清单。一、预算2500元左右CPU可以选择INTELI34160,价格在650元左右。…

    2022年7月12日
    35
  • java 仓库管理系统源码[通俗易懂]

    java 仓库管理系统源码[通俗易懂]系统操作权限管理。系统提供基本的登入登出功能,同时系统包含两个角色:系统超级管理员和普通管理员,超级管理员具有最高的操作权限,而普通管理员仅具有最基本的操作权限,而且仅能操作自己被指派的仓库。 请求URL鉴权。对于系统使用者登陆后进行操作发送请求的URL,后台会根据当前用户的角色判断是否拥有请求该URL的权限。 基础数据信息管理。对包括:货物信息、供应商信息、客户信息、仓库信息在内的基础数据信…

    2022年9月23日
    2
  • MySQL时间戳转日期

    MySQL时间戳转日期使用FROM_UNIXTIME函数,具体如下:FROM_UNIXTIME(unix_timestamp,format)返回表示Unix时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。下列修饰符可以被用在format字符串中:%M月名字(January……December)%W星期名字(Sunda

    2022年6月21日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号