MPU9250是MPU6500+AK8963。两个I2C地址不同。
对MPU6500的I2C地址及进行操作,读取加速度和陀螺仪数据。按照电路AD0的不同,地址是0x68或者0x69。
对AK8963地址进行操作,读取磁力计数据。在MPU9250中,地址无法更改,为0x0C。
I2C读写为左对齐,第8位要存读写标志位,需要将地址左移一位。MPU6500为0xD0或是0xD2,磁力计为0x18。
磁力计的读取有Passby模式和I2C master两种方式如下:
passby模式:MCU直接对磁力计进行读取,不经过MPU9250。对MPU9250的INT_PIN_CFG寄存器写0x02,然后直接对磁力计地址0x18进行读写。磁力计中的0x00寄存器存储的ID为0x48。
I2C master模式,不直接对磁力计进行操作,先由MPU9250读取磁力计数据暂存,然后MCU读取MPU9250中的磁力计数据。
另外,mpu9250的1脚需要接VDDIO。在设置passby模式下,需要增加设置适当的几毫秒的延时时间。如果软件模拟I2C,在配置引脚时,硬件上拉电阻。并注意将GPIO引脚设置为输出开漏模式。
MPU9250是MPU6500+AK8963。两个I2C地址不同。
对MPU6500的I2C地址及进行操作,读取加速度和陀螺仪数据。按照电路AD0的不同,地址是0x68或者0x69。
对AK8963地址进行操作,读取磁力计数据。在MPU9250中,地址无法更改,为0x0C。
I2C读写为左对齐,第8位要存读写标志位,需要将地址左移一位。MPU6500为0xD0或是0xD2,磁力计为0x18。
磁力计的读取有Passby模式和I2C master两种方式如下:
passby模式:MCU直接对磁力计进行读取,不经过MPU9250。对MPU9250的INT_PIN_CFG寄存器写0x02,然后直接对磁力计地址0x18进行读写。磁力计中的0x00寄存器存储的ID为0x48。
I2C master模式,不直接对磁力计进行操作,先由MPU9250读取磁力计数据暂存,然后MCU读取MPU9250中的磁力计数据。
另外,mpu9250的1脚需要接VDDIO。在设置passby模式下,需要增加设置适当的几毫秒的延时时间。如果软件模拟I2C,在配置引脚时,硬件上拉电阻。并注意将GPIO引脚设置为输出开漏模式。
举报