The Universal Stepper controller is a small board with everything needed to control a 2-, 3- or 4 axis machine tool with stepper motors except for the stepper drivers. It contains 4 digital rate generators to provide very smooth changes in step rate, 4 digital counters to count the step pulses, or alternatively encoder pulses, 16 channels of opto-isolated digital inputs, and 8 positions for Solid State Relays of your choice to be mounted. It is connected to a computer by the parallel port. The parallel port must be at least capable of bi-directional exchange of data, but EPP or ECP modes give the best data transfer rate. The digital I/O section also implements emergency stop logic. There is an on board watchdog timer, which can be set to cause an emergency stop in case the computer fails to update the rate generators in a timely fashion. This could shut off the stepper drivers, spindle motor, coolant, etc. For machines with more than 4 axes, 2 or more boards can be used together.
This board makes any step/direction drive appear to the computer as a servo system. Even if encoders are not used, the step rate generators provide a simulated encoder signal for the encoder counters to count. The computer reads the position from the encoder counters and computes a new velocity command to send to the rate generators. This takes only about 50 uS on a 333 MHz Pentium II, so that reasonable servo update rates of 10 KHz could be made on such a machine. I usually use 1 KHz, because that is all that seems needed for machine-tool type applications. This has nothing to do with step rates, however, as the board can still output smooth pulse trains at 300,000 steps/second. This way, a modest computer can perform at much higher step rates than a high-end computer using software generated step pulses.
The stepper rate generators divide a 10 MHz crystal clock by a minimum of 2 up to 224-1, which comes out to 5 MHz down to .596 Hz. These rates are adjustable in 100 nS steps, so extremely precise acceleration and deceleration ramps can be generated to allow the greatest speeds before the steppers stall or lose steps. Substantial logic prevents the direction from changing too close to a step pulse, and vice versa. The amount of setup time, and the width of the step pulses are individually programmable in 100 nS increments, from 200 nS up to a maximum of 25.5 uS. An additional switch setting makes the direction signal change state only at the beginning of a step pulse. This is the desirable mode for Gecko Drives.
The stepper outputs are available in both step/direction and full step phase signals. The phase signals are identical to the signals produced by a quadrature encoder, and are also fed to the encoder counters in systems where encoders are not used. These stepper ouputs are capable of sourcing or sinking up to 24 mA to drive opto-isolated inputs on your stepper drivers.
The encoder counters keep a continuous watch over the encoder signals (or rate generator phase signals) and can count up to 250,000 steps/second or encoder counts/second, per channel. They can also sense the index pulse from an encoder, or a home position switch or optical sensor for precise stepper homing without encoders.
The digital input section has 16 optoisolators which can sense the condition of switches, relays, pressure switches, float sensors, etc. to allow the machine to be stopped if a fault condition occurs, sense when an axis is close to the travel limit or home position, etc. The board provides isolated 5V power to power the switches and/or sensors.
The digital output section provides sockets for up to 8 Opto-22 compatible Solid State Relays to be mounted directly onto the board. These sites are left unpopulated to allow the user to select SSRs with the output configuration and current capacity needed. A terminal strip is provided for connection to the outputs of the SSRs. LEDs monitor the command signal to each of the SSRs.
The last digital input is configured to monitor an emergency stop chain. A series circuit of normally-closed switches breaks the continuity of the circuit when an unsafe condition or problem develops (ie. spindle motor stall, stepper driver overheat, lube level low, manual E-stop switch activated, etc.) An analog timer circuit can also monitor the flow of commands from the computer, and if the computer ceases updating the rate generators, then an E-stop can be caused. The E-stop condition turns off all signals to the solid state relays, as well as stopping the stepper rate generators, to bring the machine to a safe stop.
This boards contains a power regulator that produces all power needed by it from a provided 'wall-wart' type plug-in power supply.
The Universal Stepper Controller takes advantage of the IEEE-1284 hardware signalling protocol, allowing multiple register addresses to be selected and transfers accomplished with minimum CPU overhead, and maximum data transfer rate. This requires a parallel port that can operate in the ECP or EPP mode. It is possible to use any bi-directional parallel port at the cost of additional CPU overhead.
Pico Systems is currently delivering this board at an end-user cost of US $250.