Google Find us on Google+ Bandgap voltage reference - tutorial of precision voltage reference with circuit examples

Bandgap voltage reference

What do you need to know to understand this topic?


What is a bandgap voltage reference?

Many circuits, including voltage regulators, analog-digital and digital-analog converters, require a voltage reference that is as precise as possible. Their precision depends on it. That means that the voltage reference would ideally be PVT independent:

Bandgap reference circuits cancel out two opposing variations caused by temperature. That is, if we have two references, one producing voltage $V_1$ with temperature coefficient $$\frac{\partial V_1}{\partial T} = \alpha$$ and the other producing voltage $V_2$ with temperature coefficient $$\frac{\partial V_2}{\partial T} = -\alpha$$ The following operation $$V_{out} = V_1 + V_2$$ will produce a temperature-independent voltage: $$\frac{\partial V_{out}}{\partial T} = \frac{\partial V_1}{\partial T} + \frac{\partial V_2}{\partial T} = \alpha - \alpha = 0$$ Of course in order to cancel out, the temperature coefficients must have opposing signs, one negative (NTC) and one positive (PTC). A Bipolar Junction Transistor (BJT) can provide both the NTC and the PTC voltages. Thus, let us review a bit the BJT.

Things to know about the BJT

The BJT collector current is defined as: $$I_c = I_Se^{V_{be}/V_t}$$ where $V_{be}$ is the base-emitter voltage. $V_t = kT/q$ is the thermal voltage, which is virtually insensitive to process variations and is defined by the Boltzmann constant $k$, the charge of an electron $q$ and the temperature $T$. $I_S$ is a parameter that is process and temperature dependent: $$I_S = I_0 e^{\frac{-V_{G0}}{V_t}}$$ $$I_0 = I_S e^{\frac{V_{G0}}{V_t}}$$ where $I_0$ is a device parameter and $V_{G0}$ gives the name to this reference circuit. It is the bandgap voltage of silicon, the energy necessary to free an electron from the outer shell of the silicon atom. The bandgap itself is temperature dependent, so $V_{G0}$ is $V_G(T)$ extrapolated from 300ºK to 0ºK. It has the theoretical value of 1.205V. The collector current can also be expressed as: $$I_c = I_0e^{-\frac{V_{G0} - V_{be}}{Vt}}$$ which makes it simpler to relate to the bandgap voltage.

Creating the NTC voltage

The negative temperature coefficient is produced by a PN junction. The base-emitter junction of the Bipolar Junction Transistor (BJT) is a common PN junction used in bandgap references. Using the collector current of the BJT, the base-emitter voltage is: $$V_{be} =V_{G0} - \frac{kT}{q} \log \frac{I_0}{I_c}$$ So, how does $V_{be}$ depends on temperature? Assuming that $I_c$ does not depend on temperature: $$\frac{\partial V_{be}}{\partial T} = -\frac{k}{q}\log \frac{I_0}{I_c}$$ Given that $I_0$ is much larger than $I_c$, the $\log$ term is not greatly affected by the BJT current. Normally, the temperature coefficient is around $-2mV$: $$\frac{\partial V_{be}}{\partial T} \approx -2mV/ºC$$

Creating the PTC voltage

The positive temperature coefficient is produced by the thermal voltage $V_t$. Say we take the difference between two base-emitter junctions of BJTs: $$V_{be1} - V_{be2} = V_t \log \frac{I_{c1}}{I_{S1}} - V_t \log \frac{I_{c2}}{I_{S2}}$$ $$\Delta V_{be} = V_t \log \frac{I_{c1} I_{S2}}{I_{c2} I_{S1}}$$ Simple enough, $\Delta V_{be}$ gives us a voltage proportional to $V_t$, as well as some scaling of that voltage, if we like. But still... we want the voltage to be referenced to ground, so we have to elaborate a bit more.

Let us find the voltages across the two resistances $$V_{R1} = V_B - V_{be2} - (V_B - V_{be1}) = V_{be1} - V_{be2} = \Delta V_{be}$$ $$V_{R2} = R_2\cdot 2I_c = R_2 \cdot 2\frac{V_{R1}}{R_1} = 2\frac{R_2}{R_1}\Delta V_{be}$$ Voilá, $V_{R2}$ is proportional to $\Delta V_{be}$ and referenced to ground!! We can also replace the $V_{be}$'s as: $$V_{R2} = 2\frac{R_2}{R_1}V_t \log \frac{I_{c}I_{S2}}{I_c I_{S1}} = 2\frac{R_2}{R_1}V_t \log \frac{I_{S2}}{I_{S1}} = KV_t$$ Since $k$ and $q$ are constants, $V_t$ is only proportional to temperature, with temperature coefficient: $$\frac{\partial V_t}{\partial T} \approx +0.085mV/ºC$$ The thing is, the terms $I_S$ are proportional to the area of the transistor and very similar for nearby transistors (in terms of layout). Therefore, the following is pretty accurate: $$\frac{I_{S2}}{I_{S1}}\approx\frac{A_2}{A_1}$$ where $A$ represents the area of the transistor. Then: $$V_{R2}= 2\frac{R_2}{R_1}\log \frac{A_2}{A_1}V_t$$ Finally, it is curious that $V_B$ already is the sum of a voltage proportional to $V_t$ (PTC) and a $V_{be}$ (NTC): $$V_B = V_{R2} + V_{be1} =2\frac{R_2}{R_1}\log \frac{A_2}{A_1}V_t + V_{be1}$$ How $V_B$ is biased and how we implement the current sources are questions that will be answered next...

