Re-flowing this design is a must, as I’m employing “Direct FET” packages from IRF. The package is basically a metal can with the bare FET on the bottom side. This is supposed to allow for very good heat dissipation, and minimal packaging loss (read: Low RDS-on). I’m expecting this PCB to handle approximatley 10 amps per channel (it will handle two motors) continuous if properly cooled, but for the next few projects I have on the go, it will be much less. The PCB is small itself, measuring a little over 1″x1.5″!
The brain of this motor controller is a Freescale 9s12c micro controller. This MCU will handle PWM, ramping, optional position/speed encoder input, thermal monitoring, current monitoring, and RS-232 or I2C communications for a main processor. The main objective of this is to have all those tasks offloaded from a main robot CPU, allowing to have several of these drivers in one robot (i.e. 12 motor Quadruped robot)Unfortunately, it appears that ths 9s12 I put on there has a maximum bus speed of 16 MHz, however the internal serial bootloader I was hoping to use to load code needs to ramp the PLL up to 24 MHz for proper operations, so testing is on hold until I get a 24 MHz capable part, hopefully early next week.
Edit: 14 December – I borrowed a BDM programmer from a colleague, and managed to load code into the 9s12, and currently have the motor driver actually driving a motor, complete with ramping up and down in speed.