There are several ways of converting a current into a voltage, discussed in the follwing subsections.

Some helpfull info about this circuit was given by Pete Goudreau:
The effective input impedance seen by the current source of the DAC is given by
- Ao(s) the open loop gain of the opamp
- Zin the differential and common mode input impedance,
Z will be near zero when Ao(s) is large i.e., below the dominant pole corner frequency but will rise to Zin//Zfb at high frequencies. This is why current mode op-amps are popular for the I-V converter as the inverting input impedance is very low without the application of feedback, usually in the range of 10 to 50 ohms.
Basically when the output current of the DAC steps in value, if the slew rate of the current exceeds the open loop bandwidth of the op-amp,the input impedance will transiently rise causing the DAC output stage voltage to rise above ground which induces nonlinearity in the DAC. How long it takes the DAC and op-amp to settle to steady state determines how much error there will be in the resultant voltage output waveform. If the downstream filter can remove the added noise then it should not be inaudible. However, that downstream filter must have an open loop response sufficient to operate the active filter without error over the bandwidth of interest. Most op-amps with low open loop corner frequencies around 100Hz or lower can have significant settling time on the order of several microseconds, which can result in additional errors in the voltage waveform akin to TIMD. There is a clever circuit in the Analog Devices databook on the AD797 that uses a capacitor directly across the op-amp inputs the shunt the high frequency energy directly to ground rather than trying to have the op-amp handle it with feedback; additional compensation is used to stabilize the loop.
A resistor translates current into voltage by ohms' law (V = I.R). This law assumes that the current source is independent of the voltage. This in general is not true.
Let's assume that the output circuitry of the PCM-63 consists of a simple resistance ladder network (see Figure 2). It is easy to see that when Rext in value vanishes to zero, the output current through it is proportional to the bit coding, with s0 the LSB. I.e. if you think of the 3-bit code as an unsigned int k from 0 to 7, the current through Rext (if it has zero value) is:
This is the basic operating principle of a R-2R ladder DAC.

