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.

BQ28Z610: problem with I2C communication

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

Hello,

I'm trying to comunicate, by I2C, from my host (Atmega328PB) to BQ28Z610 gauge.

System is composed from BQ25883 as charger, BQ28Z610 as protetor and gauge, Atmega328PB as host and 2S 14650 lithium cell as power supply.

I2C communication from host to BQ25883 is fully work.
Pull-up resistance is 5.1K connected to positive pole of first cell.
I2C connection wire are quite short.

When I read register value with EV2400 and BQStudio, to BQ28Z610, it's ok,
but when I try to read same address and same register with my host, BQ28Z610 doesn't answer.

In attached picture you can see a captured image of I2C signal of Standard Commands (0x2C RelativeStateOfCharge) between host and BQ28Z610.
In image there are several NACK, instead there should be ACK.

How can I solve it? 

Thanks

  • Hello Fabio,

    Please refer to standard i2c protocol. You are not reading the standard I2C here.

    You want to send a start, followed up with slave address for the gauge, followed with the register, in this case, 0x2C, then a repeated start and read 2 bytes and send a stop.

  • Hello,

    thanks for your fast answer.

    When host communicates with BQ28Z610 it does:

    start - 7 bit address + bit write          (0x55 + 0 bit)

    write register                                           (0x2C)

    repeat start - 7 bit address + read bit (0x55 +1 bit)

    read with Ack

    read with Nack

    stop

    In last pciture

    This step are egual that I do for write/read to BQ25883.

  • Hello Fabio,

    This looks like your host issue.

    My recommendation to solve this.

    1. Hook up an oscilloscope and monitor the bqStudio + EV2400 communication with the device and compare this to what you have on your host side.

    2. You are not getting any data returning from the device. From the data signal, it looks like it's trying to pull down, but cannot.

  • Hello Kang,

    Protocol was correct.

    Problem was speed clock too high for trasmission line of the prototype circuit.

    I have slowed down to 70kHz speed clock and circuit fully work.

    Thanks.