SLUAB27 November   2025 BQ76972 , BQ76972-Q1 , TMP61

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2BQ769x2 Temperature Measurement System
  6. 3Multiplexer to Expand Thermistor Measurement Channel
  7. 4Calculate Temperature With TMP6x
  8. 5Improve Temperature Accuracy
    1. 5.1 Multiplexer Selection
    2. 5.2 Capacitor on Thermistor Pins
    3. 5.3 Fix Resistor Calibration
    4. 5.4 Test Results
  9. 6Summary
  10. 7References

Multiplexer to Expand Thermistor Measurement Channel

However, most of these pins also can support other features which can be required in the system, such as the alarm interrupt to the host processor, or a hardware pin-control for FET turnoff. If an application requires support for more thermistors than the BQ76972 can natively support, additional multiplexer circuitry can be included to enable this, as Figure 3-1 shows.

 Thermistor Multiplexer Block DiagramFigure 3-1 Thermistor Multiplexer Block Diagram

Six multifunction pins are muxed by 4:1 multiplexers so a total of 17 thermistors, 1 fix resistor and six ground voltages are measured by one BQ76972 in this configuration. TS2 pin is reserved for wake-up function and DEFTOFF pin is used for charging and discharging MOSFETs fast turnoff. There are also many variants if the designer wants to reserve some pins for other purposes. These circuits can be modified based on the basic principles demonstrated in the rest of this section.

Because this design configures nine pins as thermistor inputs, the design takes three ADCSCAN to measure nine pins, called as FULLSCAN. One FULLSCAN cycle duration is appromixately 94.5ms (FASTADC = 1) or 189ms (FASTADC = 0). This design uses a 4:1 multiplexer to measure 17 thermistors so one full temperature sensing cycle (FULLTEMP) takes around 378ms (FASTADC = 1) or 756ms (FASTADC = 0). See Improving Voltage Measurement Accuracy in Battery Monitoring Systems for more information.

The timing of when the MUX is changed requires some coordination with the regular measurement loop of the BQ76972, to avoid a corrupted measurement if the MUX was changed in the middle of a measurement. This design uses an approach to automatically control the timing of the MUX changes, shown in Figure 3-1. The TS1 pin is used with a 1MΩ resistor to generate the clock signal for an external binary counter that counts zero to three. The binary counter can be built simply by a dual-channel D-type flip-flop and a OR-gate, shown in Figure 3-2.

 Binary CounterFigure 3-2 Binary Counter

Figure 3-3 shows the output signals of binary counter when FASTADC=1.

 Binary Counter Output SignalsFigure 3-3 Binary Counter Output Signals

The count controls a multiplexer that switches three thermistors and one ground on each MUX into one of 6 pins, thus supporting a maximum of 18 total thermistors. The ground channel is used for multiplexer circuit diagnostic, meaning the multiplexer works correctly if you can see a ground detection every four measurements on one pin. One of the 18 channels is connected to a high-accuracy fix resistor for temperature measurement calibration.

The nine pins are measured in the sequence of CFETOFF, DFETOFF, ALERT, TS1, TS2, TS3, HDQ, DCHG, and DDSG, but BQ76972 only measures the pins that are configured as thermistor inputs. As TS1 is used as clock input, TS2 is not used as a real thermistor to avoid any MUX settling transients that can affect the measurement because TS2 is measured immediately after the TS1 pin. The user needs to implement the thermistor-related temperature protections through the host microcontroller because the pin temperature of the BQ76972 moves between three thermistors and one ground.

As the multiplexer switches every FULLSCAN cycle and is not synchronized with the internal polynomial calculation cycle, the user needs to use the ADC raw data to calculate the temperature instead of the internal temperature polynomial. To calculate the temperature with ADC raw data the user can do the following:

  1. Read out the stored pullup and pad resistance, Rpu and Rpad from BQ769x2.
  2. Configure the selected multifunction pins to thermistor measurement in Settings:Configuration:ALERT Pin Config, CFETOFF Pin Config, DFETOFF Pin Config, TS1 Config, TS2 Config, TS3 Config, HDQ Pin Config, DCHG Pin Config, and DDSG Pin Config configuration registers.
  3. Set the FULLSCAN mask bit in Settings:Alarm:Default Alarm Mask register.
  4. Wait for a measurement cycle to complete by monitoring the 0x62 Alarm Status()[FULLSCAN] bit.
  5. Send 0x0076 DASTATUS6() and 0x0077 DASTATUS7() subcommands to read the raw ADC counts of multifunction pins.
  6. Multiply raw ADC counts by the 0.358μV LSB to obtain the measured thermistor voltage Vsense. Each FULLTEMP cycle, Vsense becomes approximately 0V once.
  7. Back-calculate thermistor resistance RT from Vsense, Rpu, Rpad and the multiplexer switch resistance Ron, and then convert RT to a temperature value in the microcontroller.