[sci.electronics] A Challenging PWM Design Problem

darel@maccs.McMaster.CA (Darel Mesher) (12/06/88)

I have an interesting Pulse Width Modulation design problem;

Given the following PWM waveforms:

  Minimum pulse width:

    <----------------- 18 mS ------------------->
    .--.                                        .--.
____|  |________________________________________|  |_____

  -->  <--
    1.0mS


  Maximum pulse width:
    <----------------- 18 mS ------------------->
    .----.                                      .----.
____|    |______________________________________|    |___

  -->    <-- 
    1.9mS

  The pulse width varies linearly with a transducer variance of
0 - 100%.  My question: is there a simple solution for the conversion
of this PWM signal into a corresponding analog signal, ie. a simple
circuit for the following black box?


             .----------.
   PWM in    |          |  Analog out
------------>|          |------------>
             |          |
             `----------'

where the analog output function looks like;


   Vcc  |                  .
        |               .
        |            .
        |         .  
        |      . 
        |   .
        |.
       -|-----------------,
        1.0              1.9

          Pulse Width (mSec)
           
  Obviously, if there exists a PWM De-modulator chip then this 
would be the answer, however I can find no such chip in any of
my Linear data books.  

  I currently have a solution using a oscillator, counter, and DAC
however, the chip count is higher than optimum (ie. one :-) ).


  Any suggestions would be appreciated.

    Darel.

-- 
Darel Mesher				...!uunet!mnetor!maccs!darel
McMaster University			    darel@maccs.mcmaster.ca

dillon@jumbo.dec.com (John Dillon) (12/07/88)

In article <1663@maccs.McMaster.CA>, darel@maccs.McMaster.CA (Darel
Mesher) writes (I edit the diagrams for brevity):
> 
> I have an interesting Pulse Width Modulation design problem;
>
>     <----------------- 18 mS ------------------->
>  -->.--.<--  1.0 to 1.9 mS                      .--.
> ____|  |________________________________________|  |_____
> 
>              .----------.
>    PWM in    |          |  Analog out
> ------------>|          |------------>
>              |          |
>              `----------'
> 
> where the analog output function looks like;
> 
>    Vcc  |            .
>         |         .  
>         |      . 
>         |   .
>         |.
>        -|-----------------,
>         1.0          1.9     Pulse Width (mSec)
> 
The simplest scheme uses a $30 servo from a radio control (RC) system.
Spare servos, available at many hobby shops, will accept the above
signal waveform (VCC from about 3.5 to 6 volts works OK), and can
accurately position a potentiometer.

If mechanical solutions disgust you, try using the NE544 chip found
in some of these RC servos.  The chip has a full-wave output designed
to drive a low-power (<500 mA) DC servo motor in conjuntion with a
positional feedback pot.  The complementary tri-state outputs pulse
every 18 mS with polarity and width to overcome position errors.

Take one of these outputs and run it through a low-pass filter into
the NE544's position feedback pin.  The feedback voltage level runs
from 1.0 to 2.0 V in response to the input PWM pulse width.

See the NE544 data sheet for specifics.  Unfortunately, the data sheet
does not illustrate this application.

john@stiatl.UUCP (John DeArmond) (12/07/88)

In article <1663@maccs.McMaster.CA> darel@sparkles.UUCP (Darel Mesher) writes:
>
>I have an interesting Pulse Width Modulation design problem;
>
>Given the following PWM waveforms:
>
>  Minimum pulse width:
>
>    <----------------- 18 mS ------------------->
>    .--.                                        .--.
>____|  |________________________________________|  |_____
>
>  -->  <--
>    1.0mS
>
>
>  Maximum pulse width:
>    <----------------- 18 mS ------------------->
>    .----.                                      .----.
>____|    |______________________________________|    |___
>
>  -->    <-- 
>    1.9mS
>
>  The pulse width varies linearly with a transducer variance of
>0 - 100%.  My question: is there a simple solution for the conversion
>of this PWM signal into a corresponding analog signal, ie. a simple
>circuit for the following black box?
>

This is an easy one.  The average DC value of the waveform increases
with increasing width.  All that's necessary is a suitable integrator.

The following is the minimum required:

    |\
----|/--------------\/\/\/\ -------------------
  (diode)                            |	   |
				     |	   |
				   ------  \
				   ------  /
				     |     \
				     |     |
				   -----------
				    (gnd)

For more precision, replace the diode with a precision rectified (op amp
with a diode in the feedback loop).  For even more precision, bufffer
the output with an op-amp and use a FET switch driven by the low level (0
volts) of the input signal to gate the input signal to a capacitor connected
to the reference leg of the op-amp.  This is known as baseline compensation
and will compensate for any DC bias in the input signal.  In any event, you
should be able to do it with less than 10 components or so.



John De Armond                             | "I can't drive 85!"
Sales Technologies, Inc.    Atlanta, GA    | Sammy Hagar driving 
...!gatech!stiatl!john                     | thru Atlanta!  

liber@darth.UUCP (Eric Liber) (12/08/88)

