In which your narrator knocks off a unipolar driver board using I2C comms with
the MCU in a very few hours...
I put this little board together to explore the possibility that one could
effectively drive cheap unipolar stepper motors via an I2C link with the MCU
rather than tapping a bunch of I/O pins. I put it together by slaving four
HUFA76419P3 Mosfets with a Texas Instruments PCF8574 chip slaved to a Microchip
18F4550 via a software driven I2C bus. The electronics are trivial and appear to
be very reliable.
The board was trivial to make. The screw terminal and capacitors on the left
side take in 12v and ground and turn part of it into 5v to power the Texas
Instruments PCF8574 chip. The other 2 pole screw terminal just to the right of
the power input screw terminal handles the SDA and SCL lines from the MCU's I2C
bus and connect directly to the PCF8574 chip.
The last four bits of the byte transmitted to the board over the I2C bus are
used to trigger the four Fairchild HUFA76419P3 Mosfets which charge the four
phases of the Airpax unipolar stepper motor that you can see at the upper right
of the. The four orange leads from the far side of the PCF8574 make those
connections.
I used the HUFA76419P3 Mosfets mostly because I had them lying around from a
project to build a bipolar driver board that I never got around to doing. They
are monsters and can handle up to 27 amps continuously. They only cost a bit
over $1 each from Mouser, though. I'd never contemplate putting anything near
that kind of load on this prototype board, mind. It would vapourise the
stripboard tracks, for one thing even though the Mosfets could handle it.
I've got the Airpax unipolar stepper cranking, but there is a bit more work
to be done getting it into high torque mode.
To save comments on this point, understand that unipolar steppers are 30%
less powerful than an equivalent bipolar stepper with the same weight of wire in
it. The electronics, on the other hand, are trivial compared to what you have to
do to run a bipolar stepper and can easily be built from discrete
components.
This board will be driving my tin can {permanent magnet} stepper driven lead
screw axis which I hope to use for Tommelise 3.0.
Late update: I found an old Airpax catalog and got the proper lead colour codes and stepping sequence. Putting that into the firmware I was able to test the limits of the big Airpax stepper motor. The one I have is the equivalent of the catalog's 57M024B2U.
The terminal velocity that I could get from a standing start was 228 pps which matched the pull-in torque line from the catalog very closely. When I used a half-speed startup for 24 steps I was able to push that reliably up to 311 pps. The best I could do with that startup regimen was 444 pps. There was virtually no available torque at that rate and precious little at 311. I suspect that we might be able to hit 250 pps and run the gear pair on the tin can stepper to power a lead screw.
What that means is that with the gear pair that I designed {1.6:1} I should be getting about 0.105 mm/pulse or a peak single axis velocity of about 26 mm/sec.
The nice part about this scheme is that I can change the resolution of the system simply by changing the gear pair.
Later update: Here is the basic board layout taken from my PCB milling software. The components aren't labeled, but from the picture they're not hard to figure out.