Article View: sci.electronics
Article #17723Re: DCO's revisited - an inquiry into hardware implementation
From: Chuck McManis
Date: Tue, 07 Jul 1987 00:46
Date: Tue, 07 Jul 1987 00:46
48 lines
3619 bytes
3619 bytes
In article <235@cogent.UUCP.> mark@cogent.UUCP (Mark Steven Jeghers) writes:
.>
.>I recently posted an article discussing the design of a totally digital
.>oscillator for use in a musical synthesizer. It was posted in the
.>"rec.music.synth" group, I forget what the distribution was. If anyone
.>did not receive it and wishes for a copy, email me. Anyway, in an attempt
.>to actually work out the hardware implementation, I have run into a problem.
.>
.>The key part of the DCO is the adder-latch feedback loop. Theoretically,
.>as my article described, you can run it at a clock rate of your choosing and
.>use the number of bits of your choosing, in order to achieve the desired
.>range and accuracy. The problem, however, is getting circuitry that will
.>run fast enough. Specifically:
.>
.>The only binary adder that I can locate that is reasonably simple and
.>readily available is the 7483 IC. For faster speed, the CMOS version,
.>the 74HC283, is available (slightly different pinout, but same stuff).
.>The 74HC283 is plenty fast, BUT it is only 4 bits wide. To handle a
.>large number of bits (between 20 and 32), this means cascading a bunch
.>of them (so their carry-bits can be connected together). The propogation
.>delays for the carry bits add up to a large amount. The bottom line is
.>this: the adder gets REAL slow due to the required rippling of so many
.>carry bits.
The secret (one of them) is to use an adder with carry 'look ahead' so
that each adder only adds one gate delay to the loop. The second secret
is to use smaller wave tables. A DCO built with a 256 byte lookup table
needs a clock rate of 5.12 Mhz to generate a 20Khz tone. Since 20K
is at the top of the audio spectrum and 5.12 Mhz is well with in TTL
limits you can do reasonably well at that rate. Now for generating
music (with frequencies accurate to say three decimal digits) you will
need to 'overclock' the circuit to get the appropriate frequencies.
Waving the hands here and throwing out some math, lets see, add three
orders of magnitude to 20K, which gives you 20Meg, multiply by 256
and wow we're up to 5 gigahertz. Fortunately if you are using the
DCO for music you can cheat because you 'know' that A in one octave is
half the frequency of the next octave up, or twice the frequency of the
next octave down. And for that means you simply set up 12 oscillators
that have the desired frequencies and switch between them depending on
the note. Say your top note is a *very* high A at 28,160Hz then your
A oscillator would be running at 7.208960 Mhz. And although that particular
value may be hard to find you can find one close and use a trimmer capacitor
to detune it to the appropriate frequency.
--Chuck McManis
uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com
These opinions are my own and no one elses, but you knew that didn't you.
Technical Details
Message-ID:
<22755@sun.uucp>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!seismo!gatech!hao!husc6!mit-eddie!ll-xn!ames!oliveb!sun!pepper!cmcmanisReferences:
<235@cogent.UUCP.>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!gatech!hao!husc6!mit-eddie!ll-xn!ames!oliveb!sun!pepper!cmcmanis From: cmcmanis%pepper@Sun.COM (Chuck McManis) Newsgroups: sci.electronics,rec.music.synth Subject: Re: DCO's revisited - an inquiry into hardware implementation Message-ID: <22755@sun.uucp> Date: Mon, 6-Jul-87 20:46:09 EDT Article-I.D.: sun.22755 Posted: Mon Jul 6 20:46:09 1987 Date-Received: Wed, 8-Jul-87 01:49:51 EDT References: <235@cogent.UUCP.> Sender: news@sun.uucp Reply-To: cmcmanis@sun.UUCP (Chuck McManis) Distribution: world Organization: Sun Microsystems, Mountain View Lines: 48 Keywords: now for the real work...