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.

BQ27520-G4: How to get SOH over i2c, data sheet is confusing me

Part Number: BQ27520-G4

I'm trying to get the SOH of my battery from the charger board over i2c, however I'm getting confused by reading the data sheet!

I am able to get voltage, SOC etc. just fine, but the section on SOH is different.

https://www.ti.com/lit/ug/sluua35/sluua35.pdf?ts=1629446576002

page 13, section 2.15

It says that the command to send over i2c is 0x1C. Under 2.15 it starts mentioning "0x28" and "0x29". What do these mean?! Am I reading from 0x1C or from 0x28!? What exactly am I supposed to be sending over I2C?

If you look at all the other commands, for an example 2.14, it lists the command to be sent over as 0x1A - and it works fine. I'm utterly confused as to what the manual means by writing that the command to be sent over is 0x1C and then all of a sudden starts mentioning 0x28...

  • Hello Johannes,

    I think there is an error in the document. Did you try reading 0x1C and 0x1D just like the other commands? 0x1C is for SOH percentage, 0x1D is for SOH status

    0x28 and 0x29 are used for temperature per section 2.19.

  • Hi,

    Ah I see, that does make sense. I'm getting nonsensical values but I think I might be doing something wrong when sending the extended commands. The simple read commands work fine and as I said I can get the "simple" values like voltage no problem, however I can't seem to get the 0x00 values such as firmware version and device type. I just get 0x00 0xff for everything. I haven't had the time to look at it.

  • The firmware version type commands are a combination of write+read. You would write the command and then perform a read. The read value changes based on the command that was last written.

  • Yes, I am aware of that but I am not getting any sensible values. I think it might have something to do with the delays that are mentioned in the data sheet, I might be trying to read too quickly after sending the command, but as I said, I haven't had the time to look into it yet. I'm satisfied with your previous answer to the original question though - if it's a typo then I can put my mind at ease. Thank you. 

  • Hi Johannes,

    Thank you for the clarification. I submitted a ticket to have the document corrected.