2 Replies Latest reply on Sep 30, 2017 7:53 PM by user_1574446

    DVDAC Through Opamp for CV out

      This is my first design with a DVDAC, Im trying to make a CV Out for a keyboard I am working in, but I have a few questions about how to get really precise on the Voltage Output, first this is what I routed on the top Design:


      Screen Shot 2017-09-30 at 17.29.47.png


      It is a DVDAC that passes through an op amp configured as an Non Inverting Amplifier. The DVDAC requires a 10 nF Capacitor because it is configured to be 12 bit with a clock speed of 1000 kHz.


      The Opamp gain obtained by the Non Invrter Amplifier Formula is 9.8.


      Screen Shot 2017-09-30 at 17.37.54.png


      Max DVDAC output voltage is 1020 mV with a resolution of 4080 steps.


      So the DVDAC output range should be:

      from 0V to (1.02 V * 9.8) ≈ 10 V (9,996 V).


      And each step would be:

      00025 * 9.8 ≈ 0.0025V (0.00245V) wide.



      This is where it becomes annoying to me, CV specification says that the output should be 1 Volt per octave,  here mine would already be theoretically off by a little. for example Octave 5 would start at 4.998 V not at 5 V, it is only out by 2 mV, but I don't know if this little scalation error would become significant with the drift also generate by the resistor ladder (even though I use 1%  resistors, there would not be exactly the value of the resistor).


      This is a Chart for obtaining all the CV Voltages:


      Note  (Zy)Number  (Xn)Octave (y)Voltage (Xv)
      C0000 V
      C#0100.083 V
      D0200.16 V
      D#0300.25 V
      E0400.3 V
      F0500.416 V
      F#0600.5 V
      G0700.583 V
      G#0800.6 V
      A0900.75 V
      A#01000.83 V
      B01100.916 V
      Z = Xn % 12Ranges from 0 to 127 in MIDIy = Xn / 12Xv%12 + (1V * y)

      *Z Represents the notes ( C, C#, D, D#, E, F, F#, G, G#, A, A#, B ).

      *Xn Represents the note number ( This matches the MIDI Specification ).

      *y Represents the Octave.

      *Xv represents the actual Note CV.



      This values are the same for all the octaves, but add (1 * Octave) Volts.

      for example C5 would be 5 V, or F#6 would be 6.5 V



      The other solution I though of is using the DVDAC with a resolution of 0xFA0 ( from 0 to 1V ) and change Resistor2 to 9K Ohm, so it would be 1 volt times 10, this would be neater, but you would be losing 80 steps from the DVDAC.




      The DVDAC output range should be:

      from 0V to (1.00 V * 10) = 10 V.


      And each step would be:

      00025 * 10 = 0.0025V wide.


      So what are your thoughts in this?

      Which one do you think would be the right solution for accuracy?

        • 1. Re: DVDAC Through Opamp for CV out

          At first, The Opamp component is powered by VDD.  So there are several limitation.


          The maximum output voltage of Opamp is defined in the datasheet as follows.


          The guaranteed maximum output voltage is VDDA-0.05V, 4.95V for VDDA=5.00V  Generally any Opamp cannot drive a voltage as high as VDD.

          If you want to drive 10V output as a maximum voltage, an external op-amp and more higher voltage power supply like 15V are required.


          The DVDAC uses the internal DAC with the dithering method.  So, the base specification is equal to one of VDAC.


          Above is the specification of the VDAC8.  The maximum INL is 2.5LSB and the Gain Error is 5%  Is this value acceptable for your application?


          Another solution without using the DVDAC is to use the PWM and a capacitor as LPF.  The PWM component has dithering feature too.  Did you consider to use the PWM component?




          • 2. Re: DVDAC Through Opamp for CV out

            Hi Noriaki, first of all thanks for replying, I did not thought about using the PWM, I am not really sure about how to go with the PWM to DC, I know that I must use a low pass filter, But I don't know what the values for the resistor and the capacitor should be, because I don't even know how to calculate the frequency at which the DC should move, If this was an audio Oscillator, well, I know that maybe I could  leave 2 * (bandwidth)  to be the cutoff frequency, but this is not an audio oscillator, voltage might jump from 0 V to max voltage( leaving the maximum frequency required unknown, or harder to calculate).


            Maybe using a variable capacitor in the Low Pass Filter, to have a "Portamento" Style control? (if capacitance increases, the filter cutoff frequency decreases hence you will have a slower drifting signal (am I right?), but I don't even know if this is possible...


            I'm not quite sure also what are the advantages of PWM filtered compared to the DVDAC, can I use the full 16 bit resolution of the PWM on the voltage Output?, or is there also a bit or more lost?


            Will the output voltage be more accurate using the PWM or the VDAC?




            José Manuel Romo Peredo