Photodiodes, APDs, Phototransistors & Solar Cells

Turning light into current. Learn absorption and absorption depth, the photovoltaic and photoconductive effects, PN and PIN photodiodes (responsivity, quantum efficiency, dark current, junction capacitance, transit and RC bandwidth, photovoltaic vs photoconductive mode), avalanche photodiodes (gain, excess noise factor, ionisation ratio k), phototransistors, optocouplers and noise-equivalent power; then solar cells: equivalent circuit with series and shunt resistance, I–V and P–V curves, I_sc, V_oc, maximum power point, fill factor, efficiency, irradiance and temperature effects, and MPPT — with Python computing responsivities, APD excess noise, PIN bandwidth and a full solar-cell I–V solution with MPP and fill factor.

A photon with energy above the bandgap creates an electron–hole pair. If that happens in or near a junction's depletion region, the built-in field separates the carriers and a current flows: the photodiode and the solar cell are the same physics used differently.

Photodiodes are optimised for speed, low noise and linearity; solar cells for converting as much sunlight as possible into electrical power.

An analogy

A photodiode is like a hill with a river valley (depletion field): raindrops (photons) create water droplets (carriers) that roll down each side of the valley — the field sweeps electrons one way and holes the other, producing a steady stream (photocurrent).

Absorption

Light intensity decays as e^(−αx); the absorption depth 1/α ranges from ~0.1 µm (blue in Si) to ~20 µm (850 nm in Si) and >100 µm near the band edge (indirect gap). Detector thickness and junction depth must match the wavelength: shallow junctions for UV/blue, thick absorbers for near-IR, InGaAs/Ge beyond 1.1 µm.

Photodiode operation

Modes and figures of merit:

APDs, phototransistors, optocouplers

Avalanche photodiodes operate near breakdown so photo-generated carriers multiply (M = 10–100 linear mode; Geiger mode for single-photon SPADs). Gain improves sensitivity when amplifier noise dominates, but excess noise grows with M and k (electrons and holes both ionising). Phototransistors provide internal current gain (β) at the cost of speed and linearity. Optocouplers pair an LED and a photodetector for galvanic isolation; CTR (current-transfer ratio) degrades with LED ageing.

Solar cells

I_sc ∝ irradiance, V_oc rises logarithmically with irradiance and falls ~2 mV/K (−0.3 to −0.4%/K power for Si). Series resistance reduces FF at high current; low shunt resistance (defects) hurts at low light. Efficiency limits: Shockley–Queisser ~33% single junction; commercial Si PERC/TOPCon/HJT modules ~21–24%, multi-junction III-V > 40% under concentration. MPPT electronics continuously adjust the operating voltage to the maximum power point.

Formulas

Worked example: Photocurrent

Given: R 0.5 A/W, 20 µW

Find: I_ph.

Answer: 10 µA

Worked example: Quantum efficiency

Given: R 0.6 A/W at 900 nm

Find: η.

Answer: 83%

Worked example: Fill factor

Given: V_oc 0.65, I_sc 8 A, P_mp 4.1 W

Find: FF.

Answer: 0.79

PIN photodiode and solar-cell equivalent circuit

  PIN photodiode (reverse biased)         Solar cell model
   light ▼▼▼                                I_ph ↑  ▷|diode   R_sh      R_s
   p⁺ │ i (depleted, absorbs) │ n⁺          ─┬──────┬────────┬──/\/\──┬── +
   ◄h⁺     field      e⁻►                    └──────┴────────┴─────────┘── −
   I_ph = R·P_opt  (+ dark current)          I = I_ph − I_D − I_sh

A PIN photodiode's wide intrinsic region absorbs most photons inside the high-field region, giving fast drift collection and low capacitance. A solar cell is a large-area diode forward-biased by its own photocurrent: its terminal current is the photocurrent minus the diode and shunt currents, reduced by series resistance.

Responsivity, APD noise, bandwidth and a solar-cell I–V

import math
# Photodiode responsivity, APD gain/noise, bandwidth, and a solar cell with series/shunt resistance
h, c, q = 6.626e-34, 3e8, 1.602e-19
for lam, eta in ((650e-9, 0.7), (850e-9, 0.8), (1550e-9, 0.8)):
    R = eta * q * lam / (h * c)
    print(f"lambda {lam*1e9:.0f} nm, QE {eta}: responsivity {R:.3f} A/W")
for M, k in ((10, 0.02), (10, 0.5), (50, 0.02)):
    F = M * k + (1 - k) * (2 - 1 / M)
    print(f"APD gain {M}, k = {k}: excess noise factor F = {F:.2f}")
W, vsat, A_pd, eps = 5e-4, 1e7, (100e-4) ** 2 * math.pi / 4, 11.7 * 8.854e-14
Cj = eps * A_pd / W
f_tr = 0.44 * vsat / W
f_rc = 1 / (2 * math.pi * 50 * Cj)
print(f"PIN (I-layer 5 um, 100 um dia): Cj = {Cj*1e12:.2f} pF, transit-limited {f_tr/1e9:.1f} GHz, RC-limited (50 ohm) {f_rc/1e9:.1f} GHz")
# Solar cell 156 mm, Isc 9.5 A, single diode with Rs, Rsh; solve I(V) by Newton, find MPP
Isc, I0, n, VT, Rs, Rsh = 9.5, 1e-10, 1.1, 0.02585, 0.005, 20.0
def current(V):
    I = Isc
    for _ in range(50):
        f = Isc - I0 * (math.exp((V + I * Rs) / (n * VT)) - 1) - (V + I * Rs) / Rsh - I
        df = -I0 * Rs / (n * VT) * math.exp((V + I * Rs) / (n * VT)) - Rs / Rsh - 1
        I -= f / df
    return I
best = max(((v / 1000, v / 1000 * current(v / 1000)) for v in range(0, 720)), key=lambda t: t[1])
Voc = next(v / 1000 for v in range(0, 800) if current(v / 1000) <= 0)
print(f"solar cell: Voc = {Voc:.3f} V, Pmp = {best[1]:.2f} W at {best[0]:.3f} V, FF = {best[1]/(Voc*Isc):.3f}, efficiency at 1000 W/m^2 = {best[1]/(0.156**2*1000)*100:.1f}%")
# lambda 650 nm, QE 0.7: responsivity 0.367 A/W
# lambda 850 nm, QE 0.8: responsivity 0.548 A/W
# lambda 1550 nm, QE 0.8: responsivity 0.999 A/W
# APD gain 10, k = 0.02: excess noise factor F = 2.06
# APD gain 10, k = 0.5: excess noise factor F = 5.95
# APD gain 50, k = 0.02: excess noise factor F = 2.94
# PIN (I-layer 5 um, 100 um dia): Cj = 0.16 pF, transit-limited 8.8 GHz, RC-limited (50 ohm) 19.6 GHz
# solar cell: Voc = 0.719 V, Pmp = 5.29 W at 0.588 V, FF = 0.775, efficiency at 1000 W/m^2 = 21.8%

Responsivity grows with wavelength (each photon carries less energy, but still one electron): 0.55 A/W at 850 nm, ~1 A/W at 1550 nm for 80% QE. APD gain costs excess noise: silicon-like k = 0.02 keeps F ≈ 2 at M = 10, while k = 0.5 triples it. A 5 µm PIN of 100 µm diameter is transit-limited near 9 GHz. The solar-cell model gives V_oc 0.72 V, P_mp 5.3 W, FF 0.78 and 21.8% efficiency for a 156 mm cell.

Common mistakes

Applications

Key takeaways

Going further