element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
555 Timers
  • Technologies
  • More
555 Timers
Blog 555 Voltage Controlled Oscillator
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join 555 Timers to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: jc2048
  • Date Created: 13 Jun 2022 8:48 AM Date Created
  • Views 7907 views
  • Likes 10 likes
  • Comments 21 comments
  • timer
  • analogue design
  • vco
  • jc2048
  • 555
  • voltage controlled oscillator
Related
Recommended

555 Voltage Controlled Oscillator

jc2048
jc2048
13 Jun 2022
555 Voltage Controlled Oscillator

In the last blog, I used a 555 timer to make a simple oscillator. It used an
additional transistor, as a current source for the capacitor charging, in place
of the resistor that would usually be used. Although the blog focused on the
linear nature of the ramp and the resulting sawtooth waveform, my real interest
was slightly different as I wanted to use it as a VCO (Voltage Controlled
Oscillator).

Here I'm taking that circuit and adapting it so that I can control the current.
I need the control input to accept voltages in the range of 0-3.3V and to be a
very high impedance as it will be controlled by the voltage across a capacitor
(hopefully without discharging it). This is the circuit I ended up with.
image
On the right we still have the transistor and emitter resistor that function as
a current source, but now, instead of the base voltage being fixed by a
potential divider, it can be adjusted by the op amp. To the left, I have a
mirror image of the transistor and emitter resistor. Although the transistors
won't match exactly, the currents in the two 620 resistors will be approximately
the same. The current in the left 620 flows down through the transistor and
mostly out of the collector where it develops a voltage across the 3k3 resistor
that can be read by the op amp. That then gives voltage feedback that's
equivalent to the current that's flowing down into the capacitor. Final step is
for the op amp to compare that with the control voltage going in and drive the
bases in such a way that the two match. Op amps are good at that kind of thing,
particularly when you get the two inputs the right way round! (Yes, initially I
managed to overlook the inversion in the feedback path given by the transistor.)

It's not the most inspired piece of design ever and you probably wouldn't want
to use it for instrumentation (V -> f converter), but for what I want it will
suffice, though there is one snag with it which I will need to work around.

Here's a graph of the resulting frequency for different control voltages.
image
It's fairly linear, though there's a slight offset (it doesn't look like it
passes through the origin: thinking back, it's possible I had a 'scope probe on
the timing capacitor stealing some of the current, though a bipolar 555 will be
biasing it a little as well). The range is also somewhat limited. At the lower
end it becomes increasingly jittery when the frequency gets down to a few
hundred Hertz, presumably because of the low currents involved, so maybe two
decades at best without some more work.

If I tell you what the snag is - the oscillator stops with a control voltage of
0V, meaning there will no longer be edges in the output waveform - you may be
able to guess where I'm going for part three.

Next blog: 555 Phase-Locked Loop (PLL)

If you found this interesting and would like to see more blogs I've written, a
list can be found here: jc2048 blog index

References
[1] https://www.st.com/en/clocks-and-timers/ne555.html
[2] https://www.ti.com/lit/ds/symlink/ne555.pdf

  • Sign in to reply

Top Comments

  • jc2048
    jc2048 over 3 years ago in reply to jc2048 +1
    Same VHDL design seems fine with my Brevia 2 board (XP2 FPGA with Diamond 3.12 IDE). Here's the 555 ramp waveform locked to 10kHz divided down from the board oscillator. Lots of jitter, though. I wasn…
Parents
  • shabaz
    shabaz over 3 years ago

    Nice! I would not have guessed it would become a VCO, and that's a great range, more than 10:1. 

    I can guess fairly well (I think) where you are going with this, because I had a similarish need myself a while back, although I didn't blog about it because I didn't get to any decent point, my VHDL knowledge is really poor. My VHDL implementation did something, but there were enough grey areas in my understanding that I couldn't feel confident in what I was implementing was what I intended.

    In my case it was for a radio project, and eventually I used a ready-made clock synth chip, which still irritates me, because I really wanted to get it working with a homemade PLL.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jc2048
    jc2048 over 3 years ago in reply to shabaz

    I wouldn't know where to start with the phase comparator from scratch, but I came across an application brief in an old Xilinx databook (it shows it in schematic form), so I'm going to try that. I've also found an ST datasheet that, while it doesn't give a circuit, does give a state transition diagram, so I might try that too. (It's quite possible they're both the same thing.)

    If it works, maybe I could then try for a LW receiver. (The 555 isn't really fast enough for MW if you need 4x the carrier to get the quadrature waveforms.)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jc2048
    jc2048 over 3 years ago in reply to jc2048

    Progress update (just in case anyone is interested).

    image

    That's the best I've managed so far - that's with a Max II CPLD doing the logic bit. Yellow is a 10kHz reference signal divided down from a xtal osc. Blue is the 555 VCO output that's supposed to be locking to it. It is locked, but in a 3:4 ratio (fractional locking!). The reason seems to be because Quartus is helpfully 'elaborating' my design for me and I can't seem to stop it (the phase comparator design is an asynchronous state machine, so it needs to be implemented as designed). I might give up with fiddling with all the myriad of settings and try it later with a Lattice part.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to jc2048

    Hi Jon,

    Good results, neat idea using the CPLD to get around the FPGA implementation. I think a separate phase comparator could be easier, since as you say even the CPLD portion implementation will be different. I remember you ordered some 74HC4046, the phase comparator portion of that could be used. From memory it may be good for several MHz. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to jc2048

    Sorry just saw this message now : ( 

    Zero e-mails and no notification, despite your comment being a direct reply to me.

    I guess a non-SDR style receiver could be possible, since that won't need the 4x carrier, or alternatively an LC circuit could be used for the desired frequency. There's a nice method described in this PDF, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.399.7115&rep=rep1&type=pdf

    (no way to type a proper hyperlink in this editor either : (

    in diagram 5(b). 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • shabaz
    shabaz over 3 years ago in reply to jc2048

    Sorry just saw this message now : ( 

    Zero e-mails and no notification, despite your comment being a direct reply to me.

    I guess a non-SDR style receiver could be possible, since that won't need the 4x carrier, or alternatively an LC circuit could be used for the desired frequency. There's a nice method described in this PDF, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.399.7115&rep=rep1&type=pdf

    (no way to type a proper hyperlink in this editor either : (

    in diagram 5(b). 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube