<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection">Ah! That's a great idea. I had a few ideas floating in my head about this this morning but they're all terrible in comparison.<br />
<br />
I really want to test my own take on this now with an adjustable amount of feedback as a kind of "behavior" control. Sonically it may be less interesting than I'm imagining though.<br />
<br />
(Another idea I haven't thought through yet: adjustable lowpass cutoff after triangle.)<br />
<br />
Walker</div>
<div name="messageSignatureSection"><br /></div>
<div name="messageReplySection"><br />
On Mar 23, 2016, 07:03 -0500, Roman Sowa <modular@go2.pl>, wrote:<br />
<blockquote type="cite">OTA charging capacitor is independent of timing determined by MCY, so<br />
they will *never* be the same, whatever you do. It will always drift.<br />
The only way is to create feedback path which is not existing at the moment.<br />
Take DC component out of the triangle wave, by filtering it to very low<br />
frequencies, for example with 100k/10u RC filter, followed by inverting<br />
amplifier, and route that to [+] input of the OTA, that presumably is<br />
now connected to GND. It should keep the triangle within rails.<br />
<br />
If you want this DCO to go very low, in sub-hertz frequencies, above<br />
described method will fail, so you can add comparators that check if the<br />
triangle is going to much up and down. Comparators feed your MCU and it<br />
then decides if to add a bit of positive pulse duration or negative,<br />
like one clock cycle here or there from time to time.<br />
<br />
Hope all that is clear without schematics<br />
<br />
Roman<br />
<br />
W dniu 2016-03-23 o 11:09, Steve pisze:<br />
<blockquote type="cite">Hey there.<br />
<br />
I, a software guy dabbling in electronics, recently read a bit of how<br />
OTAs work and started to experiment.<br />
From an inspiration of some years ago, on Tom Wiltshire's website<br />
describing how the Juno DCOs worked, I thought myself: Hey, why not do<br />
that with an OTA, which might even enable to do some more funny stuff...<br />
Feeding a pulse wave from my microcontroller of choice...<br />
So I first built the simplest of things, which works fine: a ramp DCO<br />
using an OTA to constant-current charge a capacitor and abruptly<br />
discharging it with an NPN for the last percent or so of the waveform<br />
period.<br />
The amplitude compensation that's necessary to keep the wave at the same<br />
peak is done via the current input of the OTA with a signal from the MCU.<br />
<br />
I then proceeded to do a triangle wave with pretty much the same setup,<br />
and a minor change:<br />
I fed a 50:50 pulse to the OTA, swinging positive and negative. My<br />
thinking was, I first charge the capacitor with a certain current, then<br />
discharge it with the same current inverted, for the same time, and<br />
should thus land at zero voltage again. (no dedicated discharge<br />
transistor involved)<br />
<br />
But this quickly wanders off towards one of the rails - I thought, ok,<br />
probably imperfections in parts, a slight bias towards one direction, so<br />
I just put a 10Meg resistor across the capacitor, large enough to not<br />
deform the wave.<br />
This seemed to do it at first, but it's very frequency dependent, when<br />
it looks good at 200 Hz, it will have a large offset at 800 Hz or so.<br />
(this was actually breadboarded, not just in spice)<br />
<br />
This is a bummer, as I thought I could even build something that morphs<br />
between saw and tri seamlessly by feeding a different duty cycle pulse,<br />
switching not only the polarity but also magnitude of (dis-)charging<br />
current for the rising (a) vs. falling (b = (-1) * (1 - a) = a - 1 :<br />
using the OTA also as subtractor) ramp parts of the period to get the<br />
same overall time. But given that the simpler scenario of a perfect<br />
triangle doesn't even work, I'm not so sure anymore :-)<br />
<br />
Can someone give me some pointers here?<br />
<br />
Regards,<br />
Steve<br />
<br />
<br />
_______________________________________________<br />
Synth-diy mailing list<br />
Synth-diy@dropmix.xs4all.nl<br />
http://dropmix.xs4all.nl/mailman/listinfo/synth-diy<br />
<br /></blockquote>
_______________________________________________<br />
Synth-diy mailing list<br />
Synth-diy@dropmix.xs4all.nl<br />
http://dropmix.xs4all.nl/mailman/listinfo/synth-diy<br /></blockquote>
</div>
</body>
</html>