风见流雅 发表于 2013-4-3 22:27:32

MPU9150调试求助

今天在调MPU9150的模块出现一个很奇怪的现象。单个寄存器的读写都成功,WHO_AM_I的寄存器读出值也是0x68S说明I2C读写正常。
在调MPU9150内部的温度传感器时发现,读取一次的值是正确的(对比室内的数字温度计)但是连续读取温度值,传感器的输出不发生变化。
最后尝试读取之前将MPU9150重新初始化才得到实时变化的传感器。但是我知道这是治标不治本的办法。不知坛子里的大大们有没有遇到过这类问题呢

wangjt1988 发表于 2013-4-4 00:00:51

91509轴啊   梦想的芯片   就是太贵   楼主哪里搞得?   帮不了你了…

风见流雅 发表于 2013-4-4 10:20:42

wangjt1988 发表于 2013-4-4 00:00 static/image/common/back.gif
91509轴啊   梦想的芯片   就是太贵   楼主哪里搞得?   帮不了你了…

香港那边有托人带的。。。。    by the way 问题解决了,我I2C读写时序有点问题,对着DATASHEET对了一遍时序改过来就好了

laber_1912 发表于 2013-5-9 12:59:07

正在玩这个片子,我这边加速度、陀螺仪、温度倒是正常,但是现在发现电子罗盘 数据不变,正在排查问题。

Nurke 发表于 2013-5-9 17:32:26

是不是第一次读取数据能读取出来?然后再读取的话就就不变了?
如果是这样有可能是要把全部数据寄存器读取一遍之后它的数据才会更新,我记得有些传感器就是这样.

laber_1912 发表于 2013-5-9 19:03:36

Nurke 发表于 2013-5-9 17:32 static/image/common/back.gif
是不是第一次读取数据能读取出来?然后再读取的话就就不变了?
如果是这样有可能是要把全部数据寄存器读取一 ...

找到问题了,首先是对mpu9150的block diagram没认识清,其次是AK8975的single measurement 模式 ,这种情况下,需要每次都要启动一次采集,才会有数据。

风见流雅 发表于 2013-5-9 19:43:47

wangjt1988 发表于 2013-4-4 00:00 static/image/common/back.gif
91509轴啊   梦想的芯片   就是太贵   楼主哪里搞得?   帮不了你了…

我最后也用了9150内部自带的DMP    很强大   姿态解算不用搞了

nnnkey 发表于 2013-5-10 08:25:47

准不准,持续加速度情况下怎么样

风见流雅 发表于 2013-5-10 08:44:55

nnnkey 发表于 2013-5-10 08:25 static/image/common/back.gif
准不准,持续加速度情况下怎么样

我自己使用在来看对于运动的感知很敏感,至于精度问题    我们这些diyer应该没有条件去测试吧

kmani 发表于 2013-5-10 08:50:27

9轴神器一枚
唯一的瑕疵:只能用IIC通信。

风见流雅 发表于 2013-5-10 08:54:50

kmani 发表于 2013-5-10 08:50 static/image/common/back.gif
9轴神器一枚
唯一的瑕疵:只能用IIC通信。

I2C通信为什么是瑕疵?

kmani 发表于 2013-5-10 09:03:30

风见流雅 发表于 2013-5-10 08:54 static/image/common/back.gif
I2C通信为什么是瑕疵?

1:速率低:;2:STM32的硬件IIC有BUG

风见流雅 发表于 2013-5-10 09:09:24

kmani 发表于 2013-5-10 09:03 static/image/common/back.gif
1:速率低:;2:STM32的硬件IIC有BUG

1. 400khz的速度对于此处的应用应该足够了,你使用的无刷电调的动态范围也达不到400k。
2. 我没使用过stm32,不知道stm32的i2c带不带dma,如果带的话用起来应该也很方便吧?

kmani 发表于 2013-5-10 10:43:46

风见流雅 发表于 2013-5-10 09:09 static/image/common/back.gif
1. 400khz的速度对于此处的应用应该足够了,你使用的无刷电调的动态范围也达不到400k。
2. 我没使用过stm ...

400KHZ读取9个16位数据至少需要0.36毫秒。估计实际接近0.5毫秒。

