I'm trying to understand the difference between two 12V PWM circuits I've build and tried.

The PWM signal is intended to control the speed of a motor. Only not in the way you would expect. The motor has its own circuitry and accepts the PWM signal as a speed control. So its not driving the motor directly.

To make this work I've tried two PWM control circuits:

I got a PIC to generate a PWM signal. I tried both the build-in ECCP module and software PWM. I used the following circuit to convert the PWM from 5V to 12V.


simulate this circuit – Schematic created using CircuitLab

Although this produces a very nice 12V signal the motor doesn't react to it all.

So I tried an old fashion NE555 in astable mode to generate the PWM. NE555 PWM circuit

Schematic from DPRG

This circuit also puts out a nice 12V PWM signal with the same frequency and duty cycle as the PIC circuit. But this signal actually does have effect on the motor.

So my question is: What is the difference between the PWM signals generated by these two circuits/devices? By knowing this, I hope I can change the PIC circuit in such a way that motor reacts to it aswell .

Since I rather control the motor with the PIC, as this will make for a more compact end result.

ADDITIONAL INFO: Both signals when connected to the motor.

PIC signal (without R2), 8.2-11.2V: enter image description here

NE555 signal, varies 0-12.2V for 500ms and 0-1.32v for 780ms: enter image description here

In both cases the PWM frequency and duty cycle remain intact, disregarding the voltages.

  • \$\begingroup\$ In the first schematic, your output is either high or floating. Add a pull-down resistor to the output and see what effect it has on your PWM fan. \$\endgroup\$
    – BjornR1989
    Commented Jun 9, 2014 at 13:25

1 Answer 1


What is the purpose of R2 in the first circuit? It's limiting the maximum current to the motor to 12V/220Ω = 54.5mA, which is probably not enough.

Just connect the motor directly to the collector of Q2.

You also need a couple of other changes: put a resistor (e.g., 4700Ω) between the MCU output and the base of Q1; otherwise, the B-E junction of Q1 looks pretty uch like a dead short to ground to the MCU. Similarly, you need a resistor (about 1200Ω) between the collector of Q1 and the base of Q2; without it, when Q1 switches on, it basically shorts the 12V supply to ground via the B-E junction of Q2. 1200Ω limits the base drive to Q2 to about 10mA, which should be plenty.

  • \$\begingroup\$ Thanks for your answer. I will try and remove the resistor, it could be the cause. About the additional resistors you mentioned. If I'm correct the transistors I use (BCR503 & BCR583) have built in resistors that do the job. \$\endgroup\$
    – Felix
    Commented Jun 9, 2014 at 14:37
  • \$\begingroup\$ I tried removing R2. The motor still does not respond. If I inspect what happens to the PWM signals when connected to the motor I notice that the "PIC-signal" changes to a 8.2-11.2V signal (Freq and DC remain intact). While the "555-signal" changes in a astable signal going from 0-12.2V for 500ms and then 0-1.32V for 780ms (Freq and DC remain intact). \$\endgroup\$
    – Felix
    Commented Jun 9, 2014 at 15:02
  • \$\begingroup\$ OK, I didn't know those two transistors had built-in resistors. You need to show that in your schematic. But that's probably the problem: The 10K resistors in the BCR583 limit the base drive to about 1 mA, which in turn is going to limit the available collector current to about 70-100 mA. In other words, you aren't going to be able to saturate this transistor (Q2) and allow it to deliver the 500 mA it's capable of. \$\endgroup\$
    – Dave Tweed
    Commented Jun 9, 2014 at 18:56
  • \$\begingroup\$ Yes you're right, I added the build-in resistors in the original schematic ;)! Is it worth trying changing the BCR583 with something like a PMBT2907A and adding a resistor (+-1200Ω) between the collector of Q1 and the base of Q2? \$\endgroup\$
    – Felix
    Commented Jun 9, 2014 at 19:26
  • \$\begingroup\$ Tried it, same result... \$\endgroup\$
    – Felix
    Commented Jun 10, 2014 at 9:56

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.