Now what if Rext is nonzero? Suppose Rext = e * R , with e a small fraction. Determining the output voltage or current now involves the solution of a set of linear equations, not easily done by hand. We have made a small program which calculates the current through Rext , for different values of e , and different number of bits n , counting through all consequtive codes (all values of k ). The output current is normalised with ( Vref / R ) = 1. The program output for n = 4 bits and e = 0.1 is:
cnt Iout Ideal err step 1 0.060468632 0.062500000 -3.250e-02 6.047e-02 2 0.120845921 0.125000000 -3.323e-02 6.038e-02 3 0.178173719 0.187500000 -4.974e-02 5.733e-02 4 0.240963855 0.250000000 -3.614e-02 6.279e-02 5 0.293470286 0.312500000 -6.090e-02 5.251e-02 6 0.353982301 0.375000000 -5.605e-02 6.051e-02 7 0.408460977 0.437500000 -6.637e-02 5.448e-02 8 0.476190476 0.500000000 -4.762e-02 6.773e-02 9 0.519105984 0.562500000 -7.714e-02 4.292e-02 10 0.576368876 0.625000000 -7.781e-02 5.726e-02 11 0.623671155 0.687500000 -9.284e-02 4.730e-02 12 0.689655172 0.750000000 -8.046e-02 6.598e-02 13 0.728801682 0.812500000 -1.030e-01 3.915e-02 14 0.788732394 0.875000000 -9.859e-02 5.993e-02 15 0.836236934 0.937500000 -1.080e-01 4.750e-02
Iout is the calculated output current through Rext , Ideal is just ( k / 2)n, err is the ratio between these 2 columns, and step is the increase in output current between 2 consequtive rows (counts).
Interpretatation: That err is always a small negative number could be harmless, if it were a constant value. Its variations show nonlinear (distortion) components. The same holds for step , which should of course ideally be a constant value, and its variations show nondesired behaviour. Decreasing e from the above 0.1 to 0.01, shows a decrease in the errors of also about a factor 10, i.e. the nonlinear effects vanish if the output voltage vanishes in comparison to Vref.
cnt Iout Ideal err step 1 0.062290742 0.062500000 -3.348e-03 6.229e-02 2 0.124571784 0.125000000 -3.426e-03 6.228e-02 3 0.186523665 0.187500000 -5.207e-03 6.195e-02 4 0.249066002 0.250000000 -3.736e-03 6.254e-02 5 0.310486688 0.312500000 -6.443e-03 6.142e-02 6 0.372786580 0.375000000 -5.902e-03 6.230e-02 7 0.434411605 0.437500000 -7.059e-03 6.163e-02 8 0.497512438 0.500000000 -4.975e-03 6.310e-02 9 0.557836833 0.562500000 -8.290e-03 6.032e-02 10 0.619770685 0.625000000 -8.367e-03 6.193e-02 11 0.680535148 0.687500000 -1.013e-02 6.076e-02 12 0.743494424 0.750000000 -8.674e-03 6.296e-02 13 0.803274890 0.812500000 -1.135e-02 5.978e-02 14 0.865533230 0.875000000 -1.082e-02 6.226e-02 15 0.926283288 0.937500000 -1.196e-02 6.075e-02
Now this is only a toy example for showing what has been done. What if we fill-in more real numbers: (We are interested in the 20-bit converters from BurrBrown). So choose R = 670, Rext = 6.7 ( e =0.01), n = 20 bit:
cnt Iout Ideal err step 1 0.000000951 0.000000954 -3.322e-03 9.505e-07 2 0.000001901 0.000001907 -3.322e-03 9.505e-07 3 0.000002847 0.000002861 -4.975e-03 9.458e-07 4 0.000003802 0.000003815 -3.322e-03 9.552e-07 5 0.000004741 0.000004768 -5.800e-03 9.387e-07 6 0.000005694 0.000005722 -4.975e-03 9.529e-07 7 0.000006637 0.000006676 -5.800e-03 9.434e-07 8 0.000007604 0.000007629 -3.322e-03 9.670e-07 9 0.000008530 0.000008583 -6.211e-03 9.257e-07 10 0.000009481 0.000009537 -5.800e-03 9.517e-07 11 0.000010417 0.000010490 -7.034e-03 9.352e-07 12 0.000011387 0.000011444 -4.975e-03 9.705e-07 13 0.000012311 0.000012398 -7.034e-03 9.234e-07 14 0.000013274 0.000013351 -5.800e-03 9.634e-07 15 0.000014216 0.000014305 -6.211e-03 9.423e-07 16 0.000015208 0.000015259 -3.322e-03 9.918e-07 17 0.000016108 0.000016212 -6.417e-03 9.003e-07 .... 101 0.000095363 0.000096321 -9.952e-03 7.246e-07 102 0.000096401 0.000097275 -8.981e-03 1.039e-06 103 0.000097281 0.000098228 -9.646e-03 8.798e-07 104 0.000098485 0.000099182 -7.034e-03 1.204e-06 105 0.000099160 0.000100136 -9.748e-03 6.752e-07 106 0.000100161 0.000101089 -9.186e-03 1.001e-06 107 0.000100996 0.000102043 -1.026e-02 8.355e-07 108 0.000102167 0.000102997 -8.060e-03 1.170e-06 109 0.000102916 0.000103951 -9.952e-03 7.493e-07 110 0.000104005 0.000104904 -8.572e-03 1.089e-06 .... 1000 0.000945939 0.000953674 -8.111e-03 3.472e-06 1001 0.000944342 0.000954628 -1.077e-02 -1.597e-06 1002 0.000945864 0.000955582 -1.017e-02 1.522e-06 1003 0.000945827 0.000956535 -1.119e-02 -3.734e-08 1004 0.000948914 0.000957489 -8.956e-03 3.087e-06 1005 0.000948091 0.000958443 -1.080e-02 -8.227e-07 1006 0.000950400 0.000959396 -9.377e-03 2.308e-06 1007 0.000951142 0.000960350 -9.588e-03 7.423e-07 1008 0.000955036 0.000961304 -6.520e-03 3.894e-06 1009 0.000953215 0.000962257 -9.397e-03 -1.821e-06 1010 0.000954548 0.000963211 -8.994e-03 1.333e-06 1011 0.000954305 0.000964165 -1.023e-02 -2.432e-07 1012 0.000957216 0.000965118 -8.188e-03 2.912e-06 1013 0.000956180 0.000966072 -1.024e-02 -1.036e-06 ... 10000 0.009429246 0.009536743 -1.127e-02 2.827e-05 10001 0.009401357 0.009537697 -1.429e-02 -2.789e-05 10002 0.009404443 0.009538651 -1.407e-02 3.086e-06 10003 0.009392094 0.009539604 -1.546e-02 -1.235e-05 10004 0.009410620 0.009540558 -1.362e-02 1.853e-05 10005 0.009390549 0.009541512 -1.582e-02 -2.007e-05 10006 0.009401340 0.009542465 -1.479e-02 1.079e-05 10007 0.009396708 0.009543419 -1.537e-02 -4.632e-06 10008 0.009422991 0.009544373 -1.272e-02 2.628e-05 10009 0.009399015 0.009545326 -1.533e-02 -2.398e-05 10010 0.009405958 0.009546280 -1.470e-02 6.942e-06 10011 0.009397467 0.009547234 -1.569e-02 -8.491e-06 10012 0.009419870 0.009548187 -1.344e-02 2.240e-05 10013 0.009403631 0.009549141 -1.524e-02 -1.624e-05 10014 0.009418311 0.009550095 -1.380e-02 1.468e-05 10015 0.009417532 0.009551048 -1.398e-02 -7.790e-07 10016 0.009447800 0.009552002 -1.091e-02 3.027e-05 10017 0.009418876 0.009552956 -1.404e-02 -2.892e-05 .... 100000 0.094043981 0.095367432 -1.388e-02 2.932e-04 100001 0.093749714 0.095368385 -1.697e-02 -2.943e-04 100002 0.093763567 0.095369339 -1.684e-02 1.385e-05 100003 0.093623990 0.095370293 -1.831e-02 -1.396e-04 100004 0.093791284 0.095371246 -1.657e-02 1.673e-04 100005 0.093575055 0.095372200 -1.884e-02 -2.162e-04 100006 0.093665452 0.095373154 -1.791e-02 9.040e-05 100007 0.093602664 0.095374107 -1.857e-02 -6.279e-05 100008 0.093846766 0.095375061 -1.602e-02 2.441e-04 100009 0.093592006 0.095376015 -1.871e-02 -2.548e-04 100010 0.093644107 0.095376968 -1.817e-02 5.210e-05 100011 0.093543108 0.095377922 -1.924e-02 -1.010e-04 100012 0.093748480 0.095378876 -1.709e-02 2.054e-04 .... 1048563 0.983191655 0.999987602 -1.680e-02 -1.209e-03 1048564 0.985210622 0.999988556 -1.478e-02 2.019e-03 1048565 0.983193494 0.999989510 -1.680e-02 -2.017e-03 1048566 0.984404250 0.999990463 -1.559e-02 1.211e-03 1048567 0.984001560 0.999991417 -1.599e-02 -4.027e-04 1048568 0.986834725 0.999992371 -1.316e-02 2.833e-03 1048569 0.984407011 0.999993324 -1.559e-02 -2.428e-03 1048570 0.985216148 0.999994278 -1.478e-02 8.091e-04 1048571 0.984408852 0.999995232 -1.559e-02 -8.073e-04 1048572 0.986838415 0.999996185 -1.316e-02 2.430e-03 1048573 0.985218912 0.999997139 -1.478e-02 -1.620e-03 1048574 0.986840260 0.999998093 -1.316e-02 1.621e-03 1048575 0.986841183 0.999999046 -1.316e-02 9.226e-07
You can see from the table that when the higher bits of the dac are turned 'on' (the output voltage grows), the error increases. The dac output might even decrease with increasing bit value!!! The deviations from constant in the stepsize, are clearly orders of magnitue larger than the LSB step accuracy (9.5e-7), thus throwing away the precisely crafted dac accuracy.
From the engineering point of view, it would be interesting to use the above numerical results to compute the output of a (digitally coded) sine wave, and do (numerical) spectrum analysis on the result, to get more idea of what this distortion is about.
The conclusions from this exercise are
- For good operation, the output voltage should best be kept significantly smaller than Vref / 2 n , which seems not feasible in practice.
- Since the above calculation is purely static, this desired extremely-low output voltage is not only for AC, but also for its DC component.
- Loading the DAC with an external resistor is apparently wrong from the engineering point of view. Even the conventional 'opamp with overall feedback resistor' configuration would probably not show a low-enough virtual input resistance, especially for the higher (audio) frequencies.
It is hard to derive from the data sheets if the output circuitry of the PCM-63K is directly coupled to a R-2R ladder network. The data sheets also don't mention any relation between the voltage on the output and the the linearity of the output current. Two faxes to Burr Brown haven't resulted in any information yet (shame, shame, shame!!!). After lots of phone calls with the local Burr Brown office in the Netherlands, they came up with the statement that the output resistance of the dac doesn't change considerably with the code word (at most 10%), and that the output resistance is determined by a transistor. Well, ofcourse we checked this with a primitive experiment, from which we can draw some minor conclusions:
We used a test CD with a sinus waver of 50 Hz (this can be measured with a multimeter fairly well). We've connected different resistor values to the output of the DAC, with the following results:
R AC(50Hz) DC 22 9,4mV -43,9mV 47 19,9mV -92,9mV 82 34,6mV -159mV
If we assume a Theverin circuit (supply plus series resistance), we can calculate the internal impededance according to:
R1 R2 AC DC 22 47 2k7 2k6 22 82 4k7 2k0 47 82 10k 1k8
Not really a constant value, and not really 680...
Sheldon Stokes Tube DAC manual warns for a DC-protection circuit inside the PCM-63, consisting of a diode from the output towards ground. According to him, the diode starts conducting at appr. 0.6 Volt. According to us, the voltage on the output of the dac should not exceed the 0.4 Volt to stay away from the non-linear area of the diode. Using the output current specifications of the PCM-63K (Iout = 2mA ± 2mA), we can derive an upper bound for Rb ≤ 0.4 / 4.10-3 ≤ 100 Ω .
Lynn Olson posted a message in 1995, refering to some measurements using a HP spectrum analyzer with a 100dB range and a test CD with full modulation at 1kHz to observe the effects of I-V converion with a resistor with a PCM-63. He found out that the PCM-63 will not accept a load any higher than 105 ohms, because larger values show the spurs come out of the noise (at -95dB) with a 105 ohm load. Drop the load to 75 or 50 ohms and there is no trace of distortion that could be seen anywhere on the spectrum analyzer.
Finally, at the site of Doede Doumayou can find some figures about the effects of a resistance load attached to a PCM-63.
In case a resistor smaller than 100 Ω is used, a driver stage will be needed to amplify the output voltage obtained (max. 0.2 V) to appr. 2.0 VRMS.
Another way to translate current into voltage is drawn in Figure 3. The current output of the dac is connected to the emitter of a transistor, which is kept in saturation. The current from the dac will flow to the collector of the transistor, and a resistor can be used to translate this current into a voltage (say convert 2 mA into 2 Volt, hence R = 1k Ω ). The current sources should be dimensioned such that all current from the dac flows through the resistance.

The advantage of this circuit in which the transistor is used this way is that it forms a virtual ground point to the output of the dac (only a 3 ~ 4 ohms), and hence doesn't impose a load which may cause non-linear behaviour. Furthermore this circuit has a very wide bandwidth (several hundred MHz), so it can easily cope with the high frequency sideband signals from the dac. The impedance depends on the static emitter current, and doesn't depend on any feedback.
The base of the transistor should be held at 0.7 Volt, such that it is conducting. There are several ways to achieve such a voltage:
I. Using a variable resistor. This requires a very stable power supply, and might be sensitive to variations in the power supply
II. Control it with a low-offset opamp
III. See the following figure. For T2 we have Vbe = 0.7 Volt, despite any variations of the power supply. A capacitor from the base to ground can be considered toeliminate any small variations in voltage on the base. The advantage of this circuit is the stability and simplicity when compated to solutions I and II.

Audio Note and Sowter seem to use some kind of transformer to implement I-V conversion.
The choice which I-V conversion method to use has been based upon listening tests. Our opinion is that I-V conversion with a resistor leads to the best results ("cleaner").
Copyright © 2001, Marc Heijligers and the DAC group - All rights reserved.