SparkFun_BQ27441_Arduino_Library icon indicating copy to clipboard operation
SparkFun_BQ27441_Arduino_Library copied to clipboard

Query regarding data from class power

Open rmunny opened this issue 5 years ago • 0 comments

Hello, From the manual page 29 https://www.ti.com/lit/ug/sluuac9a/sluuac9a.pdf?ts=1594252976133&ref_url=https%253A%252F%252Fwww.google.com%252F I see that power is under Subclass 68, and hibernate I and V can be read from offset 7 and 9. Now in the example BQ27441_Basic, power data is got by calling the function power() which is as following:

int16_t BQ27441::power(void) { return (int16_t) readWord(BQ27441_COMMAND_AVG_POWER); }

The readword() and i2cReadBytes() functions are as following:

uint16_t BQ27441::readWord(uint16_t subAddress)
{
	uint8_t data[2];
	i2cReadBytes(subAddress, data, 2);
	return ((uint16_t) data[1] << 8) | data[0];
}
int16_t BQ27441::i2cReadBytes(uint8_t subAddress, uint8_t * dest, uint8_t count)
{
	int16_t timeout = BQ72441_I2C_TIMEOUT;	
	Wire.beginTransmission(_deviceAddress);
	Wire.write(subAddress);
	Wire.endTransmission(true);
	
	Wire.requestFrom(_deviceAddress, count);
	
	for (int i=0; i<count; i++)
	{
		dest[i] = Wire.read();
	}
	
	return timeout;
}

My questions are:

  1. The power() function is reading 2 bytes so which 2 bytes it is reading (Hibernate I at offset 7 or Hibernate V at offset 9)?

  2. In the BQ27441_Basic.ino how can, it is reporting power in mW just by reading Hibernate I or Hibernate V? int power = lipo.power(); // Read average power draw (mW)

  3. If I want to see both the Hibernate I at offset 7 and Hibernate V at offset 9, how should I modify the library to print the individual data of Hibernate I at offset 7 and Hibernate V at offset 9 and also the power?

Please correct me if I am wrong. Thanks for your time.

rmunny avatar Jul 09 '20 00:07 rmunny