Professional Documents
Culture Documents
High Performance Stepper System Controller
High Performance Stepper System Controller
CY545
www.ControlChips.com
All rights reserved; no part of this publication may be reproduced, except for personal and archival uses, without the prior written permission of: Cybernetic Micro Systems, Inc. P.O. Box 3000, San Gregorio, California 94074 USA. Tel: 650-726-3000 Fax: 650-726-3003 www.ControlChips.com [email protected]
01/28/02
Table of Contents
www.ControlChips.com
TA F CO S OF TS NT EO EN LE TE BL NT AB ON
Table of Contents
Table of Contents..................................................................................................................... ii Table of Contents.................................................................................................................... ii Chapter 1 - Introduction to the CY545 .................................................................................... 1 CY545 Stepper System Controller...................................................................................... 1 Basic Features ............................................................................................................... 1 Motion Control Functions................................................................................................ 2 Motor Support Signals .................................................................................................... 2 General Command Functions and Special Features....................................................... 3 Prototyping Board Support ................................................................................................. 3 CY545 Stepper Motor System Controller............................................................................ 4 Chapter 2 - Pinout & Package Overview................................................................................. 5 CY545 Dip Pinout & Dimensions ........................................................................................ 5 CY545/J PLCC Pinout & Dimensions ................................................................................. 6 CY545 DIP & CY545/J PLCC Pin Descriptions .................................................................. 7 Chapter 3 - Command Interfaces ...........................................................................................11 Command Interfaces .........................................................................................................11 Parallel Interface ...............................................................................................................11 CY545 Interface to CY233 Network Control Chip ..............................................................11 The CY545 Serial Interface ...............................................................................................12 Chapter 4 - Command Summary............................................................................................15 CY545 Command Summary..............................................................................................15 Command Formats............................................................................................................16 ASCII Command Format ...................................................................................................16 Binary Command Format ..................................................................................................17 Chapter 5 - Motor Control Commands...................................................................................18 Motor Control Commands .................................................................................................18 Set Stepping Rate .............................................................................................................18 Set Count and Direction ....................................................................................................18 Set Step Mode ..................................................................................................................19 Moving the Motor ..............................................................................................................20 Position Counter Wrap-around........................................................................................20 Chapter 6 - Bit Function Commands .....................................................................................21 Bit Function Commands ....................................................................................................21 User Bits ...........................................................................................................................21 Bit Dependent Jump and Wait ...........................................................................................22 Step/Test/Seek Home Command ......................................................................................24 Special Note Regarding Older Versions ........................................................................24
ii
Table of Contents
www.ControlChips.com
Chapter 7 - External Memory Commands .............................................................................25 External Memory Support Commands...............................................................................25 External Memory Address Pointer .....................................................................................25 Writing Commands into Memory .......................................................................................25 Running From External Memory........................................................................................26 Example ............................................................................................................................28 Chapter 8 - Program Branch Commands ..............................................................................29 Jump and Loop .................................................................................................................29 Nested Loops ................................................................................................................29 Chapter 9 - Operating Mode Command .................................................................................31 Operating Mode Command ...............................................................................................31 Chapter 10 - Miscellaneous Commands................................................................................35 Initialize Command............................................................................................................35 Time Delay Command.......................................................................................................35 Query Command...............................................................................................................36 Display CY545 Status....................................................................................................36 Display Memory Contents..............................................................................................37 Message Display Command..............................................................................................38 Embedded Control Characteristics and Their Use: ........................................................38 Hewlett Packard (HP) LED 8 Digit Display.........................................................................38 LED Display Details.......................................................................................................39 Chapter 11 - CY545 Example Circuits....................................................................................40 Three Example Cases.......................................................................................................40 CY545 Example Circuit Minimum Serial Configuration ...............................................40 CY545 Example Circuit Minimum Parallel Configuration.............................................41 CY545 Example Circuit Maximum Configuration ........................................................42 Chapter 12 - External Memory Support .................................................................................43 Memory Read/Write ..........................................................................................................43 Auto-Start Feature for Stand Alone Operation.................................................................44 Chapter 13 - Thumbwheel Switch Support............................................................................46 Thumbwheel Switch Support.............................................................................................46 CY545 Thumbwheel Switch Parameter Addresses ..........................................................49 CY545 Thumbwheel Circuit Diagram ................................................................................50 Chapter 14 - CY545 Output Display Support.........................................................................51 Output Format ...................................................................................................................51 Output to LCD (CY325-Based) ..........................................................................................51 Output to Parallel Device (Including CY233 Network Chip) ..............................................52 Output to 8-Digit LED Display............................................................................................52 Chapter 15 - CY545 Prototyping Support ..............................................................................54 The CYB-545 Prototyping Board .......................................................................................54 CYS-545 Panel Software...................................................................................................55 CyberCom Console Software ............................................................................................55 The CYB-233 Prototyping Board .......................................................................................56 The CYB-003 Prototyping Board .......................................................................................57
2002 Cybernetic Micro Systems iii Table of Contents
www.ControlChips.com
Chapter 16 - Timing and Control............................................................................................58 Timing and Control ............................................................................................................58 The Parallel Handshake ....................................................................................................58 Immediate Commands During External Memory Program Execution ...........................59 The Serial Interface ...........................................................................................................62 External Memory Control Signals ......................................................................................63 Special HP LED Display Control Signals ...........................................................................65 Thumbwheel Switch Interface Control Signals...................................................................66 Stepper Motor Interface Signals ........................................................................................67 PULSE and CWW .........................................................................................................67 STOPPED .....................................................................................................................69 SLEW ............................................................................................................................69 INHIBIT_ABORT ...........................................................................................................70 CW_LIMIT and CCW_LIMIT..........................................................................................71 JOG Mode Operation ....................................................................................................72 Automatic Position Display ................................................................................................73 Home Signal..................................................................................................................73 Chapter 17 - CY545 Step Rate Information............................................................................75 CY545 Step Rate Information............................................................................................75 The Slope Parameter ........................................................................................................75 Optimal Acceleration Curves .............................................................................................76 Acceleration Curve as a Function of R ..............................................................................76 Slope and Elapsed Time ...................................................................................................77 CY545 Slope Curves.........................................................................................................78 CY545 Step Rate Table @ 11 MHz...................................................................................81 CY545 Step Rate Table @ 12 MHz...................................................................................82 CY545 Step Rate Table @ 14.75 MHz ..............................................................................83 CY545 Step Rate Table @ 16 MHz...................................................................................84 Chapter 18 - Electrical Specifications ...................................................................................85 CY545B Electrical Specifications.......................................................................................85 Electrical Conventions.......................................................................................................85 Reset Circuitry...................................................................................................................85 Clock Circuits ....................................................................................................................86 Chapter 19 - Circuits and Examples ......................................................................................87 Variable Stock Cut and Punch...........................................................................................87 Driver Circuit Considerations.............................................................................................89 Interfacing to the 8255.......................................................................................................92 Operating Several CY545s Using a Common Data Bus ....................................................93 Synchronization of Two CY545s........................................................................................93 Coordination of Several CY545s .......................................................................................94 Example Programs and Waveforms ..................................................................................95 ASCII and Binary Data Programming Examples................................................................96 Chapter 20 - Getting Your CY545 Running............................................................................97 Getting Your CY545 Running ............................................................................................97 BASIC Language CRT Emulation Program .......................................................................99 Changes from CY545 to CY545A....................................................................................101 Changes from CY545A to CY545B .................................................................................101 Stepper Motor Controller Selection Guide .......................................................................102
2002 Cybernetic Micro Systems iv Table of Contents
www.ControlChips.com
We believe this device offers all of the features you want to implement sophisticated motion control systems at very low cost. For example, our CY500, CY512 and CY525 controllers work best in systems with a host computer that issues single commands, or sequences of commands as a program, to the controller, and then tends to other system functions while the Stepper Motor Controller is running the motor. Maximum performance is gained when the host CPU is closely coupled to the Stepper Motor Controller IC. While the CY545 is also capable of working with a host CPU in a closely coupled fashion, the CY545 contains extensions that allow it to function very well in a stand-alone system. In fact, it is possible to base a simple controller design around the CY545, and operate a machine with no CPU at all, bringing the benefits of intelligent, programmable stepper motor control to applications that do not justify a host computer system.
Basic Features
Single 40 pin 5 volt CMOS integrated circuit Simple ASCII letter based commands and parameters Simple application for basic stepper motor functions Operation with a host computer or stand alone Built-in Display interfaces for alpha-numeric LED or LCD
www.ControlChips.com
Programmable step rates from 20 steps/sec to over 27,000 steps/sec provide extremely large dynamic range. Linear acceleration curves for optimum performance. Partial accelerations make short moves in the least time. Separate parameters for starting rate, final rate, and acceleration values allow totally programmable motions. Relative moves of +/- 16 Mega steps from current position. Absolute moves within a 16 Mega step range. Continuous moves with no specific number of steps, allow acceleration from the starting rate to the final rate, followed by an indefinite run length. Internal step position updated during all motions.
www.ControlChips.com
www.ControlChips.com
www.ControlChips.com
www.ControlChips.com
www.ControlChips.com
1 2
1 2 3
NC PULSE/ CCW
No connection Step pulse output, one pulse per step Step direction
These pins run the stepper power driver. A high level on the direction signal indicates counter clockwise direction, while a low level indicates clockwise direction. The Pulse signal is normally high, going low at the beginning of each step.
DIP PLCC Pin Name Description
(O)
STOPPED
This signal may be used to indicate motion complete, by its high level. It may also control power selection for the stepper driver, switching between high power for stepping, and parking power while stopped.
DIP PLCC Pin Name Description
4 5
5 6
(I) (I)
CW_LIMIT/ CCW_LIMIT/
If either signal is low, it indicates a limit has been reached. The CY545 will not continue stepping in that direction until the limit signal is removed. Normal stepping is allowed in the opposite direction.
DIP PLCC Pin Name Description
(I/O)
JOG
This signal is the manual stepping control input. When it is floating, the CY545 will not jog. However, if the signal is connected to ground, the CY545 will jog in the CW direction. The jog step rate is derived from the First Rate parameter and the normal Step Rate Table, by dividing the selected rate by 20. This gives a range of about 1 step per second to about 1000 steps per second. The input signal is always enabled, and is tested by the CY545 while it is not executing another command.
DIP PLCC Pin Name Description
7 8
8 9
(I/O) (I)
SLEW/ INHIBIT_ABORT/
This signal group indicates and controls motion status. SLEW/ indicates when the maximum selected step rate has been achieved. If externally driven low at the beginning of a motion, it also selects the continuous step mode. INHIBIT_ABORT/ can hold off motion at the start or force an early down ramp, then stop motion when the CY545 has ramped down to the starting rate.
2002 Cybernetic Micro Systems 7 Chapter 2 - Pinout & Package Overview
www.ControlChips.com
9 10 11
10 11 12 13
CY545 hardware reset, active high pulse Received serial data into CY545 No connection Transmitted serial data from CY545
These are TTL level serial data signals that can be used to issue commands to or get replies from the CY545. Addition of an RS-232 voltage level driver/receiver, such as the Maxim MAX233, allows any RS232 device, such as the IBM PC COM1 port to talk directly to the CY545.
DIP PLCC Pin Name Description
12
14
(O)
SW_SEL/
Switch select
This signal is active when the CY545 is reading a parameter value from external thumbwheel switches. The switch address is generated by the parallel data bus.
DIP PLCC Pin Name Description
13
15
(I)
IO_REQUEST/
This signal is driven low when a parallel command is issued to the CY545. It is used as part of the parallel command handshake. If the parallel command function is not used, this signal may select a fixed serial baud rate as follows: 0 = 300 baud, 1 = 2400 baud, F = 9600 baud
DIP PLCC Pin Name Description
14
16
(I/O)
XMEM_SEL/
This signal goes low when the CY545 reads or writes to the local external memory. Data and addresses are generated by the parallel data bus. Up to 64K bytes of external memory are supported. When this signal is driven low at power-up or reset, the CY545 will not test for the Auto Start key sequence or automatically execute commands from the external memory.
DIP PLCC Pin Name Description
15
17
(I/O)
BUSY/
BUSY/ is used with IO_REQUEST/ to implement the two line parallel command handshake. This signal indicates that the CY545 has accepted a parallel data character from the device driving the IO_REQUEST signal. If the parallel handshake is not used, this pin may be tied low to select fixed baud rates through the IO_REQUEST signal.
www.ControlChips.com
16 17
18 19
(O) (O)
WR/ RD/
These strobes are active while the CY545 is reading from the external thumbwheel switches, display, or memory, or while it is writing to the external display or memory.
DIP PLCC Pin Name Description
18 19
20 21
(I) (I)
XTAL2 XTAL1
An external crystal or clock source is connected to these pins, with a value between 3.5 MHz and 16 MHz. For serial communications, an 11 MHz crystal will give standard baud rates.
DIP PLCC Pin Name Description
20 DIP
22 23
PLCC
(I) (O) (I/O) (I/O) (I/O) (I/O) (I/O) (I/O) (I/O) (I/O)
VSS NC
Pin Name
21 22 23 24 25 26 27 28
24 25 26 27 28 29 30 31
User selectable function, bit 0 User selectable function, bit 1 User selectable function, bit 2 User selectable function, bit 3 User selectable function, bit 4 User selectable function, bit 5 User selectable function, bit 6 or FPL/ or CTS/ User selectable function, bit 7 or HP_SEL/
This group of signals is used for multiple, user selectable functions, including bit set and clear, bit test and branch, wait for signal value, and auto home functions. Any function may be performed on any bit. Bits 6 and 7 also have fixed alternative functions of CY233 FPL control and local parallel HP display selection if these features are used with the CY545. If the application does not use a CY233, CTS/, or HP display, these bits may be used for any other functions.
DIP PLCC Pin Name Description
29 30
32 33
(O) (O)
RESERVED ALE
The ALE signal is used to demultiplex the lower byte address from the data bus during external memory, display, or thumbwheel switch operations.
DIP PLCC Pin Name Description
31
34 35
(O) (I)
NC TEST
www.ControlChips.com
32 33 34 35 36 37 38 39
36 37 38 39 40 41 42 43
D7 D6 D5 D4 D3 D2 D1 D0
Parallel data bus, bit 7, MSB Parallel data bus, bit 6 Parallel data bus, bit 5 Parallel data bus, bit 4 Parallel data bus, bit 3 Parallel data bus, bit 2 Parallel data bus, bit 1 Parallel data bus, bit 0, LSB
This group is the parallel data bus, used to read or write parallel data. During access to external thumbwheel switches, memory, or display, the lower byte of the device address is presented on these lines just prior to the data transfer. Parallel commands are also accepted by the CY545 on these lines, using the handshake control signals. These lines are open drain, so external pull-up resistors are required when they are used as outputs.
DIP PLCC Pin Name Description
40
44
(I)
VCC
10
www.ControlChips.com
C S ES CE D IN AC ND FA AN RF MA ER MM TE HA AP PT TE ER R3 CH 3 - CO OM NT Command Interfaces
The CY545 supports two basic command interfaces, a parallel interface and a serial interface. These signals are similar to functions on other CYxxx controllers from Cybernetic Micro Systems.
Parallel Interface
The parallel interface uses two handshake lines, IO_REQUEST and BUSY. When you wish to send a command character to the CY545, you first check that it is not busy; the BUSY signal should be high. You then place the character to send on the parallel data bus lines. Be sure to drive all 8 data lines. Next, you drive the IO_REQUEST signal low, indicating that a character is available Now, wait for the CY545 to go busy, with a low level on the BUSY signal, indicating that the CY545 has read the command character. Finally, you remove the character from the data bus and drive the IO_REQUEST line high again. This function is repeated until all command characters have been issued to the CY545. In direct command mode, the CY545 executes every command as it is received. This means that the CY545 will go busy for a longer period of time with the last character of a command, while the command is actually executed. For long time delays or long motions, this time could be many seconds. This parallel interface is compatible to that of other CYxxx control chips. It is also compatible with the CY233 Network Controller, so you can command several CY545s from a computer serial port, using a CY233 as a network front end to each CY545.
11
www.ControlChips.com
The CY233 Network Control chip allows you to connect up to 255 devices to a single RS-232 serial communications line such as an IBM-PC COM1 or COM2 port, with unique addresses assigned to each device. The CY233 Network is ideal for distributed systems where central control is required but very high speed communication is unnecessary.
12
www.ControlChips.com
When the IO_REQUEST line is left floating, 9600 baud is selected. When tied high, 2400 baud is selected, and when tied low, 300 baud is selected. For these fixed rates to be correct, the CY545 must be operated with an 11 MHz crystal clock. Other values will scale the baud rate linearly by the difference in crystal frequencies.
An alternative method of selecting the baud rate is through a parallel Mode command. For this command, nine baud rate selections are available, from 300 to 57600, plus the self adaptive rate. Details of the Mode command are described in a later section. Note that the selection of fixed baud rate mode through the BUSY and IO_REQUEST lines, gives up the use of the parallel handshake interface, since the lines are used to select the baud rate. This is fine if only the serial interface will be used. However, if both interfaces must be used on the same CY545, the baud rate may only be set adaptively, or through a parallel Mode command. The adaptive serial mode is CY545 can drive it at power receives two carriage return reset (hardware or software). commands may be sent. chosen by default, when the BUSY signal is left floating, so the up. In this mode, the serial baud rate is not set until the CY545 codes. Be sure to send these characters after power up or any Once the two carriage returns have been received, normal CY545
When working with the serial interface, the best crystal frequency for the CY545 is 11 MHz. This will provide the largest baud rate operating range, with the least baud rate error. Internal timer resolution of the CY545 will limit the available rates, especially at the high end. At 11 MHz, standard rates up to 19200 baud may be selected. Note that other CY545 functions, such as the step rates and time delays, have been calibrated for a 12 MHz clock source. This means these functions will run somewhat slower when 11 MHz is used. Changes to the relevant parameter values can compensate for some of this difference. Alternatively, a 12 MHz clock will work fine, if the selected adaptive baud rates are always 4800 baud or less. When operating the CY545 at 16 MHz, internal timer resolution still limits the reliable operation of the serial interface to 4800 baud or less. The error at higher baud rates may be too great for consistent communications.
13
www.ControlChips.com
However, there is a crystal frequency of 14.7456 MHz at which the CY545 can be operated in the adaptive mode. With this frequency, the internal resolution of the CY545 baud rate timer allows it to adapt to all standard baud rates from 300 to 19,200 baud, plus two higher, nonstandard rates of 38,400 and 76,800 baud. Also, the CY545 serial interface works on a fixed format character, which is always 8 data bits, with no parity bit, and one stop bit. All 8 data bits are used to interpret the command character values, so be sure to send the proper 8 bit codes for the various ASCII command characters. Finally, the CY545 optionally implements a Clear to Send signal ("CTS/") which may be used by the host system to indicate when the CY545 is busy processing a command. No additional characters should be sent to the CY545 while CTS/ is off (TTL high). Once the CY545 has finished processing the current command, CTS/ will be enabled again, indicating that the CY545 is ready for more serial characters. The polarity of the CY545 CTS/ signal allows it to be connected directly to your host system CTS RS-232 signal, through a standard RS-232 line driver. No additional logic is required. The CTS/ signal shares functions with User Bit 6, which is also the CY233 FPL/ signal. Since the signal has multiple functions, the CTS/ function is disabled at power on or any restart operation. You must issue a Mode command with MBit 5 set in order to enable the CTS/ signal. See the later section on the Mode Command for more details.
14
www.ControlChips.com
15
www.ControlChips.com
Command Formats
The CY545 supports several different command formats, which can be split into two major categories, ASCII format and Binary format. Most examples in this manual will illustrate ASCII formats, and we believe this will be the most popular mode of operation. The main advantage to Binary format is a savings in the number of characters needed to represent a parameter value, so Binary format commands will usually take fewer characters than ASCII format commands. However, Binary format commands are more difficult for humans to read, and if the CY545 and host computer become unsynchronized in Binary mode, due to a faulty data count, it is extremely difficult to resynchronize the two without a hardware reset.
Commands with parameters may use two formats for the parameter values in the ASCII mode, a decimal format, consisting of the digits 0 to 9, or a hex format, consisting of the digits 0 to 9, letters A to F, and an H suffix. Hex parameters must start with a digit. For example: R 135<cr> R 87H<cr> R ABH<cr> R 0AB<cr> R 0ABH<cr> D 12345<cr> D 1A3BH<cr> L 37,27<cr> L 23H,27<cr> Rate command, single decimal parameter Same parameter value, but in hex form Illegal parameter, no digit to start Illegal parameter, no H suffix Parameter value ok 16 bit parameter value in decimal 16 bit parameter value in hex Loop command, multiple parameters Parameter formats may be mixed
Parameter values may be entered with any number of digits, but the command will limit the value to a single byte if the range of the parameter is only one byte. For example: R 0ABCH<cr> R 350<cr> Value is taken as 0BCH = 188 Value is taken as 94 = 350 - 256
Sixteen bit parameters are limited to 65535 (0FFFFH), and eight bit parameters are limited to 255 (0FFH), while the 24 bit parameters, used for position and step counts, are limited to 16777215 (0FFFFFFH). All arguments are unsigned integers.
16
www.ControlChips.com
The following sections describe each of the CY545 commands. The commands have been organized into groups of related functions.
17
www.ControlChips.com
The rate parameters for Rate and FirstRate are single byte values that select the initial and maximum step rates for the motor. These parameters are pointers into the CY545 Rate Table, shown in a later section of this manual. The actual step rate in steps per second comes from a combination of the Rate Table and the operating frequency of the CY545. The step per second values of the Rate Table have been computed for a crystal frequency of 12 MHz. The use of other frequencies causes a linear scaling of the rates, and may be derived by multiplying the given rates by Fcy/12, where Fcy is the actual crystal frequency (in MHz) used for the CY545. The slope parameter for the Slope command determines how quickly the CY545 accelerates and decelerates while stepping. It is also a single byte value, and should range from 1 to 255. Slowest accelerations are selected by small values of slope, while fast accelerations use larger values for slope. In practice, you must experiment with the slope parameter value to determine the optimal acceleration for your specific application. Initial values in the 175 to 225 range might be tried, with adjustments made as required. Acceleration and deceleration are symmetrical, and are controlled by the single slope parameter. For small values of slope, the CY545 can take a very large number of steps to go from the initial rate to the maximum rate. If the distance to travel is too short to allow the CY545 to reach the maximum rate, it will perform a partial acceleration, reaching the highest possible rate under the current slope parameter, before having to decelerate to stop at the target position.
18
www.ControlChips.com
The Number command specifies the number of steps the CY545 is to take in the relative step mode. It uses a 24-bit parameter, so the CY545 can travel + or - 16 million steps from its current position in the relative mode. No stepping occurs when the Number command is issued, the command simply defines the number of steps to take, and this value is stored in an internal N register of the CY545. The + command selects the clockwise direction for stepping. This command causes the CCW signal to go low. The - command selects the counter-clockwise direction for stepping. The CCW signal will go high when this command is used. Also, stepping direction may be controlled externally, by driving the CCW pin with the desired level. If this function is used, the - command should be issued, so the CCW signal is high. It can then be pulled low externally to force clockwise stepping. If the CCW pin is being driven low by the CY545, it is a stronger sink device, and will require a very strong external signal to force the pin into the high state for CCW stepping. However, if the CCW pin is held high by the CY545, from a - command, it can easily be driven low for CW stepping.
The At command sets the current position kept by the CY545 to the value of its parameter. This number is a 24-bit value, so any position from 0 to 16777215 may be specified. Normally, this command is used after stepping to a known mechanical position, such as a home position sensor, and can calibrate the CY545 to make this position always be the same number. While the CY545 is stepping, the internal current position is always updated. The position is incremented during CW stepping, and decremented during CCW stepping. You may query the CY545 for its current position while it is not stepping. The position value is not too important for relative mode stepping, in which the direction and number of steps are specified. However, it is very important for absolute mode stepping, in which a target position is specified, and the CY545 computes the direction and number of steps required to reach the target. The Continuous command sets a special step mode in the CY545. In this mode, the CY545 will accelerate from the initial rate to the final rate, and then run continuously. It will not ramp down or stop at any particular position or number of steps. In order to stop a continuous motion, the INHIBIT-ABORT signal must be pulled low, forcing the CY545 into a deceleration mode, and then be kept low to stop the CY545. The CY545 will stop, after it has decelerated to the starting rate, if the INHIBIT _ABORT signal is still low. The continuous mode is set by the C command, but stepping does not begin with this command. The continuous mode may also be selected by external signal. This is done by forcing the SLEW signal low as the CY545 starts stepping.
2002 Cybernetic Micro Systems 19 Chapter 5 - Motor Control Commands
www.ControlChips.com
The Go command selects relative mode stepping. The CY545 will step based on the last Number of steps specified and the selected step direction. A continuous mode step motion may also be started by this command. Absolute mode stepping is selected by the Position command. This command both specifies the desired target position and starts the motion. When the target is specified, the CY545 will compute the number of steps to take and the direction of motion, based on the current position register. If the target position is greater than the current position, the CY545 steps in the CW direction. If the target position is less than the current position, the CY545 steps in the CCW direction. Recall that the current position is defined by the At command, and is updated with every motion. It is a 24-bit value, ranging from 0 to 16777215. The Position command limits stepping to a number of steps within this range.
20
www.ControlChips.com
User Bits
One command allows you to set or clear specified bits. It is: B Bit Set or clear specified bits
When in the ASCII mode, this command also allows a special format, using a complement prefix to mean the inverted value of the specified bit parameter. The prefix is the / character, and is used as follows: B 2<cr> /B 2<cr> Set User Selectable Bit 2 high Clear User Selectable Bit 2 low
The same function may be performed by the bit parameter value. When a / character is detected, it simply complements the fourth bit of the bit value parameter, so the same functions as above can be specified by: B 02H<cr> B 12H<cr> Set Bit 2 Clear Bit 2
The / character is equivalent to performing an exclusive OR (XOR) of the bit number parameter and the value 10H (16 decimal). The value of the Bit parameter will determine what action to take, as follows: 00H to 07H 08H to 0FH 10H to 17H 18H to 1FH 20H to 3FH 40H to 7FH . 80H to 0BFH. 0C0H to 0FFH. ( ..0-7) ( .8-15) ( 16-23).. ( 24-31).. ( 32-63). ( 64-127). (128-191). (192-255). Set one of user bits 0 to 7 Set one of data bus bits 0 to 7 Clear one of user bits 0 to 7 Clear one of data bus bits 0 to 7 (Same as 00H to 1F) Set user bits 0 to 5 at one time AND user bits 0 to 5 OR user bits 0 to 5
As seen from the above values, the bit argument is composed of an opcode part and an operand part. The general coding of bit arguments is shown below:
21
www.ControlChips.com
The 00 opcode specifies that one bit is to be operated on. The three least significant bits identify the bit, while two other bits specify the bit group (user or data bus) and the operation (set or clear). One argument bit is not used in single bit operations. If the opcode is non-00, then all six bits are operated on as a group, with the relevant opcodes shown below.
The actual application will constrain the number of User Selectable bits that are available. When all features of the CY545 are used, only User Selectable bits 0 to 5 are available for general purpose functions. If the CY233 is not used, or the parallel Hewlett Packard LED display is not used, bits 6 and/or 7 will also be available. Finally, if the parallel command interface is not used, and there is no local memory or HP LED display, the CY545 data bus lines will also be free, and can be addressed as bits 8 to F of the Bit command. These special function lines can only be tested or changed on an individual basis. NOTE: Setting or clearing these Special Function bits when associated hardware is present could cause unwanted interactions between the CY545 and the hardware. Also, the CY545 will change the values on these signals as required for normal support of the hardware. Be sure to manipulate only those signals that are available to the application. Since User Selectable bits 0 to 5 will always be available to the application, they can be treated as a group, rather than as individual signals. The most significant two bits of the Bit command parameter value indicate this selection. If any of these two bits is a 1, the lower 6 bits of the value are treated as a group to modify USRB0 to USRB5 all at once. Options are to set all six bits at once, as specified by the parameter value, to logical AND the parameter value with the six bits, and to logical OR the parameter value with the six bits.
www.ControlChips.com
Both commands compare the value of the I/O signal to the value specified by the parameter. Note that USRB0 to USRB5 can be treated as a single group of six bits, with the value test comparing all six bits to the lower six bits of the parameter. Any other bits can only be tested on an individual basis. The Til command will jump to the specified byte address until the signal(s) match the parameter value, either a low or high level. When there is a match in value, the Til command does not take the jump, and execution falls through to the command after the Til command. The Til command is only used in an external memory program, since it will jump or fall through, depending on the bit value. The address of the jump is a single byte, limiting the jump to an address on the same 256 byte page as the command after the Til command. The TIL command may jump to itself. The Wait command simply waits for a match of the bit(s) against the parameter value. When there is no match, the CY545 stays in the Wait command, and continually tests the signals until a match occurs. Once a match is detected, the CY545 will continue with the next command. If you issue a new command either in parallel or serial format while the CY545 is stuck in a Wait command, the CY545 will abort the Wait function and act on the new Y 100<cr> Program start address. command. This is a mechanism for E<cr> Next instructions go into memory. breaking out of Wait commands that are stuck because the proper bit W 1<cr> Wait til USRB1 = 1. pattern does not occur. The Wait command is normally used in an external memory program, to synchronize the CY545 with some external control or status signal. For example, move a part into place, activate some operation by changing a user bit, wait for a signal back from the operation indicating operation complete, then remove the part. The example illustrates the use of Wait and Til commands for the operation described above:
2002 Cybernetic Micro Systems + <cr> G<cr> /B 2<cr> W 11h<cr> <cr> G<cr> B 2<cr> T 10h,100<cr> 0<cr> Q<cr> Y 100<cr> X<cr> Go (200 steps by default). Drive USRB2 = 0 as signal. Wait til USRB1 = 0. Return same number of steps. Drive USRB2 = 1 again. Test USRB0 & jump unless it is 0 then fall thru and stop the program by returning to command mode. End of program definition. Reset the address. eXecute the above program.
23
www.ControlChips.com
The values of the parameters for this command are treated the same as the Til and Wait commands. That is, for the Home command, the bits are tested for a match to the parameter value. As the CY545 steps the motor for this command, it will run at a constant step rate, with no acceleration or deceleration. The desired step rate is chosen by the First Rate parameter, set by the F command. The actual step rate is a derivative of the rates in the CY545 Step Rate Table. For the Home command (and the Jog pin function), the CY545 will divide the selected rate by 20. When operating at 12 MHz, this gives a range of about 1 step per second to about 1000 steps per second for this command. The Home command starts by testing the specified bit pattern for a match with the external signals. If there is a match, the CY545 will begin by stepping in the CCW direction, and will continue in this direction until there is no longer a match. When there is no match between the bit parameter and the external signals, the CY545 steps in the CW direction. It will continue to step in this direction until the signals match the parameter value. At this point the CY545 stops, and sets the current position to zero. Thus, the Home command steps the motor to seek the edge between a match and no match condition on the home signal. The CY545 then stops at the first step where a match occurs, and is always stepping in the CW direction looking for this match. This mechanism should always seek the same mechanical position, since any directional backlash is compensated by using the same CW step direction in seeking the final home position. If the CY545 runs into one of the limits while looking for the home signal, it will abort the home command and stop stepping. The current position is not changed to zero in this case.
24
www.ControlChips.com
The 16 bit argument to the Y command is placed into the memory address register of the CY545. Other commands may use this value for their functions. The Y command does not change modes or other features of the CY545, so when issued as a direct command, it simply sets up the address pointer. The CY545 will then wait for the next command. However, when the Y command is executed from external memory, redefining the address pointer causes the CY545 to execute commands from the new address, so the Y command becomes a 16-bit jump command. This dual function allows you to specify the working address when defining the memory contents, and jump to any location of the memory when running from the memory contents.
The Enter command is issued to the CY545 in the direct command mode. Once this command is executed, the CY545 changes to the program entry mode. All following commands will be written to the external memory. The CY545 will not execute any of the commands, it simply writes them into the memory. Commands will be written to memory starting at the current address set by the Y command, and the address pointer will increment once after writing each command character. The memory contents consist of a string of characters, and are identical to the characters issued to the CY545 in direct command mode. Every character sent to the CY545 will be recorded in memory exactly as it is sent to the part. The memory writing function continues until the CY545 receives a Quit command. It then returns to the direct command mode, in which every command is executed immediately as it is received. The address pointer value now contains the address where the next character would have been written, and the difference between the starting value and ending value will indicate
2002 Cybernetic Micro Systems 25 Chapter 7 - External Memory Commands
www.ControlChips.com
the amount of memory required for your program. Before running the program, the Y command should be used to redefine the pointer value for the start of the program. Note that the carriage return character is optional after the Quit command in the ASCII command mode, and a data count is not used after the Quit command in the Binary command mode.
The Execute command changes the CY545 from the direct command mode to the program execution mode. Your program will begin running from external memory, at the current address in the address pointer. The X command would normally be preceded by a Y command to set the program starting address. In the program execution mode, the CY545 will begin reading command characters from the memory, incrementing the address pointer after every read operation. When an entire command has been read into the part, that command is executed similarly to directly issued commands. When the current command is finished, the CY545 will read the next command from memory and execute it. This process continues until the CY545 finds a stop command. The Zero command (ASCII character 0, not binary value zero) is the stop execution command. When this command is executed, the CY545 changes from program execution mode back to direct command mode. It then waits for the next command to be issued by the host system. Note that in the Binary command mode, the binary value zero should be used for the stop execution command, followed by a zero value data count.
26
www.ControlChips.com
You may also issue commands to the CY545 while it is running a program from external memory. The CY545 will process these commands between the commands read from the memory. The ability to issue direct commands while the CY545 is running an external memory program provides a degree of "live" interaction, allowing you to change parameters or modify the execution flow by the direct commands. It is even possible to halt a program, by issuing the Zero command! Note: A special feature of the CY545 is the ability to automatically run an external program at power-up, or whenever the CY545 is reset. See the "Auto-Start" feature in chapter 12 on External Memory Support.
27
www.ControlChips.com
Example
From this discussion, you can see that one command controls the basic memory addressing function, while two pairs of commands control the definition of memory contents and execution of memory contents. A simple example is shown below: F 15<cr> S 200<cr> .... Y 50<cr> E<cr> Define some parameters in direct mode Additional commands are possible here Set memory pointer to address 50 Start program entry at location 50
The following highlighted code is written to memory, but not executed: N 400<cr> . +<cr> G<cr? D 1000<cr> N 350<cr>| -<cr>. G<cr> D 750<cr> . 0<cr> Q<cr> ....... Y 50<cr> . X<cr>. First command in external memory Take 400 CW steps Delay for 1 second (1000 msec) Reset number of steps Take 350 CCW steps Delay for 0.75 seconds Stop, last command in external memory End of program definition Other direct mode commands may be here Reset address pointer to prog start Execute. Begin running the program
The program in the external memory will run after the X command, and will continue until the stop command is found. The program takes two relative motions, with different numbers of steps, and in different directions. When the Stop command is seen, the CY545 goes back to direct command mode and waits for the next command. The program could be repeated by sending the Y and X commands again, since the program continues to reside in the external memory. If non-volatile external memory is used, such as an EEPROM, the program will be stored in the memory even when power is removed from the CY545 system. So, once a program is defined, it may be used over and over, by simply pointing to the program address and sending the Execute command. More hardware details about external memory support are provided in a later section.
28
www.ControlChips.com
In addition to the above commands, the Y command, when executed from a program, provides a 16 bit jump that can reach any address of the external memory. The above listed commands all use an 8 bit address value. This restricts the range of addresses to the 256 bytes of the current memory page. When a jump is taken, the lower byte of the current address pointer is replaced by the 8-bit address parameter value, and program execution continues at this new 16-bit address. If one of the above commands lies on a page boundary, the address pointer is incremented before the command is executed, so the branch would be taken into the new page of the memory, not the previous page that started the command. The Jump command simply provides a short version of the branch function. It can reach any address on the current memory page. The Loop command provides a repeated branch, with a specified number of iterations. Both parameters are byte values, so a loop may be repeated 255 times, and the branch must be to an address on the current page. The Zloop command also provides a repeated branch. However, the repeat count is a 16-bit value, so the Zloop may be repeated up to 65535 times. The branch is still restricted to an address on the current page. For both loop commands, the instruction following the loop is executed when the loop count is exhausted.
Nested Loops
The combination of the Loop and Zloop commands provides two levels of nesting to loops. Only one of each type of loop may be active at a time. That is, a number of loops may reside within one zloop, or a number of zloops may reside within one loop. However, one loop may not reside within another loop, and one zloop may not reside within another zloop. This is shown below:
2002 Cybernetic Micro Systems 29 Chapter 8 - Program Branch Commands
www.ControlChips.com
Recall that the CY545 also supports a branch command using the bit instructions, the Til command. It tests the I/O signals against the specified bit parameter value, and jumps if the values do not match. Otherwise execution continues with the instruction after the Til command.
30
www.ControlChips.com
O Mode
The parameter of the Mode command is stored in an 8-bit internal CY545 register. These bits are only accessible by the Mode command, not through any external I/O lines, such as the User Bits. Each bit of the Mode command register controls a CY545 feature, as shown below: MB7 MB6 MB5 MB4 MB3 MB2 MB1 MB0 Select ASCII command mode if set, else Binary Select serial baud rate if set Enable CTS/ signal on USRB6 if set (CY545A and later) Display position during Jog & Home cmd if set reserved Select HP Display if set & MB0 = 1 Select CY325 based display if set & MB0 = 0 Select parallel display if set, else serial
The Mode command will define the values for all 8 bits of the register at once, so you must be careful not to affect the value of one feature while changing the value of another. The default value for the mode register is 80H at power up. This selects the ASCII command mode with
The most significant bit selects between ASCII command mode and Binary command mode. When the bit is set, ASCII mode is selected, and when the bit is clear, Binary mode is selected. When you use Binary command mode, you must first issue an O command in ASCII mode that turns off the upper bit, to put the CY545 into Binary mode. All commands following the O command are then in the special Binary format:
O 0<cr>
... All following commands in Binary format When MB4 of the mode register is set, the CY545 will display the current position while stepping in the Home command or while stepping from a JOG signal input. This position display may have some effect on the step rate of the command, since additional time is required during each step to display the position. The lower three bits, MB0, MB1, and MB2, are used to select what device will be used to display query outputs and string value outputs from the CY545. Two basic display choices are a serial display or a parallel display. The least significant bit, MB0, selects between these two options.
31
www.ControlChips.com
When a serial display is selected, the next bit, MB1, selects between a standard serial output, used for connections to a host computer serial port or general terminal serial port, or a specialized LCD display device, controlled by the CY325 LCD Display Controller. When bit MB1 is zero, a standard serial display is used, and the CY545 does not perform any special formatting of the output. This is the power-on default option. When MB1 is one, the CY325 based display is used, and the CY545 adds special formatting strings to the data, putting the query results in fixed places on the display screen. This mode should not be used without a CY325 controller. For more information about this device, contact Cybernetic Micro Systems or visit our web site at www.controlchips.com. When a parallel display is selected by MB0, MB2 selects between a standard parallel output, and a special Hewlett Packard LED display.
When MB2 is zero, the standard parallel output is selected. This uses the IO_REQUEST and BUSY signals to control the reading of information from the CY545. Also, the CY545 will drive the FPL signal low (shared function with USRB6) when it has something to output. This protocol will work with a standard two-line handshake or with the parallel functions of a CY233 Network controller. When MB2 is one, the special HP LED display is selected. In this case, all output from the CY545 goes to the local HP LED display, and a special signal, HP_SEL (shared function with USRB7), is generated while the CY545 is writing to the display. More information about support for this display is provided in a later section. When a Mode command is issued with MB5 set to one, the CY545A enables the CTS/ function on the USRB6 (the CTS function is not available on older parts prior to the CY545A). After any reset, this function is disabled, and USRB6 is high, so the CTS/ signal is off. A Mode command must be issued to the CY545 before the CTS/ function is enabled. When the signal is low, the CY545 is ready for more serial characters, and when the signal is high, the CY545 is busy processing a command. The CTS/ signal can be used to automatically control the rate of serial communications from the host system, stopping transmissions while the signal is at TTL one. This allows the host to send a sequence of commands, including motion commands that may take some time to execute, without worrying about the CY545 being able to accept the commands. The hardware control insures that the CY545 will always indicate when it is ready for more serial data. The exception to this is during use of the external jog line, in which CTS is not set busy during Jog stepping. Since the CTS/ signal is initially disabled, the CY545 must receive a Mode command that enables the signal before it can be used by the host. There are three alternatives for turning on the CTS/ function.
32
www.ControlChips.com
First, the Mode command could be read from the local memory, if one is present, as part of the "Auto-Start" routine. This is probably the best approach, since the CY545 will always reconfigure itself after a reset, without any special action by the host. With this approach, CTS/ can automatically be enabled by the CY545 itself. See the section on External Memory Support in chapter 12 for more details on the "Auto-Start" function. If your system does not have the external memory, an alternative approach is to send the Mode command from your host computer. However, this requires some special software, since the CTS/ signal is off when the CY545 is reset. The software must send the Mode command with the CTS monitor function disabled, so that your computer will transmit the command even though CTS/ is off. It can then reconfigure itself to enable CTS monitoring, after sending the Mode command. An example BASIC language CRT emulator program which performs this function is shown in chapter 20 (Getting Up and Running). The third alternative for starting the CY545, with CTS/ enabled requires some external hardware plus another User Bit. With this design, the CTS/ signal is always enabled, so the host computer is not required to reconfigure itself, first sending commands without CTS monitoring, then switching to CTS monitoring. When the CY545 is reset, both the CTS/ signal (USRB6) and the second User Bit signal, say USRB5, are high. This forces the CTS/ output from the AND gate to be low, which is the active state. The host computer can now send the Mode command to enable the CY545 CTS/ function, then it must send a Bit command to drive the second User Bit to zero. The logic will now follow the value of the actual CY545 CTS/ signal, until the CY545 is reset again. For host systems that always require a CTS/ signal, this alternative will work when there is no local external memory from which to automatically execute the Mode command, The circuit and command sequence are shown below:
Finally, if MB6 is one, the CY545 uses the lower four bits of the mode byte value to select the serial baud rate. This allows a parallel command to set the serial rate to a desired value, without tying the I/O Request and Busy lines to a particular state, and allows a parallel command source to set up the CY545 for serial communications, such as showing messages on a serial display. For this function, the CY545 does not store the mode byte value in its internal Mode register, so if MB6 is set, no other operating modes of the CY545 are affected, only the baud rate selection. Bits MB0 to MB3 are treated as a binary value, selecting the baud rate as shown in the table below:
33
www.ControlChips.com
When crystal frequencies other than 11 MHz are used, the fixed rates will be scaled linearly by the crystal frequency, while the self-adaptive rate will attempt to compensate for the new crystal frequency. For most crystal frequencies above 11 MHz, the CY545 can adapt successfully to baud rates of 4800 baud or less, with a small enough error to insure reliable operation of the serial interface. However, at 14.7456 MHz, the CY545 can adapt to all baud rates up to 19,200, plus two non-standard rates of 38,400 and 76,800 baud. The CY545 will set the baud rate during the execution of the Mode command, and the new rate will be in effect until a hardware reset occurs or another Mode command is issued, with B6 set. When the adaptive rate is selected, the CY545 must receive two carriage returns before the operating baud rate will be defined again, so this selection may only be used if serial data is coming into the CY545. No transmissions will occur until the baud rate is again defined.
34
www.ControlChips.com
When the Initialize command is processed, it acts like a power-on reset. The CY545 command mode is changed to direct command mode, all I/O signals are brought high, and the serial baud rate is reset. Any program that was executing from external memory is stopped if an I-command is read. The Initialize command and the power-on reset will redefine the CY545 stepping parameters to the following default values: R F S N 100 14 220 200
and the current position register is cleared to zero. The current values of these registers will always be changed back to the defaults when a reset is performed or an I-command is executed.
The parameter for the Delay command is a 16-bit value, calibrated in milliseconds when running at 12 MHz. This command simply causes the CY545 to wait for the specified time before going to the next command. When used in an external memory program, the command allows you to pause for a known time between program functions. For example, take a specified motion to move a part into place, then delay for 3 seconds while some operation is performed, then remove the part. The value of the Delay parameter allows a time delay between 1 millisecond and 65 seconds when the CY545 is running at 12 MHz. Longer delays can be created by repeated delay commands, or delay commands in a loop.
35
www.ControlChips.com
Also note that very slow stepping is possible by a loop that consists of a single-step relative motion followed by a time delay. For example: Y 10<cr> E<cr> N 1<cr> +<cr> G<cr> D 2000<cr> L 50,16<cr> 0<cr> Q<cr> Y 10<cr> X<cr> Set to 1 step relative Select CW direction Take a step Delay 2 seconds Loop back to G command, 50 times Stop program Quit entering program to memory Reset address Run the program Select address 10 to start code Enter to memory
The above example will take 50 steps, with a delay of two seconds between steps. Other delay values will provide different step rates.
Query Command
Display CY545 Status
Along with display strings, the CY545 allows you to query the values of various working parameters. The command is: ? Cmd Query specified parameter value
The Cmd portion of the Query command is a single letter, selecting the parameter for display. Possible choices are: N P R F S Y B Number of Steps value Current position value Current final rate value Current first rate value Current slope value Current memory address pointer value Current user bits input value
When the Query command is received or read from memory, the CY545 displays the parameter value as follows: X=vvvvv<cr>.....ie:.....S=00220<cr>
36
www.ControlChips.com
Where X is the parameter letter, and vvvvv is the 5-digit ASCII decimal value for the parameter. Parameters that only have 8-bit values will have leading zeros for the unused digits. This is a fixed format output while the CY545 is in the ASCII command mode. Since Position and Number of steps are 24-bit values, these two queries will output an 8-digit number, not the standard 5-digit number. In the Binary command mode, the vvvvv portion is replaced by two bytes that represent the binary value of the parameter, sent most significant byte first. The carriage return is not sent in the Binary command mode. Position and Number are sent as three byte values. The parameter value message is sent to the currently selected display device, so it is possible to send the result to something other than the command source. For example, a host computer could issue the Query command over the serial interface, with the CY545 displaying the result on a local HP display.
Each query command will output the current value of the requested parameter. For the user-bits query, a 16-bit value is returned, with the lower 8 bits corresponding to the CY545 User Bits, and the upper 8 bits corresponding the the CY545 Data bus.
37
www.ControlChips.com
Normally, these messages would be part of a program in external memory, and can announce specific items on the display. The messages can also be prompts to an operator to turn something on or off at particular points in a program, with the CY545 then delaying, or waiting for a signal before continuing with the program. The string format is very general. Any character is allowed between the quotes (except another quote), including ASCII control codes and carriage returns. The only character that terminates a display string is the double quote character (ASCII 22H), also used to start the string. This is the only character that may not be part of the string. Strings are stored in external memory if they are received following an Enter command, just as regular CY545 commands. Every part of the string, including the starting and ending quotes is saved. The next CY545 command immediately follows the ending quote of the string. In Binary mode, strings do not include data counts, they are treated like ASCII mode for the duration of the string.
www.ControlChips.com
The address parameter is the display address used to write the data and control information. For example, 30H is the address for the HP control register. The count parameter is the number of data bytes to write, starting at the specified address. If the count is zero, nothing is written, but the internal display address is changed to the specified first parameter value. When the count is non-zero, the following bytes are written to the display, with the count determining how many bytes are written. One address is treated specially by this command, address 30H, for the control register. If address 30H is followed by a zero data count, the CY545 default control value will be selected. Otherwise, the value of D1 will become the new control register value, and can be used to change the display intensity or turn on the blinking feature. For more information about the HP display and CY545 support, see a later section on Display Support and the HDSP-211x data sheets (available from Hewlett Packard). Also note that the HP display is limited to 8 characters, so the Query output format automatically changes when the HP display is selected, and the Position or Number parameter values are queried. In these cases, only the 8 digit value is shown, not the parameter letter and equal sign. For example, instead of showing: N=12345678<cr> as it would for a normal serial or parallel display, the CY545 simply shows: 12345678<cr> when the ? N or ? P commands are issued for the HP display.
39
www.ControlChips.com
40
www.ControlChips.com
41
www.ControlChips.com
42
www.ControlChips.com
C L ME AL T NA Y SU RT RN RY OR ER OR PO 2 - EX TE MO PP HA AP PT TE ER R1 CH 12 XT EM UP Memory Read/Write
The CY545 may be operated with up to 64K bytes of external memory, which hold various sequences of commands to run. A number of CY545 commands are used to support the external memory, allowing you to set the memory address pointer, enter commands into memory, and execute commands from memory. Several types of external memory may be used, including RAM, EEPROM, and EPROM. Note that EPROM memory must be programmed separately from its use in a CY545 application, so the CY545 Enter command and the ability to define the contents of memory are given up when an EPROM is used. The other two forms of memory allow the CY545 to write to memory as well as read it. When RAM is used, the contents are lost when power is removed, unless some battery back-up power is provided. Normally, the contents of RAM must be redefined whenever the CY545 application is started. With EEPROM, the memory can still be written by the CY545, especially if a 5-volt-only version is used, but the memory contents are not lost when power is removed. An applications schematic, provided with this manual, illustrates the use of an EEPROM as the external data memory for the CY545. The device shown is a Xicor X28256 EEPROM, which has 32K bytes of memory. Smaller devices may be used if less memory is required, and a larger device, with a full 64K bytes of memory could be supported.
The CY545 provides all address and strobe timing signals to the memory. Signals involved are the data bus, XMEM_SEL, ALE, WR, and RD. Special use is made of the data bus, which provides all 16 bits of address, plus the actual data transfers. Two external latches are required to hold the address. The example uses 74LS373s for this purpose. When the CY545 reads or writes the external memory, it starts by placing the most significant address byte on the data bus. It then selects the memory by driving XMEM_SEL low. This both chip-enables the memory and latches the upper address byte into the 74LS373 which holds address lines A8 to A15. The CY545 then performs a read or write operation.
43
www.ControlChips.com
The read or write is broken into two steps. First the lower address byte is generated on the data bus. This value is latched into the other 74LS373, using the ALE signal. Then the actual data transfer occurs. For a write, the CY545 generates the write data on the data bus, along with a write strobe, WR. For a read, the data bus is floated, and a read strobe is generated, using RD, so the memory can now drive the bus. When the memory transfer is over, the XMEM_SEL signal goes high again, de-selecting the external memory. This allows the lower address byte and RD and WR strobes to be used with other hardware as well, without interference from the memory. Only the memory uses the upper address byte.
As a special feature, the CY545 performs a verify Read after writing to the memory. This function is provided in support of EEPROM memories, that require a long time to perform a write operation, and cannot perform another random write or read while the first one is in progress. Many of these memories support Data/ polling, in which at least one bit of data is inverted while the memory is busy writing the byte. When a read is performed, the data read does not match the data written until the write operation is complete. This change in data values indicates when the memory is ready for the next operation. The CY545 performs the verify Read repeatedly until the data matches the value written, or a time out occurs. For RAMs, the match will occur immediately, so the CY545 simply continues at that point. For an EEPROM, the match will occur after the EEPROM write is finished, and the CY545 waits during this time before going on to the next function. You should be aware of this time period delay when using EEPROM, because it is possible to send serial characters to the CY545 faster than the EEPROM can accept them, when running the serial interface at higher baud rates. It is best to have a time delay between each character in this case, or else use the CTS signal to hold off the communications until the CY545 is ready. Note that the parallel interface takes care of this time delay on its own, since the CY545 will stay busy while it is writing the character to the memory.
44
www.ControlChips.com
When the CY545 is reset, it will read the first three locations of the external memory. If the values read are 12H, 34H, and 56H respectively, the CY545 will then switch to the program execution mode, and start reading commands from location 00003 of the memory. This allows the CY545 to work in a stand alone mode, without any commands from a host computer or other source than the memory itself. This function is shown below: 00000 00001 00002 00003 12H 34H 56H ... 12H in address 0 34H in address 1 56H in address 2 First CY545 command in address 3
This feature will only occur if the first three bytes have the proper key codes in them. Any other values in those locations will keep the CY545 in the direct command mode, waiting for commands from a host system before doing anything. To set up the auto start function, simply record the data bytes 12h, 34h, and 56h, in locations 0 to 2 of the memory, followed immediately by the command sequence desired. For example: Y 0<cr> E<cr> <Ctrl-R>4V R 125<cr> F 15<cr> ....... Q<cr> Set memory pointer address to zero Following sequence is recorded to memory key sequence 12h, 34h, 56h standard CY545 commands follow now additional start up commands End of memory content definition
When the CY545 is now reset, it will execute the memory-based commands, starting with the R125<cr> command, since the key sequence was found in the first three locations. As a special convenience, you may command the CY545 to ignore the auto start command sequence, by holding the XMEM_SEL signal low while the CY545 is reset. If the signal is low, the CY545 will not test the memory contents for the 12h, 34h, 56h key sequence. Instead, the CY545 will set itself into the Command mode, and wait for commands from the serial or parallel interface. This is especially useful during program development, where errors in the memory content must be corrected before the CY545 can run the memory based commands. Without this feature, you would be forced to remove the memory and delete the key sequence, before the CY545 could be operated with the memory again. The sequence for bypassing the Auto Start tests is: Drive the XMEM_SEL signal low Reset the CY545 Delay 2 milliseconds after reset is released Release the XMEM_SEL signal Issue any CY545 commands in the direct Command mode
45
www.ControlChips.com
46
www.ControlChips.com
However, the CY545 will also accept another form of parameter for the arguments of the commands. This form replaces the numeric argument with a # character, and it means to read the actual parameter value from an external source, normally implemented as thumbwheel switches. Only the first parameter of a command with multiple parameters may be read this way, but this is not a severe restriction, since the second parameter is usually a branch address, and could be fixed anyway. Programs may repeat things a variable number of times, but usually go to the same place in the loop. Examples of this new format are shown below: R #<cr> N #<cr> L #,123<cr> Get Rate value from thumbwheels Get Number of steps from thumbwheels Get Loop repeat count from thumbwheels
In all cases, the format for the command is identical to that with the numeric arguments, except that the numbers are replaced by the # character. Note that this format only works in the ASCII command mode, since the # character cannot be distinguished from a valid parameter byte value in the Binary command mode. All other characters of the command stay intact, including the space after the command letter, comma or space between arguments, and carriage return at the end of the command. When these commands are written to external memory, the # character is included in the memory contents. Recall that the external memory contents are identical to the characters sent in the direct command mode. The CY545 will act on the character, and read the parameter value every time the program is run, and a command containing the # character is read. When the # character is processed by the CY545, it generates a special read sequence to get the value of the parameter from the external switches. Each parameter consists of 3, 5 or 8 digits, depending on whether the parameter is a byte or two byte size. Each parameter is assigned an address range of 3, 5, or 8 addresses, generated on the lower byte of the two address latches, controlled by the ALE signal. In order to read a specific digit, the CY545 generates the digit address, latched into the lower address byte latch. It then generates a RD strobe, with the SW_SEL line low. This should enable the data from the addressed switch onto the CY545 data bus. All switches are positive BCD encoded. The CY545 reads the switch value from the lower four bits of the data bus, then converts the value into an ASCII decimal digit. The hex format is not supported for externally read parameter values.
47
www.ControlChips.com
To read an entire parameter, the digit read process is repeated three, five, or eight times, depending on the size of the parameter. The CY545 starts by reading the most significant digit, then the next, until it finally reads the least significant digit. This is the same order that digits are read from a command with numeric arguments. The various CY545 commands have been split into three groups for parameter addressing purposes. This organization minimizes the address decoding logic needed to access the external switches. The applications schematic includes an example interface to three different parameters, the Number parameter with 5 digits, and the Rate and First rate parameters, each with 3 digits. Each group of 8 parameters is selected by a 74LS138 decoder, which generates an enable signal for the selected command parameter. Each digit of the enabled parameter is uniquely enabled by a signal from a 74LS156 decoder. Digits are enabled in address sequence, with the least significant digit selected by the Y0 output selection from the 74LS156. For 5 and 8 digit parameters, one 74LS156 must be used to address the parameter. It can generate up to 8 enable signals, but 3 will not be used in the 5 digit cases. The Delay parameter would be an example of this. For 3 digit parameters, one 74LS156 can be used to address two different parameters. Each half of the 74LS156 can select 3 digits, with one line not used. The Rate and First rate parameters illustrate this example. To allow every parameter to be specified by a thumbwheel switch selection would require three 74LS138s, plus one or one half 74LS156 per parameter. It also would take one thumbwheel switch per parameter digit. This could be a significant amount of hardware if all parameters are externally controlled. However, we expect that in real applications, only a few parameters will need this feature, and hardware complexity will not be that bad. The thumbwheel switches used for each digit should be BCD encoded, and must have isolation diodes between the digit lines. Some switches have these diodes built in, but most do not. The diodes have been shown on the example schematic. Also, with the parts shown, the switches must have a complemented common signal to generate the proper values at the CY545 data bus. By using an inverting buffer to the CY545 data bus, a non-complemented common signal switch could also be used. Pull-up resistors provide a high signal for those digit lines not connected to the common for a particular digit value. The following section gives the address values for each parameter the CY545 can read from external switches. The lowest number of the range corresponds to the least significant digit of the parameter, and is read last by the CY545. The highest number is the most significant digit address, and is read first.
48
www.ControlChips.com
Parameter N command number of steps P command target position A command at position D command delay value R command step rate S command acceleration slope F command first rate Y command memory address B command bit number H command bit number T command bit number W command bit number J command byte address L command repeat count Z command repeat count O command mode value ? command query letter code 8 digits 8 digits 8 digits 5 digits 3 digits 3 digits 3 digits 5 digits 3 digits 3 digits 3 digits 3 digits 3 digits 3 digits 5 digits 3 digits 3 digits
87H - 80H 8FH - 88H 97H - 90H 9CH - 98H A2H - A0H AAH - A8H B2H - B0H BCH - B8H
Group 2
42H - 40H 4AH - 48H 52H - 50H 62H - 60H 6AH - 68H 72H - 70H 7CH - 78H
Group 3
Each parameter has been assigned a potential range of 8 addresses, to make the address decoding easier. Only the addresses shown are actually used to read digit values. The CY545 will not generate the unused address values. Any parameter that will not be read from switches does not require the 74LS156 or switches for that parameter. Any group of parameters that will not be read from switches does not require the 74LS138 decoder either.
49
www.ControlChips.com
50
www.ControlChips.com
The CY325 is a special display control chip available from Cybernetic Micro Systems.
51
www.ControlChips.com
52
www.ControlChips.com
The CY545 takes care of any timing involved in running the HP display, and generates the proper control signals. Also, a special command ( [ ) allows you to customize the display control for your desired intensity or other functions.
53
www.ControlChips.com
A Wirewrap area is provided for implementation of thumbwheel switches, driver circuits, or other custom circuitry. Based in the single height VME format (100mm x 160mm, approximately 4" x 6.3"), the board requires only +5v (@650mA). The RS232 level voltages are generated by the Max233 on the board. The basic board is provided in kit form, with all parts necessary to assemble a working board. Separate options are available, including an LED Display, Memory, EEPROM, CY233 Network Controller Chip, power supply, and serial cable.
2002 Cybernetic Micro Systems 54 Chapter 15 - CY545 Prototyping Support
www.ControlChips.com
Command Entry
55
www.ControlChips.com
The CY545 can be commanded directly through its own serial port connection, or serially through the CY233 and the parallel CY545 interface. With this second option, it is possible to control multiple CY545s through one host serial port, as a network of motor controllers. The CY233 acts as the network communications controller, recognizing commands meant for the local CY545, while the CY545 runs the stepper motor as commanded by the host. The CYB-233 board also contains a wire wrap area, to which you may add any special motor driver interface logic, the local external memory, thumb wheel switch interface, or HP LED display. This makes the board versatile enough to accommodate most CY545 applications, at least for prototyping purposes. The board is supplied in kit form, with complete assembly instructions and basic components.
56
www.ControlChips.com
The board contains a socket that will accept the CY545, and allows it to communicate serially with the CY325. Also included are an RS-232 interface and RJ-11 jacks for serial connection to the board. A wire wrap area makes it possible to add the motor driver interface, the local external memory, and thumbwheel switch interface for the CY545. The combination of the CYB-003 board, with the CY545, CY325, and any interface logic, plus the 711 display, makes a very compact stepper controller system. This is especially useful in stand alone applications, where the local memory holds the CY545 stepping routines, and the CY325 plus display are used for the operator interface, status display, and prompting messages.
57
www.ControlChips.com
Every command character must be sent to the CY545 with the above described handshake. Timing for the handshake will vary somewhat, and the CY545 will go busy for longer periods of time after the last character of a command is issued. This represents the actual execution time of the command. When the command is a query command, the CY545 will generate a response to the query as part of the command execution. If the mode register is set so that query responses come out the standard parallel interface (MB0 = 1 and MB2 = 0), a handshake will also be used for the data generated by the CY545. In this case, the CY545 will drive the FPL signal low to indicate that it
2002 Cybernetic Micro Systems 58 Chapter 16 - Timing and Control
www.ControlChips.com
wants to generate some output to the parallel interface. The CY545 then waits for the IO_REQUEST signal to go low, indicating that the host system is ready for data. The data byte is written to the data bus, and the BUSY signal is driven low. This indicates that data is available to the host. When the host drives the IO_REQUEST signal high again, the bus is cleared, and BUSY is brought back high also. In the ASCII command mode, the FPL signal will continue to stay low as long as the CY545 has data to generate. This is an indication that the host should continue reading data bytes from the CY545. The FPL signal will be brought high when the CY545 writes a carriage return code, indicating the end of the response. In the Binary command mode, data may have any value, so each byte sent out will toggle the FPL line back high again. When there are multiple bytes to send, the FPL signal will be brought low as the CY545 is ready to generate the next data byte value. This behavior is compatible with the CY233 LINC device, generating one message for query responses in the ASCII mode, and one message per data byte in the Binary mode. A typical query response waveform is shown below.
59
www.ControlChips.com
In the CY545B, the FPL signal is driven low when the CY545B has data to output, and it is removed after the host has read the last character, and brought I/O Request high again, but before the CY545B brings Busy high. This timing is compatible with hardware implemented handshakes, requiring no time delays or complex logic to implement.
Notice that the FPL signal is removed at the end of the message, while the CY545B is still Busy, but after the I/O Request has been driven high again. Also, there is a fundamental handshake change required for the CY545B to accept immediate commands from the host, while reading and executing commands from the local external memory. If the CY545B is to execute a program from the local external memory, and accept immediate parallel commands at the same time, there is a resource conflict involving the data bus. This bus is used to both read commands from the memory, and read commands from the parallel host, while only one device is allowed to drive the bus at a time. Notice that the CY545B may also drive the bus while outputting messages to the host or the local HP display! This makes the data bus a very critical resource in CY545B designs. In order to allow immediate commands to be issued at any time, even while the CY545B is reading data from the local memory, we must implement a new handshake protocol for the immediate commands, which prevents corruption of data on the data bus. In the CY545B, this is done without using any more signals, so no other User Bits are given up to perform this more complex handshake. Instead of using additional signals, immediate commands are isssued with a modified first handshake, involving no character! That is, the host drives I/O Request low, and waits for the Busy signal to go low, but the data bus is not driven. This allows the CY545B to finish reading and executing any command, from the local external memory, that is in progress when the host decides to issue the immediate command. After the memory command is finished, including possible output of a message or query response, the CY545B will drive Busy low, with FPL high, to indicate that it is now accepting the host's immediate command. This is similar to a normal command handshake, except that the command letter is not put on the data bus. Since the data bus is not driven during this first handshake, the CY545B reads a 0FFh data byte (due to the pull-up resistors on the local data bus), and will ignore this byte. This special, first character handshake is followed by the normal command format, starting with the normal command letter, which the CY545B reads with a normal handshake. After executing
2002 Cybernetic Micro Systems 60 Chapter 16 - Timing and Control
www.ControlChips.com
the immediate command, the CY545B resumes external memory execution, unless the immediate command was the "0" command, which stops the execution. Note that the first handshake, without driving the data bus, is only required by the parallel interface during immediate commands, issued while the CY545B is also running a program from the local external memory. When the CY545B is only executing immediate commands from the host, or when the host uses the serial interface instead of parallel interface, the "0FFh" first character is not required. However, if you issue a first handshake with no command character (read as 0FFh by the CY545B) in these cases, the CY545B will still ignore that character. The examples below show the initial handshake of an immediate command during external memory execution. Notice that in the general case, FPL might go low before Busy goes low. In this case, the CY545B has decided (due to a command from the memory) to output a message to the host rather than accept the immediate command input. This is shown in the first example waveform below. The CY545B is driving the data bus when FPL is low. The host must accept the output message from the CY545B before continuing with the immediate command in this case. The state of FPL during the first handshake will determine if the CY545B is taking the command from the host (FPL high), or if the CY545B is outputting a message to the host (FPL low).
After the CY545B has issued the output message, and FPL is high again, the host may continue with the immediate command handshake, and the CY545B will now accept and execute the immediate command as shown in the second example waveform below. Here, the host does not drive the data bus for the first handshake, and thereby gives the CY545B the "0FFh" first command character prefix. This is followed by the normal first command character.
Also note that the second example waveform applies to the case where the CY545B accepts the immediate command without first generating some output data.
2002 Cybernetic Micro Systems 61 Chapter 16 - Timing and Control
www.ControlChips.com
In addition, the CY545B will only issue an output message and take control of FPL if there is a query or quoted message in the memory program. If there is no such command, the CY545B will always accept the immediate command from the host, with no chance of changing FPL to the output mode during the first handshake of the immediate command. In this case, the host handshake is less complex, because the host is not required to test the state of FPL during the first handshake with no data. FPL should always be high. However, during the first handshake the data bus must still be left floating, so the CY545B can continue to read from memory, if required, to finish the currently executing command. When using the serial command interface, it is also possible to issue immediate commands to the CY545B while it is executing a program from the local external memory. As with the immediate parallel commands, the CY545B will stop the memory execution, process the immediate command, then continue execution from the memory, unless the immediate command was the "0" command. Since the CY545B may be in the middle of a command when the host decides to send the immediate serial command, it is best to use the Clear To Send ("CTS") protocol to help control this environment. This will prevent overflow of the CY545B serial buffer, since it cannot read the new command in the middle of executing the command read from memory. The CTS signal is enabled by setting MB5 of the mode register to one, using the Mode ("O") command. The CY545B will drive CTS high (off), if enabled, during the execution of any memory command, then drive it low again as the next memory command is being read. If the host uses the CTS signal to indicate when it is safe to send a command letter, the CY545B will accept the letter, and save it in the serial buffer until the current memory-based command is finished. It will then read the immediate serial command letter, and wait for more serial data, to complete the command. CTS will stay low during this time. Once the immediate command has been received, the CY545B will execute it, with CTS driven high. External program execution will then resume after the immediate command. As with the parallel command interface, the CY545B does not mix the command read from memory with characters received over the serial interface. Once the first letter of a serial command has been received, execution from the external memory is suspended until the immediate command is finished.
62
www.ControlChips.com
The CY545 optionally implements a third serial control signal, the CTS signal. You must issue a Mode command to the CY545 to enable this signal, which shares functions on USRB6. With this signal enabled, the CY545 indicates to the host system when it is ready for more serial data. The CTS signal will be turned off when the CY545 is busy executing a command. For long duration commands, such as time delays or motions, this will inhibit the host from sending more commands until the CY545 is ready for them, providing an automatic serial handshake. The CY545 has a three character serial buffer, which should be enough to let the host system respond to the CTS signal. Otherwise it does not buffer serial received data. The CY545 can accept serial data continuously within the range of the standard baud rates, until the end of a command is received (carriage return in ASCII mode). It will then be busy processing the command, and may take some time, if the command involves a motion, time delay, wait for external signal, etc. During this time, the CY545 cannot accept any more serial data, and none should be sent by the host. If the CTS signal has been enabled, this signal will indicate that no more data should be sent. Otherwise, the host must perform a time delay, allowing the CY545 to execute the current command, before sending more command characters. When a query command is received, and the CY545 mode register is set to respond out the serial port (Mode bit MB0 = 0), the query response will be sent on the TxD signal after the command is received. Note it is possible to issue the query command on the parallel interface, and have the response sent out the serial side. A typical serial query and response are shown below.
63
www.ControlChips.com
The read or write is broken into two steps. First the lower address byte is generated on the data bus. This value is latched into the other 74LS373, using the ALE signal. Then the actual data transfer occurs. For a write, the CY545 generates the write data on the data bus, along with a write strobe, WR. For a read, the data bus is floated, and a read strobe is generated, using RD, so the memory can now drive the bus. When the memory transfer is over, the XMEM_SEL signal goes high again, de-selecting the external memory. This allows the lower address byte and RD and WR strobes to be used with other hardware as well, without interference from the memory. Only the memory uses the upper address byte. A typical memory access waveform is shown below.
As a special feature, the CY545 performs a verify read after writing to the memory. This function is provided in support of EEPROM memories, that require a long time to perform a write operation, and cannot perform another random write or read while the first one is in progress. Many of these memories support Data/ polling, in which at least one bit of data is inverted while the memory is busy writing the byte. When a read is performed, the data read does not match the data written until the write operation is complete. This change in data values indicates when the memory is ready for the next operation. The CY545 performs the verify read repeatedly until the data matches the value written, or a time out occurs. For RAMs, the match will occur immediately, so the CY545 simply continues at that point. For an EEPROM, the match will occur after the EEPROM write is finished, and the CY545 waits during this time before going on to the next function. This feature is shown in the waveforms below.
64
www.ControlChips.com
You should be aware of this time period delay when using EEPROM, because it is possible to send serial characters to the CY545 faster than the EEPROM can accept them, when running the serial interface at higher baud rates. It is best to have a time delay between each character in this case, or else use the CTS signal to hold off the communications until the CY545 is ready. Note that the parallel interface takes care of this time delay on its own, since the CY545 will stay busy while it is writing the character to the memory. Additional care must be taken when using the parallel command interface along with external memory. Since both functions share the CY545 data bus, the parallel command source must be able to release the data bus when the CY545 is commanded to access the external memory. The host system should only drive the data lines when the CY545 is not busy, and the host must stay off the bus while the CY545 is executing commands from the memory. No special signals are provided in this mode; the CY545 simply reads commands from the memory and executes them until it encounters a stop command.
65
www.ControlChips.com
The CY545 provides all address and strobe timing signals to the display. Signals required are HP_SEL (shared function with USRB7), ALE, WR, RD, and the data bus lines. For the HP display, only the lower 6 address signals are used, and they are generated from the data bus and ALE signals. The address signals must be demultiplexed by an external latch, such as the 74LS373. If external memory is also being used in the system, the same address latch used for the lower byte of the memory address may be connected to the display. This is shown in the example schematic. The HP _SEL, RD, and WR signals must be combined as shown to generate the Chip Enable signal for the display. This signal has special timing requirements, and may not be simply connected to the HP_SEL signal. When the CY545 reads or writes to the display, it starts by driving HP_SEL low. The read or write is then broken into two steps. First the lower address byte is generated on the data bus. This value is latched into the 74LS373, using the ALE signal. Then the actual data transfer occurs. For a write, the CY545 generates the write data on the data bus, along with a write strobe, WR. For a read, the data bus is floated, and a read strobe is generated, using RD, so the memory can now drive the bus. When the data transfer is over, the HP_SEL signal goes high again, disabling the RD and WR strobes for the display. A typical display access waveform follows.
66
www.ControlChips.com
When the CY545 reads the thumbwheel switches, it drives the SW_SEL signal low. Each digit of the parameter is then read by the two stage read operation. The address of the desired digit is first generated, and latched by the ALE signal, then the data bus is floated, and the switch value is enabled during the read strobe signal from RD. When the entire parameter value has been read, either as 3, 5, or 8 digits, the SW_SEL signal goes high again, disabling the RD strobe for the switches. A typical thumbwheel switch parameter read waveforms follows.
67
www.ControlChips.com
Also note that the CCW signal can be used as an input, to force stepping in the desired direction. In this case, the software direction command should be set to -, so the CY545 tries to drive the CCW signal high. Now an external circuit can easily override the CY545, and force the CCW signal low, causing stepping in the "+" direction. If this is tried while the CY545 is driving the CCW signal low, a much stronger external circuit will be required to override the CY545, since it has much stronger sink current capability than source current capability. This could ultimately burn out the CCW signal, and should be avoided if possible. Several PULSE signal waveforms are shown below, for different step rates. Notice that the PULSE signal is normally high, and goes low at the beginning of a step. It stays low for a fixed amount of time, which depends on the crystal frequency of the CY545, and then goes back high for the duration of the step time. When it is time for the next step, PULSE goes low again.
When the step rate parameters are set to enable acceleration, the CY545 will vary the step rate from the starting rate (First Rate parameter) to the final rate (Rate parameter) for each motion it takes. This means the PULSE waveform will vary from the slower rate to the faster rate as the CY545 accelerates the motor up to the slew rate, and then will be stable for the duration of the slewing period. The CY545 will determine when to begin deceleration so that the motor will slow down again to the starting rate as the desired number of steps has expired.
68
www.ControlChips.com
The STOPPED signal is a status output from the CY545, indicating whether the motor is stepping or not. At the beginning of a motion, from either a Go or Position command, the STOPPED signal is brought low. It will continue to stay low for the duration of that motion. At the end of the motion, the STOPPED signal is brought high again. The low-to-high transition on STOPPED indicates when the motion is over, and the high level indicates that the motor is no longer moving. A typical waveform is shown below.
The STOPPED signal may be used as a motion complete indication to the host system. It may also control the power selection for the stepper motor power driver, switching automatically between a high power selection while stepping, and a parking power selection while stopped. This can provide maximum torque during motions and provide holding torque while the motor is not moving, in order to prevent overheating of the motor. The CY545 automatically delays for 5 milliseconds after the last step, before bringing the STOPPED signal high again. This allows the motor to settle into its final position before the high driving power is removed.
SLEW
Another status output from the CY545 is the SLEW signal, which indicates when the selected step rate (Rate parameter) has been achieved. This signal is normally high, and goes low while the CY545 is stepping the motor without acceleration or deceleration. A typical waveform is shown below. Notice that the time between STOPPED being low and SLEW being low represents the time to accelerate or decelerate the motor.
The SLEW signal may also be used as an input. If this signal is driven low before the beginning of a motion, the CY545 will enter the continuous stepping mode. In this mode, it will accelerate
2002 Cybernetic Micro Systems 69 Chapter 16 - Timing and Control
www.ControlChips.com
from the starting rate to the slew rate, then run indefinitely at this rate. There are no specific number of steps to move or target position to stop at. However, the current position is still updated during the motion, and may be queried when the CY545 has stopped again. The INHIBIT_ABORT signal is used to end the continuous motion. The SLEW signal is tested just before the CY545 begins the first step of a motion. Alternatively, the continuous mode may also be selected by the Continuous command. This should be followed by a Go command to actually start the motion. The INHIBIT_ABORT signal is still used to end the motion. Continuous mode stepping is disabled at the end of every motion, so if a second motion is desired in continuous mode, another Continuous command must be issued, or the SLEW signal must be driven low before the motion starts.
INHIBIT_ABORT
The INHIBIT_ABORT signal is a stepping control input to the CY545, with a number of functions. In general, it is used to override the normal stepping behavior of the CY545, as selected by the CY545 commands. If this signal is low at the beginning of a motion, started by a Position or Go command, that motion will not start until the INHIBIT_ABORT is brought high again. This allows you to synchronize the motion to an external signal, rather than a CY545 command. Multiple axes of motion could be started simultaneously by using this signal to control the start of stepping. An example waveform is shown below. Note that once a Position or Go command is executed by the CY545, it will wait indefinitely for the INHIBIT_ABORT signal to be high. There is no signal to terminate the motion until it has been allowed to start.
Once the motor is moving, the INHIBIT_ABORT signal may be used to slow down and stop a motion before the CY545 reaches the target position. Using the signal in this way provides a controlled early stop to the motion.
70
www.ControlChips.com
If INHIBIT_ABORT is driven low during a motion, the CY545 switches to a deceleration mode. It will decelerate symmetrically to the acceleration, until it achieves the selected initial stepping rate (First Rate parameter). The CY545 will then test the INHIBIT_ABORT signal once for each step, and if it is low, the motion will stop. Otherwise, the motion will continue, at the starting rate, until the target position is reached. To slow down the motor and stop when the initial step rate is reached, simply hold the INHIBIT_ABORT signal low until the CY545 brings the STOPPED signal high again. Several cases are illustrated below.
Also, if a limit signal is low at the beginning of a motion, the motion will not be taken. The CY545 immediately aborts the motion without taking any steps. Normal motions are allowed in the opposite direction. Example waveforms are shown above.
71
www.ControlChips.com
*** Warning *** Warning *** Warning *** Although the CW_LIMIT and the CCW_LIMIT signals allow the CY545 to provide some protection to systems that accidentally run into limits, they should NOT be used as the only protection if reaching the limits could endanger operators or damage the equipment. Unexpectedly hitting a limit implies some failure, and no component, including the host computer or CY545, can be fully trusted in this situation. Automatic recovery from a limit should be used with extreme caution, since the system could perform the recovery, then run back into the limit again, if the original cause of the failure has not been fixed. The best protection in cases where the system has failed, is to disable the power to the stepper motor drivers. This will allow the motors to stop moving the load, even if they are commanded to continue stepping. The cause of failure should then be determined and fixed before the motors are energized again.
www.ControlChips.com
commands between jog steps, providing jog motion and command execution at the same time! However, the Jog signal is ignored while these commands are executing. While jogging, the CY545 will use a step rate derived from the parameter of the First Rate command. The normal initial stepping rate for continuous motions is taken from the First Rate parameter value, and this rate is divided by 20. Note that the same step rate is used by the Home command. The CY545 Step Rate Table lists the step rates for continuous motion. These rates should be divided by 20 to obtain the jogging step rate. With a 12 MHz clock, jog rates from about 1 step per second to about 1000 steps per second are possible. The CY545 will not accelerate or decelerate during jogging, running only at the rate derived from the current value of the First Rate parameter. However, the interactive command execution during jogging does allow you to modify the step rate, by issuing a First Rate command with a new parameter value.
Home Signal
The CY545 supports an additional stepping function, but it uses the user selectable function signals to implement the process. This function is the automatic home sensor seek, and is selected by the Home command. A single argument to the Home command specifies which user selectable bit or bits to monitor during the step to home. The parameter value is treated the same as for the Til and Wait commands, and is reproduced below: 00H to 07H 08H to 0FH 10H to 17H 18H to 1FH 80H to 0BFH Test one of user bits 0 to 7 for 1 Test one of data bus bits 0 to 7 for 1 Test one of user bits 0 to 7 for 0 Test one of data bus bits 0 to 7 for 0 Test user bits 0 to 5 for a group match
You have the option of checking any one signal for the home sensor, or using the six-signal group of user bits 0 to 5. Normally, a single home sensor would be connected to a single user bit signal. This command uses the same step rate as the jog function described above, a division by 20 of the step rate selected by the First Rate parameter value, so the CY545 will step the motor at about 1 to 1000 steps per second while seeking the home sensor signal.
2002 Cybernetic Micro Systems 73 Chapter 16 - Timing and Control
www.ControlChips.com
The Home command starts by testing the specified bit pattern for a match with the external signals. If there is a match, the CY545 will begin by stepping in the CCW direction, and will continue in this direction until there is no longer a match. The CCW stepping phase is skipped if the initial test indicates no match between the argument bit pattern and the external signals. When there is no match between the bit parameter and the external signals, the CY545 steps in the CW direction. It will continue to step in this direction until the signals match the parameter value. At this point the CY545 stops, and sets the current position to zero. Thus, the Home command steps the motor to seek the edge between a match and no match condition on the home signal. The CY545 then stops at the first step where a match occurs, and is always stepping in the CW direction looking for this match. This mechanism should always seek the same mechanical position, since any directional backlash is compensated for by using the same final step direction in seeking home. If the CY545 runs into one of the limits while looking for the home signal, it will abort the home command and stop stepping. The current position is not changed to zero in this case. As with the jog function, the current position will be displayed after every step, if bit 4 of the Mode Register is set. Some care must be used in designing the home sensor signal for the CY545, to insure that it initially steps in the correct direction to seek the home signal. If the application involves a circular positioning function, in which the mechanism rotates a wheel or turntable, there is no special consideration, since the mechanical positions will always repeat after some number of steps. The CY545 can find the home sensor signal no matter what direction it starts to step. However, if the application involves a linear displacement, the mechanical home position can only be found by stepping in one direction, depending on the relative position between the mechanical home and the current position. In this case, the sensor signal should be designed to indicate the direction to home, as well as the actual home position, found by the change in signal from no match to match conditions. This is illustrated below:
If the home sensor signal cannot be designed to indicate the initial direction to home, the motor must be positioned so that it is on the correct side of home before the Home command is used. This will insure that the CY545 always steps towards the sensor on seeking the home position. The CW and CCW limits might be useful in this situation, since you could move to a known limit, then use the home command to step in the opposite direction until the home position is found.
2002 Cybernetic Micro Systems 74 Chapter 16 - Timing and Control
www.ControlChips.com
75
www.ControlChips.com
76
www.ControlChips.com
where a(s) s D is the acceleration in steps/second2 is the slope parameter value is the distance between two adjacent rates in steps/second, the incremental slope
also, the ramp time is given by the acceleration and the dynamic range of step rates taken as: t...=...|Rmax - R0|...= a(s) |Rmax - R0| 3906 * D) (256 - s)
The value used for D in the above formulas must be chosen with care, since the distance between rate points changes as you move through the CY545 Step Rate Table. D starts with a value of 25, then 50, then 35, and finally inflects to larger values as we reach the digital resolution limit of the CY545. The following figures show typical performance under various values of slope, and may be used as a general guide in selecting initial operating parameters. The figures are followed by the CY545 Step Rate Table, which lists all 256 possible step rates when operating the CY545 with a 12 MHz clock.
77
www.ControlChips.com
78
www.ControlChips.com
79
www.ControlChips.com
80
www.ControlChips.com
81
www.ControlChips.com
82
www.ControlChips.com
83
www.ControlChips.com
84
www.ControlChips.com
Electrical Conventions
All CY545 signals are based on a positive logic convention, with a high voltage representing a "1" and a low voltage representing a "0". Signals that are active low are indicated by a bar over or slash after the pin name, i.e., BUSY/. All input lines except the data bus include weak pull-up resistors. If the pins are left open, the input signals will be high. The data bus pins must have external pull-up resistors to output a high value. Where appropriate, an input line will be considered in the floating state if the CY545 can drive it both high and low. The data bus is bi-directional, and is tri-state during nonactive modes. Note that data bus signals are positive logic.
Reset Circuitry
The Restart line (pin#9) must be held high upon power-up to properly initialize the CY545. This may be accomplished by using a 4.7 Fd capacitor, as shown in Figure 18.1. Restart must be high for 10 milliseconds after power stabilizes on power-up. Once the CY545 is running, Restart need only be high for about 10 microseconds (11 MHz crystal).
85
www.ControlChips.com
Clock Circuits
The CY545 may be operated with crystal or external clock circuits. These two options are shown in Figure 18.2. All timing discussed in this manual assumes an 11.059 MHz series resonant crystal. Note that 11.0 MHz, such as a CTS Knights MP110 or equivalent will work fine. The CY545 requires an 11 MHz clock in order to generate the standard baud rates, although any crystal in the allowable range can be used with the adaptive mode, within the timing resolution limits of the CY545. Use 7.3728 MHz to make the fastest possible rate a standard 38400 baud, or 14.7456 MHz for 76,800 baud.
86
www.ControlChips.com
87
www.ControlChips.com
Y 100<cr> E<cr> 100 106 111 117 121 125 131 133 135 139 145 150 157 161 167 169 177 183 188 195 199 205 211 213 219 224 231 235 241 245 253 Q<cr> Y 100<cr> X<cr>
Select external memory or location Write the following commands to memory Commands will start at address 100 First set up stepping parameters Declare current position as zero Wait for Bit 3 high, stock is available Move 200 steps before first hole punch Read hole spacing from external switches Delay 250 msec, let stock settle into place Activate punch with Bit 1 low Delay 1 sec to punch hole Turn off punch Wait for punch to clear work stock Move to next hole position Repeat punches as set by external switches Delay 250 msec, let stock settle into place Activate punch for last hole in piece Delay 1 sec to punch hole Turn off punch Wait for punch to clear work stock Move 200 steps after last hole punch Delay 250 msec, let stock settle into place Cut stock off with Bit 2 low Delay 1.5 sec to cut stock Turn off cutter Wait for cutter to clear work stock Return to starting location Repeat operation until Bit 4 is high Stop running program now
R 175<cr> F 12<cr> S 200<cr> A 0<cr> W 3<cr> N 200<cr> +<cr> G<cr> N #<cr> D 250<cr> /B 1<cr> D 1000<cr> B 1<cr> D 100<cr> G<cr> L #,139<cr> D 250<cr> /B 1<cr> D 1000<cr> B 1<cr> D 100<cr> N 200<cr> G<cr> D 250<cr> /B 2<cr> D 1500<cr> B 2<cr> D 150<cr> P 0<cr> T 4,121<cr> 0<cr>
Quit saving commands to memory Reset memory address to start of program Execute the above program
88
www.ControlChips.com
Notice that every character of a command takes one memory location, and all characters must be counted to compute the target address for the Loop command. The program then punches a hole at the last position, moves an additional 200 steps, and activates the User Bit 2 signal to cut the strip. Now the CY545 returns the motor to the starting position. It then tests User Bit 4, and if the signal is low, the program repeats from the Wait instruction. If the signal is high, the program stops with the Zero command, and the CY545 returns to the command mode.
If the user opts for his own driver design, the PULSE and CCW lines may be used to drive a counter circuit, which counts up or down once for each pulse, based on the level of the CCW signal. The counter output then drives the address lines of a memory device, such as a PROM, EPROM, or EEPROM, with data outputs that generate the desired motor phase patterns as the counter address steps through the PROM locations. This design is shown here.
89
www.ControlChips.com
The data outputs from the PROM are then connected to the power driver circuit itself, generating the proper phase patterns for the motor. Note that such a design not only handles motors of various phases, but can also implement stepping schemes such as half-step or quadstep, as well as the standard full-step pattern. The following paragraphs are meant as a guide to various types of driver circuits, but should not be used as final driver designs. Detailed switching characteristics, transient suppression, and circuit protection logic have been omitted for clarity and simplicity. Unipolar designs are the simplest drivers, and are generally useful when running at less than 600 steps per second. These designs require motors with six or eight leads, since the power supply is connected to the middle of each winding. The end of each winding is pulled to ground through a transistor controlled by one of the phase output lines from the data PROM. Motor performance may be improved by adding a dropping resistor between the power supply output and the center tap of each winding. This decreases the field decay time constant of the motor, giving faster step response. The performance increase is paid for by a higher voltage power supply and heat losses through the dropping resistors. This type of circuit is know as an L/xR circuit, where the x represents the resistor value relative to the winding resistance. An L/R circuit would not have any external resistors, while an L/4R circuit would use a resistor of three times the value of the motor winding resistance. Note that the power supply could be four times the nominal motor value with this circuit. Also note that this circuit requires only a single voltage and one transistor per phase.
90
www.ControlChips.com
The second basic type of driver circuit is the bipolar design. In this case, the motor is driven only from the ends of each winding, with switching logic used to control the direction of current through the winding. These circuits may be implemented with a four lead motor, since only the ends of each winding are needed. Bipolar designs are more efficient in driving the motor, and result in higher performance than the unipolar designs. There is also some gain in torque, since the entire winding is always driven, unlike the unipolar design, in which only half of a winding is used at a time. Two methods of switching the direction of current may be used. With a single voltage power supply, eight transistors are used, two per phase. Transistors are turned on in alternate pairs across each winding to control the current. The second alternative uses only four transistors, but requires a dual voltage power supply. In this case, one side of each winding is connected to ground, and the other side is switched between the positive and negative power supplies. In both designs it is very important to insure that both transistors on one side of the winding are not on at the same time, as this would short the power supply through the transistors, generally destroying the transistors in the process. Protection logic is usually included to insure that one transistor is off before the other is allowed to turn on.
The most advanced driver designs are variations on the unipolar or bipolar types, although they are generally implemented using the bipolar approach. These drivers are capable of the highest step rates attainable. They work by switching current or voltage through the motor at much higher than the rated value. This is done for only a short period of time, causing the magnetic field in the motor to change very quickly, without exceeding the maximum power dissipation of the motor. As long as the average dissipation does not exceed the motor rating, the motor will perform without problems. Once the maximum limit is reached, the motor may overheat and self destruct. One technique for increasing motor performance would simply apply a high voltage to the motor at the beginning of each step. This makes the motor react very quickly to the change in phase signals. After a short period of time, the voltage is switched to a lower value, allowing the motor to continue its step without overheating. A second approach, known as a constant current design, senses the amount of current flowing through the winding, and adjusts the voltage applied to the motor to maintain the current at its maximum rated value. At the beginning of a motion, the voltage would be low, with a constant adjustment to a higher value as the motor speed increases, and back EMF decreases the current draw for a fixed voltage level.
91
www.ControlChips.com
Another technique, known as chopping, may also be applied to these driver designs. This approach applies a voltage much higher than the rated value for a short period of time. The voltage is then turned off for another time period. This occurs many times per step, with the frequency of switching known as the chopping frequency. This frequency may be controlled by time, switching at a given rate, or it may be controlled by sensing the current flow through the motor, switching at a variable rate. This switching technique controls the power dissipation of the motor, keeping it at maximum torque for any step rate, by adjusting the average applied power. The highest performance drivers are usually designed as bipolar chopper circuits. The user should consult design guides available from the various motor manufacturers and driver circuit designers for additional information.
92
www.ControlChips.com
93
www.ControlChips.com
94
www.ControlChips.com
PRESET: B 16<cr> R 90<cr> S 200<cr> F 10<cr> N 3<cr> Y 100<cr> ENTER PROG: PROGRAM CODE
clear USER BIT O Line set RATE = 90 set SLOPE = 200 set FIRSTRATE = 10 set NUMBER steps = 3 set memory address E<cr> B 0<cr> set USER BIT 0 +<CR> set CW direction G<cr> GO, begin stepping B 16<cr> clear output line -<cr> set CCW direction G<cr> GO, begin stepping T 1,100<cr>. repeat above prog Til USER BIT 1 = HI B 0<cr> set USER BIT 0 line B 16<cr> clear USER BIT 0 line 0<cr> stop run mode, enter command mode Q<cr> Y 100<cr> X<cr> reset pointer EXECUTE
QUIT: EXECUTE:
95
www.ControlChips.com
If the same sequence is issued in the Binary command mode, the command letters are the same, but the data values are given to the CY545 in binary form, not as ASCII decimal values. In the Binary command mode, the equivalent sequence is: 42 01 10 42 01 00 52 01 64 53 01 F0 46 01 0F 4E 03 05 00 00 47 00 USER BIT 0 low USER BIT 0 high set Rate 100 set Slope 240 set First Rate 15 set Number of steps 5 take five steps
All values are listed as their hexadecimal equivalents, but are sent to the CY545 as single 8-bit data values. Command letters have the same codes as in ASCII, but parameters require a count, followed by the binary parameter value. Notice that multi-byte parameters are sent least significant byte first. The resulting waveforms are shown below. The CY545 behavior is the same in both ASCII and Binary modes, but the number of data bytes sent to achieve the results is different. Also, Binary mode commands will execute somewhat faster, since the CY545 converts ASCII parameter values into a binary format internally, taking additional command execution time.
96
www.ControlChips.com
97
www.ControlChips.com
The following steps may be used with the Serial Command Interface. 12. Connect your serial port to the CY545 RxD and TxD signals, pins 10 and 11, with the proper voltage translation buffers. 13. Send two carriage return codes to adapt the CY545 baud rate. The CRT emulation program at the end of this section is useful for this purpose. 14. Send the command +<cr>. 15. The CCW signal (pin 2) will go from high to low. 16. Repeat the above command sequence with a -<cr> command. The ASCII code for - is 2Dh. The CCW signal will return high when this command is sent. If you have successful parallel or serial communications... 17. If you reach this point successfully, you are commanding the CY545, and should be able to enter any command and obtain the correct response. 18. Suggested sequences: a. Try to toggle a User Bit signal using B 0<cr> and B 16<cr> for pin 21. Remember the single space between the command letter and parameter value. b. Take 200 steps with the default parameters, using G<cr> c. Change the stepping parameters, using the R, F, S, and N commands, then try stepping again. d. Refer to examples in this manual for other command sequences. 19. After the initial checkout, use your own command sequences as required by the application. You may need to exercise the external memory interface, thumbwheel switch interface, or an external display.
98
www.ControlChips.com
99
www.ControlChips.com
' keys to COM port. Stop when Escape key input ' A$=INKEY$ : IF A$=ES$ GOTO 930 IF A$<>" " THEN PRINT #1,A$; : PRINT #2,A$; ' ' ' Check for any received data from COM port, and ' display it, with line feeds filtered out. Loop back ' to check keyboard again when no more received data ' WHILE NOT EOF(1) J%=LOC(1) : B$=INPUT$(J%,#1) : LF%=0 LF%=INSTR(LF%+1,B$,LF$) IF LF%>0 THEN MID$(B$,LF%,1)=NL$ : GOTO 780 PRINT #2,B$; WEND GOTO 640 ' ' Exit program when Escape key is pressed ' CLOSE #1 : CLOSE #2 STOP
100
www.ControlChips.com
101
www.ControlChips.com
102