[sdiy] Digitally controlled VCO core
mikko.a.helin at nokia.com
mikko.a.helin at nokia.com
Fri Jun 8 11:52:55 CEST 2001
> I guess you just run the comparator into your interrupt and
> use a port bit to close the FET. You can charge the cap by running your
DAC
> to a single BJT expo current source.
> You could also run a DAC voltage to the comparator level, to vary the
depth
> of oscillation. You would add a tune algorithm to
> the firmware. Remember the OB-XA to OB-8 change in tuning?
Didn't thought having any comparators in circuit, though it would be needed
for tuning the amplitude of the waveform for the current source (sink
actually in that kind of sawtooth osc). The frequency of the oscillator is
determined only by the uC timer. In timer interrupt routine you just close
the cap for a moment (couple of ns). With comparator and interrupt you could
control the amplitude by decreasing the DAC value each time the comparator
interrupt occurs and store the DAC value for that frequency, you could use
that for an automatic amplitude vs. frequency tuning.
So when you receive a MIDI note of 64 for an example you output the value 64
(or corresponding value from amplitude tuning lookup table) to an 8-bit DAC
followed by an exp converter and current sink (or a 16-bit DAC and linear
current sink). You also program the timer to decharge the cap at frequency
which is related to MIDI note 64. That's the easy part if portamento is not
used. If portamento is enabled then you have to interpolate gradually
(notes) and exponentially (frequency) from the old note number to the new
note and timer frequency for both the timer and the DAC controlling
decharging current. For that you need another timer or programmed loop in
your code (could be the main loop in your code).
Basically this is nothing more than converting a pulse wave to saw and
trying to keep the amplitude constant in the process. I know there are other
ways of doing it (I have seen some circuits in the "30x circuits" series
books by Elektor Electronics that claim to do it). If you use the charging
cap as the main element of your VCO core you'll avoid the staircase effect
of some DCO's using timer + DAC. I haven't drawn any schematics yet but I
think you could end up with quite simple design. You could also get some
waveforms (rectangle, pulse, square and maybe PWM sine and triangle for LFO)
directly from the uC pins. Gate and trigger signals and MIDI-CV outs are
also easily available with DACs (unfortunately there aren't as many uC's
with inbuilt DAC's as there are with ADC's).
-Mikko
More information about the Synth-diy
mailing list