# Using burnout current sources for Wheatstone bridge detection

Many recent high-performance ADCs like the AD7190 include a builtin so-called *burnout current source* that can allegedly be used to detect an open circuit in the sensor. However, most vendors don’t provide an easy explanation on how this can be done.

In this blogpost I will attempt to explain how those current sources can be useful for practical applications. For this example, we will assume the ADC has one idealized differential channel and is connected to a simple wheatstone bridge strain gauge:

### What is a *burnout current source*?

Most ADC include two burnout current sources:

- One sourcing from the analog supply voltage and sinking into the positive input
- One sourcing from the negative input and sinking into the analog ground

Those burnout current sources usually have very low and fixed current value - for the AD7190, it is [latex]500,nA[/latex].

Applying this to the Wheatstone bridge, we get:

The balanced Wheatstone bridge without any current sources forms two equal voltage dividers with a division ration of 2: Both the positive and the negative ADC input are biased at [latex]\frac{1}{2} V_{DDA} = 2.5,V[/latex] (with [latex]V_{DDA}[/latex] being the analog supply voltage of the ADC and the bridge excitation voltage. While they might not be the same for many practical applications, for this example we will assume they are equal for simplicity). We could also say equivalently: The current flowing through R1 and R2 causes a voltage drop of [latex]2.5,V[/latex] over `R3`

and `R4`

respectively.

We can use a simplified model to understand what is happening qualitatively:

By ignoring any current flowing through `R1`

and `R4`

, the current through `R2`

and `R3`

is equal to `I1`

and `I2`

respectively. By using Ohm’s lawwhich can be expressed as [latex]U = I{\cdot}R[/latex], we can calculate:

[latex display=“true]U_{R2,R3} = 500,\text{nA} \cdot 350,\Omega = 175,{\mu}\text{V}[/latex]

As we assume no current flows through `R1`

and `R4`

and the `IN(+)`

and `IN(-)`

nodes are biased at [latex]2.5,V[/latex], adding the burnout current sources yields [latex display=“true”]V_{IN(+)} = 2.5,V + 175,{\mu}\text{V}[/latex] and [latex display=“true”]V_{IN(-)} = 2.5,V - 175,{\mu}\text{V}[/latex], yielding a difference of [latex display=“true”]V_{IN(+)} - V_{IN(-)} = 2\cdot175 {\mu}\text{V}[/latex]

Now we need to take into account the current flowing through `R1`

and `R4`

. Although the mathematics of this exceed the scope of this article, we can easily use a LTSpice simulation (download simulation file) to see the numbers. Running this simulation shows that [latex]V_{IN(+)} - V_{IN(-)} = 175,{\mu}\text{V}[/latex]. This applies independently of the supply voltage as long as [latex]I_{R1,R4} \gg I_{Burnout}[/latex]. This condition can be assumed to apply for any realistic setup if [latex]V_{DDA} \gt 1,\text{V}[/latex]

We can therefore conclude that if a balanced Wheatstone bridge is connected and the burnout current sources are enabled: [latex display=“true”]V_{IN(+)} - V_{IN(-)} = \frac{I_{Burnout} \cdot (R_3 + R_2)}{2}[/latex] If [latex]R_3 \approxeq R_2[/latex], this can be simplified to: [latex display=“true”]V_{IN(+)} - V_{IN(-)} = I_{Burnout} \cdot R_{2,3}[/latex]

### Open circuit detection

Now we assume that no sensor is connected at all, i.e. `R1`

to `R4`

are assumed to be infinite resistances.

An ideal current source would yield an infinitely high voltage when trying to push a constant current through an infinite ohmic resistance. The burnout current sources in ADCs do not exhibit this property: The maximum voltage they can possibly generate is [latex]V_{DDA}[/latex] while the minimum voltage is [latex]0,\text{V}[/latex]. While in practice these values will usually not reach the rails, we can ignore this fact for most practical configurations.

