• 正文
    • 1.mpu9250与mpu6050区别
    • 2.mpu9250为什么停产
  • 相关内容
  • 电子产业图谱
申请入驻 产业图谱

mpu9250与mpu6050区别 mpu9250为什么停产

11/15 14:12 作者:eefocus_3880508
阅读需 5 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

MPU9250 内部集成有 3 轴陀螺仪、3 轴加速度计和 3 轴磁力计,输出都是 16 位的数字量;接下来,详细为你说下mpu9250与mpu6050区别 mpu9250为什么停产

1.mpu9250与mpu6050区别

Mpu6050与mpu9250这两个我都用过,区别为:mpu9250为mpu6500与AK8975两者的结合,而mpu6500与mpu6050的区别是mpu6500支持SPI通信。而且寄存器几乎相同,mpu9250寄存器多了电子罗盘,所以 mpu6050的程序换上mpu9250也是完全可用的。但是有几个地方需要注意,mpu9250多了一个加速度配置寄存器用来单独配置加速度计的低通率。

市面上很多陀螺仪加速度计,而mpu6050绝对是超值的一款,陀螺仪与加速度计集成在一个芯片上,而且芯片带DMP,可以直接得出四元素然后再转化为欧拉角。如果不用DMP通常的做法是用Z轴的加速度与Y轴的陀螺仪利用卡尔曼滤波然后得出Z轴的角度。两种方法都试过,比较如下:用DMP优点:不需要调卡尔曼参数,数据稳定准确。缺点:最短周期为5ms才能读一次数,且无法调。用卡尔曼滤波优点:读取数据周期短,数据手册上说1ms就可读一次新数据。缺点:需要调节卡尔曼参数。关于两者的运算复杂度我觉得差不多,DMP需要将四元数转化为欧拉角,有三角函数需要运算,而卡尔曼滤波运算复杂。所以对于需要频繁控制的对象,用DMP可能吃不消,5ms时间还是挺长的。

Mpu6050数据的读取,这里先飞思卡尔的K60芯片,先是直接用I2c读取。这个简单。这里又存在一个问题了,用硬件I2C还是模拟,结果是我很惊讶的发现用模拟I2C的速度远远高于用硬件I2C,因为硬件I2C有一个等待回馈信号的过程,没有收到ACK就一直等着,而模拟I2C则不需要确定收到ACK,稍微执行几个nop就可以了。用硬件I2c要消耗掉我2ms时间,模拟的也要近1ms,要我说用哪个好,我说都不用,用mpu9250通过SPI读取,官方说SPI操作寄存器为1M,读取数据可为20M。

然后是DMP数据的读取,这个官方是有例程的,然后还有许多大神也都有自己的DMP库,反正用官方的motion_driver库我是没弄出来,然后代码也相当复杂,因此我用的其他人的库然提取有用东西,自己弄成的一个库,十分小巧只有一个.h文件。而且库里面还有SPI与IIC两种模式的切换,文件里面有详细的解释,十分方便。

运用这个库我成功的运用到K60与msp430G2553两款芯片上,都实现了硬件SPI与IIC的数据读取,也都十分准确,先是移植K60,这个十分方便,可是移植到msp430G2553中这个就出现了一些问题,首先是内存问题,这个可以通过在大数组前面添加const解决,可是还是RAM不够,这个不科学啊,以前用G2553来做显示那数组可比这个大多了,后来发现是函数asin出现问题,这个函数会占用大量的RAM,可以说整个G2553的内存都不够它调用一个asin函数的,没办法那就先不调用这个函数吧,这个函数是在将四元数化为欧拉角的时候用到的,而且只有一个欧拉角需要用到,没什么关系。要是能够自己写一个asin函数那是最好的。

然后还有一个地方需要主要,那就是在mpu芯片上电后需要延时几十毫秒,然后在给它初始化操作。

mpu9250与mpu6050区别

2.mpu9250为什么停产

出于公司 改版或者其他原因。MPU9250 内部集成有 3 轴陀螺仪、3 轴加速度计和 3 轴磁力计,输出都是 16 位的数字量; 可以通过集成电路总线( IIC) 接口和单片机进行数据交互,传输速率可达 400 kHz /s。

mpu9250为什么停产

更多相关内容

电子产业图谱

TA的热门作品
查看更多