Hi, I have a device that is going to sit in a waterproof enclosure apart from a humidity sensor (BME280) that needs to be outside. I want to make sure the device will still function (and be able to communicate using the I2C bus) if the BME280 gets wet and shorts out. Does anyone know if there is an IC for this purpose or have a good idea of how I can achieve this?
Thanks
Putting the sensor on the device side of a bus multiplexer(TCA9548A comes to mind) might be what you need, but more generally, if the sensor "shorts out", hasn't your power to it also been shorted out?
They look perfect, thanks. I'm imagining what would happen if you replaced the sensor with a big blob of solder, it would break the fuse immediately, but you would still end up with the SDA and SCL lines pulled to ground so the whole bus would be dead, I don't want the device to be totally bricked if the sensor is down, there is a lot of other stuff on the I2C lines.
I'm not sure if these will work, they seem to isolate the lines in an electrical sense, but not in a data transfer sense? as in a surge on one of the sensor lines will not destroy the device, but shorting out the sda/scl lines to the sensor will still pull the bus low. Or at least I can't see any specific mention that it wont
You will still need to test, but I think this will work. What I'd worry about is whether, when the short is removed, the TCA9548A will be undamaged, but that's something you'd have to try. Maybe a combo of the 9548 and one of @michael569gardner 's devices would provide you with the protection you desire, not sure. Time for you to hit the datasheets, for sure!
Shorts to ground or Vcc?
I presume then you're fusing the BME280, else your solder is taking down the whole system anyway.
Either really, I just want to cover anything that could happen when it gets wet
Yeah it's fused, there is space on the reverse of the BME280 board (which is sealed) so i can replace anything that might be damaged along with the BME280. I've had a read through the data sheet a bit more, and it looks like it'll need some other logic and would still pull the bus low until the error had been detected and 'manually' resolved. I wonder if it would just be easier to have a small MCU with 2 i2c ports and communicate through that so the busses are totally separate
From the TCA9548A Datasheet,
The system master can reset the TCA9548A in the event of a time-out or other improper operation by asserting a low in the RESET input. Similarly, the power-on reset deselects all channels and initializes the I2C/SMBus state machine. Asserting RESET causes the same reset and initialization to occur without powering down the part. This allows recovery should one of the downstream I 2C buses get stuck in a low state.
So it would be up to the Arduino to reset the TCA9548A, sure. Nothing's free.
I use sensirion sht sensor (I2C) with waterproof SF2 filter cap. Rest of the sensor I dipped in epoxy.
I can leave it uncovered in the rain.
If you have two extra pins you can use SoftI2C. No extra hardware needed.
That looks great
I can't really afford that in my application, but kmin has recommended a sensor that will work in the wet anyway. Thanks for your help
I mean I dipped it in epoxy. I don't know if they sell them already sealed.
Yeah we can pot them, we are doing the same for another board in the project anyway
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.