Design Considerations for a dc motor drive circuit?
Here are some of the things I think about when I need to drive a motor:


Have I considered using an off-the-shelf motor driver?
Rather than starting a design completely from scratch, have I considered starting with some open-source motor driver, making a few improvements, then giving those improvements back to the community?
Have I considered using "self-protected switch" such as the International Rectifier IPS6031PBF, the Infineon Technologies BTS50080-1TMB, etc. that doesn't require as much design time as a raw FET?
Have I considered using parts that I can actually buy, such as the International Rectifier IRFZ44N ?


Motor overheating:


Is the motor sufficiently rated to continuously handle the maximum load at the maximum required speed? (This is hotter than running with no load).
Is the motor sufficiently rated to continuously handle the maximum load at the minimum required speed? (Although this technically requires less mechanical power, the "self-cooling" is less, so it may get hotter).
is it better to run at the requested speed for as long as possible, until the motor fails? Or is it better for the system to refuse to run at the requested speed when the motor appears to be overheating, slowing down or stopping to protect the motor?


Transistor overheating:


Is the transistor and its heatsink sufficiently rated to continuously handle the maximum normal current?
What happens if the wires running to the motor are shorted out?
Is this so unlikely that it is OK if the transistor blows up? Or is this so likely that it's worth designing the system to measure the output current and turn off the transistor when it reaches the max current limit?
How much voltage is required to turn the power FET "all the way on"? Can my microprocessor turn it on adequately, or do I need connect the gate of the power FET to some higher voltage -- perhaps 10 V or 12 V?
How much electric charge does it take to turn the power FET "on" and "off"? How long does it take my microprocessor to push that amount of charge onto the gate or pull that charge off the gate? Is a 10 Ohm resistor between my microprocessor and the gate adequate, or would a MOSFET driver between them keep the power FET significantly cooler? (see Gate capacitance vs. Gate charge in n-ch FETs, and how to calculate power dissipation during charging/discharging of the gate )


Other considerations:


What is the "transistor switched on" high-current path? (power source to transisistor to motor to power source)
What is the high-current path immediately after the transistor switched off? (motor to flyback diode to motor)
Can I make the difference in those two loops smaller, in order to reduce radiated EMU?
Are all the connectors, wires, fuses, current sensors, and other components in the two high-current paths rated to handle the maximum normal current continuously?
How can I sense the motor&#39;s current?
What's the worst thing that could happen if there's a bug in the software? Is there a way to arrange the hardware so the inevitable bugs in the software don't cause permanent damage?