<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.23562"></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=825261407-20052024>Hey Tim,</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024>I must confess that I
didn't read your whole post too carefully, but I did something similar with my
Dixie/Rubicon Tricore VCOs. I discovered that if I fed the triangle from
one VCO core to the comparator reference (sync) of the second VCO core, then I
get a perfect quadrature oscillator (90-degrees out of phase). I used
this in a Bode frequency shifter and it worked perfectly. Also, it was
super easy to do. Both VCOs were controlled with the same control circuit
based on 2164.</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024>I ultimately abandoned
the "classic" Bode frequency shifter design with an on-board quadrature
oscillator in favor of one which passes an external VCO through a
second 18-stage Dome filter tuned to give quadrature between 0.1 and
10000Hz. However, the quadrature tricore is still a pretty cool
idea.</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024>Cheers,</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024>Dave Dixon</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=825261407-20052024></SPAN> </DIV><BR>
<DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> Synth-diy
[mailto:synth-diy-bounces@synth-diy.org] <B>On Behalf Of </B>Tim Parkhurst via
Synth-diy<BR><B>Sent:</B> Sunday, May 19, 2024 4:10 PM<BR><B>To:</B>
synth-diy@synth-diy.org DIY<BR><B>Subject:</B> [sdiy] VCPO Variable-Phase
Oscillator<BR></FONT><BR></DIV>
<DIV></DIV>
<TABLE style="PADDING-LEFT: 0px; BORDER-COLLAPSE: collapse">
<TBODY>
<TR>
<TD><FONT
style="PADDING-BOTTOM: 3px; LINE-HEIGHT: 1.6; BACKGROUND-COLOR: #ffecb3; FONT-STYLE: normal; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; FONT-FAMILY: Arial, sans-serif; COLOR: #000000; FONT-SIZE: 12px; FONT-WEIGHT: normal; PADDING-TOP: 3px">[<STRONG>CAUTION:</STRONG>
Non-UBC Email]</FONT></TD></TR></TBODY></TABLE>
<DIV dir=ltr>Hi All,
<DIV>Here's a weird little something I came up with several years ago that I
think might be fun. It uses two VCO cores and a special synchronization circuit
that allows voltage control of the phase between the two cores while they
track at the same frequency. It's something I haven't seen before, so I'm
thinking it's a super-special invention I came up with. In any case, that's my
story, and I'm sticking to it. The theory below is a bit of a read, but I've got
a little more documentation to go with it if anyone is really
interested. </DIV>
<DIV>============================</DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>The VCPO features two triangle core oscillators in a setup that allows one
core to drive the second. The output from the second core is variable in phase
relative to the first. Let's see if I can give it a decent
explanation...<BR>===<BR></DIV>The circuit uses two triangle core VCOs. It
derives a signal from the first core (call it A) and uses that to drive the
second core (B). In the schemo here, I'm using two VERY simple 2164 VCOs, but
the same sync / drive scheme could be applied to other triangle cores. This
particular setup doesn't quite track 1 v/oct, but that is just because I used
the simplest setup I could come up with for this first shot. With some
adjustments and component tuning, I think it could be made to track just
fine. As an LFO though, it works nicely. You could probably build one of these
that tracked pretty well with a 13700-based core, or a slightly more elaborate
2164 circuit.<BR><BR></DIV>Core A is based around U5, U6, and U7. U1 and U2 form
the CV summer. The CV drives U6 (Core A) and U6 (Core B). Core A is just a
basic, plain vanilla tri core, with U5 acting as the comparator, and U7 acting
as the integrator.<BR><BR></DIV>Core B is based around U8, U6, and U9. Core B is
also fairly standard, BUT NOTE that there is no hysterisis feedback around the
comparator, U8 (Core A uses R10). This is important, because the comparator gets
an input signal that is a combination of the Core B integrator (through R21) and
the Core A integrator (through R20). This is a big part of what keeps the two
cores locked to the same frequency.<BR><BR></DIV>Now here's the "secret sauce:"
U4 and Q1 change the polarity of the reference voltage going to the comparator
of Core B. Normally, if you have a triangle going to a comparator input and you
vary the reference voltage, you'll get pulse-width modulation. However, what we
do here is use Q1 and U4 as a sign flipper, so that the reference voltage to the
comparator SWITCHES POLARITY depending on whether the triangle at the comparator
input is on the up slope or the down slope. The result is that we get a variable
PHASE square wave coming out of the comparator.<BR><BR></DIV>Basically, we take
the triangle from Core A, and compare it in U4 to a reference voltage that
changes polarity with the slope of the triangle. This gives us a variable phase
square, and we use THAT to drive the Core B integrator. R21 provides a 'weak
feedback' that helps keep the Core B triangle levels correct. The sign flipper
(Q1, U4) is driven by the square wave from the Core A comparator
(U5).<BR><BR></DIV>In the Phase CV Summer / Sign Flipper (U3, U4, Q1), I use R37
to compensate for a slight offset that was introduced into the Core B outputs
(B1=Square, B2=Tri). A better method might be to use R33 instead. I have
not tested the R33 method, but you would adjust this until the Phase CV coming
out of U4 was equal in magnitude when it flipped sign. Again, if you use R33,
you might not need R37. D3 and D4 are also untested, but are meant to avoid
having the Phase CV from U4 exceed the +/-5V limits of the triangle outputs. If
this CV goes above +5 or below -5, a DC offset will be introduced into the Core
B outputs.<BR><BR></DIV>So basically, that's it. Two triangle cores, remove the
hysterisis feedback from the B comparator, and use the sign flipper to derive a
variable phase square wave from Triangle A to drive Comparator B. Again, my
guess is that the U3, Q1, U4 circuitry could be applied to sync just about any
two triangle core designs. Ideally, you want the two tri cores to track together
fairly well to avoid introducing more level differences between the A and B
outputs. This might work well with the two gain cells available in an LM13700.
Also, the output current from the CV Summer would need to be doubled from that
of a typical application, since it will be driving two VCO
cores.<BR><BR></DIV>I've tested this circuit on a breadboard and it's a lot of
fun. The sign flipper scheme allows you to vary the phase of the Wave B outputs,
but it avoids the waveform discontinuities you'd get with a traditional
capacitor reset "sync" circuit.<BR><BR></DIV>One limitation of this circuit is
that it 'only' allows the B output to vary up to 180 degrees from the A output.
This means that you can't quite get 'through zero' phase cancellation between
the two outputs. To overcome this, I've thought of using the output of Core B to
drive a third VCO core (C) utilizing another Phase CV Summer / Flipper. In
theory, this would allow the C outputs to vary by up to 360 degrees from the A
outputs.<BR>=============================<BR>Okay, there it is. Whaddaya
think? </DIV></DIV>
<DIV><BR>
<DIV>
<DIV dir=ltr class=gmail_signature data-smartmail="gmail_signature">
<DIV dir=ltr>
<DIV>
<DIV dir=ltr>Tim (going through a phase) Servo<BR>---<BR>"Imagination is more
important than knowledge." - Albert
Einstein<BR></DIV></DIV></DIV></DIV></DIV></DIV></DIV></BODY></HTML>