john800422 发表于 2013-5-10 11:04:54

kmani 发表于 2013-5-10 10:43 static/image/common/back.gif
400KHZ读取9个16位数据至少需要0.36毫秒。估计实际接近0.5毫秒。

應該不用這麼久吧

400KHz → 2.5us

2.5us*9(DOF)*2(Bytes) = 4.5us

加上一些延遲
也不會到0.36ms(360us)吧

风见流雅 发表于 2013-5-10 11:05:46

kmani 发表于 2013-5-10 10:43 static/image/common/back.gif
400KHZ读取9个16位数据至少需要0.36毫秒。估计实际接近0.5毫秒。

使用处理器读取一次四元数用0.5ms而且你拿到的数据已经是姿态解算的结果,2KHz的速率已经很快了。这点传输时间跟你数据处理的时间应该
不在一个数量级。
ps:使用处理器来实现系统做到毫秒级已经算好的了,军事、航天上大多用模拟电路实现,那样实时性会好很多。

nnnkey 发表于 2013-5-10 11:22:38

风见流雅 发表于 2013-5-10 08:44
我自己使用在来看对于运动的感知很敏感,至于精度问题    我们这些diyer应该没有条件去测试吧 ...

呃……其实我想表达的是这个dmp融合的是六轴姿态还是九轴的

nnnkey 发表于 2013-5-10 11:23:06

风见流雅 发表于 2013-5-10 08:44
我自己使用在来看对于运动的感知很敏感,至于精度问题    我们这些diyer应该没有条件去测试吧 ...

呃……其实我想表达的是这个dmp融合的是六轴姿态还是九轴的

nnnkey 发表于 2013-5-10 11:24:33

john800422 发表于 2013-5-10 11:04
應該不用這麼久吧

400KHz → 2.5us


不是这么算的,16个数500us比较靠谱

kmani 发表于 2013-5-10 11:55:54

john800422 发表于 2013-5-10 11:04 static/image/common/back.gif
應該不用這麼久吧

400KHz → 2.5us


亲~,你少乘了个8

kmani 发表于 2013-5-10 11:57:12

风见流雅 发表于 2013-5-10 11:05 static/image/common/back.gif
使用处理器读取一次四元数用0.5ms而且你拿到的数据已经是姿态解算的结果,2KHz的速率已经很快了。这点 ...

假如可以SPI通信,那速度不是一般地快啊

mcu1234mcu 发表于 2013-5-14 10:58:28

请问各位高手在哪能找到DMP的例程呢?

mcu1234mcu 发表于 2013-5-14 11:39:10

大侠们,请教一个问题,我目前也在调试MPU9150,我的磁力计的ID读不出来,不知道什么原因,I2C配置为passby方式,磁力计地址0x0c,请问大侠知道什么原因吗?

mcu1234mcu 发表于 2013-5-15 09:33:32

laber_1912 发表于 2013-5-9 19:03 static/image/common/back.gif
找到问题了,首先是对mpu9150的block diagram没认识清,其次是AK8975的single measurement 模式 ,这种情 ...

请问如何设置9150内部AK8975的Single measurement mode模式呢,我看那个寄存器是read-only模式的

i8700 发表于 2013-5-15 10:33:18

我等穷人才上6050啊……

laber_1912 发表于 2013-5-15 22:20:32

我用的STM32+9150,自己的算法,今天刚达到内部计算800Hz,很有成就感{:lol:}

laber_1912 发表于 2013-5-15 22:22:09

mcu1234mcu 发表于 2013-5-15 09:33 static/image/common/back.gif
请问如何设置9150内部AK8975的Single measurement mode模式呢,我看那个寄存器是read-only模式的 ...

不是RO,值得注意的是这个片子不能连续采样,每次启动采集之后,一旦采集完成又回到power down mode,所以有点麻烦。

mcu1234mcu 发表于 2013-5-16 09:10:13

laber_1912 发表于 2013-5-15 22:22 static/image/common/back.gif
不是RO,值得注意的是这个片子不能连续采样,每次启动采集之后,一旦采集完成又回到power down mode,所以 ...

是的,昨天也发现这个问题了,主要是AK8975有这个特性,原来使用HMC5883,感觉比这个好读数。

