Simplest way to amplify signal from a photodiode ?

Hi everyone!
I need to amplify the signal from a photo diode, so i started to look around how op amps /amplifiers work but i am a bit lost i confess.
Ideally the gain should be somewhere between 10 and 25, with a non inverting amplifier.

I have looked at the LM741 and LM224 and the INA126P (seems good but expensive as hell) , as well as this topic http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241730209/9#9
but there are tons of other models as well, so i am completely lost right now : what would be the easiest option?

Btw in case you might ask : i can’t use a phototransistor instead in the setup i have:)

Thanks in advance!

In the Hamamatsu S1133 photodiode datasheet there are a number of application circuits. Although the output current of the diode is small the input bias current of most modern op-amps is much smaller. Most modern op-amps will work for this application.

I would look for a single +5V supply op-amp. A rail-to-rail output will enable you to use the full range of the ADC. The best IC selectors are at On-Semi and TI (which are also using the lowest cost parts).

IIRC the INA126P is an instrumentation amp which you really don't need for this application.

(* jcl *)

I looked in the S1133 datasheet (it was only 4 pages) and didn't see any example circuits. I'm curious though...do you have a link?

Basically I would start with a transimpedance amplifier. This is a somewhat technical introduction. This circuit has the basic idea, though its resistances and such will need to be tweaked for the particular photodiode and light intensity ranges you'll be using.

Sorry about that. I thought the circuits were in the datasheet.

There are a number of circuits in this Hamamatsu app-note —

http://sales.hamamatsu.com/assets/applications/SSD/photodiode_technical_information.pdf

Also –

http://sales.hamamatsu.com/assets/applications/SSD/si_pd_circuit_kspd1043e07.pdf

For a simple light detection circuit I would go with the circuits on page 8 (first document) which consist of a single op-amp a few resistors.

(* jcl *)

That's an awesome photodiode circuit collection! Well worth keeping that document around.

@jluciani thanks a lot for the information those document are really a goldmine! (Although for now i am partially even more confused that before, a lot to read up :slight_smile:
I do not seem to find any specific detail about the op amp in the circuit of page 8 in the first document? might have missed it…

All of the op amps i seem to be able to find in shops here don’t seem to be rail to rail… any specific pointers?

@thanks RuggedCircuits!
That technical introduction is really in depth it seems, will have to read through it…
I must confess i have no clue about transimpedance though
The circuit is a nice thing to have as well ! Thanks a lot!
yep i already planned on doing a lot of tweaking with the resistor values as well, since i have some serious calibration work to do to get things right (if i understand right you usually get the gain by dividing the values of the two resistors which are connected to the output and negative power supply?)
Sorry for my lack of knowledge in the area, but trying to understand at least a bit of it…

All of the op amps i seem to be able to find in shops here don't seem to be rail to rail... any specific pointers?

Did you go to the manufacturer;s site?

For example at TI under

TI Home * Amplifiers and Linear * Operational Amplifiers * Precision Amplifiers

There are about 38 results for single channel op-amps in a DIP-8 package. The first few are --

TLV271, OPA337, TLV2371

On-Semi probably has a number of devices too.

(* jcl *)

Thanks jluciani! yes i looked those up, and unfortunately they only have a single model of rail to rail op amp in the shops here : the AD823AN..at very high prices too (7 euros for one!). Checked the datasheet and it seems about right, but i might order online given the price....

I gave the circuit a whirl last night with a lower quality op amp -not rail to rail one- and it works great even with its limitations, and after sitting down for a while and doing some calculations i have started to understand a bit better how an op amp works ! Thank a lot to you two !

You should try getting a couple of free samples from TI, On-Semi or Analog Devices. Getting a couple of parts is usually not a problem.

Rail-to-rail gives you the full range of the ADC. Your application may not require that kind of resolution and you could be OK with a typical op-amp.

If you do not load the output of the op-amp you will get a larger output voltage swing.

(* jcl *)

Good idea on the samples! -the op amp output is connected to an analog pin on the arduino: so normally i should have no problem as far as load goes right?

I will indeed need the full range of the ADC in the end, having a range of about 0-500 (had to use the 3v pin as the 5v is already being used) is not sufficient for my needs: -the useful range of data i had, before using the op amp was between 200 and 250 (as in , just 50 units of useful data out of 1023 to work with!!) -i will have to adjust resistor values to get a lower amplification as well (went with a 10k and 1k res, so a gain of 11 which saturates damn fast when you don't have the full ADC range to work with) -if i am not able to get sufficient precision i also though about adding a high pass filter of sorts as well, to eliminate the useless lower values too

-the op amp output is connected to an analog pin on the arduino: so normally i should have no problem as far as load goes right?

IIRC the input resistance of the ATmega is a few 100K. Most op-amp specs are with a load of 1K - 10K so you are at least an order of magnitude below the specs.

I will indeed need the full range of the ADC in the end, having a range of about 0-500 (had to use the 3v pin as the 5v is already being used) is not sufficient for my needs: -the useful range of data i had, before using the op amp was between 200 and 250 (as in , just 50 units of useful data out of 1023 to work with!!) -i will have to adjust resistor values to get a lower amplification as well (went with a 10k and 1k res, so a gain of 11 which saturates darn fast when you don't have the full ADC range to work with) -if i am not able to get sufficient precision i also though about adding a high pass filter of sorts as well, to eliminate the useless lower values too

Your problem is not with gain but with offset. You actually need a higher gain. If your data range is 50 (250-200) you want a gain of 20. This will let you use the full range of the ADC (1000 = 50*20). You need to subtact 200 prior to multiplication. If you subtract 200 your signal goes from 0 to 50 (0 to 1000 with a gain of 20).

You can configure the op-amp to subtract as well as amplify.

(* jcl *)

Ah good info, didn't know the input resistance was that high on the arduino, then again that explains why i still haven't fried anything:)

-the lower amplification was actually only a problem with this lower quality op-amp and the 3v configuration since the saturation ceiling is way lower -hmm i looked up how a substractor circuit with an op amp works: if i get this right i just have to connect , in parallel with the already present negative input, an adequate power supply and resistor : for example if have access to the whole adc range: - 1V is approximately an analogread value of 200(204.6 actually: 1023->5V so 1V->1023/5) - i connect the "substractor" to the "negative input" in parallel and then to an Arduino delivering 5V at 40Ma , with a 250 ohm resistor (1/0.04=>250) (if my calculations and logic are correct) which should subtract about 200 from the value i would be getting?

Am i completely off with this? Sorry for my beginner's questions..