I’m quite excited about this project. Taking ideas from the Roland Juno series Digitally Controlled Oscillator (DCOs from this point) I’ve started the design and experiment process.
A DCO vs VCO is all about tuning. Analog oscillators drift with voltage changes, power supply issues, temperature and just generally decide to go out of tune.
The AS/CEM chips are very good at staying in tune, but they can drift, plus they have to be tuned manually.
Digitally controlling the frequency keeps the note extremely stable.
The Juno Design
The design is quite simple, it’s a square wave that goes through a divider chip, the microprocessor selects the address which divides down the frequency from a stable master clock.
If you read Electric Druids page on this it explains it well, this is where I’ve got the design from.
Being digitally controlled, the output is analog.
Taking the design and messing with it!
With access to cheap 32 bit microcontrollers that run in the 80+MHz range. We can skip the counter chips and big address lines and generate our square wave directly. I’m going to use the Teensy 3.2 to generate 4 square waves using the IntervalTimer routine.
Saw Wave Amplitude
This is where the design needs tweaking.. a square wave is easy, but the amplitude of the saw wave changes, quite drastically, as the frequency increases.
This is where we need to have a control voltage to offset this, by using a DAC and software we can change this voltage as we change the frequency.
Keeping the output level around the same, being only the amplitude it doesn’t really matter too much if it’s not exact, as long as it’s not way out we can hear it.
Small and powerful…
Teensy interval timers: https://www.pjrc.com/teensy/td_timing_IntervalTimer.html
Electric Druid on DCOs: https://electricdruid.net/roland-juno-dcos/