oyingzi007 发表于 2013-6-5 21:42:17

laber_1912 发表于 2013-5-9 19:03 static/image/common/back.gif
找到问题了,首先是对mpu9150的block diagram没认识清,其次是AK8975的single measurement 模式 ,这种情 ...

请问你是用过 AK8975 吗, 我读取数据的时候,转换成角度,好像不对。 是不是读取完数据,还要对数据进行处理? 我读取流程是,开启,等待数据准备好,读取X,Y,Z, 然后 atan2(y,x)×57.3+180

laber_1912 发表于 2013-6-6 23:33:51

oyingzi007 发表于 2013-6-5 21:42 static/image/common/back.gif
请问你是用过 AK8975 吗, 我读取数据的时候,转换成角度,好像不对。 是不是读取完数据,还要对数据进行 ...

有个灵敏度的变换,做了么?

oyingzi007 发表于 2013-6-7 11:35:35

laber_1912 发表于 2013-6-6 23:33 static/image/common/back.gif
有个灵敏度的变换,做了么?

是ASA(x) ASA(y) ASA(z) 这三个吗?
raw_to_gauss_X = asaX + 128;
MAG_F.X = ((long)mag.X * raw_to_gauss_X) /256.0;

还是怎么做,我之前这样做也不大对, 是否有可能被周边器件的磁性所干扰。 请教下,你之前是怎么做的? 有相应代码供参考吗?谢谢你。
纠结好几天了。

laber_1912 发表于 2013-6-9 11:53:14

