Compensating for Sense Resistor Self Heating


Many of Dallas Semiconductor’s battery monitors contain the option to include an internal sense resistor to measure current. In certain applications, heat generated by the flow of current through the sense resistor can introduce error into the on-chip temperature sensor reading performed by the battery monitor device. This application note addresses the concern of self-heating, including the amount which can be expected under varying circumstances and configurations. It then presents a step-by-step approach to easily implement compensation algorithms in software in order to eliminate or minimize the error caused by the self-heating.

Self Heating

Integrating the sense resistor into the package of a DS27XX series fuel gauge reduces board size and saves cost in an application. However, in high-current applications, heat generated by the sense resistor can affect real-time temperature readings made by the device. If accurate temperature readings are required by the application, the error introduced by self-heating can be easily compensated for in software.

Figure 1. Sense resistor self heating based on power dissipation.

Figure 1. Sense resistor self heating based on power dissipation.

Software Correction

Changes in the sense resistor due to heat are automatically compensated by the device at the rate of 3660 PPM/°C to keep current and accumulated current readings accurate. However, errors in the temperature reading caused by self-heating cannot be internally corrected. Figure 1 illustrates the magnitude of error in temperature measurement for different applications where the die has a large heat sink or no heat sink at all. The best way to correct the temperature reading error is to characterize the die heating and compensate in the application software as follows:

  1. A known current should be forced into or out of an assembled battery pack and record the change in the temperature reading. This process should be repeated with several packs to produce an average value.
  2. Convert the value to a °C change per Watt scalar (n). This is done by dividing by value found in step 1 by the power dissipated by the sense resistor:
  3. This scaling factor is then stored in the system code such that when current is read the error due to self heating can be easily removed using the following equation:
  4. Where:

    TA = Actual Temperature
    TM = Measured Temperature
    I = Measured Average Current
    R = Sense Resistance
    n = Scaling Factor

Use caution when calculating an average current of the application. Too small a sample size may produce large fluctuations in the calculated result. Too large a sample size may cause the calculated result to lag the actual temperature in real time.


Using the integrated sense resistor option may cause temperature measurement error in high-current applications. If accurate temperature measurement accuracy is required, the error generated by self-heating can easily be removed in system software. Voltage, current, and accumulated current readings are unaffected by self-heating.