View Full Version : Please! Help with high speed photodiode receiver

08-30-2007, 03:26 AM

I want to test the frecuency limit of one high speed photodiode (SFH203) that
I have with one high speed IR emmiter (TSFF5400).

First test was with one normal LED as transmmiter directly connected at Pin 0,
through a 100 ohms resistor to ground .

I have made some receivers (searching at google) with FET and OPAMPs, but
I cannot get more than 19 KHz. When I put more than 19 KHz I starts counting
down to 0 Hz.

I think the problem is at the receiver. ¿Could anyone give me some schematic
of photodiode receiver?.

Thanks in advance !

Here is the code:

Some code modified from CountEdgeTest (PE-Kit-Counters-Lab-v0.81)
This code uses libraries from http://www.parallax.com/propeller/object.asp


_clkmode = xtal1 + pll16x ' System clock → 80 MHz
_xinfreq = 5_000_000

Emitter = 16 'Emmiter LED pin
Photodiode = 15 'Photodiode pin
LED = 0 'This pin changes acording to photodiode input


Freq : "Synth"
debug : "FullDuplexSerialPlus"

PUB TestFrequency | delay, cycles, frecuency

Debug.Start(31, 30, 0, 57600)
waitcnt(clkfreq * 3 + cnt)

ctrb[30..26] := %01110 'ctrb module to NEGEDGE detector
ctrb[5..0] := Photodiode
frqb:= 1

Debug.str(String(10, 13, "Photodiode frecuency limit tester"))

dira[LED] := 1


Debug.str(String(10, 13, "Insert frecuency (Hz): "))
frecuency := Debug.GetDec
Freq.Synth("A", Emitter, frecuency) 'Synth({Counter"A" or Counter"B"},Pin, Freq)

delay := clkfreq + cnt 'Precalculate delay ticks
dira[Emitter]~~ 'Emitter → output
waitcnt(delay) 'Wait 1 s.
cycles := phsb 'Store cycles
dira[Emitter]~ 'Emitter → input

Debug.str(String(10, 13, "f = ")) 'Display cycles as frequency
debug.str(String(" Hz", 10, 13))

if ina[Photodiode] == 1 'Set LED to show that we are receiving.
outa[LED] := 1
outa[LED] := 0

Tracy Allen
08-30-2007, 04:34 AM
The thing about photodiodes is that they usually have a large junction capacitance. One way to reduce the capacitance and thereby increase the speed is by using a relatively large reverse bias across the diode, the so-called photoconductive mode. However, that increases the effect of leakage and dark current, which is not good if the signal is small. There is always a tradeoff between the size of the signal and the speed.

The fastest amplifiers for photodiodes usually use a transistor as a common base cascode, in order to remove the voltage swing from the photodiode so the the junction capacitance does not have to charge and discharge. The current is passed through into a resistor or more commonly into the inverting input of an op-amp. The photodiode can feed directly into the inverting input of the op-amp, but that is not as fast as the added cascode. It should however be able to get higher than 19 khz.

In your program, I was surprised by the syntax, ctrb[5..0] := photodiode. I thought that range syntax only worked with the i/o registers, as in outa[5..0]. Does it work okay?

Tracy Allen
www.emesystems.com (http://www.emesystems.com)

08-30-2007, 04:54 AM
Tracy Allen said...
I thought that range syntax only worked with the i/o registers, as in outa[5..0]. Does it work okay?

Well, somewhat OT... I wonder why it does not work with ALL longs....
(a) It works with all 16 "special registers"
(b) It also works "reverse", i.e. outa[7..0] := 1 will set pin 0!
(c) It also works with variables, i.e. outa[x..y]
(d) It also works with outb !

08-30-2007, 09:51 AM
Actually, using a photodiode with the collector tied directly to a Prop input pin, pulled up by a resistor,
with another resistor to an output pin, and a 10nf cap (probably not even needed but I used it),
in ADC mode, works quite well at high speeds. This is because the EC voltage stays very constant
(right about at 1.65V), and the only thing that changes is the current. Try it, you might like it! It's also
very simple.

Let me be clear about the diagram. The emitter is grounded. The collector is tied to one leg of the
10nf, one leg of (say) a 10K pullup, one leg of (say) a 1K resistor, and some propeller input pin.
The other leg of the 10nf is grounded; the other leg of the 10K goes to +3.3V, and the other leg
of the 1K goes to some propeller output pin.

You'll need to tune the resistor values for your particular application (note that you can use
multiple output pins with different values of resistors, selecting which one works for a particular
input range, if you can afford the pins.)

Tracy Allen
08-31-2007, 12:42 AM
deSilva, Thanks for the insight on the .. range syntax, as it applies to all the special registers. I don't think that is mentioned in the manual, is it?

