<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
{font-family:"\@MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:Arial;
color:windowtext;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span lang=SV style='font-size:10.0pt;
font-family:Arial'>Hi all!<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=SV style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I have had great luck implementing a saw DCO and I thought I
should tell you about it. Only one problem remains. The story is this: I like
DCOs. No tempcos, no octave drift, no trimming. I had a perfectly good
square/pulse DCO but I found it lacked a nice edge. I needed a saw output. Since
the DCO had the timing right, I thought I should implement it using a simple ramp
generator that the DCO would reset. You can find a schematic here: <a
href="http://www.minod.com/saw_generator.gif">http://www.minod.com/saw_generator.gif</a>.
I also like simple circuits. It has a trim to adjust the amplitude. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>The hard thing then is to apply a proper control voltage so
that the ramp gets the same amplitude regardless of the DCO frequency. I
already had a 16-bit DAC hooked up to the MCU, I just added another channel to
it. I measured a couple of slopes and had some luck in finding an interpolation
polynome that was cheap to compute (about 150 cycles or 15us on my MCU). It
worked well above my expectations. The amplitude is within 2% from 20Hz to 5kHz
(which is as high as the DCO goes) at room temperature. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Now, there is only one problem: Temperature drift. The ramp
slope changes noticeably when I warm up the CA3080 with my finger tip. Observe
that this only affects the amplitude, not the frequency! So I would like to put
in some kind of compensation. Since the MCU running the DCO already has a lot
of 10-bit A/D channels, I could put a forward biased base-emitter diode and
measure the voltage drop. As it drifts, I could change a factor in my interpolation
and compensate. What do you all think? It’s not critical, so there is no
need for a precision circuit. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>One nice added feature is that the MCU has a built in
comparator. I use this to trigger an extra reset pulse when the saw slope
reaches 3.6 volts. So, if I increase the saw slope, the ramp is reset both when
reaching 3.6V and by the DCO. This way, I get ‘hard sync’ waveforms
with only one DCO! Observe also that there is no qualitative difference between
the saw output of this DCO and a proper VCO. Especially since I have added the bass
jitter I measured up during the summer. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Fredrik C<o:p></o:p></span></font></p>
</div>
</body>
</html>