I’ve been trying to learn a lot about motor control as I plan how to implement some robotics ideas I have. I have a ton of questions but to keep this post relatively focused I’ll just ask a few of them…
I’ve been trying to get a handle on the way in which different controllers/drivers implement h-bridge switching. There seem to be a number of schemes for driving the four switches, and I’m having trouble figuring out what the pros and cons of the various methods are (or what method is being used, in some cases).
For instance, look at the Dual MC33926 or MC33887 Motor Driver Carrier. If you hold one of the IN lines high and PWM the other, you alternate between driving and back-EMF braking (if I understand correctly). But if you instead hold the IN lines steady and PWM one of the D lines, you alternate between driving and coasting (right?).
This kind of difference seems to be reflected at a higher level in the control schemes of the various motor controllers. The TReX Jr lets you specify a speed (PWM duty cycle) for both driving and braking. To me this implies that it’s switching between driving and coasting in “drive” mode, and between braking and coasting in “brake” mode (so it must be PWMing one of the D lines). By contrast, the Qik 2s9v1 doesn’t have a separate “brake” mode but does have a “coast” mode. Looking at the TB6612FNG datasheet, this makes sense – it doesn’t seem to support PWMing between drive and high-impedance, only drive and brake.
I guess my question is, does any of this matter? What are the pros and cons of the two schemes, or are they effectively identical for practical purposes? My intuition tells me that in applications where careful speed control is desired (balancing robot?) it might be better to PWM between drive and brake rather than drive and coast – does that make any sense?
Are there energy efficiency (battery life) considerations? What about regenerative braking? There are motor controllers that claim to recharge your battery when braking (I’d link, but you probably know what I’m talking about and it seems kinda rude to link to them on your forum). But I have trouble understanding why almost any H-bridge control scheme wouldn’t pump energy back into the batteries during braking. It’s gotta go somewhere, and it’s either into the battery or lost as heat (in the freewheel diodes?)
Changing topics a bit (because this post isn’t nearly long enough), I have a question about current sensing. It’s not obvious to me how this behaves during PWM – the datasheets only really define the behavior of the current sensing during the “on” phase of PWM. Is the current sensing as implemented by these kinds of drivers (which seem to sense the current of the “currently selected” high-side MOSFET) just useless during PWM, or will it more-or-less accurately reflect the current flowing through my motor? What about during back-EMF braking – can the built-in current sensing monitor the back-EMF induced current?
I have the feeling my questions probably reflect some pretty basic misunderstandings. Hopefully somebody can set me straight Thanks.