I am building a project where I plan to have a current controlled oscillator based on a 555. The oscillator is controlled using current source I1 (a current mirror) charging capacitor C2 in lieu of the usual charging resistor. The current provided by I1 varies depending on some other parts of the circuitry and is supposed to affect the frequency of oscillation at the 555's output.

My questions are:

  • Is this circuit correct and suitable for building a current controlled oscillator? I am also interested in better circuits if any.
  • How can I compute the frequency and duty cycle depending on the current delivered by I1 and the values of R1 and C2?


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ How did you design this without knowing how the a 555 timer work? Seems to me you skipped a few steps. Because that would answer your question right there. \$\endgroup\$
    – DKNguyen
    Apr 17, 2022 at 1:14
  • \$\begingroup\$ @DKNguyen I do know how a 555 works. I expect that in the charge cycle I1 charges C2 until the trigger is met. Then, the discharge cycle discharges C2 through R1 until the threshold voltage is met, with the current from I1 being wasted. I just don't know enough electronics to feel confident calculating the resulting frequencies. \$\endgroup\$
    – FUZxxl
    Apr 17, 2022 at 1:16
  • 1
    \$\begingroup\$ CV=IT would be used for the current source charging the cap. Discharge seems like it might have issues because there is no guarantee that the R1 overpowers the current source. A better circuit is the typical one with no current source because the 555 wasn't ever designed to be used with current sources and was designed to be used easily with voltage sources. \$\endgroup\$
    – DKNguyen
    Apr 17, 2022 at 1:20
  • \$\begingroup\$ @DKNguyen In my use case I'm confident it does (the current source delivers less than 300 µA and I can select a sufficiently small resistor to have the discharge work out). \$\endgroup\$
    – FUZxxl
    Apr 17, 2022 at 1:22
  • \$\begingroup\$ Do you have any real specs or expectations for tolerance, range ,stability? \$\endgroup\$ Apr 17, 2022 at 1:23

1 Answer 1


Move R1 here so that I1 does not flow through R1 (and potentially C1 depending on chosen values)and influence the discharge.

enter image description here

Then from \$Q=CV\$ and \$Q=IT\$ you can produce \$CV=IT\$ which becomes:

\$t_{\textit{charge}} = \frac{C_2V_{2/3}}{I_1}\$

\$t_{\textit{discharge}} = R_1 C_2 \$ can be used for the discharge time as normal.

From these two times you can get frequency and duty cycle:

\$\textit{Duty} = \frac{t_{\textit{charge}}}{t_{\textit{charge}}+t_{\textit{discharge}}}\$

\$f = \frac{1}{t_{\textit{charge}}+t_{\textit{discharge}}}\$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.