When you are successfully reading the photo-diode in the uA range, what is the maximum voltage you are reading?
I'm not a TIA expert by any means. I looked at the TIA datasheet and noticed something:
Vout – Analog
Vout is the output signal terminal. Vout is determined by the following equation, where RFB is resistive feedback:
Vout = Vref – Iin × RFB
Positive (from source) currents result in output voltage that is negative with respect to Vref.
Negative (into source) currents result in output voltage that is positive with respect to Vref.
Based on your Topdesign you have:
Your Vref is connected to GND which effectively means Vref = 0V.
This means in your Vout equation => Vout = 0V - (Iin * RFB) where RFB = 1Mohm.
Therefore technically if Iin is always > 0nA then Vout < 0V at all times. Therefore Vout cannot be lower than 0V on the PSoC. The only reason you probably are getting signal in the uA range is due to the input voltage offset of Iin (Vos).
Suggestion; Try the follow following circuit:
(No rewiring or external components needed)
Setting the Vref to 1.024V will allow the output an offset to work with.
Vout = 1.024V - (Iin * 1M)
Theoretically in a perfect world if Iin = 0 nA then Vout = 1.024V
If Iin = 1024nA (aka 1.024uA) then Vout = 0V.
If you need to support more Iin than 1.024uA consider assigning Vref to a higher voltage. If your Vdda is stable, then Vdda/2.
If you still want to use your original circuit, try flipping the photo-diode orientation. This will cause the circuit to flow in the opposite direction making -(Iin).
Here's a little troubleshooting trick I've used before to calibrate a a current source measurement circuit. This might help you determine the operational success of the TIA.
This strategy requires two good multi-meters.
- Set one of the multi-meters to 'ohms' with manual ranging.
- Set the other multi-meter to 'uA'.
- The multi-meter set to 'ohms' will try to provide a constant current. The current will be dependent on the range selected.
Lower ohm range => higher current, higher ohm range => lower current.
- The multi-meter set to 'uA' range will measure the current from the other multi-meter trying to source a constant current based on selected range.
- Knowing the current (and direction) into the TIA, measure the output and compare the result to the formula: Vout = Vref – Iin × RFB
- If you swap the '+' and '-' connections to the multi-meter in 'ohms' mode this will reverse the direction of the current.
That way you can test the Vout response with the current in the opposite direction.
- Change the value of Vref. (eg Vdda/2)
- Change the Vref to a DAC output and set the DAC output to different values.
- If you only have one multi-meter, create a current source with a power supply and a known reference resistor to replace the multi-meter in 'ohms' mode.
I checked what you said.
In my design, On giving microamps of current I am already getting about 170mV as output which decreases to 100mv in a linear fashion as I decrease the light intensity received by the photodiode. After I flipped the connections with my photodiode I found that the output of TIA had attained a threshold of 15mV which was not changing on changing the light received by the photodiode. WIth this experiment, I was able to conclude that I am already inputting negative current which is making Vout as a positive entity.
I tried your suggestion as well that is to add a vref but only difference it was making was it was creating an offset. But the design was still not able to sense any change when there was a change in current is varying in the range of 0 to 50nA.
As far as I know, there are the following ways to solve this problem:
- Increase the sensitivity of inbuilt TIA.
- Amplify the nanoamps of current to microamps without adding noise.
Please suggest what will be the best way to solve this problem & please add if there is any other way to resolve it.
To measure 50nA the TIA feedback resistor must be ~20MO. Existing TIA has only 1MO. You can try to make own TIA from PSoC's Opamp and ~20MO external resistor. I can't confirm this will work, as I never tried it myself. The issue is PSoC Opamp low input impedance ~1MO, which will affect measurement.
Normal TIA have >1GO input impedance. I recommend making TIA using external Opamp and 20MO resistor.
P.S. I recommend also reading this paper
Maybe you try one of the other methods to deal with photodiode current or voltage. I did a little search on the internet with "Photodiode schematics" in images. You will find at least six other topologies. Unfortunately, I don't have the time to dig deeper.
You could also consider using the delta sigma ADC with its input buffer (min 10MOhm). This would have the advantage of filtering out some noise. But it needs a different configuration (see search results). With this, I could also imagine a kind of auto calibration using an IDAC.
1 of 1 people found this helpful
Even if you were to achieve low-nA resolution, the circuit impedance would be 10M to 20M ohms as /odissey1 indicated.
Even in the best of circuits, the thermal noise at such very high impedance would induce a AC-like noise of +/- 57uV @ 20C. (See link below.) You can integrate most of the noise out by performing long-term averaging in SW or placing a cap large enough to average the signal. (Down-side: larger signal latencies).
You never indicated why you needed such low-current resolution. Many designs that use a photo-diode use it in a binary way. They create a circuit that measures the photo-to-current output against a trigger threshold.
Here's a suggested circuit based Andrea's suggestion:
The ADC_DelSig has control over the Vref, Input Range and the Buffer gain.
For example with the circuit above, using Vref = 1.024V, Input range = Vssa to 1.024V and Buffer gain = 1 you get 16bits of ADC resolution from 0 to 100nA. (Remember you're going to get a lot of thermal noise at this large impedance).
You can scale up the Input range and buffer gain in SW to achieve large current ranges.