This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ34Z100-G1: I2C Problem, device responding to address but not commands

Part Number: BQ34Z100-G1
Other Parts Discussed in Thread: EV2400, BQSTUDIO

Hi,

I am trying to comunicate with a BQ34Z100-G1 using a microcontroller. The fuel gauge is responding, but only to the address byte (0x55). When the master send the next byte (0x00 on the images), the fuel gauge is not driving low to generate the ACK. I tried with other microcontrolers and decreasing the frequency and the result is the same. The frequency on the images is 50kHz and the same script works fine with others I2C devices.

 

Logic analyzer:

Any advice or guidance on how to resolve this issue would be greatly appreciated. Thank you for your assistance.

  • Looks like the data line was low right before this capture. Check if the idle time for bus free condition is satisfied. Or put data high for a few milliseconds before starting the transaction.

  • Same behaviour. Also, i dont know why the SDA line goes low after the stop condition. This does not happen with the other device on the bus (0x34, second image).









  • Hello Cristian,

    The frequency seems to be different in these 2 captures. The best way to debug is to use bqStudio and EV2400 as the reference and replicate the speed and timing, then check what is failing.

    If data goes low later, then check which end is pulling it low - host or gauge.

    Use an oscilloscope to see the waveforms because the actual edges are not so straight. There could be timing mismatches because of slow rise times, that are clearly seen on an oscilloscope.

    The I2C characteristics of different devices could be different

    For bq34z100-G1, the datasheet section for timing is 6.14 Timing Requirements

  • Hello Shirish,

    Both captures are from the same trial, the frequency is the same, i only changed the zoom on the window.

    The first image on the original post was taken with an oscilloscope. I checked the rise time and is less than 300ns, i can take another capture, but the rise time requirements in both devices is the same (max 300ns) and the bq34z100-G1 is responding to its address. 


    Searching on the forum, the only similar problem that i found was THIS. But the bq34z100-G1 does not have the same pinout, so i can't test the solution.

  • Hello Cristian,

    Those are nice clean edges on the oscilloscope. Maybe the pull-up resistor value is too low. Make sure that the current sink capability of the gauge is not exceeded.