Shoot-through current refers to the condition where both switches/MOSFETs on one side of the H-Bridge are on simultaneously. Under normal conditions, the H-bridge is under one of the following conditions:
If, however, both switches on one side are on simultaneously, a huge current can flow (Only 34mΩ per leg, remember?), which is usually destructive. I'm not sure why both switches would be on - Possibly an issue with gate capacitance and switching time?
The datasheet says that the PWM pin is:
Voltage controlled input pin with
hysteresis, CMOS compatible. Gates of
low side FETs are modulated by the PWM
signal during their ON phase allowing
speed control of the motor.
You might get better luck with higher voltages if you modulated the PWM such that it was centered on the ON-pulses:
Motor on: ---- ---- -- --
S-Left-Top__/------\________/------\________
S-Rght-Bot___/----\___________/--\__________
S-Rght-Top__________/------\________/------\
S-Left-Bot___________/----\___________/--\__
But you'll definitely want to look very carefully at Figures 4, 5, and 6 of that datasheet.
Yes, this is very different. PWM drive and voltage drive separately don't really mean that much, but when combined in this way you will get significantly different performance.
Electrically, you can model a motor as an inductor (windings), resistor and a voltage source (the EMF, proportional to the motor speed). When you apply a lower voltage compared to a higher voltage, you will:
- get a slower \$dI/dt\$ through the motor windings, reducing torque
- have a lower maximum speed because of back EMF
With PWM and a higher voltage, you will be able to achieve higher peak speeds and often much higher torque at equal speeds.
There is no real reason that a motor will damage when applying higher voltages. Motor damage is caused by:
- Bearing overload (e.g. pushing sideways on the shaft of a thrust bearing axle)
- Bearing overspeed (depends mostly on the oil used)
- Brush arcing (caused by high speeds and to a much, much lesser extent also higher current)
- deformation and delamination of internal structures due to overheating
Also, overheating or running a motor at very high currents will cause a (significant) reduction in torque because of magnetic saturation.
If you can guarantee that you keep your motor within speed, torque and force limits as well as properly cool it, there is no downside to running it at higher voltages with PWM.
Best Answer
You should specifiy your maximum PWM frequency.
The switching speed of the circuit below is likely to be fast enough for most Arduino or Pi PWM applications.
Here is a simple and slightly unusual circuit that will do what you want in most cases.
The transistor base is connected to the low voltage supply (here 3V3) by a resistor, and the emitter is driven directly by the low voltage (here 3V3) PWM.
Almost any small signal NPN "jellybean" transistor can be used.
A small capacitor across R1 (maybe 1 nF - experiment) will somewhat improve frequency response - but is unlikely to be needed.
This arrangement means that when the PWM input is low the transistor is on, it's collector is low and so the output PWM is low - so their is no "phase inversion".
simulate this circuit – Schematic created using CircuitLab