jamesbowman / i2cdriver

I2CDriver open source tools
https://i2cdriver.com/
BSD 3-Clause "New" or "Revised" License
184 stars 57 forks source link

When connected, i2cbusses merge #36

Closed JessicaMulein closed 4 years ago

JessicaMulein commented 4 years ago

I have a raspberry pi and had attempted to inspect bus i2c-1 and i2c-6. When connected, device 0x22 on i2c-6 joined bus 1 and vice-versa, according to i2cdetect on my pi-host. Didn't seem to matter whether powered on or not/connected to my Macbook host I intended to inspect from.

Normal: ➜ ~ /usr/sbin/i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- 1c -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- 6a -- -- -- -- -- 70: -- -- -- -- -- -- -- 77 ➜ ~ /usr/sbin/i2cdetect -y 6 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --

When connected: ➜ ~ /usr/sbin/i2cdetect -y 6 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- 1c -- -- -- 20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- 6a -- -- -- -- -- 70: -- -- -- -- -- -- -- 77 ➜ ~ /usr/sbin/i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- 1c -- -- -- 20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- 6a -- -- -- -- -- 70: -- -- -- -- -- -- -- 77

jamesbowman commented 4 years ago

Please can you show how the I2CDriver is connected?

One thing to mention is that the 3 ports on the I2CDriver are all physically wired together - they're not separate I2C busses. So when multiple things are connected to I2CDriver, they are all connected together.

JessicaMulein commented 4 years ago

No, I suppose it makes sense. I looked at it and expected to be able to read 4 separate busses at a time, but those connectors are really more about the output or perhaps separate boards... Do you suppose you will have a version in the future that doesn't jumper those together so I could record both streams without two devices- and without colliding those two busses (they're separate for a reason)?

Basically your device was connected to an RPI-4's i2c-1 and i2c-6 ports at the end of a chain of devices. on i2c-1- it's connected to a couple pins that I think are mechanically connected into the original i2c pins on the RPI but located on a BerryGPS IMU-v3 which contains a BMP280 and an IMU that exposes itself as 3 different addresses. Your device is basically tapped right into the root of that bus. On i2c-6 it's directly connected to the i2c pins going into a qwiic board which then only go to a qwiic led stick from sparkfun. GND is connected appropriately at each device.

jamesbowman commented 4 years ago

Makes sense.

For multiple buses the best setup is multiple I2CDrivers -- they are designed to all work well on the same host. I2C Minis are functionally identical (capture mode is supported), and are available in multiples.

https://i2cdriver.com/mini.html