[sdiy] Simple DSP as VCO substitute (was Re: CEM3340 reissue)
Eric Brombaugh
ebrombaugh1 at cox.net
Tue Jun 14 22:29:08 CEST 2016
On 06/14/2016 12:26 PM, Tom Wiltshire wrote:
>
> On 14 Jun 2016, at 18:47, Tim Ressel <timr at circuitabbey.com> wrote:
>
>> I don't see 12 bit ADCs as much of a limitation. It should do V/Oct out to 10 octaves.
>
> That'd be 120 notes. Let's call that 7 bits. That leaves you five bits of resolution between semitones. That's only 32 steps, which is roughly 3 cents. It's enough, but only just, and that's assuming that the ADC has less than 1 LSB noise, which I've certainly never seen in reality.
>
> For Pitch CVs, I'd want 14-bit or better. YMMV.
I've had a lot of experience using 12-bit ADCs for 1V/Oct CV inputs both
on dsPIC and STM32. It works better than you might initially think, and
evidence from the marketplace suggests it's fine as many of the digital
oscillators being sold commercially today are dsPIC and STM32-based
without external ADCs.
A few things to remember:
1) Most of the commonly available MCUs you'll find which have on-chip
ADCs have fairly noisy performance, primarily due to switching noise
from other on-chip sources. The STM32F3 parts seem to be an exception as
the noise variance seems well controlled and you get almost a full
12-bits from them. The STM32F373 has on-chip sigma-delta ADCs with
better than 14-bit performance. The STM32F4 series are abysmal though -
the on-chip flash cache mechanism is so noisy that ST has an appnote
about it. In general you'll need lots of filtering and hysteresis to get
stable readings from on-chip ADCs.
2) For frequency control CVs it's important to recall that the NCO acts
as an integrator. This means that noise on the CV input gets immediately
low-pass filtered by the fundamental operation of the oscillator. A
noisy ADC will result in phase noise, or what we synth fans call
"fatness". Due to the integration behavior that noise will
dither such that the average frequency can actually have higher
resolution than the 3-cents Tom computed above, but the instantaneous
wander will be over a wider range. A bit of DSP pre-filtering can help
narrow that down a bit, but be careful not to slow the FM responsiveness.
I've seen a lot of people pooh-pooh the idea of using the on-chip ADCs
for oscillator CVs without actually having tried it for themselves. It's
worth a shot though and many have found it acceptable. You can calculate
all you want, but the ear is the final judge.
Eric
More information about the Synth-diy
mailing list