MPU6050和DS3231之间的i2c地址冲突

i2c address conflict between MPU6050 and DS3231

我在 GY-86 模块上使用 MPU6050。我还有一个 DS3231 RTC 模块。当我搜索每个数据 sheet 时,我发现 DS3231 和 MPU6050 具有相同的 i2c 地址,即 0x68。我在 MPU 数据 sheet 中读到,如果我将 AD0 引脚连接到 3.3,地址变为 0x69。但我在我的模块上找不到任何 AD0。我只有 vcc-3.3v-SCL-SDA-INTa-FSYNC-DROY 我想我必须更改 mpu6050 或 ds3231 的 i2c 地址。这样他们就不会发生冲突。如何更改 MPU 或 DS 模块的 i2c dress。

GY-86 schematic发现,板子上的AD0脚是硬接地的。这意味着除非你能在板上找到要切割的痕迹(不太可能),否则无法更改 MPU6050 从地址。据我所知,DS2321也不能改变地址。

这给您留下了几个选择:

  1. 将其中一台设备更换为具有不同地址的不同型号。我想你真的不想这样做。
  2. 如果您的主设备(您未指定)有多个 I2C 总线控制器,请将每个设备连接到不同的总线。
  3. 使用 I2C 多路复用器将设备置于不同的 "virtual" 总线上。这是一个带有 1-8 多路复用器的 module 应该可以完成这项工作(尽管实际上只需要 1-2)。