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: Die temperature sampling and accuracy.

Part Number: BQ76940

Hi, Ti member

I am using Bq76940 external and internal temperature sensor.

Q1. I found even use 2 sec after [TEMPSEL] change, still has chance to got the wrong temp. reading. How can I make sure it switched.

Q2. For Die temp sensor. I test it has a high offset error.  Is that have any tolerance specification? Or statistical data?

Q3. If I send BOOT signal under an already running IC, What will I get the TSx reading right after (< 2sec) BOOT signal? 0? Random?

Q4. Why Die temperature is so inaccurate?

  • Hi Shang,

    Q1. The internal operation is asynchronous to the MCU and does not have a flag for temperature measurement.  Temperature measurement happens every 2 seconds per group, but the command must be passed up between groups and they are not synchronized to each other.  When you write the register to change, the part temperature sample may have just completed.  Internal communication is every 125 ms and does take some unspecified time, so it may be 250+ ms to change the selection for the top group, 2 seconds for the next sample, and 250ms+ to transfer the result back to the registers.  It could be more than 2.5 seconds to get the updated sample.

    Q2.  For temperature measurement use the ADC LSB value from the data sheet rather than the gain/offset value stored for the cells.  Offset is not characterized.

    Q3. Temperature is measured shortly after boot.  If the external thermistor is selected shortly after boot it can be observed on TS1.  If TS1 is driven by the boot circuit the boot voltage will sum with or override the thermistor voltage usually for a higher than normal voltage and colder than normal temperature.  When a boot switch is activated during operation it has a chance of being asserted during the 50 ms every 2s and could affect a temperature sample.  If internal temperature is used the boot signal will not affect the internal temperature.

    Q4. This is not known.

      

  • Hello WM5295,

    WM5295 said:
    Q1. The internal operation is asynchronous to the MCU and does not have a flag for temperature measurement.  Temperature measurement happens every 2 seconds per group, but the command must be passed up between groups and they are not synchronized to each other.  When you write the register to change, the part temperature sample may have just completed.  Internal communication is every 125 ms and does take some unspecified time, so it may be 250+ ms to change the selection for the top group, 2 seconds for the next sample, and 250ms+ to transfer the result back to the registers.  It could be more than 2.5 seconds to get the updated sample.

    We have encountered this same issue in our design which continually multiplexes between the external temperature sensors and internal die temperature sensors and is occasionally misattributing the results. Even die temperatures are used as a plausibility check on the A/D converters and for preventing overheating during balancing.

    Can you provide an upper bound for the delay between the start of the I2C transaction writing TEMP_SEL until the end of the I2C packet reading the TSx registers?

    Due to the long latency involved it would also be helpful to determine an upper bound from the TEMP_SEL write until an updated TSx result can be assumed to reflects the new setting.

    Regards,

    Johan

  • Hi Johan,

    The setup time for the TEMP_SEL is not an available parameter. Temperature sampling is every 2 seconds and will be affected by the timing tolerance.It is a slow process. Since timing tolerance is not specified you might use a nice large allowance line the tPROTACC +20%.  The bottom group value (TS1) will respond faster than the upper groups since there is no communication of the selection up or the result down to the I2C registers.