I`m a beginner in the microcontrollers world.

I have PSoC4, a stepper motor and ULN2803 and I want to make the stepper motor control. The stepper motor is NMB PM35L-048 unipolar, 5 wires, 24 V motor. In the motor specifications I found that the current is 600 mA.

As far as I know, this current would be too much for the PSoC4 therefore I need to use ULN2803.

I understand that the output current of the microcontroller is much smaller than the current that the motor draws, but why that can damage the microcontroller?

How can I calculate value of the current at the output of the ULN2803? How can I be sure that the motor wouldn't draw too high current even if I use ULN2803?


2 Answers 2


The PM35L-048 unipolar version has 30 ohm coils. You can parallel pairs of outputs to drive the 4 coils, and two can be on simultaneously. So worst case we have 4 Darlingtons on simultaneously, each conducting 400mA, assuming a 24V supply.

The limitation will be thermal. Refer to the datasheet for details- if we assume Vce(sat) max is 1.7V, the current is reduced to 370mA per output, and total power dissipation is 2.5W with two coils on at once. That is way too high, so the chip will burn up, especially the SOIC package.

With a 12V supply and DIP package you should be okay, but the torque will be halved. I suspect the motor will burn out if you leave two coils energized at 24V for very long.

If you want full torque, 4 MOSFETs would be a better choice (plus some diodes for clamping).

  • \$\begingroup\$ +1. I do not like paralleling of BJTs, but actually the datasheet suggests that in Fig. 12! I guess because they are quite matched and, above all, thermally coupled because they are in the same die (and maybe the series parasitic C-E resistance will perform some compensation). \$\endgroup\$
    – next-hack
    Commented Sep 15, 2017 at 6:27
  • \$\begingroup\$ Thanks! When I use MOSFETs, in order to make the motor work I have to send a logic high signal from the PSoC4 board to the gate input of the each MOSFET, am I right? I need only N-channel MOSFETs since I'm using the unipolar motor? \$\endgroup\$
    – Karla
    Commented Sep 19, 2017 at 14:49
  • \$\begingroup\$ @Karla Yes, that's correct. They should be logic level, with Rds(on) guaranteed for the output voltage you are using for your PSoC4. \$\endgroup\$ Commented Sep 19, 2017 at 18:47
  • \$\begingroup\$ @Spehro Pefhany, I have only IRF630 MOSFETs, they have Rds(on) = 0.4 Ohms @ Vgs = 10 V and Id = 5.4 A , here is the datasheet: fecegypt.com/uploads/dataSheet/1471185892_sihf630p.pdf Can I use IRF630 for this purpose? If it is possible, do I need any additional circuit between PSoC and MOSFETs? Output voltage of PSoC is 5 V \$\endgroup\$
    – Karla
    Commented Sep 21, 2017 at 13:53
  • \$\begingroup\$ It would be better to get different MOSFETs- boosting the gate voltage to 10V will require gate drivers and that part is better saved for when you need a 200V rating. \$\endgroup\$ Commented Sep 22, 2017 at 4:12

To determine if the ULN2803 is suitable, you need to look at the ULN2803 datasheet to see what its ratings are. Its recommended maximum output current is 350 mA, with an absolute maximum of 500 mA, so the ULN2803 is unsuitable.

You will probably need to use separate power transistors to drive your stepper motor.


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.