Rokicki, I think Ramon is talking about a photodiode, not a phototransistor. Nonetheless, a sigma-delta circuit would be a super bet for reading the current so long as it is above the noise floor. For a photodiode there would be no need for a pullup resistor. One side of the photodiode would go to the sigma-delta input pin, and the other side to a bias voltage so as to keep the diode reverse biased. That could be cathode to input pin and anode to ground. Increasing current sinking through the diode due to light would cause a increase in duty cycle from the output pin to provide the compensating current. The diode capacitance is effectively in parallel with the integrating capacitor, and effectively out of the equation except for the issue of response time. The sigma delta could provide a curve trace of the response of the diode. But if it is really a superfast diode, the response will occur in picoseconds, way faster than the Prop could measure it.

Tracy Allen
www.emesystems.com (http://www.emesystems.com)

Fred Hawkins
08-31-2007, 04:41 AM
Rokicki, can you show a schematic? And which flavor, NPN or PNP?

Tracy, ditto on the schematic.

Tracy Allen
08-31-2007, 05:36 AM
Hi Fred,

It would be something like the attached if the photodiode is referenced to ground.
The DC design equation is included for the choice of R2 in relation to the full scale current. When the photodiode is dark ( ~ 0 current), the input pin will rest at Vdd/2 (nominally 1.65 volts) and the output pin will be high H=1/2 of the time. When light increases, the value of H will increase to compensate, but the maximum value of H is 1, so the constraint in choosing R2 is, I1*R2/3.3 < 0.5.

It would in fact be possible to provide an offset, and that could be simply a pullup resistor to Vdd. That would be very useful if the photodiode light level fluctuates about a steady state instead of reference to zero. The circuit could be made differential with a second photodiode, cathode to Vdd and anode to the input.

Ramon, how will this be applied? Digital on-off as in a communication system, or analog as in a measurement system?

Tracy Allen
www.emesystems.com (http://www.emesystems.com)

Post Edited (Tracy Allen) : 8/30/2007 10:41:59 PM GMT

08-31-2007, 05:44 AM
Thanks to all for the replies,

Rokicky, please can you post a schematic?

I have redesigned the emitter. It now switchs with a mosfet betwen 1000 omhs (Low led
emission) and 100 ohmh (High led emission).

In the receiver I have made some new designs of OPAMPS but it hasn't been successful.

I was not able to make the configuration proposed by rokicki. As suggested Tracy, I
also have tried to make a FET cascode without success.

!!! But finally by some trial an error I have found a working configuration !!!

(I have made two mistakes, one in the receiver and one in the emitter. But it works).

PS: tracy, I haven't noticed any strange behaviour in ctrb[5..0] := photodiode (It works also)

08-31-2007, 05:50 AM
Hi tracy,

I want to make digital on/off like a communication system. I want to make a FSO link.

With the Propeller I can dedicate one cog for transceiver #1, and another cog for transceiver #2.

Fred Hawkins
08-31-2007, 06:32 AM
Tracy, Ramon: thanks. I think I'm start to see what you mean.

Ramon, I think your photodiode needs to flip its arrows.

Tracy, what are the range of values for R2? (I see your equation but can't make sense of it. Sans magic smoke, that is. In short, I don't get it.)

For both, why is Tracy's example less complicated? In other words, why bother with a transistor and mosfet?

Tracy Allen
08-31-2007, 11:25 PM
The circuit I posted for the sigma-delta is more for an analog system, where the goal is an analog measure of how much light or the time course of light intensity, whereas the one that Ramon posted is for an on-off comms system. Ramon's circuit has the photodiode across the emitter-base junction of the transistor, so the transistor turns on when there is enough light to forward bias the transistor and turn it on, a distinct threshold. However, I don't think that circuit will be particularly fast. Microseconds, not nanoseconds But it may be fast enough given the intensity of the light. Ramon, what is the expected data rate of your comms system? The circuit is fast enough?

Tracy Allen
www.emesystems.com (http://www.emesystems.com)

Beau Schwabe
09-01-2007, 12:39 AM
Here is an application note with·a couple of ideas...


#1 is an FET version of Ramonds

#5 is similar in function to what Tracy has, but instead of the Propeller it uses a high speed Op-Amp


Is there a specific carrier frequency goal that you want to use with the Photodiode and IR Emitter at in your design?

Knowing that might provide the possibility of another solution.

Beau Schwabe (mailto:bschwabe@parallax.com)

IC Layout Engineer
Parallax, Inc.

09-03-2007, 04:21 AM
Fred, You are right about the arrows but i cannot find the symbol of the photodiode in the program I used to draw the image (Linear SwitcherCAD III).

The mosfet can be supressed. The propeller can drive 20 mA to the led. I have made some test and there is no advantage using the mosfet.

(I want to use the mosfet because I have a schematic that drives a constant current to a led with a mosfet.)


Tracy, I have tried your schematic but I haven got it to work. The expected data rate is unknown, I want to reach the limit for testing purposes.

I have made some test and I can get easily 30 Mhz (frecuency counter) With the green and yellow LED supplied with the propeller education kit, and with a normal 3mm brigth red LED. The Emitter and detector ar at a distance of 10cm (4 inch)

When I try any IR LED I cannot get an good operation point (I cannot adjust the potentiometer to read well any frecuency, it is very inestable). The receiver has its peak responsivity at 900 nm ¿maybe it's saturated?.

For some unknown reason the Yellow LED have a low frecuency bad response. I cannot detect frequency until 10KHz, but I can reach 36 MHz - 39 MHz with the yellow LED, about 5-6 MHz more frecuency than Red or Green LED. (¿maybe the junction capacitance?)



I am beginner. I am learnig about photodiodes and emitters. I don't have any specific carrier frecuency or speed goal. It's just for experimenting how much speed can communicate two propeller (or cogs).

Thanks for the link. I have tried the first schematic of hamamatsu, but the FET amplifier doesn't work as well as the NPN. I cannot use 15V (I am using 3.3V of propeller and I think that the FET has lower amplification than the NPN transistor with 3.3V)

Maybe another student can find interesting these other Application Notes that I have found on google:

Amplifying a photodiode - National (Very good introduction)

www.national.com/onlineseminar/2004/photodiode/PhotodiodeAmplifers.pdf (http://www.national.com/onlineseminar/2004/photodiode/PhotodiodeAmplifers.pdf)

AN1122 HP, Inexpensive 2 to 70 MBd Fiber-Optic Solutions for Industrial, Medical, Telecom, and Propietary Data Communication Applications

AN243 Microchip, Fundamentals of the Infrared Physical Layer

AN1122 Philips, NE5300: A 50Mb/s - 100Mb/s LED for fiber optic communication

DN152 Linear Technology, The LT1328: A Low Cost 4Mbps IrDA Receiver (Here I found a mosfet driving the led)

?? Agilent (HP), Agilent IrDA Data Link Design Guide

I am still investigating new schematics ...

(Sorry about my english, It's not my natural language)

Tracy Allen
09-03-2007, 05:14 AM
I think the sigma-delta circuit is not at all appropriate for what you want to do. You need a strong on-off digital response, not analog.

LEDs are great photodectors, low leakage and low capacitance and narrow bandwidth. I am impressed that you got 30 mhz response at 10cm. Were you using the same type of LED for both transmit and receive?

The references you have collected especially for fiber optic communications will be very useful I think. Here are a couple more of book length, expensive, but maybe you can find them in a library:

Photodiode Amplifiers: OP AMP Solutions (http://www.amazon.com/Photodiode-Amplifiers-OP-AMP-Solutions/dp/007024247X/ref=sr_1_1/103-4972897-3351065?ie=UTF8&s=books&qid=1188770582&sr=8-1)
by Jerald Graeme, who has written lots of op amp application books in the Burr-Brown series.

Building Electro-Optical Systems: Making It All Work (http://www.amazon.com/Building-Electro-Optical-Systems-Making-Work/dp/0471246816/ref=sr_1_1/103-4972897-3351065?ie=UTF8&s=books&qid=1188770933&sr=1-1)
by Philip Hobbs, This is in the same 5-star league as "Art of Electronics", and has a chapter on how to push the limits in the sensitivity versus speed of response tradeoffs. It is pretty advanced but also very practical.

Tracy Allen
www.emesystems.com (http://www.emesystems.com)

Fred Hawkins
09-03-2007, 05:20 AM

Your english is fine. As for the arrows, almost any graphics program can just flip the arrows in the jpg.


09-11-2007, 02:19 AM
Hi Tracy,

I am not using a LED for receiver. I am using an high speed photodiode TEYD-5500.
(I bought a lot of 25 on ebay last year at $10 USD)

The book of Philip Hobbs (Building Electro-Optical Systems: Making It All Work)
has very good reviews on Amazon, but it is very expensive (about $100 USD).

I have this book: "Lightwave Technology: An Introduction" by J. C. A. Chaimowicz
It is an introductory book about Electro-optical systems, and have a chapter
dedicated to FSO.

Tracy Allen
09-12-2007, 12:34 AM
Maybe there is a copy of Hobb's book in a library? It has the most complete discussion on the tradeoffs in front end design with photodiodes I have seen, including the common base cascode. It is advanced both in the theory and the practice, but it is maddening too, because it covers a lot of ground between theory and practice with just a wave of the hand. I'd like to take a look at the book you referenced, too.

There are integrated circuits meant for optical communication and fiber optics that include a high performance photodiode amplifier. I've been looking at the available diode laser drivers for a project we have, and most of those also include a connection for the back-side diode that regulates the average laser power, as well as inputs for high data rate modulation. (But our project does not involve communication--it is analog measurement) A suitable external receiver chip might save you a lot of work.

Tracy Allen
www.emesystems.com (http://www.emesystems.com)