0
\$\begingroup\$

I'm playing with some "precision" (as claimed by manufacturers) opamps and DACs to test how "precise" they are.

So, the components I'm testing are:

  • DAC7612U by TI: A two channel 12-bit (1mV/LSB, up to 4095mV) DAC with internal reference and buffered outputs.
  • OPA2335 by TI: A single-supply opamp with very low input offset voltage (5uV max).

For testing purposes, I've built the following circuit (Note that all resistors are 0603 case SMD ones with %1 tolerance and the output sections of DAC is taken from datasheet as they're shown):

schematic

simulate this circuit – Schematic created using CircuitLab

As you can see, the first block after the DAC is a differential amplifier with unity gain and the last block is a non-inverting amplifier with a gain of 1 or 2 (depending on the state of the analog switch, 1G1357). \$VO_A\$, \$VO_B\$, \$V_{diff}\$ and \$V_{buff}\$ are test/measurement points.

And finally, here are what I got:

  • When I reset (zero) both outputs of DAC, I measure about 1mV on both \$VO_A\$ and \$VO_B\$. Quite normal, because zero-scale error is given as 1mV in the datasheet. And, as expected, voltages on \$V_{diff}\$ and \$V_{buff}\$ are in uV range. No problem at this point.
  • When I set OUT_A to about 500mV and leave OUT_B untouched, the measurements are correct on all test points.
  • This is the one that I have question about: When I set OUT_A to about 3500mV or higher, and leave OUT_B untouched, I measure about 4mV on \$VO_B\$, but it should be about 1mV! If I disconnect the differential amplifier, the measurements are correct on both \$VO_A\$ (the code I loaded in mV) and \$VO_B\$ (about 1mV). If I reconnect the differential amplifier and use lower resistances (e.g. 15k) for all of R1, R2, R3 and R4 then the measurements get worse: \$VO_B\$ increases to 8mV even if the loaded code is zero! One more interesting thing: \$V_{diff}\$ shows \$V_{diff} = VO_A - VO_B + V_{err}\$; where \$V_{err}\$ is the error voltage that I measured on \$VO_B\$ for \$VO_A \ge 2500mV\$ (It's 0mV for \$VO_A \le 2000mV\$).

How can it be? Why does this happen? What should I do?

Sorry for long post. Hope I could explain the problem.

\$\endgroup\$
  • \$\begingroup\$ Can you post a picture of your layout? Is the second stage at \$\times\$ 1? 3.5 V \$\times\$ 2 = 7 V outside the supply range. \$\endgroup\$ – skvery Mar 17 '17 at 9:23
  • \$\begingroup\$ @skvery It's not about saturation. The switch is closed for small (in mV range) voltages. It's normally open, so the last stage acts as a follower. \$\endgroup\$ – Rohat Kılıç Mar 17 '17 at 9:29
  • \$\begingroup\$ (\$3 500~mV\times 2 > 5~V\$ on my calculator? :-) \$\endgroup\$ – skvery Mar 17 '17 at 10:00
  • \$\begingroup\$ @skvery You're talking about the last stage, but my problem shows itself on the first stage. As I said, the switch on the last stage is "normally open" (look carefully), so the gain of the last stage is 1 thus \$V_{buff} = V_{diff}\$. It's closed when measuring a few (1 to 50) millivolts. Again, my problem is on the first stage (differential amplifier with unity gain). If \$VO_A\$ is greater than 3500mV then \$VO_B\$ unexpectedly becomes 4-6mV even if the loaded code for DAC_B is zero. Also, the difference voltage, \$V_{diff}\$ shows some error voltage that is zero when \$VO_A \le 2500mV\$. \$\endgroup\$ – Rohat Kılıç Mar 17 '17 at 10:07
  • \$\begingroup\$ Do you still have the problem if you disconnect the second stage? The \$2500~mV\times 2\$ is very close to 5 V? You can also compare values with the switch open or closed. \$\endgroup\$ – skvery Mar 17 '17 at 10:11
2
\$\begingroup\$

The act of setting OUTA high lifts the inverting input of the diff amp high and forces a current into OUTB output. This will produce an offset error on OUTB's output.

If you look on page 6 of the DS it shows this effect (output swing capability) but it doesn't really indicate how poor this will be with a 200 kohm. It can be seen at 1 kohm (about 0.1 volt offset induced).

Given also that to produce close to 0 volts on an output when the device itself receives no power rail below 0 volts is a tall ask and it will be susceptible to pull-up effects.

Please also ensure you measure the output relative to the common 0 volt pin on the device.

As a general rule I never rely on the top or bottom 20 mV range on dacs or adcs.

\$\endgroup\$
  • \$\begingroup\$ Pull-down Voltage vs Sink Current graph! How couldn't I see it! The lower the resistances in diff. amp, the higher the sink current into OUTB, thus the more shift on VOUT_B. Thanks for showing that. And yes, the measurements are relative to the GND pin of the corresponding device. Anyway, maybe using a DAC which can produce an output in +/-Vref range (via a split supply) would be a solution. But the minimum required reference voltage is 1mV (that's why a 12-bit DAC is selected) and the system will be supplied from a single 5V source. \$\endgroup\$ – Rohat Kılıç Mar 17 '17 at 11:02
  • \$\begingroup\$ Try a 10 kohm pull down on the pin to see if things improve. \$\endgroup\$ – Andy aka Mar 17 '17 at 11:56
  • \$\begingroup\$ Tried it before with several resistors from 1k to 270k but no improvement... \$\endgroup\$ – Rohat Kılıç Mar 17 '17 at 12:27
  • \$\begingroup\$ That does surprise me. I would expect some improvement. \$\endgroup\$ – Andy aka Mar 17 '17 at 13:29
  • \$\begingroup\$ I loaded both DACs with 1k to 270k, but as I said, no improvement. If I disconnect the opamp stage, I see no problems with or without a load (pull-down) resistor. \$\endgroup\$ – Rohat Kılıç Mar 17 '17 at 14:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.