Electronic – Help figuring out what is the limiting factor on the noise level in this analog optocoupler circuit

analogltspicenoisenoise-spectral-densityoperational-amplifier

I am trying to build a circuit that takes a {-10V … +10V} analog signal and outputs the same {-10V … +10V} voltage but galvanically isolated from the input. The idea is similar to that of digital optocouplers, but for analog signals instead. My target would be to have a small-signal bandwidth of around 10 kHz, and a voltage noise density of less than 200 nV/√Hz (at 1 kHz) on the output.

I have the following circuit so far, and am trying to understand why the noise is so high:
enter image description here

The circuit is based on the HCNR201 analog optocoupler chip. This chip is basically an LED with two matched photodiodes inside, and by using feedback applied to the LED (using op amp U2) to regulate the light falling on input photodiode, the output photodiode current also follows. A standard transimpedance amplifier (U4) then converts the photocurrent from the output photodiode back into a voltage. This arrangement allows to compensate for non-linearities and temperature affects of the LED, and was first described here. I have based the "analog isolator stage" shown above on this HCNR201 Evaluation Board from Broadcom.

Now, the chip doesn't work so well at low photodiode currents, and so cannot reliably go down to zero volts. To get around this I have added extra op amps around it for scaling the signal. The input is first scaled from {-10V … +10V} into a range {+1V … +8V} that can be handled nicely by the optocoupler. Afterwards, an output stage simply scales it back to the original range.

For testing, I have built the circuit on a custom PCB, and the scaling all seems to works nicely, as can be seen in transient simulation and the measurement below:

enter image description here

The problem is that the noise on the output signal is too high. An LTSpice calculation predicts a noise value at 1 kHz of 2.2 µV/√Hz. In order to test this, I shorted the input to ground and measured the noise spectrum of the output (with the circuit powered by +9V and -9V batteries, and the bias voltages dervied also from the batteries to be as clean as possible). I do indeed measure exactly that predicted by the calculation, which gives me confidence that all the LTSpice models used are correct:

enter image description here

I can't figure out what is limiting this noise level, or how to reduce it closer to my target of less than 200 nV/√Hz (at 1 kHz). Is it the analog optocoupler itself (can the photodiodes and LED really cause so much noise?), or is it my surrounding op amps, or is it the interaction between the two? I am now stuck with how to proceed in figuring out where the bulk of the noise comes from…

Notes:

The op amps used are the OP1177, which has input voltage and current noise densities at 1 kHz of 7.9 nV/√Hz and 0.2 pA/√Hz, respectively. I have tried to keep the resistor values relatively low, but don't think these are causing the noise of 2.2 µV/√Hz observed. I have also tried swapping directly the HCNR201 for the similar IL300. When doing this I observed exactly the same noise level. I don't believe that it is the HCNR201 chip itself, because the noise level of the evaluation board is around 100 nV/√Hz, and so I think it is something to do with my external circuit.

EDIT ————————————————————————–

It was suggested by Bruce Abbot that it could be the optocoupler which is limiting this circuit, because he tried replacing the optocoupler by an ideal controllable current source in SPICE and saw that the noise was reduced significantly.

However, to test what can be achieved with this chip, I have also measured the performance of the HCNR201 evaluation board. Here is the schematic and a simulation of this board (I have used the AD8627 op amp, because it has lower current nosie like the actual one used on the board), and a measured noise spectrum for a 0.1V DC input signal:

enter image description here

enter image description here

enter image description here

It can be seen that the LTSpice prediction of 100 nV/√Hz agrees with the measurement. This is low enough for my application, and gives me confidence that the analog optocoupler might be able to do the job. This makes me think it could be something to do with my external scaling circuit?

Best Answer

I reproduced your circuit in LTspice (except for using LT1007 op amps as I do not have a model for the OP1177) and got the same results.

Then I replaced U1 and U2 with resistors and drove the optocoupler open loop. Noise dropped from 2.2µV/√Hz to 1.6µV/√Hz (with negligible contribution from the resistors). Finally I replaced the optocoupler with a current controlled current source, and the noise dropped to 280nV/√Hz.

This indicates that the optocoupler itself is the main noise contributor.

But is it really that bad? 2.2µV/√Hz over a 10kHz bandwidth is 220µV. Compared to a 20Vpp sine wave output that is -90dB or ~15 bits of resolution.

ETA. Testing the optocoupler at different currents reveals that noise is proportional to diode current. Therefore a lower bias current will appear to produce less noise, but of course the maximum undistorted AC signal level will also be less so there is no advantage.