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.

BQ76940: Optional Real Time Calibration using Host Microcontroller

Part Number: BQ76940
Other Parts Discussed in Thread: BQ78350

This is regarding the calibration of 14-bit ADC on AFE 76940. It is mentioned in section 7.3.1.1.2.1 of BQ76940 Datasheet  that there is an optional Real time Calibration available through an external circuit. And a 'Gain2' Can be applied on the Cell voltage reading post this calibration. Post this, V(cell) = GAIN2 × (GAIN x ADC(cell) + OFFSET) will be the equation used to calculation of Cell voltages. 

Questions:

1. How to enable this feature?

2. In which register is the Gain2 Stored? Do we have Read/Write access to this register?

3. Can we have write access to 0x50 and 0x59 registers of AFE?

4. How can the Gain of Cell Voltage ADC (14-bit) be calibrated?

Best Regards,

Hrishikesh

  • Answer to Q1--> This is recommended calibration, intended to perform GAIN and Offset in the preferred range of the cell voltages,  needs to be implemented on the host/controller side for the each of the cell voltages. refer to Fig 6.2 of the d/s. The max error happens on the low end of the cell voltages. 

    Answer to Q2--> The calculated values "Gain 2 and Offsets"  needs to be stored in the host side.

    Answer to Q3--> 0x50, 0x59, & 0x51  are only READ ONLY. Table 7-21 & Table 7-22 detailed the type of access as "R" ( Read ONLY);

    Answer to Q4--> if  ignoring, the GAIN and Offset in the stored in the register.  Pick the desired range of cell voltages of interest and calculate the  new GAIN & offset.

  • Hi Vish,

    Thank you for your quick response.

    I have a follow up question to your answer. As per the answer to Q2-> The calculation valued "Gain2 and Offsets" needs to be stored on host side.
    My questions:
    1. What is the address of register on Host that is designated for storing Gain2 Value? We are using BQ78350 as host.

    Thanks,
    Hrishikesh
  • Hello Hrishikesh,

    since the host is bq78350,  calibration  can only be done with the  Offset and NOT for the GAIN in the Bq78350's data flash area. You are captive to the firmware. The bq78350 dataflash area is given in the bq78350 data manual.

    Hope this helps..

    thanks

    vish

  • Hi Vish,

    Thanks for the response.

    We performed and accuracy test on the ADC and as per the results from the test, it is evident that the ADC needs Gain Calibration as well. Is there any way in which this can be achieved for the ADC referenced above?

    Thanks,
    Hrishikesh
  • As noted in the d/s application curves Fig 6-2, the ADC errors are not equally distributed over the entire dynamic range( 2-5V) of Vin. If the customer’s preferred range of Vin ( lets say 3V-4.2V), a single zone calibration technique may be implemented.
    The only issue is an very accurate reference is needed. May be bq769x0 REGOUT or a system DAC for at least one channel may resolve the issue….

    Let say, If an accurate 4V reference is given, on the 14 bit ADC,

    3V would be converted , (3.0/4)* [2 ^14] = 12288.

    If reference, 3.9V, the 3Vwould be converted, ( 3.0/3.9)*[ 2^14]= 12603.

    This quite well can lead to with a lower reference voltage(3.9V) than the ideal (4.0V), the ADC can report higher results.
    So a better way is to adjust by multiplying it with a “calibration factor”


    Calibration factor = 12288/12603 = 0.975.

    Thus the Calibrated ADC result = ( Cal factor) *( actual digital result)
    -------------------------------------------------------------------------------------------
    Another simple way is exploration with two points as simple as below….

    If X= input or actual reading
    a= slope of transfer curve
    b= offset
    Y= ADC out

    Y= aX+b

    @V1,
    Y1 = a * x1 +b ->(eq 1)
    @V2
    Y2 = a * x2 + b > (eq 2)

    eq(2)- eq (1)

    a = ( Y2- Y1)/( x2-x1)
    offset = b= Y1 –((Y2-Y1)/x2-x1)) * x1

    since Gain, offset are known in the area of interest, actual input can be calculated.
    In the range of interest, I’ve assumed the transfer curve is a straight line.