A simple OpAmp photodiode readout circuit

30 Oct 2021 - tsp
Last update 30 Oct 2022
Reading time 15 mins

What are photo diodes?

Basically photo diodes are diodes that have an exposed p-n junction that is operated in reverse bias. Without any incoming light a reverse biased p-n junction is in theory completely depleted (free or charge carriers that are able to move freely) and thus has infinite resistance - no current is flowing. As we know from reverse biased diodes and particle detectors thermal excitation of charge carrier pairs leads to some dark current that flows even in this condition. This is also what usually also limits the sensitivity of photo diodes.

Any incoming light is then capable of exciting electrons from valance into conduction bands and thus produce a free electron that’s capable of traveling trough the semiconductor. Thus each incoming photon is able to increase the current flowing through the depleted p-n junction. This yields a photocurrent that is directly proportional to incident photon count - at least in case photons are able to excite the electrons - the wavelength to which photo diodes are sensitive is determined by the bandstructure of the given semiconductor and thus by the selected material. For typical semiconductors the wavelengths are for example:

Material Wavelength (nm) Typical bandgap (at 300 Kelvin, eV) Group
Diamond   5.5 eV IV
Silicon (Si) 190 – 1100 1.12 eV IV
Germanium (Ge) 400 – 1700 0.67 eV IV
Indium gallium arsenide (InGaAs) 800 – 2600 0.34 - 1.42 eV depending on mixture III-V
Mercury cadmium telluride (HgCdTe) 400 – 14000 0 - 1.5 eV depending on mixture III-V
Lead(II) sulfide (PbS) 1000 – 3500 0.37 eV IV-VI
Cadmium telluride (CdTe) 5000 – 20000 3-6 eV depending on wavelength III-VI

As usual - mainly for the thermic noise - the larger the bandgap the lower the noise level and the larger the signal to noise ratio. So a diamond or CdTe photodiode would be perfect. On the other hand the bandgap also defines the minimum energy required to excite an electron into the conduction band and thus is also an important factor for the maximum wavelength that can be measured.

How are they used?

There are three ways how one could operate a photodiode:

Photodiodes with transimpedance amplifiers

This is one of the most common methods to measure the photocurrent. The diode is attached to an operational amplifier in reverse direction. The amplifier basically tries to drive it’s output so the net current flowing over the diode is zero and thus no voltage is measured. Thus the output voltage of the operational amplifier is of course directly proportional to the photocurrent.

Photodiode via transimpedance amplifier

Since one can assume that no current is flowing into the ports of the operational amplifier $I_{in} = I_{Fb}$. The OpAmp tried to keep the voltage potential between inverting and non inverting inputs zero so the inverting input sees an virtual ground in stable state - thus the voltage over $R_{Fb}$ is $U_{out}$. This in turn means the current $I_{Fb} = \frac{U_{out}}{R_{Fb}}$. Since $I_{Fb} = I_{In}$ this leads to $I_{in} = \frac{U_{out}}{R_{Fb}}$.

[ U_{out} = I_{in} * R_{Fb} ]

Thus the output voltage is - as expected - directly proportional to the photocurrent $I_{in}$. This is also a reason why many professional semiconductor photon detectors may be damaged when exposed to light even when not operating in avalanche mode and not using photomultiplier tubes - in some cases the voltage outputted by the transimpedance amplifier stage might simply be out of range for the following amplifier or DAC stages.

Usually one also adds a capacitor in parallel to $R_{Fb}$ to limit the bandwidth of the amplifier and prevent oscillations from happening. When doing a full analysis of the circuit assuming that $C_{in}$ is the capacity of the photodiode assembly and $C_{Fb}$ being the bypass capacitor in parallel to $R_{Fb}$ the optimal value for $R_{Fb}$ is determined as

[ C_{Fb} = \sqrt{\frac{C_{in}}{\sqrt{8} \pi R_{Fb} f_{GBW}}} ]

The frequency $f_{GBW}$ is the frequency where the open loop gain of the amplifier would be $0$.

To determine the value of the feedback resistor one can simply rearrange the equation and insert the maximum output voltage desired at the maximum reverse light current found in the datasheet of the photodiode:

[ R_{fb} = \frac{U_{out,max}}{I_{PD,max}} ]

Compensating for saturating at negative supply rail