> 
> I have an interesting Pulse Width Modulation design problem;
> 
> Given the following PWM waveforms:
> 
>   Minimum pulse width:
> 
>     <----------------- 18 mS ------------------->
>     .--.                                        .--.
> ____|  |________________________________________|  |_____
> 
>   -->  <--
>     1.0mS
> 
> 
>   Maximum pulse width:
>     <----------------- 18 mS ------------------->
>     .----.                                      .----.
> ____|    |______________________________________|    |___
> 
>   -->    <-- 
>     1.9mS


This looks just like a "standard" Model Radio Control signal.  By standard
I mean from the type of equipment that Futaba, Kraft and others make not 
what you find at Radio Shack (toys mostly).  

Anyway there are several "chips" that will do what you want with varying 
degrees of simplicity.  Natioal Semi makes a chip - NE554 that is a servo
amplifier chip for model radio control servos.  I suspect that with only
minor component changes from the "normal" values (and maby the addition of
and OP amp for output buffering) it would do very nicely.  These are available
from digikey and specifications are in the National Linear Data book.  If you
can't get the data give me a call and i will xerox and send to you. (412-
367 7308 after 7:00 pm).

Other possibilities are the receiver chips from National and TI that are 
complete Radio control Receivers.  These would probably be more difficult to 
use since they have much more circuitry than you need.  I don't remember
the numbers off hand but the linear data books should have them.  Exar used
to make a chip similar to the National chip (2264 i think) but i don't know
if it is still in production.  

Last, several radio control equipment companies make digital proportional
to motor driver converters.  These units allow for input such as you specify
and output a varying dc signal to drive high current motors in boats and 
cars (and electric airplanes!).  The units for airplanes are uni-polarity
(don't need back up for an airplane :-) ) and are usually bi-polarity for
cars and boats.  The major disadvantage of these units is that they are
typically designed for high current loads (10-200 amps!) and are not 
especially cheap.  

One more thought .. I have seen modelers take the electronics from a radio
control servo (for an airplane let's say) and modify it to drive a small 
motor in very small boat models (less than 12" long).  These servos are 
available from various mail order sources in the $9 - $15 range.  Get a copy
of Radio Control Modeler Magazine to get an idea of sources.  Be aware that
name brand "quality" servos can run from $30 - $45 and more so if you go this
route you want "no name" cheapies.  Note that the circuit boards for the 
electronics in these beasties are small usually less than 1" square (something)
like a postage stamp so you are not going to be burdened with lots of real
estate.  

good luck .. if i can help some more please ask.

Eric (the red) Liber

tomb@hplsla.HP.COM (Tom Bruhns) (12/08/88)

> 
> I have an interesting Pulse Width Modulation design problem;
> 
> (pulse 1-1.9ms; 18ms between pulses)
> 
>   The pulse width varies linearly with a transducer variance of
> 0 - 100%.  My question: is there a simple solution for the conversion
> of this PWM signal into a corresponding analog signal, ie. a simple
> circuit for the following black box?
> 
> where the analog output function looks like;
> 
> 
>    Vcc  |                  .
>         |               .
>         |            .
>         |         .  
>         |      . 
>         |   .
>         |.
>        -|-----------------,
>         1.0              1.9
> 
>           Pulse Width (mSec)
> 
> -- 
> Darel Mesher				...!uunet!mnetor!maccs!darel
> McMaster University			    darel@maccs.mcmaster.ca
> ----------
Depending on the accuracy and time response you want, maybe the
following "one-chip" solution will work (thought the FET switches
may be EASIER to do as a second chip -- same with the one-shot).

You get to work out the details; this is only an outline:

Use a quad opamp chip.  One section is configured as a one-shot
which is adjustable, and nominally 1 mS.  It is triggered by the
leading edge of the received pulse.  Its output is used below.

Second opamp is used as an integrator.  It ramps to the desired
fullscale output in 0.9 mS.  It has an FET switch to reset it;
that switch is closed ("RESET") when the 1mS one-shot is active.
It also has an FET switch on its input:  the input is taken from
a pot fed from a regulated negative voltage, so full-scale is
both stable and adjustable.  However, the input is switched off
(switch open; no current into integrator) whenever either the
one-shot is active or the input pulse is low.  Thus the integrator
is reset and ramps up for each pulse, and holds the value between
pulses.

The remaining two opamp sections are used as either a linear
lowpass filter to smooth the output (if needed), or as a simple
sample/hold sort of thing ...

Now, you didn't say anything about the number of R's, C's, D's
etc ...

Hope this gives you some food for thought.  It's only one of many
ways of doing it... but the parts I'd have in my junkbox.

Cheers,
Tom Bruhns
tomb%hplsla@hplabs.hp.com

rusty@cadnetix.COM (Rusty) (12/10/88)

watch out for those National chips, they are deaf as doornails to
RF. Speaking from experience, I am sorry to say. :-(
-----
Rusty Carruth   UUCP: {uunet,boulder}!cadnetix!rusty  DOMAIN: rusty@cadnetix.com
Cadnetix Corp.  (303) 444-8075x681 \  5775 Flatiron Pkwy. \ Boulder, Co 80301
Radio: N7IKQ    'home': P.O.B. 461 \  Lafayette, CO 80026