[sdiy] DCO with OTA fiddlings (semi-beginner question)

Roman Sowa modular at go2.pl
Wed Mar 23 13:57:50 CET 2016

I need to respond to my own post. There's no need for amplifier. For a 
moment I assumed the [-] of OTA was summing node with integrating cap, 
which of course is not the case. Cap is over an opamp that follows. So 
it gets much simpler - route the LPF otput straight to the [+]OTA input 
summed via resistors with square wave from MCU, [-]OTA to GND. Well, 
there's also a few other places you could feed that LPF.

And it's good to try ideas, whatever terrible they may seem at first.


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

More information about the Synth-diy mailing list