Need drive-brake driver for 37D motor

I’m using an Arduino Uno to control two 37d 30:1 motors (stall current 5A@12V). My control is usually low torque but very occasionally needs a high torque blast (high voltage at low speed) for up to 2s. I’ve been using the VNH5019 dual shield and it appears very robust BUT it is drive-coast PWM. This screws with my linearity of PWM value vs (average) voltage.

I’ve researched to death. At first, I hoped that PWM value would be some function of desired voltage and so I could linearize in software. Turns out (I believe) adjusted PWM value (to achieve a know voltage) It isn’t simply a function of desired voltage, it is a function of desired voltage AND speed due to back-EMF (tell me if I’m wrong). This makes it very difficult to do if we are accelerating or decelerating as the speed must be an average over a period. Looks like the best answer to make the (average) voltage linear (more or less) with PWM value is to use a drive-brake PWM.

Now I know the VN5019 is not capable of that. First option is to add a shunting MOSFET(s) across the motor (or from each motor terminal to B+) which turn on when PWM=0. Anyone ever try this? Were you careful to avoid high currents during switching (e.g. when PWM control changes) due to “on before off” of drive FETs?

Other possibility is to use a different driver. I see that there is the MC33926 which is very similar but uses drive-brake PWM. Sounds great except it is nominal 3A and the 37D has a 5A stall current. I do see that the spec sheet says 3A continuous and 5A peak which sounds OK (almost all the time current will be low) BUT if the motor is full reverse and I switch to full forward, I will demand 10A (briefly). So I ask for advice. Will I damage the 33926? Will it protect fine? Will it current limit? Will it shut down on short circuit detect? I have analyzed the spec sheet but as always, the sheets need a bit of interpretation and I’m looking for advice. Also, note that my supply is LiPo so it is 11.3V. That means my stall current is actually 4.7A so max current is 9.4A (just over the 9A minimum for short detect. I could limit my PWM max so I stay below 9A when plugging (full forward to full reverse) but still, the question is whether the 33926 can handle such currents when the intent of the 33926 seems to be 3A continuous and 5A max (perfect if I never have plugging!). Also I see that the 33926 Rdson spec is MUCH worse than that of the 5019 (120mOhm vs 12mOhm) so the 33926 will run hotter to begin with (my concern is failure).

Advice? Can I simply mod the 5019 control by adding a brake? Is the 33926 suitable for the 37D motor?


You are correct that back EMF affects the speed and torque of a motor, though as long as the same motor is used, I would expect it to generally have the same effect. It might be possible to map out that effect at various points to better account for it in software, but using a different driver is probably more straightforward.

The MC33926 might be a bit underpowered for the 5A 37D motors, but will probably be just fine, especially if you take some extra precautions like always using acceleration or deceleration limiting when changing directions or starting the motors. I do not recommend trying to implement your own external electrical braking, since as you mentioned timing on something like that is critical to not create shorts.