Hello!
I am designing a light sensor that can detect about 10nA of current from a photodiode and amplify it to at least a 1V swing that is fed into an adc. I need the rise / fall time of the sensor in darkness or the lowest light level to the highest light level to be <20us. I am trying to do this for as low cost as possible. <$0.1 in 3000 unit quantities.
The light from the highest light condition seems to create ~20nA from 4 photodiodes in parallel. I have determined this based upon a TIA using the LM321LV with a 500k feedback generating about 10mV of swing from the low to high light condition. The TIA is setup with the same circuit seen in the image below in the blue box. VREF is set to 1.65V. The rail voltage is 3.3V. Cf is set to about 15pF.
I am trying to understand if I am doing an impossible task and want to know what I can do differently to achieve the goal. I have gotten close to what I am looking for on a breadboard with some centimeter long wires. The issue I am having is that in the low light condition which is basically total darkness, the output is 60Hz electrical noise that spans 0.55V to 2.8V. This noise is also seen but is clipped by in the higher light conditions. This seems very close but I am not quite sure how to eliminate the 60Hz noise. Noise appears to reduce a bit when I unplug nearby USB adapters from a nearby power bar. I have decoupling caps on the input supply rails and Vref. If I take the average voltage of the output signal, the output is what I want. It is the electrical noise which needs to be removed without adding anything that will increase the rise/fall time of the signal.
I am getting this result with a 2 stage approach seen in the photo below. I am using the TIA to turn the small current into a somewhat small voltage swing that maintains a high rise/fall time and then using another amplifier to get it close to full scale for the ADC. Both op amps are the LM321LV. R1 = 500k, C1 = 15pF, R2 = 10k, R3 = 720k, C2=0pF, Vref = 1.65V.
Let me know if there is more information that can help and I thank anyone that contributes in advanced!





