BQ28Z610-R1: I2C ACK bit timing issues

Part Number: BQ28Z610-R1
Other Parts Discussed in Thread: BQ28Z610, BQSTUDIO, EV2400

Tool/software:

Hi:)

-

I’ve encountered an issue with the BQ28Z610-R1 and its I2C communication behavior;

Specifically, it introduces a delay before latching the acknowledge (ACK) bit low, which causes problems when using an I2C level-shifter like the FXMA2102 on the same bus.

-

As shown in the image below, the BQ28Z610-R1 introduces a very small delay (~2us) on the ACK bit:

(normal operation, EV2400 + bqStudio)

-

This small delay results in a pulse/spike on the I2C line which is too fast for a I2C level-shifter like the FXMA2102 to settle properly, causing it to fail:

-

Current Setup:

  • I2C Bus Speed: 100 kHz
  • Pull-up Resistors: 1.5K to 3.3 V
  • BQ28Z610 'I2C Configuration' Register: 0x08 (only 'XL' enabled for 400KHz bus-speed)

I’ve already tried enabling/disabling the 'TO_STRETCH_EN', 'FLASH_BUSY_WAIT' and 'XL' bits in the 'I2C Configuration' register which when all enabled decrease the delay somewhat, but still not enough (even at 400KHz bus-speed).

I've also tried adding a series resistor+capacitor on the SCL and SDA line (100ohm + 200pF), but unfortunately this did also not solve the issue.

-
Are there any additional settings or techniques for the BQ28Z610-R1 either extend or remove the delay on the ACK bit?

Any insights or suggestions are greatly appreciated!

-

Thanks!

  • The issue has been resolved and was actually not caused by the delay on the ACK bit, but instead by the I2C-bus filter (surge protection) recommended for the BQ28Z610-R1 in its datasheet.

    Specifically, the resistor values of 100ohm where too high and caused the logic-low level to be not low enough to register properly.
    Using a ferrite-bead and a 10ohm resistor instead solved the issue.