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功能特性
数据传输为MSB first, LSB last
数据在SCLK的上升沿被锁定(latched)
数据在SCLK的下降沿发送
SCLK最大频率为1MHz
SPI读写操作需要在16个或更多个时钟周期(2个或2个Bytes以上)。第一个Byte包括了SPI地址,接下来的Bytes为SPI data。第一个Byte的第一个Bit为读写标志(Read-1, Write-0)
支持多个字节的读写。
SPI Master与Slave连接图示:
自检
自检用于对传感器的机械和电子部分进行测试,自检的触发是通过对应的self-test寄存器来激活的。
自检被激活时,传感器启动并产生输出信号,输出信号用于观察自检回复。
自检回复 = 传感器带自检输出 - 传感器不带自检输出
当自检回复的值在合理范围内,该部分自检就会通过。当自检回复超出合理范围,就表明该部分自检失败。
传感器数据寄存器
数据类别 | 作用 | 特性 |
---|---|---|
gyroscope/ accelerometer/ magnetometer/ auxiliary-sensor/ temperature | 保存最新的传感器数据 | 只读,任何时候都可以通过串行口(SPI or I2C)读取 |
FIFO
大小 | 配置寄存器 | Counter | 读取 | 中断 |
---|---|---|---|---|
512bytes | 选定哪些数据可以暂存入FIFO,可选gyro-data, accelerometer-data, temperature, auxiliary-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 | 有效动作检测 |
MPU9250的详细功能相关推荐
- TDK MPU9250的详细功能 替代方案ICM20948
mpu9250的替代方案ICM20948 零知模块新品上架-ICM20948九轴模块替代MPU9250 附带示例 https://www.amobbs.com/thread-5722167-1-1.h ...
- keystone的详细功能
keystone的详细功能 keystone的基本概念 User(用户):用户身份认证,一个用户可以关联多个租户, Tenant(租户):相当于用户组的概念,一个Tenant可以容纳多个用户 Role ...
- sever串口wifi拓展板_串口Wifi模块的工作原理和详细功能介绍
在无线网络领域里面,无线wifi是最火的名词.对于串口wifi模块的工作原理是什么呢?串口wifi模块又有什么功能呢?wifi方案设计远嘉科技给大家讲解有关串口wifi模块的工作原理,以及详细功能介绍 ...
- matlab中函数绝对值图像,Matlab中图像函数大全 详细功能介绍
Matlab中图像函数大全详细功能介绍(一)(2009-10-03 12:06:31)转载▼标签:matlab杂谈分类:programming 图像增强 1. 直方图均衡化的Matlab 实现 1.1 ...
- KIS专业版和旗舰版的区别在哪里?详细功能对比
买专业版,还是旗舰版?两个版本有啥区别.一般都知道旗舰版是以前的K/3RISE 演变过来的,比专业版更高一级别,功能更全面,细节把控更精确,价格也比专业版更高,但具体差别在哪里呢? 上图可知,专业版没 ...
- 心通达OA党建详细功能说明
心通达OA党建详细功能说明
- aida64使用方法_AIDA64中的详细功能使用步骤介绍
你们知道AIDA64吗?很多的新用户不熟悉AIDA64是怎么使用的?在这里就为你们呈现了AIDA64的详细使用步骤介绍. 1.[使用AIDA64查看电脑简单信息] 打开计算机--系统概述,即可查看计算 ...
- 摩托罗拉Android系统,摩托罗拉Droid官方Android 2.2系统详细功能展示
之前我们曾报道过摩托罗拉的Android智能手机Droid将会在8月3日开始小规模的官方Android 2.2系统升级测试,在确认没有问题的情况下将会在本月第二周开始进行分批次OTA空中升级. Dro ...
- 亚马逊鲲鹏系统详细功能介绍
亚马逊鲲鹏系统是一款可以多账号运行并且账号不被关联的管理系统,系统支持绑定代理ip及自带了防指纹技术,自带的防指纹技术可以根据添加绑定的ip修改时区.语言.指纹.开启关闭插件等.账号绑定不同的ip后就 ...
最新文章
- Windows中配置java变量环境
- LeetCode 317. 离建筑物最近的距离(逆向BFS)*
- 算法总结之欧拉函数中国剩余定理
- python中以表示语块_scikitlearn:将数据拟合成块与将其全部拟合到on
- strtotime php,php strtotime函数怎么用
- 计算机智能测试与机电工程学,机电工程学院智能技术创新团队论文被国际计算机视觉顶级会议ICCV录用...
- URL Scheme-短信、邮件、微信外网页等场景打开小程序
- 【Codeforces Round #508 (Div. 2)】Slime【简单贪心】
- Mac版PScc破解安装方法
- WIN10更新卸载出错解决
- 移动端 --- 解决苹果手机滑动卡顿的问题
- uni-app 省市区选择器
- Rancher学习日记4
- bingo培训——软件设计
- 剑指Offer and Leetcode刷题总结之常见策略(1):二分法
- 数据恢复软件:FonePaw Data Recovery mac中文版
- 学习笔记22/1/10
- 混淆矩阵中的 精确率 和 召回率 与 置信度 之间有什么关系
- 《惢客创业日记》2018.12.10(周一)创业者从0到1的十个阶段(一)
- STM32的12864液晶串行控制
热门文章
- 使用 Gitee 进行代码管理
- 虎牙盈利能力得到改善,但监管风险对其收入产生负面影响
- youtube爬虫搭建
- 如何提取公众号文章中的音频
- VMware虚拟机和宿主机共享文件夹(windows,linux)
- vite+ts+vue3 知识点(全局组件,局部组件,递归组件)
- 中餐和西餐菜名大全(zt)
- 微信小游戏中监听一个按钮的点击事件方法
- 音频剪切matlab,科学网—matlab的音频处理:读取,裁剪,输出和命名 - 张智昊的博文...
- Java中实现十进制数转换为二进制的几种办法