Dickson Charge Pumps: How Hardware Builds High Voltage From a Chain of Capacitors and Diodes

2026-08-24

A general charge pump was covered earlier, but the Dickson topology deserves its own treatment because it's the specific circuit sitting inside every NOR flash chip, every EEPROM, and every low-voltage MCU that needs to program non-volatile memory. Flash cells need ~10V to tunnel electrons through the oxide, but the chip runs on 1.8V. Something has to bridge the gap, and it's a Dickson pump.

The topology. A Dickson pump is a chain of stages. Each stage has a pump capacitor and a diode (or diode-connected MOSFET). Two non-overlapping clock phases, φ1 and φ2, drive alternating capacitor bottom plates. When φ1 goes high, odd-stage capacitors get their top plates lifted by VDD, and charge flows through the diodes into the even-stage capacitors. Then φ2 goes high, and the reverse happens. Every clock cycle, charge ratchets one stage to the right, and each stage adds roughly (VDD − Vt) to the DC voltage.

The output formula. For N stages with clock amplitude Vφ, diode drop Vt, output current I_out, capacitance C per stage, and clock frequency f:

V_out = VDD + N·(Vφ − Vt − I_out/(f·C)) − Vt

The I_out/(f·C) term is the killer — it's the voltage droop caused by pulling current out of finite capacitors at finite frequency. Doubling f or C directly reduces droop. This is why charge pumps are painful: to program flash faster, you need bigger caps (die area) or higher clock rate (noise, power).

The diode drop problem. Using plain MOSFETs as diodes costs you Vt (~0.5V) per stage. For a 5-stage pump running from 1.8V, you'd lose 2.5V just to Vt drops. Modern Dickson pumps use charge-transfer switches (CTS) — cross-coupled NMOS pairs that are actively driven fully on during the charge-transfer phase, eliminating the Vt penalty. This is what makes 1.2V-input flash programming feasible.

Real-world example. The write path of a typical serial NOR flash (like a Winbond W25Q128) contains an ~8-stage Dickson pump running at ~10 MHz off a 3.3V supply, generating ~12V for the program voltage and ~-8V for the erase voltage (yes, negative — you can flip the topology to pump downward). It takes ~1-2 ms to program a page, and most of that time is the pump ramping and holding voltage against the ~µA of tunneling current.

Rule of thumb: Each Dickson stage adds roughly (VDD − 0.1V) to the output when using CTS switches and running well above the load current's demand. Budget 4-6 stages for typical flash programming from a 1.8V-3.3V supply.

See it in action: Check out Let
#39;s build a voltage multiplier! by Ben Eater to see this theory applied.
Key Takeaway: The Dickson charge pump ratchets voltage upward one capacitor-diode stage at a time, and its output droop is set by load current divided by (frequency × capacitance) — the fundamental tradeoff between die area, clock rate, and how fast you can program a flash bit.