Electronics > Projects, Designs, and Technical Stuff
DC motor driver problems
(1/3) > >>
gaminn:
Hi,
I drive this type of motor https://www.ebay.com/itm/High-Torque-DC6V-12V-24V-Encoder-Gear-Box-Electric-Motor-Replacement-PICK/182645563123?hash=item2a86861ef3:m:meZOhh_Zd85SzjxiwmH14Wg:rk:18:pf:0 (6V DC) with DRV8837 driver http://www.ti.com/lit/ds/symlink/drv8837.pdf . I noticed that during direction change of the motor or when braking, spikes on Vm rail (motor supply voltage) are visible. On my PCB I use 5 V Vm from USB and this voltage is also used by other ICs on the board. The spikes can go up to 8 V for 1 ms in my case and cause some problems (and of course, it can be bad to generate 8 V spikes on USB which is connected to my PC).

This is my first design with DC motor drive. What are some good practices to avoid this problem? I thought about bigger bulk capacitor on Vm line (even that this is a problem when your Vm is USB voltage which can have max 10 uF capacitance) or about connecting power schottky diode in series and e.g. 6 V zener diode parallel to Vm to prevent the spikes to reach other ICs on my board and to clamp them by zener diode.

In the picture attached there are the spikes I'm talking about during motor braking. When the motor runs in steady state the Vm voltage is clean.
uer166:
That's normal for braking any sort of motor, the energy has to go somewhere (think regenerative braking). You've essentially created a boost converter the input of which is the motor's back-EMF, and the output your 5V rail (which goes above 5V during regen, since again energy has to go back somewhere). This is ok if supply is battery, but not in your case. The energy of the rotor spinning gets dissipated back into the 5V rail when you brake.

For proper design I would never power a DC motor from a logic rail, it needs to be its' own high current supply, which 5V USB is not.

EDIT: ignore all this you already figured it out
Alternatively as a higgledy piggledy fix, you can isolate the motor power via a diode pointing from 5V into VM of DRV chip, and adding a 5V Zener on that rail to absorb regenerative energy of rotor during brake and reverse. The diode will prevent spikes on this rail from going back into USB 5V, while zener will keep voltage under 11V (max of DRV chip).
gaminn:
Thanks. Yes, that diode pointing from 5V to VM and zener diode was my initial idea. However, it is not ideal as I'm quite tight with my motor voltage requirement - 5V for motor is fine but loosing 400 mV at the diode is not what I really need.

I was thinking about some smart DC motor driver IC that is able to dissipate the energy from the motor in itself leaving Vm untouched. Not sure if something like that exists.
jbb:
If you’re in a hurry, there are two things you could try.

In brief, when you try to suddenly reverse the motor, some the kinetic energy is converted to electrical energy (generator action) and jammed back into the supply rails.

Two possible solutions in software:
1- force both sides of the motor to 0. This basically shorts out the motor, which will convert the kinetic energy into heat in the motor windings and driver. This is an electromagnetic brake. It could be too rough on your mechanics.

2- disable the driver (motor open circuit) and allow the motor to coast to a stop before reversing. May be too slow.
Yansi:
Use a driver circuit, that can work only in I. and III. quadrants (i.e. does not switch the low side transistors synchronously).

Or use a software control over in which of the quadrants the drive operates and limit operation only to those two quadrants (no regenerative braking allowed).
Navigation
Message Index
Next page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod