After a long, busy summer (time and money tend to disappear when you own a house!), I'm getting back to thinking on this monstrosity. I've been thinking on how I'm going to approach this, especially since I'm not certain as to the motor I'm going to use. So, current architecture redesign is as follows:
Comms/Power board: USB PIC18 on one side, bus powered. This does general housekeeping. Across the opto-isolated border, we have another PIC doing power management duties. This side has an ATX motherboard connector and power distribution/comm for CAN bus and distributing the 5V logic power out. The PIC is powered by the 5V/2A standby power from the PSU and monitors the PSU. I'm debating on either providing screw terminal power or using the drive connectors on the PSU. I've seen some PSUs have 25A of 12V power available. This does not scale linearly with PSU power, so I'm searching for the best unit for the job. I can't complain, though. under $20 for a PSU or around $100 for just a 12V industrial PSU. I'm planning on supplying 12V and 5V and 12V to all boards, plus a CAN chain. Not certain about the 3.3V right now.
This is being kept separate so I can swap out the board for an Ethernet board, or one that runs off a 12V car battery and generates its own 5V for the rest of the system.
Main Board: This is the other major change. I'm putting a good size DSP at the core (dspPIC33FJ256MC710 currently, although I'm debating a 32 bit ARM7). One quadrature and four SPI ports (on one bus, for absolute encoder chips) are available for motor feedback or other semi-remote sensor connections. A bank of generic inputs for limits, etc.
I'm going to put card edge connectors for PWM amplifiers in. Logic hides behind some buffers and a well capped 3.3V LDO. 4 slots, each gets 2 PWM, 4 control, 2 analog, SPI, and I2C routed to it. With some split power designs for the analog, I should get a fairly flexible setup. I've got plans to test out full and assembled H bridges from ST and Freescale, and also some half bridge implementations. 10A per board is my target. The high voltage bus will be brought in via screw terminals, as will the motor outs. This should protect the main board well. The vertically mounted boards will make it easy to fan cool the module. I can swap around modules to drive DC motors, brushless, steppers, whatever works with either specialized boards or up to four half H bridges. The I2C and SPI let me access chip monitoring on the cards. I can also put in IO cards if I need something similar. Still working on that.
I originally wanted to run all separate motor boards, but getting coordinated motion from that can be tricky. I also realize that multiple axes servo loop positioning and doing AC motor servo control will probably not work too well together. So, I've decided to go this route. I expect a 40 MIPs dsPIc or 60MIPS ARM to be able to control one stepper, one AC servo, or four DC servo motors without too much issue. After I verify that this works, then I can work towards remote motor servo loop control via the CAN interfaces.
I had originally wanted to make this a single board design, but I ran into the issue that I had both SPI busses accounted for (add-on cards and absolute encoders). While I can link into one while debugging, I don't think I want to make it my primary interface.
Most other boards (distribuated motor boards, etc) will stay the same.