Other Parts Discussed in Thread: BQ35100, BQSTUDIO
I played with the Bq35100 and BQstudio.
I have some misunderstanding about type of CC_offset' value and Board offset's unit. I see the data memory calibration page.
1,
I'd like to know why the CC_offset's value is in floating point data format, why not int16_t, and the Board_offset's unit why not in mA.

here is the reference

2,
If I calibrate the chip with BqStudio, will the Bqstudio calculate the CCgain and the CCdelta, and write these values in to the chip in floating point format?
Is it true?
3,
Why are the unit of CCgain and unit of CCdelta in mOhms?
4,
If I do calibration with my application MCU, I'd like to know how need to put the calculated 4byte floating point CCgain to the 0x4000-0x4003 memory addresses and CCdelta to the 0x4004-0x4007 adresses.
What is the byte arrange in the two 4bytes memory array? Where is the exponent, the sign and the mantissa in the memory array?
//----------------------------------------------------------
This is how I would do it in my C program
union{
float f_val;
uint8_t buff[4];
}u;
union u temp;
float ccgain;
float ccdelta;
extern int8_t boardOffset;
extern int16_t ccOffset;
extern int16_t avgRawCurrent; // I dont know the proper type of this, I only suppose it
extern int16_t current; // I dont know the proper type of this, I only suppose it
// these two equations came from SLUBH1C.pdf(TRM)
ccgain = (float)current /(avgRawCurrent-(ccOffset + boardOffset) / 16);
ccdelta = ccgain * 1,193,046;
temp.f_val = ccgain;
// this is my I2C blockwrite program
writeExtendedData(0x4000, &temp.buff[0], sizeof (temp.buff));
temp.fval = ccdelta;
writeExtendedData(0x4004, &temp.buff[0], sizeof (temp.buff));
//---------------------------------------------------------------------------------------
Do You think is it can be good for Bq35100 proper operation?
Best regards
Laszlo