I'm just wondering which Arduino platforms support 2 or more I2C buses. I've read on another forum that the Arduino Due has 2 I2C buses, but I can't seem to find documentation to support that.
Additionally, I'd just like to know if I have any other Arduino options that support multiple I2C buses besides the Due.
dave-in-nj:
with dozens of addressable devices on the one bus, what are your need for two ?
My application involves multiple sensors for data collection that all share the same I2C address, so I need to keep them on separate I2C buses to avoid addressing conflicts.
You only need an I2C multiplexer to fix that problem. Search eBay for “TCA9548A breakout” for a $3 easy fix that would support 8 sensors. 64 total with 8 chips.
DuckRogers:
My application involves multiple sensors for data collection that all share the same I2C address, so I need to keep them on separate I2C buses to avoid addressing conflicts.
DuckRogers:
My application involves multiple sensors for data collection that all share the same I2C address, so I need to keep them on separate I2C buses to avoid addressing conflicts.
No you don’t. There are a few ways of splitting a I2C bus or avoiding address conflict. However unless you are more specific about the sensor you are using we can’t tell you the best answer.
If the sensor has an address pin exposed, then you can change the I2C address of the device with a digital pin.
Use the address pin as chip select pin.
Set all devices to address B, and only one device to address A, talk to it, switch to the next device.
An I2C multiplexer can be used if the device has no address pin, or 3.3volt<>5volt level shifting is needed.
As GrumpyMike said. Better answers if we know which devices OP is talking about.
Post a link.
Leo..
Wawa:
If the sensor has an address pin exposed, then you can change the I2C address of the device with a digital pin.
Use the address pin as chip select pin.
Set all devices to address B, and only one device to address A, talk to it, switch to the next device.
An I2C multiplexer can be used if the device has no address pin, or 3.3volt<>5volt level shifting is needed.
As GrumpyMike said. Better answers if we know which devices OP is talking about.
Post a link.
Leo..
You still haven’t mentioned the distance these sensors need to be from the Arduino. I2C is only good for a foot or two, any more and you need buffers of one sort or another.