This means that an open-circuit scenario would mean that [latex]V_{IN(+)} = V_{DDA}[/latex] and [latex]V_{IN(-)} = 0,\text{V}[/latex] and therefore [latex display=“true”]V_{IN(+)} - V_{IN(-)} = V_{DDA} - 0,\text{V} = V_{DDA}[/latex]

This means that the ADC will therefore show the maximum possible value (e.g. `0xFFFFFF`

for a 24-bit ADC).

When the burnout current sources are disabled, the voltage on the input terminals is undefined and depends on leakage currents being present on the PCB and on the input stage of the ADC.

Based on this information, we can conclude that an open circuit condition can be detected by activating the burnout current sources and checking if the ADC shows the maximum possible digital output value. In most cases, a value very close to the maximum can be considered an open circuit condition as well.

### Quantitative estimation of bridge resistances using burnout current sources

For many circuits it is useful to get an estimate on the actual resistance of the Wheatstone bridge in use - this may be useful, for example, to automatically configure the excitation voltage.

By using the burnout current source value and the equation we derived above [latex display=“true”]V_{IN(+)} - V_{IN(-)} = I_{Burnout} * R_{2,3}[/latex] we can easily see that the differential voltage induced by the burnout currents depend on the resistors [latex]R_2[/latex] and [latex]R_3[/latex] of the bridge.

Usually the burnout current sources have wide tolerance ranges and must be expected to device up to 20% over the full operating range and due to manufacturing tolerances. For open circuit detection, the exact current does not matter as long as [latex]I_{burnout} \gg I_{leakage}[/latex] However, a current mismatch between the two current sources introduces a significant error in the observed voltage drop: [latex display=“true”]E = \frac{|I_a - I_b|}{}[/latex] For quantitative measurements these tolerances need to be taken into account - without individual calibration this means we won’t be able to determine the exact resistance of the bridge. However, it is still easily possible to classify the bridge resistance into one of several classes, for example strain gauges with a resistance of:

- [latex]120,\Omega[/latex]
- [latex]350,\Omega[/latex]
- [latex]1200,\Omega[/latex]

This can be done using the following algorithm:

`for i in 1..n`

- Disable burnout current source
- Measure ADC voltage [latex]V_{a,i}[/latex]
- Enable burnout current source
- Measure ADC voltage [latex]V_{b,i}[/latex]
- Compute burnout difference [latex]{\Delta}V_i = V_{b,i},-,V_{a,i}[/latex]

- Compute average additional voltage drop due to burnout: [latex display=“true”]\overline{{\Delta}V},=,\sum^{n}_{i=0}{\Delta}V_i[/latex]

Note that, in order to account for a potentially unbalanced bridge, we must only interpret the difference between the ADC value with burnout current enabled and the one with burnout current disabled.

The averaging is performed so sensor value changes during the measurement period (which are translated into resistance changes for at least one bridge element) an noise are eliminated from the equation as far as possible. A larger value for [latex]n[/latex] leads to lower errors in the resulting value. For fast-changing input signals, using a high sampling rate is recommended in order to minimize the time between `a`

and `b`

measurements. For multi-channel ADCs it also is recommended to measure only one channel at a time and disable zero-latency mode for this reason.

We can then calculate the observed resistance using [latex display=“true”]R_{observed},=,\frac{\overline{{\Delta}V}}{I_{burnout}}[/latex]

For example, if [latex]\overline{{\Delta}V} = 165,{\mu}V[/latex] and [latex]I_{burnout} = 500,nA[/latex], [latex]R_{observed} = 330,\Omega[/latex]. This value is sufficiently close to [latex]350,\Omega[/latex]. The difference might be caused by ADC errors, burnout current deviations and resistance deviations in the sensor itself (caused by both static manufacturing tolerances and dynamic resistance changes).

Note that many ADCs including the AD7190 series only specify nominal values and no guaranteed tolerance for the burnout currents.