[sdiy] Digital VCO
Eric Brombaugh
ebrombaugh at earthlink.net
Mon Apr 24 06:39:36 CEST 2006
A few days back I posted to find out if anyone had used Cypress PSoCs
for a synth-diy application. Since then I've gotten a few chips and a
programmer and I've had a chance to hack on a couple of ideas I've had.
My first project is a voltage-controlled digital oscillator, which I've
gotten working on the breadboard today.
The current design has a 24-bit DDS with a 62.5 kHz sample rate, driven
by an exponential lookup table and an 8-bit ADC. This gives me a 20Hz -
20kHz frequency range with a 1V/oct response and about 3% error from
ideal over the entire range. Output is a sine waveform from a 9-bit
DAC, which gives a fairly clean signal - there are a few birdies
(aliases) audible, but they're really far down and probably manageable.
It's pretty straight-forward to improve the ADC. Moving to an 11-bit
ADC should give me something like 0.5% error from ideal. I also have a
handful of 32kHz crystals which should improve the stability of the
62.5 kHz timebase from 2.5% to about 3ppm. Increasing the number of
samples in the sine lookup table should help with the aliases
The current design is sinewave output only. Other waveforms are
possible (square/triangle/sawtooth), but the PSoC doesn't have the
computational horsepower to do bandlimited waveforms, so there will be
some audible aliases if these are used. Also, the 8-pin PSoC I'd like
to use only has 2 unused pins, so the number of realtime control
options are limited.
Turning this into a usable VCO module should be pretty simple. Add an
accurate voltage divider to get the CV from 10V range to 5V range. Add
a filter & output driver to hack off the 40 kHz images and boost the
output from 0-5V to +/-5V. Voltage regulation & filtering, CV summation
& I/O jacks. Since the PSoC chip cost < $4 this should be a pretty
inexpensive package.
I'm interested in any thoughts / suggestions from the list on this
idea. Is this worth pursuing, or am I deluded? :)
Eric
More information about the Synth-diy
mailing list