Part Number: BQ25155
Tool/software:
I am using I2C to read out the Vbat value on register 0x42. I can get 2 bytes out of the read MSB followed by LSB. When reading the register 0x43 that suppose to contain LSB it does not match the first reading LSB.
The PG is down to block for A/D converter to change the vbat-value.
Multi reading sets (with a time pause of 30sec) shows a repeated log with the same readouts.
As the LSB value is slightly making just little difference I cant decide what value of LSB to use. The right measured value is in between the 2 sets.
Log from Saleae logic analyzer:
name type start_time duration ack address read data
I2C address 20.8408064 0.00008864 true 0x6B false
I2C data 20.84090016 0.00008848 true 0x42 Asking for register 0x42
I2C stop 20.84104928 0.00000016
I2C start 20.84113408 0.00000016
I2C address 20.84114416 0.00008864 true 0x6B true
I2C data 20.84123792 0.00008848 true 0xA5 reading VBat MSB/LSB
I2C data 20.84133152 0.00008864 false 0x81 Is this VBat LSB?
I2C stop 20.84143072 0.00000016
I2C start 20.8448 0.00000016
I2C address 20.84481008 0.00008864 true 0x6B false
I2C data 20.84490384 0.00008848 true 0x43 Asking for register 0x43
I2C stop 20.84505296 0.00000016
I2C start 20.84513776 0.00000016
I2C address 20.84514784 0.00008864 true 0x6B true
I2C data 20.8452416 0.00008864 true 0x7D Reading 0x43 -> VBat-LSB
I2C data 20.8453352 0.00008864 false 0x53