We are trying to calibrate the current according to paragraph 11.2.5 in TRM. However, there seems to be some errors in this paragraph. Could you help me figure out how the calibration algorithm should be?
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.
We are trying to calibrate the current according to paragraph 11.2.5 in TRM. However, there seems to be some errors in this paragraph. Could you help me figure out how the calibration algorithm should be?
Can you please be a little more specific? Which line or lines do you find wrong or confusing?
Certainly.
On line 5, FCAL_CC is first set to HHhh of command 0xF082, which is External average cell voltage. If FCAL_CC < 0x8000 (which it always is, as a cell voltage of more than 32768mV is uncommon), FCAL_CC is to be set to -(0xFFFF - AAaa + 0x0001). AAaa is AFE Cell map. How can FCAL_CC contain anything meaningful at this point?
Note that line 5 is identical to line 5 in paragraph 11.2.5.1
After line 7, FCAL_CC is discarded.
In line 10, there are a few variables mentioned that aren't described. I_CC is the known current, I presume? What is ADC_CC? "CC Offset" is of course the value calculated from paragraph 11.2.5.1?
Also, the tables on page 70 and 111 in TRM, both describing the return values from command 0xf082, differ slightly, but they agree on "AAaa" and "HHhh," which are the ones refered to by the algorithm
While we wait for the clarifications, you can choose to do the calibration manually through BQ studtio. There's a Calibration option for CC offset and gain. And everything is done for you automatically without calculations.
There's another option where you can change the values in the flash through BQ studio without doing all the calculations. In Data Memory, under the Calibration category, you can enter the value of your sense resistor which will be used for your current gain and capacity gain (I don't know what the capacity gain does, but I set the same value in both fields). Under the calibration category again, you can change your Current offset value (I left the sample number as default).
If that doesn't meet your needs because you need to calibrate the BQ during production, you'll have to wait for an answer.
And I can add more precision to what Harald mentioned about mismatching information.
In section 11.2, the table shows the values returned by the ManufacturerAccess commands 0xF081 and 0xF082. The fields do not correspond to the values found in section 16.2.60 for 0xF082.
Current is read in KKkk for chapter 11 (page 70) and JJjj for chapter 16 (page 111).
I presume it's a typo since VAUX Voltage is IIiiJJjj in chapter 11 (4 bytes instead of 2 causing the offset in the letters).
Also, chapter 11 shows the output format for 0Xf081 and 0xF082 should be ZZAAaaBB..... (but it doesn't mention the YY found in the tables).
I presume this is also a typo and the field is sent as one byte.
Hello Michal,
Where you able to answer the questions posted by the individual who needed help. I am also in the same boat and things do not add up.
I have been able calculate that the cc gains and that they need to be around 8.000 decimal value. I have also read back the various decimal values of the cc gain from address 0x4000 to 0x4003. If I use the software to change the calibrated shunt value (cc gain) from 1.000mOhm to 1.5mOhm, I get a decimal value that is around 30,000 in (single precision little endian format). The range is only 0.1 to 9.0?
What is the correlation between the mOhm value of cc gain and the flash value cc gain?
Is it possible to have flash values greater or less than the limits of the datasheet?
Is there an error in the little endian calibration values that need to be fixed?
Thanks
Jeff,
There are conversions from the EVSW resistance to the DF value.
CC GAIN: resistance / 8.4381
CC OFFSET: resistance / 2516761.36
The F4 data type used to store values for CC Gain and CC Delta in flash with chips like the BQ34Z100 use the Xemics Floating Point. How it works is explained in
How EVSW Display the Raw Data V1.03.pdf
e2e.ti.com/.../How-EVSW-Display-the-Raw-Data-V1.03.pdf
and there are VB functions to convert in either direction between Xemics form in hex and the equivalent flash (not EVSW) decimal form on page 4 of
slva148a.pdf
www.ti.com/.../slva148a.pdf
Tom