oyingzi007 发表于 2013-6-7 11:35 static/image/common/back.gif
是ASA(x) ASA(y) ASA(z) 这三个吗?
raw_to_gauss_X = asaX + 128;
MAG_F.X = ((long)mag.X * raw_to_ga ...

看手册:
Hx=(asax-128)*0.5/128+1;
mx = Hx * magn_raw_x;

oyingzi007 发表于 2013-6-9 14:32:01

laber_1912 发表于 2013-6-9 11:53 static/image/common/back.gif
看手册:
Hx=(asax-128)*0.5/128+1;
mx = Hx * magn_raw_x;

谢谢,我再细读下手册。

zhcj66 发表于 2013-6-20 13:59:17

风见流雅 发表于 2013-5-10 11:05 static/image/common/back.gif
使用处理器读取一次四元数用0.5ms而且你拿到的数据已经是姿态解算的结果,2KHz的速率已经很快了。这点 ...

LZ你的代码时候可以贴出来 啊我也打算用一下这芯片,现在还没有找到他的驱动

zjzly 发表于 2013-7-4 11:25:54

laber_1912 发表于 2013-5-15 22:22 static/image/common/back.gif
不是RO,值得注意的是这个片子不能连续采样,每次启动采集之后,一旦采集完成又回到power down mode,所以 ...

你好,我想问一下关于MPU9150的电子罗盘的问题,我读出来的数据一直有错误,有空可以帮一下忙吗

lukefan2008 发表于 2013-7-30 11:58:24

laber_1912 发表于 2013-5-15 22:20 static/image/common/back.gif
我用的STM32+9150,自己的算法,今天刚达到内部计算800Hz,很有成就感

首先共享大侠,请问大侠能不能共享一下代码啊,小弟也在用STM32和9150,但是因为听说STM的IIC不稳定,最近一直在自己模拟IIC,可一直都没调出来。

ivanl 发表于 2013-8-1 10:03:39

风见流雅 发表于 2013-5-9 19:43 static/image/common/back.gif
我最后也用了9150内部自带的DMP    很强大   姿态解算不用搞了

你用9150dmp的时候,ak8973磁力计需要标定吗?还是dmp把所有标定的过程都搞好了?新手好多不懂啊,不过我移植的dmp能成功读数了

jwl5879 发表于 2013-8-9 11:33:30

laber_1912 发表于 2013-6-9 11:53 static/image/common/back.gif
看手册:
Hx=(asax-128)*0.5/128+1;
mx = Hx * magn_raw_x;

请问大神,你说的是什么手册呢?从哪下载啊?

jwl5879 发表于 2013-8-9 11:34:58

nnnkey 发表于 2013-5-10 11:23 static/image/common/back.gif
呃……其实我想表达的是这个dmp融合的是六轴姿态还是九轴的

我也有这个问题呀,罗盘在姿态融合中到底用到了没?

wizard4 发表于 2013-9-13 00:22:22

刚刚开始四轴的小白路过

john800422 发表于 2013-10-18 01:16:01

laber_1912 发表于 2013-6-9 11:53 static/image/common/back.gif
看手册:
Hx=(asax-128)*0.5/128+1;
mx = Hx * magn_raw_x;

請問一下

目前使用 MPU-9150 讀取電子羅盤,
可以讀到 ID, 讀到的資料也應該是沒有問題,
但是 X, Y, Z 軸的資料卻是一樣的,

請問是否有遇到過此問題?
不知道該如何解決?

另外, 關於 AK8975 的讀取,
datasheet 上似乎就只有 bypass 的說明而已,
請問哪裡有較為詳細的說明?

laber_1912 发表于 2013-10-19 10:09:39

john800422 发表于 2013-10-18 01:16 static/image/common/back.gif
請問一下

目前使用 MPU-9150 讀取電子羅盤,


x,y,z数据不变很大可能性是没有再次启动采集,9150里面的mag sensor是single measurement 模式,所以你每次读完数据之后,下次需要再次启动数据采集,希望能解决你的问题。

laber_1912 发表于 2013-10-19 10:15:34

刚看了这个帖子,有求datasheet的,没注意到,现分享下。

shinelovexi 发表于 2013-10-20 20:12:26

顶一个,也在研究工作MPU9150

john800422 发表于 2013-10-22 08:11:12

laber_1912 发表于 2013-10-19 10:09 static/image/common/back.gif
x,y,z数据不变很大可能性是没有再次启动采集,9150里面的mag sensor是single measurement 模式,所以你每 ...

謝謝, 已解決了
主要是需要等待資料準備完畢

還是需要看 AK8975 的 datasheet
MPU9150 的 datasheet 關於電子羅盤的部分寫的不詳細

lufthansa 发表于 2013-10-22 09:57:03

风见流雅 发表于 2013-5-9 19:43 static/image/common/back.gif
我最后也用了9150内部自带的DMP    很强大   姿态解算不用搞了

你好,请问用9150加dmp,yaw轴会漂移么?受周围一场磁场干扰的话yaw轴会突变么?谢谢

风见流雅 发表于 2013-10-23 19:56:02

lufthansa 发表于 2013-10-22 09:57 static/image/common/back.gif
你好,请问用9150加dmp,yaw轴会漂移么?受周围一场磁场干扰的话yaw轴会突变么?谢谢 ...

这个我没有验证过,不过用地磁传感器的话   周围有磁场,比如电机肯定是会受影响的

SHIYOULAN 发表于 2013-10-25 23:23:07

用内部DMP!

610570143 发表于 2014-1-13 11:38:18

kmani 发表于 2013-5-10 08:50
9轴神器一枚
唯一的瑕疵:只能用IIC通信。

推荐用9250,比9150小很多。支持spi

封缘使者 发表于 2014-1-18 22:00:21

磁场读取速度不要很快,个人觉得使用MPU6000+HMC5883比较合适

DevLabs 发表于 2014-1-19 02:05:16

这传感器真贵 .......有没有可能搞个团购?

SHIYOULAN 发表于 2014-1-28 22:04:51

这个传感器自带温漂校正吗?

电气工程化动自 发表于 2014-3-11 15:49:58

能不能交流一下我也在用MPU9150   但数据手册是用英文写的   有点难理解

silence2455 发表于 2014-3-27 15:42:46

laber_1912 发表于 2013-6-6 23:33
有个灵敏度的变换,做了么?

兄台,我也用的9150,采用AHRSupdate这个算法,但是现在航向角有点不正常。
那个灵敏度校准我做了,这个应该是芯片出厂的时候就设定了,每个芯片都不一样吧?
请问那个灵敏度校准值ASAX,ASAY,ASAZ应该在那种模式下读呢?Fuse ROM access mode吗?我不管在哪种模式下读都是相同的,170,171和188,感觉我好像读错了。
恳请赐教!!!

风见流雅 发表于 2014-3-31 22:20:05

电气工程化动自 发表于 2014-3-11 15:49
能不能交流一下我也在用MPU9150   但数据手册是用英文写的   有点难理解

看懂英文数据手册是起码的   不然工作以后更痛苦。。。。加油吧

silence2455 发表于 2014-4-2 09:28:36

laber_1912 发表于 2013-10-19 10:09
x,y,z数据不变很大可能性是没有再次启动采集,9150里面的mag sensor是single measurement 模式,所以你每 ...


这位大哥,我也用的9150,移植AHRS那个算法融合陀螺仪,加计,磁力计。
现在Yaw不太正常,确定是磁力计出了问题,我是可以读出ID的,但是为什么磁力计数据的高八位要么是0要么是255?(低八位很正常)导致磁力计的数据不超过+ -256,
磁力计的量程不是-4096---4096吗,我读出来的数据也太小了,请问你有遇到这个问题吗?恳请指教!!!

zhangzhenyuan 发表于 2014-4-22 21:53:16

laber_1912 发表于 2013-5-9 12:59
正在玩这个片子,我这边加速度、陀螺仪、温度倒是正常,但是现在发现电子罗盘 数据不变,正在排查问题。 ...

您好,请问在吗。我现在也在调MPU9150。我这边的情况是磁力计输出一直不变,加速度计和陀螺仪正常。以下是我的配置,还请您能够帮助
        u8 data_buf;
        u8 data = 0x01;
//***********设置为signal measurement模式************   

        iic_rw(&data,1,0x0A,0x18,WRITE);

//iic bypass en        每次读之前打开
data = 0x02;
iic_rw(&data, 1, INT_PIN_CFG, MPU6050_ADDR, WRITE);

        iic_rw(&data_buf,6, 0x03, 0x18, READ);
        *mx = data_buf + data_buf* 0x100;
        *my = data_buf + data_buf* 0x100;
        *mz = data_buf + data_buf* 0x100;

//iic bypass disable       //每次读完磁力计之后关掉
data = 0x00;
iic_rw(&data, 1, INT_PIN_CFG, MPU6050_ADDR, WRITE);

茶亦爽 发表于 2014-4-27 14:30:52

有人提供源码吗?

点雨落山岚 发表于 2014-4-27 16:10:09

我是路过的,别在意我的出现。

也无风雨赵 发表于 2014-5-6 16:24:51

我的也是磁力计读取来的数据不变,陀螺仪和加速度计数据正常,不知道论坛里有没有读取九轴裸数据的源码,求助啊

zjzly 发表于 2014-7-9 13:23:06

laber_1912 发表于 2013-6-9 11:53
看手册:
Hx=(asax-128)*0.5/128+1;
mx = Hx * magn_raw_x;

你好,请教一下,寄存器出来的值经过这两个公式计算后出来的以uT为单位了吗?还是需要像数据手册里一样再乘以0.3.

zjzly 发表于 2014-7-9 13:47:18

oyingzi007 发表于 2013-6-5 21:42
请问你是用过 AK8975 吗, 我读取数据的时候,转换成角度,好像不对。 是不是读取完数据,还要对数据进行 ...

你好,你问题解决了吗?对磁力计数据进行atan(y,x)*57.3+180就直接可以转换为航向吗

彩虹 发表于 2015-4-14 20:51:42

laber_1912 发表于 2013-5-9 19:03
找到问题了,首先是对mpu9150的block diagram没认识清,其次是AK8975的single measurement 模式 ,这种情 ...

您好!我最近使用dsp做mpu9150的数据读取,6050部分完全没问题,但是地磁始终读到0,能否发送您的代码参考一下!谢谢!{:smile:}

xiuhao 发表于 2015-5-6 13:37:52

silence2455 发表于 2014-4-2 09:28
这位大哥,我也用的9150,移植AHRS那个算法融合陀螺仪,加计,磁力计。
现在Yaw不太正常,确定是磁力计 ...

你好 我也遇到和你一模一样的问题。请问你的问题解决的么?如何解决的?

maskblue 发表于 2015-8-5 17:23:27

模拟i2c读取9轴数据正常正确;
硬件i2c读取9轴数据磁力计和加速计正常,但是磁力计读取不正常!
页: [1]
查看完整版本: MPU9150调试求助