董小文 发表于 2012-7-30 15:59:18

MPU6050 由第二个I2C端口连接磁力传感器问题

求教如果用MPU6050 由第二个I2C端口连接磁力传感器
分享 6050 与磁力传感器 HMC5883L 数据资料
请问I2C_MST_CLK是什么意思
真是初始化 写入 6050寄存器 内容
void InitMPU6050()
{
        Single_WriteI2C(PWR_MGMT_1, 0x00);        //解除休眠状态
        Single_WriteI2C(SMPLRT_DIV, 0x07);
        Single_WriteI2C(CONFIG, 0x06);
        Single_WriteI2C(GYRO_CONFIG, 0x18);
        Single_WriteI2C(ACCEL_CONFIG, 0x01);
        Single_WriteI2C(0X25, 0x1E);
        Single_WriteI2C(0X26, 0x02);
        Single_WriteI2C(0X27, 0x81);
        Single_WriteI2C(0X28, 0x9E);
        Single_WriteI2C(0X29, 0x03);
        Single_WriteI2C(0X2A, 0x86);
        Single_WriteI2C(0X63, 0x00);
        Single_WriteI2C(0X24, 0x08);
}
注 使用的是51 单片机

JezzeGoo 发表于 2012-7-30 16:15:45

我最近也在弄,感觉还不如把磁力计直接挂主控上,MPU6050本来可以外接其他传感器为的是能够做九轴数据融合,但是我去国外论坛上看过说MPU6050的九轴融合功能不开放的。MPU-9150才支持9轴融合。所以我也果断直接挂主控上了。

董小文 发表于 2012-7-30 20:34:54

主要考虑可以接受 芯片的引脚 也可以简化程序
看数据手册 还是 可以做的
但是 好像没什么反应
不知道是 初始字写的不全 还是芯片 电平兼容问题
或者 两片接着 一个I2C总线 上不知道 可不可行

董小文 发表于 2012-7-30 20:35:40

JezzeGoo 发表于 2012-7-30 16:15 static/image/common/back.gif
我最近也在弄,感觉还不如把磁力计直接挂主控上,MPU6050本来可以外接其他传感器为的是能够做九轴数据融合 ...

主要考虑可以节约 芯片的引脚 也可以简化程序

JezzeGoo 发表于 2012-7-30 22:32:01

董小文 发表于 2012-7-30 20:34 static/image/common/back.gif
主要考虑可以接受 芯片的引脚 也可以简化程序
看数据手册 还是 可以做的
但是 好像没什么反应


两片接一个总线应该可行的,I2C本来就可挂接多个从站

Name_006 发表于 2012-7-30 22:47:34

想把主IIC 跟副IIC用到的寄存器   分别是0x37   0x6A
I2C_BYPASS_EN设置成1                并且 106号寄存器 (0x6A) 的I2C_MST_EN 设置为0 才能实现主IIC 跟副IIC的内部连接
把磁阻连接到副IIC 都是想着能利用起来 MPU6050 内部的DMU单元 实现数据融合不过貌似还没人搞出来 ,。。

董小文 发表于 2012-8-1 10:45:50

Name_006 发表于 2012-7-30 22:47 static/image/common/back.gif
想把主IIC 跟副IIC用到的寄存器   分别是0x37   0x6A
I2C_BYPASS_EN设置成1                并且 106号 ...

谢谢 我试试 能读取数据到 6050内部寄存器就行

dapenti 发表于 2012-8-1 10:49:40

http://code.google.com/p/megapirateng/downloads/detail?name=MegaPirateNG_2.7_R1.zip&can=2&q=
可以参考下这里的程序,多旋翼飞控的。
有一组传感器用的 是MPU6050和5883

董小文 发表于 2012-8-1 10:54:15

Name_006 发表于 2012-7-30 22:47 static/image/common/back.gif
想把主IIC 跟副IIC用到的寄存器   分别是0x37   0x6A
I2C_BYPASS_EN设置成1                并且 106号 ...

请问是共用I2C 总线还是 6050读取 外边磁阻寄存器数据到内部寄存器

Name_006 发表于 2012-8-1 19:26:29

上边的那样设置一下后    芯片内部主副IIC就直接联通了    然后就该怎么操作就怎么操作

lxl_lw 发表于 2012-8-10 02:26:47

Name_006 发表于 2012-7-30 22:47 static/image/common/back.gif
想把主IIC 跟副IIC用到的寄存器   分别是0x37   0x6A
I2C_BYPASS_EN设置成1                并且 106号 ...

是不是还要在MPU6050外部接上32.768K或者19.2M的晶振,才能配置使DMU工作?

lxl_lw 发表于 2012-8-10 05:43:56

JezzeGoo 发表于 2012-7-30 16:15
我最近也在弄,感觉还不如把磁力计直接挂主控上,MPU6050本来可以外接其他传感器为的是能够做九轴数据融合 ...

貌似国外有人把6050的DMP用上了。

Name_006 发表于 2012-8-10 09:04:07

lxl_lw 发表于 2012-8-10 02:26 static/image/common/back.gif
是不是还要在MPU6050外部接上32.768K或者19.2M的晶振,才能配置使DMU工作?

不用啊。我没见过加经侦的。。

angel_gph 发表于 2012-11-30 18:36:36

大侠,MPU6050的加速度和角转速数据取不出来,有遇过吗?求解!

wangjt1988 发表于 2012-11-30 22:51:35

留个标记。 最近正在搞6050

cctsao1008 发表于 2012-12-1 01:42:53

https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050      for DMP

cctsao1008 发表于 2012-12-1 01:50:21

How do I use the DMP?
In order to properly use the DMP instead of just the raw sensor output, the following basic operations must be done after the device is powered on and sleep mode is disabled:

Load a block of DMP binary code into volatile MPU memory banks (takes ~1 second)
Apply a set of DMP configuration settings to the appropriate MPU memory bank locations
Configure desired rate/sensitivity/interrupt settings in MPU registers
Enable DMP
Read FIFO on DMP_INT detection
This is just a basic overview of the steps required, and does not describe every individual bit of configuration necessary. For more information, view the detailed capture analysis of the 6-axis MotionApps 2.0 DMP initialization and usage or that of the 9-axis MotionApps 4.1 (MotionFit) DMP initialization and usage.

cctsao1008 发表于 2012-12-1 01:50:53

http://www.i2cdevlib.com/devices/mpu6050#help

a364669932 发表于 2014-1-9 16:11:36

不错。这个必须顶一顶。

watermelon_ok 发表于 2014-1-24 19:25:17

自己加磁场的可以省钱!
页: [1]
查看完整版本: MPU6050 由第二个I2C端口连接磁力传感器问题