[sdiy] VCDO using PIC16C771

Eric Brombaugh ebrombaugh at earthlink.net
Thu Feb 22 00:03:22 CET 2007


Tim Parkhurst wrote:

 > I think you've hit on the main
 > advantage: you still have nice, analog waveforms. You can still use
 > analog waveshapers, you get ZERO aliasing distortion, and the whole
 > thing should still be inexpensive yet very stable.

Agree.

 > thing should still be inexpensive yet very stable. One drawback might
 > be that you will have a limit on the highest modulation frequency the
 > processor can handle (things like audio freqency FM might be limited,
 > depending on the maximum update rate of the A/D inputs).

True.

 > The only enhancement I can think of might be to use a PLL to raise the
 > frequency of the 'reference' square wave fed back to the processor. A
 > higher reference frequency will mean that the micro can determine the
 > VCO's frequency that much faster, which makes for a quicker
 > compensation loop. Still, this may not be necessary.

Would that help at all? it seems that the PLL still has to look at the 
slow edges of the 2206 output to do its own tracking - there's no way to 
speed that part up.

 > Also, I would say that this will give you a Digitally Compensated VCO
 > (DCVCO?), as opposed to a Voltage Controlled Digital Osciallator, as
 > the actual oscillator core will be analog rather than digital.
 >
 > Still, I think it sounds like a very cool enhancement for analog VCOs.
 > If done properly, it is something that could be added to practically
 > any VCO.

And this suggests a slightly different approach that could conceivably 
speed up the low frequency response: Don't wait for the VCO period 
measurements before making changes to the VCO CV. Instead, build up an 
expo function in the MCU (either a lookup table or a polynomial 
approximation) and use the VCO period measurements to correct it. This 
would be like an auto-calibrated VCO that adjusts on a cycle-by-cycle 
basis. You'd still be able to respond to CV inputs as fast as the MCU 
could run, so even low frequencies would acquire quickly, but every time 
you see an edge from the VCO you adjust the expo function to get it as 
accurate as your system will allow. Think of it as an adaptive expo 
generator - if it's flexible enough it could compensate for all kinds of 
oddness (width of VCO integrator reset pulses anyone?).

The only downside is that it might take a lot computing horsepower to 
run the adaptive algorithm.

Eric



More information about the Synth-diy mailing list