PWM waveforms are commonly used to control the speed of DC motors. The
mark /space ratio of the digital wave-form can be defined either by
using an adjustable analogue voltage level (in the case of a NE555 based
PWM generator) or digitally using binary values. Digitally derived PWM
waveforms are most often produced by the timer/counter modules in
microcontrollers but if you do not want to include a microcontroller
in your circuit it’s also quite simple to generate the signals using
discrete logic components. An extension of the circuit shown can
pro-duce two PWM waveforms from an 8-bit digital input word. Each signal
has 15 val-ues. The 8-bit word can be produced for example from an
expansion board fitted in a PC or from an 8-bit port of a processor
which does not have built-in PWM capability or from a laptop’s printer
port.
Discrete PWM Generator Circuit Diagram
The mark/space ratio is only programmable up to 15/16 rather than 16/16; a binary input of 0000 produces a continuous low on both outputs turning both motors off. Similar circuits often employ a dedicated ‘enable’ input to turn the motors off but it is not necessary in this design.
The diagram shows the circuitry required to produce just one waveform. For the full two channel circuit it is necessary to use an additional 74HC193. The clock signal produced by the HCF4060 generator can be used to drive both channels and the free flip flop in the 74HC74 package can be used for the second channel (the corresponding pin numbers are shown in brackets). Alto-gether the entire two channel circuit can be built using just four ICs. Link