Information about the Linear Technology LTC6804 BMS IC and tools
LTC6804 idiosyncrasies
Be aware of the following idiosyncrasies of the Linear Technology LTC6804 BMS Analog Front End.
Endianness
The format of the registers uses 2 different endianness.
The 12-bit, 16-bit and 24-bit values are little endian (LSB followed by the MSB)
Commands and PEC are big endian (MSB followed by the LSB)
Total voltage
The "Sum of cell measurements"
(confusingly called "SOC", when SOC in this field means "State of Charge")
is not generated by adding the cell voltages (as the name implies);
it's actually the total string voltage.
In any case, it's not the true string voltage (the voltage between the most positive and the most negative taps).
Instead, it's designed to be the voltage of the most positive tap with respect to the V- supply.
Indeed, the schematic in pages 18 and 19 of the spec sheet does imply that fact.
Unfortunately, it's not even that: for every 10 mV difference between the C0 voltage and the V- voltage,
the reported "SOC" voltage changes by as much as 1 V.
The problem is that, if the LTC6804 is powered by the cells,
the protection circuit between the cell voltage taps and the IC may introduce a small voltage difference between the C0 tap and V-.
That would result in a reported "SOC" voltage that is significantly less than the actual string voltage.
GPIO
Be aware that the GPIO lines, when used as outputs, are open-drain and need a pull-up.
PEC generator
This free, on-line calculator generates a PEC for the Linear Technology LTC6804, useful during code development.
Input data: hex (may include spaces, do not include '0x')