I have a system which is going to employ two DC brushed motors. The main power supply supplies 12V and is rated for 3A. I'm attempting to maximize the available current to each motor. The smaller of the two motors requires ~2.4 V nominal and runs well for the job with a limit of ~300mA. The larger of two motors requires 12V and I would like to give it as much current as possible, like ~2.5A. The main supply will also need to power a logic bus anywhere from 1.8 to 5V, but I don't think that will require very much current at all, still, I'd like to leave it at least 50mA. Both motors will have speed control, which I plan to use PWM from the MCU to achieve.
The size constraints for the design are quite small, and it must be very efficient to make use of all the available current and not get hot at all. I'm not very familiar with driving motors or regulating voltage/current since my background is mostly with logic circuits. I'm hoping to get some suggestions on how to design such a circuit and maximize the efficiency. What type of regulators should I be using? How can I ensure that the current never exceeds a maximum value to the motor circuits? How do I protect my logic line?
I really appreciate any help you can provide.