Unable to pull PWM pin low once high


We are using a Pololu High-Power Motor Driver 18v25 (#758) to control a Banebots RS540 brushed motor with gearbox.

We are controlling the 18v25 using a PIC18 based micro. With the PIC & 18v25 running from the same 12V car battery we send the 18v25 PWM pin a 5V signal from our PIC to turn our RS540 motor on. When the PIN is high, the motor turns. When the micro pulls the PWM Pin LOW, the voltage at that PIN seems to fluctuate but never goes LOW (hovers around 3.5V). The motor direction will also randomly change from CW to CCW and back again. I tried adding a pull down resistor to the PWM pin after but it didn’t do anything. The only way to get the motor to stop turning is to disconnect the PIC18 input from the PWM pin of the 18v25.

Our board will eventually be placed in a Formula SAE car and we know EMI shielding will be required but even with the car off and a board well away from the vehicle, our micro and 18v25 don’t seem to work well with this motor. We tried two other brushed DC motors (one much larger and one smaller) and they work without issue. The voltage on the PWM pin promptly drops to zero and shuts the 18v25’s OUTA & OUTB off.

I’m completely stumped, especially since the setup seemed to be working fine 2 days ago when we first tested it briefly.

Any help would be greatly appreciated.


Not we’re not using optocouplers between the PIC18 output pins & 18v25 DIR & PWM pins.


What is the stall current of larger motor you tried? I would take a look at the power supply of the PIC. There is a chance the voltage is dropping, causing the PIC to reset, when the motor starts spinning. Does the motor driver work with the RS540 without the PIC in the system?

The Banebots webpage says the motor you are trying to drive has a stall current of 42A, which is well above the continuous limit of product #758. We do not recommend using our drivers with motors that have a stall current above the continuous limit without taking special care to avoid stalling the motor. Product #758 does not have over-current or thermal shutdown protection, so you will need to be especially careful.

- Ryan


I don’t know the specs on the larger DC motor but it is off a 12V cordless drill and its no load current is around >15A.

As for our powersupply, its a very large car battery (fully charged) that is also continuously topped up by the car itself.

When we use the #758 with the RS540 motor (with gearbox attached) and were controlling it with push buttons (w/ pull down resistors) we had no issue and the motor and h-bridge worked well. The mosfets never got very hot.

Our application requires brief (<500ms) bursts of the DC motor w/ gearbox to turn a spindle 20 degrees (only a single direction). Our design never uses the motor for continuous rotation. However, the spindle only rotates 20 degrees before a hard mechanical stop prevents any further rotation. We know there is a risk of stalling the motor but at worst, this should occur for less than half a second.

We only experience issues with this particular motor and only when we use our PIC to control the H-bridge.

Do you recommend we use some kind of RC filter between the PIC & #758 inputs?

Will exceeding the rated current make it difficult to pull down the PWM & DIR pins? We tried pull

Just to confirm, are you sure your system works with the PIC and the other two motors you tried?

The problem you are describing makes it sound like there is something wrong with your code on the PIC. Specifically, it sounds like the IO lines connected to PWM and DIR are floating. Are you sure you are driving the IO pin instead of just using one of the PIC’s internal pull-ups? What was the value of pull-down resistor you tried?

If those suggestions don’t help, can you please post a schematic and a picture of your setup so we can better see how you have everything connected?

- Ryan