Other Parts Discussed in Thread: BQ25887, BQ24270, USB2ANY, BQ24160, BQ24765, BQ24250
Hi,
I have an issue with the BQ24271 causing a I2C bus collision. My bus diagram is shown below.
There are 6 devices which sit on the I2C bus running at 100kHz with a PIC uC as the master. There are two battery management sections, which have been split into two busses with a MUX controlling the SDA line due to the fuel gauges sharing the same I2C address. The SPDT MUX was chosen over a specific I2C MUX switching both SCL and SDA due to component availability at the time and cost, with the design intent being that when the MUX is high-Z on the deselected bus and therefore with the pull-up on SDA, the slave will never receive the start condition.
I can read and write to all devices except the BQ24271 reliably, I can also read/write to the MAX17055 on BM1S bus. However, when I write/read to the BQ24271 which shares the BM1S bus, I get a bus collision (mostly, although occasionally not). There are no address conflicts as the remaining devices on the bus are 36h, 20h, & 50h.
As shown on the diagram I have 4k7 pull up to Vdd on SCL and 10k pull up on both sides of the MUX, thus giving a combined 5K pullup to Vdd on the SDA line. Vdd is 3V.
I have looked at the waveforms with an oscilloscope on the bus on both sides of the MUX, there is a nice flat top to all signals, so no alarming effects of parasitic capacitance and the signals look clean.
I get the issue if I keep the bus select static, and I also took the MUX off the board and hard wired SDA to SDA(BM1S), thus making it a single bus without SDA(BM2S) just in case the MUX was doing something strange.
Looking at the DC characteristics between the BQ24271 and the BQ25887, they are the same although the test condition for the sink current differs.
Any help would be most appreciated.
Andy