The Designer's Guide Community Forum
Simulators >> Circuit Simulators >> RC oscillator cannot oscillate

Message started by Jacki on Feb 12th, 2019, 2:26am

Title: RC oscillator cannot oscillate
Post by Jacki on Feb 12th, 2019, 2:26am


   Now I am trying a simple RC oscillator as shown in the attached file. In the simulation, I find there is a static state, at which the feedback voltage to the input of the comparator is equal to the Vref of the comparator, and there is no oscillation. Anybody knows how to avoid this static state in the schematic design? I think the principle of this oscillator is quite clear, the Vref I don't use the switch-cap solution, but simply replaced by a diode-connected voltage divider from VDD. Any comments?
Thank you.

Title: Re: RC oscillator cannot oscillate
Post by Jacki on Feb 12th, 2019, 5:00am

When I turn on the transient noise, it will oscillate, but with the transient noise, simulation is too slow. I wonder if it is the design defect?

Title: Re: RC oscillator cannot oscillate
Post by Andrew Beckett on Feb 12th, 2019, 7:26am

Circuit simulators are quite good at finding the metastable state of such circuits, because the first thing you do is to find the DC operating point by (effectively) removing all the capacitors and shorting all the inductors - this will then solve all the equations so that everything balances.

Then when the transient starts and the capacitors/inductors are re-introduced, nothing happens to cause the simulator to move away from that steady state that was found. With transient noise, you are getting something other than simulator numerical noise which helps any oscillation to build up.

Without reverting to transient noise though, a simple approach is often to use an initial condition on one of the key nodes in the feedback to hold it in one of the extremes of the oscillation which then means that it is held away from the metastable state and will start oscillating.

That sometimes isn't enough with higher-Q oscillators - you sometimes need to do things like giving an impulse at the beginning (e.g. turning the supplies on abruptly, or injecting a current pulse) to kickstart the oscillator.

It can also help to set the transient maxstep parameter to be (say) 1/20th of the expected oscillation period - this tends to help ensure the oscillator starts quickly. You don't often need to set maxstep - this is one of the few cases where it can be useful though (this is for spectre - other simulators may have a similar setting).



The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.