In Transimpedance pulse monitor does need low-pass, I realized that Schottky diodes were not going to work for the transimpedance amplifier, but I didn’t have any ordinary silicon signal diodes to test with. I’ve previously used the base-emitter junction of bipolar transistors for log amplifiers, but I decided this time to test the body diode of an nFET.
I spent a fair amount of time trying to measure the V-vs-I characteristic over a fairly wide range (though only with low currents). I ended up using several tricks:
- using several different sense resistors to measure the current
- censoring the data so that very low differential voltages across the sense resistor are not plotted
- using unity-gain buffers to provide sufficient drive for the analog-to-digital converter (essential when using large sense resistors)
- using low-pass filters after the unity-gain buffers to try to reduce 60Hz interference (not entirely successful for the largest sense resistor)
- doing fitting to estimate the effective input offset of the differential analog-to-digital input for the voltage across the sense resistor (mainly from the unity-gain buffers)
The result of all this care was one of the cleanest logarithmic response plots I’ve collected:
Measuring down to 1nA on a breadboard is not easy, as the 60Hz interference is a big problem.
I fitted the slope of the log curve by alternating between fitting the offset using the 4.7Ω data and the slope using the 120kΩ data (the 5.6MΩ data seemed a bit too noisy to me). I collected several other sets of data but the plot was too cluttered when I tried to include them, so I kept just enough to get good overlap between the ranges. I’ve got a good logarithmic fit here for about 150dB, and it looks like I could go another 20dB higher (though thermal effects might start mattering above 0.1A).
The equivalent resistance at the bottom of the current range is about 150MΩ and about 14Ω at the highest current I measured with (47mA). Because the equivalent resistance varies so much, the corner frequency of the low-pass filter made by putting a 680nF capacitor in parallel to the diode also varies a lot (17kHz@14Ω, 1.6mHz@150MΩ).
I tried using the body diode in the same minimally filtered circuit as I used for testing the Schottky diode, and got usable results in even in moderately low light:
Brighter light makes the 60Hz noise be smaller (probably because the capacitive coupling introduces a current which is a smaller fraction of the total current), but does not change the strength of the filtered signal. When I switch to very bright light (a 650 lumen bike headlamp right against the finger), then the signal gets stronger, but I had to shift the bias voltage down to 1.65V, as the DC bias on the diode got to 0.55V or more.
So the question still plaguing me: can I use a log-impedance amplifier as the second amplifier lab, given that low-pass filtering is essential?
Putting the filtering in the second and third stage is simpler than putting it in the transimpedance stage, as the corner frequency is independent of the light level then. It is sufficient to put the RC filter in just the second stage, as long as the attenuation at 60Hz is sufficient—I found that about 48dB attenuation was enough, though with just one RC element that distorts the pulse signal also, since the corner frequency has to be very low (0.24 Hz), below the 1–2Hz of the pulse. If I do low-pass filtering in both stages, I could use 3Hz cutoffs, which preserves the interesting part of the signal.
Doing two stages of low-pass filtering with 1.06Hz and 1.17Hz cutoffs provides enough suppression of the 60Hz interference that I did not need digital filtering. In medium light, I got a signal large enough to saturate the third stage (so I’d need to redesign with lower gain). With 1.6Hz and 2.6Hz cutoffs, the signal is still much larger than the 60Hz noise, and less distorted by the filters. The pulse shape is still more dependent on the filters than on the actual signal from the transimpedance amplifier, which is almost a sawtooth (hence having high-frequency components that are removed by the filter).
If the 60Hz interference is small enough that the amplifiers don’t saturate, I can eliminate it by aliasing (sampling at 60Hz, so I’m at the same place in the interference waveform on each sample). But if the 60Hz interference is too large, then the signal is clipped and aliasing can’t recover the pulse signal. So digital filtering is definitely optional here—students can get good results with just analog filters and aliasing.
Alternatively, we could look at just the transimpedance amplifier output, and use digital filtering to clean up the baseline shifts and 60Hz interference. The biggest problem is that the PteroDAQ sparkline looks like a constant—the fluctuation of a few mV is only visible once the data has been plotted on a larger scale.