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.

BQ76942: Accuracy of NTC

Part Number: BQ76942
Other Parts Discussed in Thread: BQ76952

Hi Matt,

For the temperature measurement, I use a 10K NTC, and B = 3435, the same as Semitec 103-AT thermistor which is suggested in the paper "Improving temperature measurement accuracy in battery monitoring systems". But I found the temperature value I read out  from the Reg is very inaccurate. In room temperature, I got near 30 degrees centigrade. But with real temperature 34 degrees, the error goes low. I got 37 degrees. 

How should I set to make the measurement more accurate? Seems only set the offset, it doesn't works.

Thank you, and looking forword for your feedback.

  • Hi Sean,

    The same B value does not always give the same performance.  There is the coefficient calculator available in the BQ76942 product folder Design Tools & Simulation section or https://www.ti.com/tool/BQ769X2-THERMISTOR_COEFF_CALCULATOR Enter the values for the new thermistor and let it calculate coefficients. Enter these and see if the result is more suitable.

  • Hello Matt,

    Thank you for your help.

    What does the Adc0 parameter mean? Do I need to calibrate this parameter?

  • Hi Matt,

    I have tried with the excel calculator and got the coef parameters, but I found the temperature measurement is very unaccurate.

    Even at the temperature point of 15degrees, the error is 3degrees.  What should I set to narrow the error?

  • Hi Matt,

    I have tried with the excel calculator and got the coef parameters, but I found the temperature measurement is very unaccurate.

    Even at the temperature point of 15degrees, the error is 3degrees.  What should I set to narrow the error?

  • Hi Sean,

    The calculator may be trying to optimize too much of the curve.  Is there a public data sheet for the thermistor you are using that you can share a link, and what temperature range are you interested in having good accuracy?

    You asked about ADC0 the other day.  The technical reference manual section 13.2.8.10 Calibration:18K Temperature Model:Adc0 shows it as a gain term, you could calculate this for your thermistor after applying the coefficients.  Note there is also the offset calibration for each thermistor available in the calibration section of the data memory.

  • Hi Matt,

    Thank you for you explanation.

    What's the formula that calculate the temperature?

    I have the data sheet for the thermistor, and the data is in the picture above. And the interested temperature is between -25 degrees to 65 degrees.

    I have also put in the excel table. But with the coef parameters. the error of temperature measured is huge.

    How to solve this issue?

  • Hi Sean,

    Let us take a look at it, it could take a few days.

  • Thank you Matt. I have told this issue to Alex, and shared NTC datasheet to him.

  • Hi Sean,

    I ran your thermistor through another internal tool and came up with a new set of coefficients, you can try these and see if they give better results:

    A = 2978   -8937   -8937   26809    2978

    B = -1160   3035  -3937   4383

    For this, leave the adc0 at its default setting.  You can evaluate the results across temperature, then you can adjust an offset using the Data Memory parameter in Calibration:Temperature:TS1 Temp Offset for a thermistor on the TS1 pin, for example.

  • Hello Terry,

    Very glad to get your answer. But with my test,  the temperature measurement is still not accurate.

    I set the coef parameter as which you give me. And I set the input resistor 10K to calibrate at 25 degrees. Then I change the resistor value, and get the temperature report with reading the register.

    When I set 12.1K in order to get 20 degrees, in fact I get 22.2 degrees.

    When I set 27.6K in order to get 0 degrees, in fact I get 11.8 degrees.

    When I set 68.97K in order to get -20 degrees, in fact I get 5.6 degrees.

    When I set 4.9K in order to get 45 degrees, in fact I get 40.8 degrees.

    When I set 3.0K in order to get 60 degrees, in fact I get 54.8 degrees.

    Is there something wrong with my setting?

  • Hi Sean,

    I think something else is awry here.   Can you export a gg file with all your settings and send that?  Also please capture the raw counts for the pin you are using (such as TS1 Counts if using TS1) for each value of thermistor resistance.

    Thanks,

    Terry

  • Hi Sean,

    Also what is your thermistor circuit?  Excess capacitance on the pins can slow rise time and may result in a lower voltage reading, but that should be appear across temperature and your result does not indicate this. 

  • Hi Matt,

    The schematic of this part is shown as below.

    In fact, I think it is easy to validate the setting. We do not need to use the NTC, we can just use the variable resisitor to simulate the NTC. According to the NTC temperature_vs_resistor table, we change the resistor value, then read out the temperature. If the resulut matches the table, it is good.

    Right?

    Today, I will use the EVM board to  cross check the temperature measurement. Later I will give you the response.

  • Hi Sean,

    Also try removing the 0.1uF caps, since that generates a fairly large time constant (especially at cold, when the thermistor resistance increases).

    Thanks,

    Terry

  • Hi Terry,

    I remove the 0.1uF, and use your parameter, it is very very accurate.

    Could you pls help me to make another group of parameters? I use another 200K ntc, since the error distribution of 10k and 200k is different.

    What's your mail adderess?I have sent the datasheet of the 200K NTC to Alex.

    Thank you very much.

  • Hi Sean,

    Ok, great to hear that cleaned it up.  When using the 18k pullup resistor, we recommend keeping the capacitance <4nF.  When using the 180k pullup, it needs to be <400pF.

    I already received the thermistor datasheet in email from Yue.  I will work on coefficients for that one tomorrow.  I assume you will use the 180k pullup with that one, correct?

    Thanks,

    Terry

  • Hi Terry,

    Many thanks for your kindly help.

    Yes, the 200K NTC will use 180K pull up. But I have another question to ask you, do you think it is necessary to use two different NTC to measure temperature? Or the 10K one is enough?

    Or I can use two 10K ones, if one fails, I can change to another one. Which choice makes more sense?

    With my original thinking, I can get more accurate temperature value in low temperature range by using 10k one. While in high temperature range, the 200K one is more trustable. Am I right?

  • Hi Sean,

    A NTC monitors temperature at one point, some designers want to have multiple sensors to check temperature of cells over a larger area (more cells).  The BQ76952 family can support multiple thermistors.   You could connect 2 or more 10k NTCs to the same TSn input of the BQ76952 and have the MCU control multiplexing, but it would not be able to synchronize to the BQ76952 measurement so there may be odd measurements taken during switching which would need to be filtered out.  It may be preferred to have the MCU measure additional temperatures if desired.

    NTC curves generally have the same general shape, steeper at cold than at hot.  Accuracy should be similar if the appropriate parameter coefficients are prepared and loaded.  The higher impedance thermistor will draw less current, might be more easily influenced by interference.   The part can support the 2 pull up values for a variety of thermistors as desired for the design.  The part does not have a setting to use one thermistor for cold and another for hot, but the host can read the data and use it as desired.

    It seems Terry is providing support through another path, I will close the post for now.

  • Hi Sean,

    I expect you'll probably be fine with two 10k thermistors.  From your 10k thermistor data (using our 18k pullup), the difference between -30C and -29C changes the 16-bit digitized divider value by approximately 0.75%.  The ADC resolution is much better than this, so will easily differentiate between these values.

    Using the 200k thermistor data and our 180k pullup, the difference between -30C and -29C changes the 16-bit digitized divider value by approximately 0.3%, so it is actually worse that the 10k case (it would improve if our pullup was even larger than 180k).  Plus using the 200k thermistor will make the divider circuit higher impedance, which may make it a little more sensitive to coupled noise in the system, plus the same stray capacitance will cause longer settling time.

    If you still want to use it, I ran that through my tools also, although they were initially developed for use with the 18k pullup, not the 180k pullup, so I had to modify them for that.  I haven't validated on the bench that my modifications are correct, so do check the results, in case I have an error in my tool for this case.  Here is that info:

    A = -24776   31169   -8792   23177    7192

    B = -18419   15537   -6213    4270

    Thanks,

    Terry