Summing the NTC and PTC voltages

So our main idea is to produce two voltages, one PTC and another NTC, which cancel each other in terms of temperature variations. The diagram would look something like this:

The sum of the two voltages would be: $$V_{be} + KV_t = V_{G0} - \frac{kT}{q} \log \frac{I_0}{I_c} + K\frac{kT}{q} = V_{G0} + \frac{kT}{q} \left( K - \log \frac{I_0}{I_c} \right)$$ As we have seen when creating the PTC voltage, $K$ will probably come from a ratio of resistances and/or areas of transistors, and with value $2/0.085\approx23.5$. Before moving on, note that after the temperature dependent terms cancel, the reference will stay at the bandgap $V_{G0}$. If you ever see a voltage reference with a value close to 1.2V, it comes from here! The next obvious question is: how do we implement this with real circuits?

There are several ways, but the main recipe is the following:

  1. Generate two currents to bias two different BJTs
  2. Create a branch involving two BJTs and one resistance (or equivalent resistance)
  3. Find a path that adds a PTC and a NTC voltages
  4. Tweak the sizes of the transistors and/or resistances to give the right $K$
  5. Add a startup circuit, or else the circuit may stabilize at zero current every time


Widlar bandgap

The output is: $$ V_{out} = I_2 R_2 + V_{be3}$$ From the bottom branch: $$V_{be1} = V_{be2} + I_2R_3$$ $$I_2 = \frac{V_{be1} - V_{be2}}{R_3}$$ From the $\Delta V_{be}$ expression: $$I_2 = \frac{V_t}{R_3}\log\left(\frac{I_1I_{S1}}{I_2I_{S2}} \right)$$ Then: $$ V_{out} = \frac{R_2}{R_3} V_t\log\left(\frac{I_1I_{S1}}{I_2I_{S2}}\right) + V_{be3}$$ The circuit is sized such that $I_1=I_2$, resulting in: $$ V_{out} = \frac{R_2}{R_3} V_t\log\left(\frac{I_{S1}}{I_{S2}}\right) + V_{be3}$$

Brokaw bandgap

The output is: $$ V_{out} = V_{be1} + 2I_c R_1$$ By virtue of the opamp feedback, the two inputs are at the same voltage, therefore the upper resistances have the same voltage across them. Since they are equal, the same current must flow by them and converge in $R_1$. From the middle branch: $$V_{be1} = V_{be2} + I_cR_2$$ $$I_c = \frac{V_{be1} - V_{be2}}{R_2}$$ From the $\Delta V_{be}$ expression: $$I_c = \frac{V_t}{R_2}\log\left(\frac{I_cI_{S1}}{I_cI_{S2}} \right)$$ Then: $$V_{out} = 2\frac{R_1}{R_2} V_t\log\left(\frac{I_{S1}}{I_{S2}}\right) + V_{be1}$$

With PNP transistors

The output is: $$V_{out} = V_{eb2} + V_{R2} + V_{R} $$ Since the opamp feedback is forcing both inputs to be equal, we have: $$V_{eb1} = V_{R2} + V_{eb2}$$ $$V_{R2} = V_{eb1} - V_{eb2}$$ and $$V_{R} = R \frac{V_{R2}}{R_2}$$ and $$I_1 = I_2$$ From the $\Delta V_{be}$ expression, which is exactly the same for $\Delta V_{eb}$: $$V_{R2} = V_t\log\left(\frac{I_1I_{S1}}{I_2I_{S2}} \right) = V_t\log\left(\frac{I_{S1}}{I_{S2}} \right)$$ Then: $$V_{out} = V_{eb2} + \left(1+ \frac{R}{R_2}\right) V_t\log\left(\frac{I_{S1}}{I_{S2}}\right) $$

Some thoughts about other dependencies

Process variations

As mentioned, the voltage reference should be insensitive to process variations as well. This is usually coped with by making the output dependent on a ratio of values (pair of resistances, pair of BJTs, etc.). Taking special care when laying out these devices, their values will be very similar during fabrication and depend very similarly on other parameters, such as temperature. As you can see, the gain $K$ is such a case in all bandgap references.

Power supply

If you need a precision voltage reference, that means you do not have one already, right? So, the power supply to the reference will not be precise and the reference should be insensitive to it. The way to solve this is by differential circuits. In the bandgap examples, if the power supply changed, the currents of both branches would be affected equally. Therefore, the assumption of equal currents would still hold and effects of power supply variations would cancel at the output voltage.


Still, not every temperature dependent effects can be cancelled. For instance:


If I helped you in some way, please help me back by liking this website on the bottom of the page or clicking on the link below. It would mean the world to me!

Show your love: