Zener diode voltage regulator: how to design one

A Zener shunt regulator is a series resistor feeding a reverse-biased Zener diode in parallel with the load, and the Zener holds the output close to its Zener voltage V_Z. The series resistor is sized as R_s = (V_in,min − V_Z) / (I_Z,min + I_L,max), then the Zener and resistor power are checked at the worst case.

How the regulator works

In the circuit, the input voltage V_in feeds a series resistor R_s. The Zener diode sits in reverse across the output, in parallel with the load. Once the reverse voltage reaches V_Z, the Zener conducts and its voltage barely changes as its current varies, so the output stays near V_Z.

The current through R_s is I_s = (V_in − V_out) / R_s, and it splits between the load and the Zener: I_s = I_L + I_Z. When the load takes more current, the Zener takes less, and the other way around. The total through R_s stays roughly constant, which is why the output holds steady.

The regulation only works while the Zener current stays between a minimum and a maximum. Below the knee current the Zener stops regulating, and above its power rating it overheats.

Zener characteristics that matter

Four datasheet values drive the design.

  • V_Z, the Zener voltage, is the regulated output voltage.
  • r_z, the dynamic resistance, tells you how much the output changes per unit of Zener current: ΔV = r_z × ΔI_Z. A smaller r_z means better regulation.
  • The knee current is the minimum current for stable regulation.
  • The maximum power rating limits the current to I_Z,max = P_max / V_Z.

Curvo Studio's Zener simulator models the reverse side as follows. Below V_Z a small leakage current flows, growing toward the knee current as the voltage approaches V_Z. Above V_Z the model is linear: I = I_knee + (V − V_Z) / r_z. The BZX55C5V1 preset, the default, has V_Z = 5.1 V, r_z = 17 Ω, a 1 mA knee current and a 500 mW rating.

Sizing the series resistor

Choose R_s so that the Zener always keeps at least a safe minimum current, even at the lowest input voltage and the highest load current.

R_s = (V_in,min − V_Z) / (I_Z,min + I_L,max)

Pick I_Z,min comfortably above the knee current, for example a few milliamps, so regulation holds when the input or the temperature changes.

Then check the other extreme: the highest input voltage with the lightest load, usually no load. All the current goes through the Zener:

I_Z,max = (V_in,max − V_Z) / R_s − I_L,min

The Zener power is P_Z = V_Z × I_Z,max, and it must stay below the diode's rating. The resistor dissipates P_R = (V_in,max − V_Z)² / R_s, so choose a resistor rated above that.

If the check fails, increase R_s, which lowers the current and reduces the load range you can supply, or use a Zener with a higher power rating.

Worked example: 5.1 V regulator

Design a regulator with the BZX55C5V1 (V_Z = 5.1 V, 500 mW, 1 mA knee) for an input of 9 V to 12 V and a load of 0 to 20 mA. Choose I_Z,min = 5 mA.

1. R_s = (9 − 5.1) / (0.005 + 0.020) = 156 Ω. Use the standard value 150 Ω, which keeps the minimum Zener current slightly higher. 2. Worst case for the Zener, 12 V input and no load: I_Z = (12 − 5.1) / 150 = 46 mA, so P_Z = 5.1 × 0.046 ≈ 235 mW. That is below 500 mW. 3. Resistor power at 12 V: (12 − 5.1)² / 150 ≈ 0.32 W, so use a 0.5 W resistor. 4. Check the minimum case, 9 V in and 20 mA load: I_Z = 3.9 / 150 − 0.020 = 6 mA, above the 1 mA knee.

The hand calculation treats the Zener as an ideal 5.1 V source. The simulator's model also includes r_z, so the output moves a little. At 9 V and 20 mA it settles near 5.18 V with about 5.5 mA in the Zener, and at 12 V with no load near 5.79 V with about 41 mA. The output therefore varies over roughly 0.6 V while the input changes by 3 V and the load swings across its whole range.

Load range and limits

The regulator can only supply load currents up to I_L,max = (V_in,min − V_Z) / R_s − I_Z,min. With the 150 Ω resistor at 9 V this is 26 mA − 5 mA = 21 mA. The lowest load resistance it can drive while holding 5.1 V is about 5.1 / 0.021 ≈ 243 Ω.

A Zener regulator is simple but wasteful. The resistor and Zener burn power even when the load draws nothing, and the output still drifts with input and load because r_z is not zero. For larger loads, designers add a transistor or use a dedicated regulator. The Zener is still widely used as a voltage reference and as protection against overvoltage.

The simulator models a fixed power rating. Real Zeners must be derated as the temperature rises, so leave extra margin in a real design.

Try it in the Zener simulator

Open the Zener diode simulator with the BZX55C5V1 preset and set a negative applied voltage, which is reverse bias.

  • At −3 V the current is only about 0.04 mA of leakage.
  • At −5.1 V the current is the 1 mA knee current.
  • At −5.79 V it is about 41 mA, with about 240 mW of dissipation. This matches the 12 V, no-load case above.
  • Keep lowering the voltage. Near −6.4 V the current is about 79 mA, the power passes 0.5 W and the simulator flags the device as overloaded.

Compare the curve with the worked example. The slope of the regulation region is 1 / r_z, so changing r_z in the panel changes how flat the output stays.

Try it in the simulator

Frequently asked questions

How do you calculate the series resistor for a Zener regulator?
R_s = (V_in,min − V_Z) / (I_Z,min + I_L,max). It guarantees that the Zener keeps a minimum current at the lowest input and the highest load. Then check the Zener power at the highest input and lowest load.
How much current should flow through the Zener?
Enough to stay above its knee current at all times, typically a few milliamps, and never more than P_max / V_Z. For a 5.1 V, 500 mW Zener the upper limit is about 98 mA.
Why does the output voltage change with load?
Because the Zener has a nonzero dynamic resistance r_z. A change in Zener current ΔI_Z shifts the output by r_z × ΔI_Z. A smaller r_z gives better regulation.
What happens if the load is disconnected?
The Zener takes all the current that used to go to the load, so its power rises. The design must be checked at the highest input voltage with no load.