Hello
I have a project using MC33771C to monitor battery cells.
In datasheet there's mention ADC resolution can be programmed from 13~16bit by ADC_CFG(0x06) register.
I know the cell voltage register MEAS_xxxx(0x32~0x4A) is 15bit and ADC resolution affect conversion time & noise.
I try to change ADC resolution to 13bit and read MEAS_xxxx value e.g. MEAS_xxxx=0x2324, it returns almost the same value when I set ADC resolution is 15bit.
So I'm curious about why I don't get the value is 0x2324/4= 0x8C9 ?
Please help me to figure out this question, thanks.
Hello Liang,
ADC1_A/B conversion values are independent of the selected resolution of ADC_CFG.
For ADC1 CT/ANx the formula is as follows:
V = MEAS_XXX[14..0] * VCT_ANx_RES
Pseudo-code (1 cell only):
ReadRegister (MEAS_CELL1)
rawVoltage = MEAS_CELL1 & 0x7FFF // remove DATA_RDY bit
voltage = rawVoltage * VCT_ANx_RES / 1000000 // calculate/scale voltage in V
Example:
With VCT_ANx_RES = 152.58789 μV/LSB and MEAS_CELL1[15..0] = 0xDECD
then MEAS_CELL1[14..0] = 0x5ECD = 24269
then V = 24269 * 152.58789 = 3703155 μV = 3.703155 V
The impact of the resolution is indeed only on the noise of the acquisition and conversion time.
BR, Tomas