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.

BQ27510 I2C Read Problems

Other Parts Discussed in Thread: BQ27510

Hello,

I am having trouble reading from the SOC register on the BQ27510.

So my I2C code is as follows:

Start, 0xAA , write to 0x2c, Repeated Start, read 0x2c, recieve byte.

I have tried running the code but I am unable to read any information,which suggests the device is unsealed or in SLEEP mode

Have I missed something very important in my code ?, by the way i am new to I2C and am currently using a Arduino Uno to prototype the software.

A really hope someone can help and fast :D

  • Ben,

    If you are trying to read data from a particular register (example here register 0x2C) then your I2C sequence should look like:

    Start, 0xAA, [Ack], 0x2C, [Ack], Repeated Start, 0xAB, [Ack], Data Read, [Nack], Stop

    I added Acknowledge and No Acknowledge signals as additional information. In sequence above the Nack is provided by your host.

  • So if thats is the case i'll give that a go but I just want to double check a fellow things which puzzel me (probably due to me being new to I2C) :

    1. 0xAA (Bq27510 Address) so I take it that 0xAB would be the write address for the device.

    Apart from that i should be fine :)

    Thank you

  • 0xAA is the write address and 0xAB is the read address. Technically the I2C address of bq27510 in 7 bit format is 0x55. However, when you add the write/read bit then you get in 8 bit format 0xAA and 0xAB respectively.

    There's a COMMUNICATIONS section at the end of our gas gauge datasheets that describe well the different sequences for allowed I2C operations with the gauges. Use this as reference if you decide to perform multiple byte reads or write data which will have different sequences from what I gave you as example.