Often one wants to run a transimpedance amplifier near zero light conditions. In this case the current would be near zero. When one wants to run the circuit with a single power supply rail (i.e. running the negative supply of the operational amplifier at reference ground potential instead of negative supply voltage which makes your circuit much easier) zero current would drive the OpAmp near $0V$. The problem is that an operational amplifier is usually not capable of reaching it’s supply voltages due to voltage drops in the internally used transistors and field effect transistors. To solve that problem one might apply a slight bias voltage to the non inverting input of the transimpedance amplifier:

Biased transimpedance amplifier to prevent driving OpAmp into negative supply rail in low light situations

In this case the output voltage is shifted by the bias voltage:

[ U_{out} = I_{in} * R_{Fb} + V_{B} \\ U_{out} = I_{in} * R_{Fb} + V_{cc} \frac{R_2}{R_1 + R_2} ]

The equation for $R_{Fb}$ is simply modified where $U_{min}$ is the bias voltage:

[ U_{min} = V_{cc} \frac{R_2}{R_1 + R_2} \\ R_{fb} = \frac{U_{out,max} - U_{min}}{I_{PD,max}} ]

A simple example / experiment with unknown photodiodes

The unknown photodiodes I’ve at hands have been designed for IR receivers and not for scientific applications so I expect them so have way worse performance (which will turn out to be true) - but of course they are totally sufficient in case one wants to build an IR remote control. I personally use photodiodes to generate a reference signal inside the interferometer of a simple tunable spectrometer - to measure it’s current status I simply use a cheap $650 nm$ laser beam as reference and basically trigger and count on zero crossings while slowly tuning the interferometer arm length. The second application is a small 3D printed Michelson interferometer that serves demonstration purposes.

Getting an estimate for the operation characteristics (Photoconductive mode)

Tools used to perform the initial measurements:

To do a simple demonstration I decided to take a look at a bunch of photodiodes from an unknown Chinese manufacturer with unknown characteristics. First I had to determine the basic characteristics like the photocurrent for the given application. This has been done by simply attaching the reverse biased photodiode into series with a $1 M\Omega$ resistor and measuring the voltage drop across the diode while supplying a known voltage using an oscilloscope. This has been done illuminating with a $650 nm$ laser diode (5 mW) as well as with a white LED flashlight. The dark current has been determined by simply covering the diode with some black light blocking laser curtains - everything at room temperature but not at controlled lab conditions.

Condition Supply voltage Resistor Measured current via photodiode Estimated current Noise (pct)
Dark $3V$ $1 M\Omega$ $1.41V \pm 2.22 mV$ $1.59 \mu A$ $0.16%$
Dark $6V$ $1 M\Omega$ $2.87V \pm 5.85 mV$ $3.13 \mu A$ $0.20%$
Dark $9V$ $1 M\Omega$ $4.42V \pm 12.3 mV$ $4.58 \mu A$ $0.28%$
Dark $7.5V$ $1 M\Omega$ $3.61V \pm 13.35 mV$ $3.89 \mu A$ $0.37%$
Dark $12V$ $1 M\Omega$ $5.21V \pm 0 \mu V$ $6.79 \mu A$ $\approx 0$
Ambient light (halogen) $3V$ $1 M\Omega$ $160mV \pm 5.04 mV$ $2.84 \mu A$ $3.15%$
Ambient light (halogen) $12V$ $1 M\Omega$ $3.53V \pm 62.5 mV$ $8.47 \mu A$ $1.77%$
Laser direct $3V$ $1 M\Omega$ $40mV \pm 1.21 mV$ $2.96 \mu A$ $3.03%$
Flashlight direct $3V$ $1 M\Omega$ $10 \mu V \pm 1.21 mV$ $2.99 \mu A$ $12.1%$
Flashlight direct $12V$ $1 M\Omega$ $10.9 mV \pm 9.1 mV$ $11.9891 \mu A$ $83.4%$

As one can see the noise for this simple setup increases as expected for increasing photocurrent since the voltage drop gets smaller and smaller. This setup also shows a pretty unstable behavior and dependence of the measured current from the supply voltage. But it’s just used to get an estimate for the operating point of the photodiode to calculate the dimensions for the OpAmp circuit.

Additionally I wanted to have an estimate about the speed of the photodiodes when being biased via an $1 M\Omega$ photodiode. Thus I used a flashlamp with $75 ms$ on and off time. Again measured once for $3V$ supply voltage:

75 ms pulse, direct measurement of photodiode voltage drop, 3V supply

And also for $12V$ supply:

75 ms pulse, direct measurement of photodiode voltage drop, 12V supply

As one can see the diode got pretty slow for 12V supply due to charging and discharging of the gate capacitance. To estimate the gate capacity one can estimate the charge time of the R-C network:

75 ms pulse, direct measurement of photodiode voltage drop, 12V supply

Since later on I decided to use an IR diode as photodiode I did the same measurement again with the LED reverse biased:

Condition Supply voltage Resistor Measured current via photodiode Estimated current Noise (pct)
Dark $3V$ $1 M\Omega$ $1.55V \pm 10.2 mV$ $1.45 \mu A$ $0.7%$
Dark $6V$ $1 M\Omega$ $3.07V \pm 2.0 mV$ $2.93 \mu A$ $0.07%$
Dark $9V$ $1 M\Omega$ $4.65V \pm 1.21 mV$ $4.35 \mu A$ $0.03%$
Dark $7.5V$ $1 M\Omega$ $3.85V \pm 12.2mV$ $3.65 \mu A$ $0.32%$
Dark $12V$ $1 M\Omega$ $5.21V \pm 0$ $6.79 \mu A$ $\approx 0$
Ambient light (halogen) $3V$ $1 M\Omega$ $1.54V \pm 10.4mV$ $1.56 \mu A$ $0.68%$
Laser direct $3V$ $1 M\Omega$ $176 mV \pm 20 mV$ $2.82 \mu A$ $11.36%$
Flashlight direct $3V$ $1 M\Omega$ $31.7mV \pm 1 mV$ $2.97 \mu A$ $3.15%$

Building a simple transimpedance amplifier (Photoconductive mode)

Since I now’ve seen that the current that I’m having to deal with is in the range of $2 \mu A$ to $10 \mu A$ (at least that’s the order of magnitude) it was easy to build a simple transimpedance amplifier out of one channel of an LM358 and a $1 M\Omega$ feedback resistor. Then the same type of measurements has been performed. The circuit looks like described above:

Photodiode via transimpedance amplifier

Since I wasn’t too satisfied with the initial photodiode since that really has been designed for IR range ($940 nm$ as it seems) and I hadn’t other photodiodes at hand I moved over to different p-n junction devices - in this case LEDs. The ones I had at hand are also $940 nm$ LEDs but in contrast to the photodiodes they lack a proper filter - which is even visible in the visible light spectrum by their transparent case.

Running with 3V supply voltage I got a solid 1.4V (1.4 mA photocurrent) signal for an uncolimated and only roughly aligned $650 nm$ 5 mW laser beam with acceptable rejection of misaligned light - the maximum incidence angle for light was around 20 degrees which is acceptable for my application (the photodiode should be used to measure zero crossing of a $650 nm$ reference beam in a simple interferometer setup). Thus I decided that I went with 3.3V supply voltage - and since the setup was more distributed I decided onto adding local voltage regulation in vicinity of the photodiode:

Photodiode interface board with local LDO

Due to power being supplied via a screw terminal I also added polarity protection with an 1N5817 Schottky diode which will work with reverse voltages up to $20V$. The bypass jumper is designed to allow using the same board layout without the local regulator with higher supply voltages - in this case one should also use a diode with higher maximum reverse voltage rating of course. On the final board layout I’ve also added the ability to add an indicator LED that shows if power supply is active or not - this is of course optional and depending on the application producing light in vicinity of a photodiode might not be desired.

To use mostly components that are lying around on my shelf I used THT resistors instead of 0805 SMD ones - the board could be much more compact using only SMD parts.

Finished PCB layout for photodiode interface

Since the cheap diode lasers I had at hand are vertical cavity surface emitting lasers which work below lasing threshold just like a typical LED - since they’re also only a p-n junction anyways - I wondered if one could use a laserdiode in reverse direction as photodiode. Basically this worked but unfortunately not as good as the IR LEDs for my application (this might be due to internal resistors and optics embedded into my laser diode packages).

The signal of my local amplifier board is then coupled into a standard $50 \Omega$ RG316 SMA cable that provides shielded transmission to the multiplexed readout logic (a simple 16 bit ADS1115 that is able to measure 4 channels for the first project and a AD7705 which offers two channels at 16 bit resolution for another project)

Spectra of the diodes

Since I had the opportunity to use an spectrometer I took a chance to look at the used LEDs more in detail and recorded some spectra while operating them from 5V over a $1 k\Omega$ resistor - which corresponds to a current of $3.8 mA$ for those diodes. It looks like these are emitting at around 935nm.

Spectrum of unknown infrared LEDs

This article is tagged: Physics, Hardware, Basics, Measurements, OpAmp


Data protection policy

Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)

This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/

Valid HTML 4.01 Strict Powered by FreeBSD IPv6 support