Modus 3 Axis Servo Driver/Amplifier
This page will document the progress of the Modus 3 axis Servo driver board from concept to creation. Why Modus? Well, it just happened to be one of my favorite logical reasoning statements back when I was studying logic. Modus Ponens: If P, then Q. P, therfore Q. I needed a name for this project, and Modus beat out a couple of other choices!
Modus specifications:
3 axis 30 amps per axis Servo amplifier for DC brushed motors
Fully tunable PID parameters programmable via RS232 over USB
Velocity mode, position mode, manual mode, step/dir mode
PID parameters stored in flash memory so they remain sticky even when the power is turned off
Quadrature encoder input for closed loop DC motor control
RC receiver connection for controlling MODUS via remote control (great for battlebot users)
Adjustable 2-30 amp current limiter on each axis
DB-25 male connector for easy hookup to PC parallel port
All parallel port inputs/outputs optically isolated
Joystick inputs for CNC machine control
Step/Dir inputs for CNC control software
Jumper selectable locked anti-phase PWM or signed magnitude PWM drive modes
Phase 8: Building a new bridge (02.19.2006)
Phase 7: Engineering work/component selection (01.25.2006)
Phase 6: Modus makes it's first servo moves! (01.02.2006)
Phase 5: New magnetic stirrer/hot-plate for rapid PCB etching (12.18.2005)
Phase 4: H-bridge drive logic (12.14.2005)
Phase 3: Microcontroller code is up and running with the encoder! (12.09.2005)
Phase 2: Tooling up for SMT parts (11.28.2005)
Phase 1: Learning about Mosfets (10.26.2005)
Hardware issues that I've run into:
Isolated 12v supply for bridge drivers. Lots of burned parts learning about this.
Driving the high-side Mosfets on an all N-Channel H-Bridge. More burned parts.
Low RDSon effecting switching time
Minimizing shoot-through with switch delay
Bootstrap capacitance
High-side PWM
Current limiter circuitry on a ~25 amp controller
High-current (~75 amp) PCB layout considerations
Snubber at the motor
Power dissipation of the D2Pak FET package
RS232 over USB
Locked anti-phase vs signed magnitude PWM mode H-bridge control
Firmware issues that I've run into:
Writing a super-fast servo interrupt handler: still not there yet
Timers, Timers, and more Timers
IRQ priority, semaphores, other low-level maddness
USART interrupts. Grrr, this one was a real pain
Programming a PIC18 device
Enabling and configuring the QEI interrupts on the PIC18F2331
Fast 32-bit math on an 8-bit microcontroller
32-bit position registers implemented on an 8-bit microcontroller
PWM duty cycle
RC servo input
RS232 over USB PID tuning software
Joystick input
Step/Dir input
Locked anti-phase vs signed magnitude PWM modes
State machine