0
\$\begingroup\$

I need to design a circuit that outputs a 5V PWM with a frequency of 50Hz and a duty cycle between (5% and 10%). If you are familiar with R/C servos this's the typical signal to drive servo position. This circuit should output the PWM with 5% duty cycle until an event (another 5V TTL signal) change state from low to high. Once the event have been caught the PWM signal should change to 10% duty cycle. The accuracy in duty cycle should be better than 0,1%. It's not mandatory that the circuit reset to initials conditions after the input signal goes back to low (but it's welcome). My first approach was to use a small micro but unluckly this's not the case since I cannot use programmable devices in this application. I was thinking to use NE555 or NE556 IC but as far as I remember duty cycles below 50% and very low frequencies as those I need to manage are not very stable.

\$\endgroup\$
8
  • \$\begingroup\$ Use a CMOS 50Hz Relaxation Osc and a CMOS voltage controlled one shot solution scaled to give 5to10% \$\endgroup\$ May 16, 2018 at 13:08
  • \$\begingroup\$ Would you consider using a microcontroller? Look at the PIC10F family from Microchip. \$\endgroup\$
    – AlmostDone
    May 16, 2018 at 13:08
  • \$\begingroup\$ @AlmostDone "My first approach was to use a small micro but unluckly this's not the case since I cannot use programmable devices in this application." Not in this case as it seems. \$\endgroup\$
    – Arsenal
    May 16, 2018 at 13:16
  • 1
    \$\begingroup\$ You said a 555 is not stable enough. Please edit your question and add what stability/accuracy you require. \$\endgroup\$
    – Oldfart
    May 16, 2018 at 13:18
  • 1
    \$\begingroup\$ Engineers don't take kindly to arbitrary restrictions, "I can't use resistors, I'm not telling why". \$\endgroup\$
    – pipe
    May 16, 2018 at 13:21

2 Answers 2

2
\$\begingroup\$

The LTC6992 is a pulse width modulation chip: -

enter image description here

The above picture shows it operating at 1 MHz. Here are some more top-level details that can be found in the data sheet: -

Minimum Duty Cycle at 0% or 5%

Maximum Duty Cycle at 95% or 100%

Frequency Range: 3.81Hz to 1MHz

2.25V to 5.5V Single Supply Operation

The only thing you have to do is set the input voltage you want that corresponds with 10% duty cycle.

Your only constraint was that you can't use a micro: -

My first approach was to use a small micro but unluckly this's not the case since I cannot use programmable devices in this application.

So this fits the bill given precisely what you have indicated. Note that goal post moving is not generally well-received.

\$\endgroup\$
3
  • \$\begingroup\$ "Note that goal post moving is not generally well-received." sorry but I'm not that good in english... what do you mean? \$\endgroup\$
    – weirdgyn
    May 16, 2018 at 13:28
  • 1
    \$\begingroup\$ @weirdgyn He means that new restrictions often comes up in this type of questions after a valid answer has been posted, such as "Oh, I can only use components from my local store" etc., invalidating old answers. So far you have not done that, so you're in the clear! \$\endgroup\$
    – pipe
    May 16, 2018 at 14:05
  • 1
    \$\begingroup\$ ahhh yeah... xcuse my ignorance ! \$\endgroup\$
    – weirdgyn
    May 16, 2018 at 14:47
3
\$\begingroup\$

You basically need to output either pulses of 1ms or 2ms in a 20ms grid. Your 0,1% accuracy calls for a crystal oscillator.

Use a 1MHz crystal, divide the clock by 1000 using a cascade of three CD4017 counters. You have a 1ms clock now. Use another CD4017 for the "1ms, zero" and "1ms, one" outputs you need and a single toggle flip-flop for discriminating the first 10ms from the second.

Feed these three inputs and your 1ms/2ms select into combinatorial logic. You are done.

\$\endgroup\$

Your Answer

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

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