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.
EVSW does not write these values directly. Most people have been doing this through BQeasy, so the documentation is a little old.
Take a look at App note SLUA440: www.ti.com/litv/pdf/slua440
This app note is for the bq27500, but the calibration command sequence is the same for the 510.
Cheers,
Charles
How do you know the BQ gauge did not enter calibration mode? Note that you cannot enter calibration mode if the gauge is SEALED. Check the SS bit of the ControlStatus register to determine this.
The Nominal Available Capacity is also located in the DataFlash and can be written to directly if you want to set it yourself. This value is calibrated automatically when you perform a learning cycle.
See the following application note for Learning Cycles: http://www.ti.com/litv/pdf/slua544
Let me know if this helps,
Charles
CC Gain: data flash raw data 0x7F71205C, EVSW reading with: 10.124
Raw data (0x7F71205C) -> first two byte is for exp gain. The exp is 0x7F -> 127, so gain: (127-128-24) = -25 -> 2^(-25)
The rest is the low address to high address hex read from gauge and it is big endian. Bit 7 of the MSB is used for the sign bit, but in the conversion the mantissa is considered to be shifted so the bit 7 would always be a 1, to preserve the most possible significant bits in the mantissa. So after determining the sign here, the implied high bit must be set back to one for the conversion to be correct.
0x71205C OR with 0x80 = 0xF1205C -> convert into DEC and times 2^(-25) = 15802460*2^(-25) = 0.47095
CC Gain = 4.768/x = 4.768/0.47095 = 10.124 (matches!)
CC Delta: data flash raw data 0x940898C0, EVSW reading: 10.147
Raw data (0x940898C0) -> first two byte is for exp gain. The exp is 0x94 -> 148, so gain = (148-128-24) = -4
0x0898C0 OR with 0x80 = 0x8898C0 -> convert into DEC and times 2^-4 = 559500
CC delta = 5677445/x = 5677445/559500 = 10.147
Board Offset: data flash raw data 0xF6. EVSW reading : -0.27
F6 -> convert to DEC = -9.
Board offset = x*0.48/16 = -9*0.48/16 = -0.27
CC Offset: data flash raw data 0xFA89, EVSW reading with new *.encr = -0.67
0xFA89 -> convert to DEC = -1398.
CC offset = x*0.00048 = -1398*0.00048 = -0.67
Please use updated calculation in attached document
This doesn't make sense! I have implemented this calibration data reading on my system. At the time I used the "new" format, but when I used the calibrated values on EVSW and used the generated golden image on my board and read it again, I discovered that EVSW actually uses the "old" format.
EVSW version 0.9.71
BQ27510-G2