SZTUKA
Piękno i dobre samopoczucie
RZEMIOSŁO
KULTURA I HISTORIA
ROZRYWKA
ŚRODOWISKO
JEDZENIE I NAPOJE
INŻYNIERIA ODWROTNA
NAUKI
LEKKOATLETYKA
TECHNOLOGIA
URZĄDZENIA DO NOSZENIA
The Avalanche Photodiode Receiver
Ed

Autor

Ed

30. sierpień 2026FI
31
0
0
0
0

The Avalanche Photodiode Receiver

A fibre link is only as good as the weakest photon it can hear. After 80 km of glass a milliwatt launched at one end arrives as a few tens of nanowatts, and the question at the far end is not how to amplify light — it is where to put the gain so that you amplify the signal more than you amplify the noise. There are two places to put it, and they are genuine alternatives. A PIN photodiode has no gain at all and hands a tiny current to an amplifier that must supply everything; the amplifier's own thermal noise then sets the floor. An avalanche photodiode biases the junction hard enough that each photo-generated carrier knocks more carriers out of the lattice on its way across, giving an internal current gain of tens to hundreds BEFORE the amplifier sees anything. That sounds like it should always win, and it does not. Avalanche multiplication is random, so it adds noise of its own, described by an excess noise factor F(M) that grows with the gain. Signal power rises as M squared; the multiplied shot noise rises as M squared times F(M), which is faster. So there is an OPTIMUM gain, past which more gain makes the receiver worse — and if the signal is already strong, an APD is worse than a PIN at any gain. FULLY BUILDABLE. The transimpedance amplifier at the heart of this is the single most useful analogue circuit in optics, and you will build it, measure its gain-bandwidth behaviour against three feedback resistors, and confirm that it follows one over the square root of Rf rather than one over Rf. That difference is the entire reason the circuit exists.
Zaawansowany
5 hours

Instrukcje

1

Build the transimpedance amplifier

Build it on the breadboard, with Rf and Cf on a socket so you can swap them. Reverse-bias the photodiode from the 9 V rail through R_BIAS and decouple the bias node with C_BIAS: reverse bias widens the depletion region and drops the BPW34's capacitance from about 72 pF to about 25 pF, and capacitance is what limits your bandwidth. Keep the summing node — the wire from the diode anode to the inverting input — as short as physically possible. It is a high-impedance node and every picofarad of stray capacitance on it costs bandwidth and stability. Cf is not decoration. With C_in on the summing node the loop has a pole inside it, and without Cf the amplifier peaks and rings. Fit the calculated value, then check the step response on the scope: a few percent of overshoot is right, and a decaying oscillation means Cf is too small.

Ładowanie przeglądarki KiCanvas...

Profesjonalna przeglądarka projektów PCB

Materiały do tego kroku:

Photodiode (BPW34)Photodiode (BPW34)1 sztuka
JFET Op-Amp (TL071)JFET Op-Amp (TL071)1 sztuka
Resistor KitResistor Kit1 sztuka
Capacitor KitCapacitor Kit1 sztuka

Potrzebne narzędzia:

Breadboard - ClassicBreadboard - Classic
Jumper Wire SetJumper Wire Set
Bench Power Supply (30V/5A)Bench Power Supply (30V/5A)
Digital OscilloscopeDigital Oscilloscope
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
2

Sweep the bandwidth for three gains

Drive an LED from GPIO26 through a series resistor and point it at the photodiode across a small gap, or couple the two ends of a short plastic fibre. Connect the amplifier output to GPIO34. Run the sweep once for each of Rf = 10k, 100k and 1M, capturing the CSV each time. Thirty geometrically spaced points from 100 Hz to 300 kHz. Read the minus 3 dB frequency off each run. Ten times the gain should cost you about three times the bandwidth, not ten times. If it costs ten, Cf is wrong or you have accidentally built a load resistor by leaving the op-amp out of the loop.
tia_bandwidth_sweep.inocpp
// Receiver bandwidth sweep. The ESP32 drives an LED at a swept frequency through the
// optical path and records the peak-to-peak amplitude at the transimpedance amplifier's
// output, so you can find the -3 dB point for each feedback resistor.
//
// Wiring:
//   GPIO26 (DAC2) -> LED driver (LED + series resistor to ground)
//   GPIO34 (ADC1) -> TIA output, biased to mid-rail by the divider on the board
//
// Run it once per Rf value (10k, 100k, 1M) and paste the three CSV blocks into the
// notebook. The -3 dB frequency should move as 1/sqrt(Rf), NOT as 1/Rf. Confirming that
// is the whole point of the exercise.

const int PIN_LED = 26;
const int PIN_TIA = 34;

// Geometric sweep: a linear one wastes nine tenths of its points at the top end.
const float F_MIN = 100.0;      // Hz
const float F_MAX = 300000.0;   // Hz
const int   N_FREQ = 30;
const int   CYCLES_PER_POINT = 60;

// Generate a square wave in software and sample the response synchronously.
float measurePkPk(float f_hz) {
  const unsigned long half_us = (unsigned long)(500000.0 / f_hz);
  int vmin = 4095, vmax = 0;
  for (int c = 0; c < CYCLES_PER_POINT; c++) {
    dacWrite(PIN_LED, 200);
    delayMicroseconds(half_us);
    int a = analogRead(PIN_TIA);          // sample at the end of the ON half
    dacWrite(PIN_LED, 0);
    delayMicroseconds(half_us);
    int b = analogRead(PIN_TIA);          // and at the end of the OFF half
    if (c > 4) {                          // discard the first few, let it settle
      if (a > vmax) vmax = a;
      if (b > vmax) vmax = b;
      if (a < vmin) vmin = a;
      if (b < vmin) vmin = b;
    }
  }
  return (float)(vmax - vmin);
}

