# How to compute component values for current-controlled 555-based oscillator?

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

• 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. Apr 17, 2022 at 1:14
• @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. Apr 17, 2022 at 1:16
• 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. Apr 17, 2022 at 1:20
• @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). Apr 17, 2022 at 1:22
• Do you have any real specs or expectations for tolerance, range ,stability? Apr 17, 2022 at 1:23

Move R1 here so that I1 does not flow through R1 (and potentially C1 depending on chosen values)and influence the discharge. 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}}}\$$