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.

BQ25887: I2C Communication Problems

Part Number: BQ25887

I have the chip running on my board and it charges the battery when I give it 5V and the LED lights up with no problems. I have two I2C lines connected to my microcontroller and pulled high to 3V3 with pull up resistors. My pseudocode is as follows:

Send start condition

Wait for start condition to be sent

Send Device Address (0x6A as dictated by data sheet but I've also tried 0x6B as I saw a forum that said the data sheet addressing was wrong) on I2C bus

Wait for Device Address to be sent

Wait for slave ACK response

My code then exits the method here as it never receives the ACK response from BQ25887. 

Do you know where I could be missing something that would cause the chip to not ACK an I2C command? Scope photo attached of the two I2C lines.

 

  • Ben,

    You are correct, the I2C address should be 0x6a instead of 0x6b mentioned in the datasheet. 

    Something seems a little off, however. Looking at the transmission the raw bits transmitted, following the protocol described in Figure 16 of the datasheet are:

    0 1 1 0 1 0 1 0

    According to Figure 17, the 7-bit Addressing format is 7 bit address bits followed by a final eighth data direction bit. In your operation you wish to write, so the eighth bit will be 0. However the first 7-bits should be 1 1 0 1 0 1 0 or 0x6a.

    Looking back at your transmission:

    0 1 1 0 1 0 1 0

    The eighth bit is 0 and this is correct, but your first seven bits are 0 1 1 0 1 0 1 or 0x35.

    Please correct this and let me know what you observe.

    Thanks,

    Ricardo