void setup() {
  Serial.begin(115200);
  delay(300);
  analogReadResolution(12);
  analogSetPinAttenuation(PIN_TIA, ADC_11db);

  Serial.println("# TIA bandwidth sweep");
  Serial.println("# set Rf on the socket, note it here, then run");
  Serial.println("frequency_Hz,pkpk_counts,relative_dB");

  float ref = 0.0;
  for (int k = 0; k < N_FREQ; k++) {
    float f = F_MIN * pow(F_MAX / F_MIN, (float)k / (N_FREQ - 1));
    float a = measurePkPk(f);
    if (k == 0) ref = a;                  // the low-frequency value is 0 dB
    float dB = 20.0 * log10(a / ref);
    Serial.printf("%.1f,%.1f,%.2f\n", f, a, dB);
  }

  dacWrite(PIN_LED, 0);
  Serial.println("# done - the -3 dB point is where relative_dB crosses -3");
}

void loop() {}

Materiały do tego kroku:

Resistor KitResistor Kit1 sztuka
Optical Fibre Bundle (2mm)Optical Fibre Bundle (2mm)1 metr

Potrzebne narzędzia:

ESP32 Development BoardESP32 Development Board
Breadboard - ClassicBreadboard - Classic
Jumper Wire SetJumper Wire Set
Digital OscilloscopeDigital Oscilloscope
Desktop ComputerDesktop Computer
3

Bias the avalanche photodiode

Swap the BPW34 for the silicon APD, keeping everything else the same. An APD needs typically 100 to 200 V of reverse bias — check YOUR device's datasheet, because the breakdown voltage is a per-part number and exceeding it destroys the diode. Current-limit the bias supply hard, to a few tens of microamps. An APD in breakdown draws runaway current and dies in milliseconds; the series R_BIAS is the only thing standing between a mistake and a dead part. Sweep the bias from 50 V upward in 5 V steps with a constant light level, and record the output at each. The photocurrent will be flat, then start to climb, then climb steeply. That curve IS the gain M against voltage, normalised to the flat region where M = 1. Now warm the diode gently with your fingers and watch the output FALL at constant bias. APD gain drops as temperature rises, because hotter carriers scatter off lattice vibrations before they gain enough energy to ionise. That is why a real APD receiver servos its bias against a thermistor.

Materiały do tego kroku:

Avalanche Photodiode (Silicon)Avalanche Photodiode (Silicon)1 sztuka
Resistor KitResistor Kit1 sztuka

Potrzebne narzędzia:

Bench Power Supply (30V/5A)Bench Power Supply (30V/5A)
Digital Multimeter (Lab Grade)Digital Multimeter (Lab Grade)
Digital OscilloscopeDigital Oscilloscope
Breadboard - ClassicBreadboard - Classic
4

Gain-bandwidth, excess noise, and the optimum M

Wczytywanie notatnika Jupyter…

Potrzebne narzędzia:

Desktop ComputerDesktop Computer
5

Compendium: PIN against APD, and where each one wins

HOW MULTIPLICATION WORKS. In a high field a carrier gains enough energy between collisions to break a bond and make a new electron-hole pair; both accelerate and can do it again. M is the average number of carriers collected per carrier generated. The randomness of WHERE each ionisation happens is what makes the output noisier than simple shot noise. WHY k IS THE MATERIAL'S WHOLE STORY. If only one carrier type ionises, the cascade runs one way and the statistics are tight. If both do, it feeds back on itself, the gain becomes wildly variable and F(M) heads towards M. Silicon k is about 0.02, InGaAs/InP about 0.45, germanium close to 0.9. Silicon APDs are superb — and silicon is transparent above about 1100 nm, exactly where fibre wants to work. The best APD material and the best fibre wavelength do not overlap, which is one reason the amplifier in the next blueprint mattered so much. THE SIBLING TABLE. PIN photodiode: gain 1, no high-voltage supply, no temperature servo, flat response, cheap; all the gain and all the noise come from the amplifier. APD: gain 10 to 200, needs 100-200 V current-limited and temperature-compensated, adds F(M) of its own, and buys typically 5 to 10 dB of sensitivity in a thermally limited receiver — at a best M that is not the biggest M. The deciding question is never which is better, it is whether the receiver is THERMALLY LIMITED. If it is, the APD wins by putting its gain ahead of the thermal noise. If the signal is strong enough that shot noise already dominates, the APD only adds F(M) and makes things worse. WHAT THIS SHARES WITH THE CCD. Both are silicon collecting photo-generated charge. The CCD integrates it in a capacitor for milliseconds then shifts it out; this receiver reads the current continuously at a hundred megahertz. Long integration against wide bandwidth, from identical physics — which is why a camera sensor can see a single star and cannot carry a gigabit. COMMON FAILURES. Ringing on the step response means Cf is too small or the summing node is too long. A DC offset that swamps everything is ambient light, not a fault: AC-couple after the amplifier or put an optical filter in front. A dead APD is almost always a bias supply that was not current-limited.

Materiały

6

Wymagane narzędzia

7

CC0 Domena publiczna

Ten plan jest udostępniany na licencji CC0. Możesz go swobodnie kopiować, modyfikować, rozpowszechniać i wykorzystywać do dowolnych celów, bez konieczności uzyskiwania zgody.

Wesprzyj Makera kupując produkty przez jego plan, za co zarabia Prowizja Makera ustalony przez sprzedawców, lub stwórz nową iterację tego planu i dołącz go jako połączenie w swoim własnym planie, aby dzielić się przychodami.

Dyskusja

(0)

Zaloguj się aby dołączyć do dyskusji

Ładowanie komentarzy...