View Full Version : Preferred Stepper Driver Electrical Interface
JeremyLee 02-26-2006, 04:33 AM I'm working on a new stepper driver, and I'm trying to decide which logic interface standard I should implement which will result in the greatest compatibility with other systems, both logically and physically. Every stepper driver seems to have it's own special way of communicating with the outside world.
The most common physical interfaces seem to be 10-pin IDC connectors, screw terminals, DB9, and 5-pin DIN connectors. The most common logical interfaces seems to be brake/step/drection, brake/step up/step down, and RS232 or RS423 serial formats. This leads to a whole matrix of choices:
- 10-pin IDC brake/step/direction (PMinMo.com standard, as used on PICStep)
- 10-pin IDC brake/step up/step down
- 10-pin IDC RS232
- 10-pin IDC RS423
- Screw Terminal brake/step/direction (as used on Geckodrive)
- Screw Terminal brake/step up/step down
- Screw Terminal RS232
- Screw Terminal RS423
- DB9 brake/step/direction
- DB9 brake/step up/step down
- DB9 RS232 (common on serial drivers)
- DB9 RS423
- 5-PIN DIN brake/step/direction
- 5-PIN DIN brake/step up/step down
- 5-PIN DIN RS232
- 5-PIN DIN RS423
- Other
NC Cams 02-26-2006, 05:02 AM Until the industry concurs on a "standard", I don't see how you're going to implement any one interface.
This is especially true in light of how the electronics industry seems to ash-can a standard for a new 'standard' whenever they run out of pins to do what they used to want to do.
Think how lame and chaotic our phone system would be if this approach were taken with that medium of communication. It is amazing what they can do and how much they can control with 2 dinky wires, isn't it???
Even the car industry (which thrived on the "just 1 more wire" approach) is starting to look at "buss" type controls to reduce wiring, save cost and weight.
I"d look at an optical interface for a standardized universal fits all controller - fiber optic 'light pipe' connect it to an adapter then let the adapter have whatever interface 'du jour' is needed....
JeremyLee 02-26-2006, 05:31 AM I did look rather carefully at using fibe-optics, but even the cheapest 5mm PMMA optic cable costs a few dollars a metre, which is about a hundred times more expensive than plain old copper wire. (You'd think plastic would be cheaper than metal, but no.)
It's a shame, because the intrinsic opto-isolation and electrical noise immunity makes fibre-optics a very attractive concept for motor control. Maybe one day when the cost drops... but then it's just as likely we'll go wireless.
pminmo 02-26-2006, 01:11 PM JeremyLee,
There is no standard. I simply picked the 10pin IDC as it is inexpensive, clean easy cabling. I tried to think through the 10pin interface in several aspects:
1. All necessary signals are on one row. (enable, dir, step, gnd, 5V (optional) The second row is ground termination, that interleives/isolates the logic level signals.
2. There is more than one way to terminate with connectors. 10 pin 2 x 5 .1in,
5 pin 1 x 5 .1in, 5 pin 1 x 5 .1 in polarized.
3. The 5V pin can be used to backfeed opto isolators, or shared to an interface.
Attached is a couple of pics of how you can use the polarized connector to connect up a screw type terminal drive such as a Gercko
JeremyLee 02-26-2006, 03:08 PM PMinMo's Phil said:
There is no standard. I simply picked the 10pin IDC as it is inexpensive, clean easy cabling. I tried to think through the 10pin interface in several aspects:
Actually, I think you've managed to create the closest thing there is to a de-facto standard! My prototype boards use your interface at the moment, and I was planning to contact you to make a suggestion about 'enhancing' it slightly to support serial protocols as well...
I'm using a PIC16F628, and I've assigned the STEP and DIRECTION pins to RB2 and RB1 respectively. Not only does this let me optionally use the inbuilt pull-up resistors, but these are the pins connected to the PIC's USART.
This means the DIRECTION pin doubles as the drivers RX/DT (Asynchronous Recieve, and Synchronous Data) pin, and STEP doubles as TX/CK (Asynchronous Transmit, and Syncronous Clock) from the drivers point of view.
I could have just as easily picked the opposite, but after long thought this seemed the right choice for the following reasons:
- "Direction" is an english synonym for "Instruction" or "Command", and so it seemed correct it should double as the drivers async recieve/sync data, since that's how the driver recieves commands.
- "Step" is sort of a logical synonym for the syncronous "Clock" signal.
- This allows the driver to self-configure on startup, by waiting for a serial byte to come in on DIR or a pulse to arrive on STEP. Whatever happens first sets the mode.
Of course, there's no such thing as a standard serial protocol for talking to stepper drivers either, but at least the PIC is programmable in that regard. Sorting out the electrical interface is the necessary precursor. Even if the stepper isn't actually commanded in serial mode, it's still a great way to set options through a console, rather than jumpers.
|
|