Your EasyEDA usage duration is brief. In order to avoid advertising information, this action is not supported at present. Please extend your EasyEDA usage duration and try again.
Editor Version×
Standard
1.Easy to use and quick to get started
2.The process supports design scales of 300 devices or 1000 pads
3.Supports simple circuit simulation
4.For students, teachers, creators
Profession
1.Brand new interactions and interfaces
2.Smooth support for design sizes of over 5,000 devices or 10,000 pads
3.More rigorous design constraints, more standardized processes
4.For enterprises, more professional users
Ongoing
STD
How to simulate a Behavioural Voltage Controlled Oscillator (VCO)
License: Public Domain
Mode:Editors' pick
4.8k
0
0
0
Update time:
2016-10-20 11:48:09
Creation time:
2015-03-18 21:48:36
Description
Two ways to implement a behavioural Voltage Controlled Oscillator in simulations.
This project demonstrates a behavioural voltage controlled oscillator based on an integrator and a similar scheme where the integrator is replaced by the `TIME` function of ngspice (see: http://ngspice.sourceforge.net/docs/ngspice-manual.pdf#subsection.5.1.2 for details).
#### Integrator based VCO
B_isource_n_vlimiter forms a Voltage Controlled Current Source in parallel with a precision zener-like shunt clamp to provide the voltage limiting function.
The output current from this source is integrated by capacitor CINTEGRATOR to generate a voltage, V(integral). The initial voltage across this capacitor is set by a `.ic` spice directive.
V(integral) is then used to represent the phase of a sine function. The initial value to the ramp defines the initial phase of the sinusoid.
The voltage into the integrator therefore represents frequency.
Adding a voltage, V(phi) to represent the phase of the sine source also allows for phase modulation of the source.
Applying a Unit Step, U(x), function to the sine function generates a square wave.
By applying an inverse sine function to the sine function a triangle waveform is developed.
A modulo divide function is used to divide the ramp into contiguous sawtooth segments.
#### `TIME` variable based VCO
The output voltage of each source is derived from the ngspice built-in variable, 'TIME' multiplied by the input voltage.
Since TIME increases linearly, the slope of the ramp function so formed is proportional to the
Frequency input control voltage.
The ramp is then used to represent the phase of a sine function. Adding an initial value to the
ramp defines the initial phase of the sinusoid.
Adding a voltage, V(phi) to represent the phase of the sine source also allows for phase modulation
of the source.
Applying a Unit Step, U(x) function to the sine function generates a square wave.
By applying an inverse sine function to the sine function a triangle waveform is developed.
The same modulo divide function as used in the integrator based VCO is used to divide the time
ramp into contiguous sawtooth segments.
Putting V(sawout) or V(triout) of either version of the VCO into a comparator function such a U(x)
would then give an adjustable duty cycle pulse output.
Note that the frequency control input voltage of either version of the VCO can be negative which
reverses polarity of the time ramp and so represents negative frequency: this is best observed on the
sawtooth output.
Open in Editor then CTRL+R to run the sim.
Forked project will be set private in personal workspace. Do you continue?
Clone
Project
The Pro editor is about to be opened to save as. Do you want to continue?
private message
Send message to andyfierman
Delete
Comment
Are you sure to delete the comment?
Report
How to simulate a Behavioural Voltage Controlled Oscillator (VCO)
No Profile
Announcer: andyfierman
Creation time: 2015-03-18 21:48:36
Published time:
2016-10-20 11:48:09
*
Report type:
Please select report type
*
Report reason:
Please fill in the reason for your report and the content is 2-1000
words
*
Upload image:
+
Upload image
*
Email address:
Please fill in your email address
Report
*
Report type:
Please select report type
*
Report reason:
Please fill in the reason for your report and the content is 2-1000
words
*
Upload image:
+
Upload image
*
Email address:
Please fill in your email address
Report
Submitted successfully! The review result can be viewed in the personal
center, review notification.
Kind tips
Your EasyEDA usage duration is brief. In order to avoid advertising information, this action is
not supported at present. Please extend your EasyEDA usage duration and try again.
Share
Project
Copy
Copy
Scan the QR code and open it on the mobile terminal