CY545
[Logo]

Chapter 16
Timing and Control


Timing and Control

This section contains more detailed timing and applications information for various signal groups of the CY545. Included are the command interfaces, special external hardware support, and motor control signals.

The Parallel Handshake

The CY545 parallel command interface uses three control signals, plus the data bus lines for actual data transfers. The control signals are IO_REQUEST, BUSY, and FPL, which is a shared function with USRB6. IO_REQUEST is an input, driven by the device sending commands to the CY545, while BUSY and FPL are outputs, indicating status of the CY545.

The IO_REQUEST signal is used to control the parallel handshake functions, The signal is normally high when no commands are being sent to the CY545. To issue commands, wait until the BUSY line is high, indicating that the CY545 is ready for commands, then put a command byte on the data bus lines, and drive IO_REQUEST low. Keep the data signals and IO_REQUEST stable until the CY545 responds by driving BUSY low. Note the response time is normally around 25 microseconds (usec), so the CY545 is slower than an I/O peripheral or memory device, and some systems may require a latch on the data bus signals. Once the BUSY signal has gone low, the IO_REQUEST signal should be driven high again, and the data signals may be removed. A typical handshake waveform is shown below.

[Parallel handshake waveform]

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 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.

Parallel handshake response waveform.


Immediate Commands during External Memory Program Execution

The CY545B supports the acceptance and proper execution of immediate commands while executing a program from external memory. However, the handshakes for this function are a little more complex than the standard command handshake. More details are provided in this section.

The FPL signal is very important in implementing the handshake protocol for immediate commands, especially if the CY545 is also generating query responses or quoted messages from the local memory program.

The FPL signal, driven by the CY545, can be used to control the direction of data on the CY545 local data bus. When FPL is high, the CY545 can accept command inputs, and when FPL is low, the CY545 has output data for the parallel host.

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.

[FPL Logic waveform]

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 excuting 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).

[Msg output during immediate handshake]

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.

[Handshake after msg]

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 excuting 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.

The Serial Interface

The CY545 serial command interface uses two primary signals, RxD and TxD. Serial data is received on RxD and is sent on TxD. Note that when the parallel interface is not used, IO_REQUEST and BUSY may be tied to select a fixed baud rate for the CY545. Otherwise, the adaptive mode will be used, or a parallel mode command can select a fixed baud rate (either from the local external memory, or from a parallel-connected command source). In the adaptive case, the CY545 must receive two carriage return codes before receiving or sending any other serial data. It will adjust the baud to match that of the received carriage return codes. With an 11 MHz crystal, the CY545 can adapt to standard baud rates between 300 and 19,200 baud.

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 reponse sent out the serial side. A typical serial query and response are shown below.

[Serial interface waveform]

External Memory Control Signals

As discussed previously, the CY545 can support up to 64K bytes of external data memory, used for storing and executing various command sequences.

The CY545 provides all address and strobe timing signals to the memory. Signals required are XMEM_SEL, ALE, WR, RD, and the data bus lines. 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 shown 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.

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.

[External memory access waveform]


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 immdiately, 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.

External Memory verify read after write.

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.

Special HP LED Display Control Signals

Along with the normal serial and parallel data outputs, the CY545 also supports a special parallel LED display, using the Hewlett-Packard HDSP-211x displays. These are compact, 8-character displays, with programmable intensity, custom characters, and other featrures. The displays are very convenient and compact, making them useful in a minimal CY545 based system.

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.

[Figure 16.10]

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.

[HP dispaly access waveform]


Thumbwheel Switch Interface Control Signals

The CY545 also supports the reading of parameters from external thumbwheel switches, as discussed previously. The design of the thumbwheel switch interface circuitry is shown in a previous section, and will not be reproduced here. However, we will discuss the CY545 signals used to enable the thumbwheel switches, and show example timing waveforms.

The CY545 also provides all address and strobe timing signals to the switches. Signals required are SW_SEL, ALE, RD, and the data bus lines. The switch address is again multiplexed on the data bus, and requires the external address latch. All 8 bits of the address are used to decode the switch selection logic. Note that the thumbwheel switch interface is a read-only function.

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.

[Thumbwheel switch parameter]

Stepper Motor Interface Signals

The CY545 implements eight signals dedicated to the stepper motor, plus the user selectable function bits, which can generate output control signals for special hardware, or be tested for special conditions that guide the CY545 through a program of motions, or be used for home sensor seeking.

PULSE and CWW

The two primary control signals for the motor are PULSE and CCW, which provide the step and direction indications to the motor. These signals are connected to the external power driver that actually runs the motor. Every time the CY545 directs the motor to take a step, a signal is generated on the PULSE line.

The power driver should advance the motor by one increment for each pulse. Note that the step increment could be a full step, half step, quad step, or micro step. This will be determined by the application and the power driver. The CY545 does not know or care what the step size is. All position information is treated in terms of the step increment, not in terms of the linear displacement or degrees of rotation of the motor.

The CCW signal is a level active signal that tells the power driver in which direction to step the motor. When high, the driver should step counter clockwise, and when low, the driver should step clockwise. Note that the physical rotation of the motor will depend on how the motor windings are connected to the power driver, not on the level of the CCW signal. When this signal is high, the CY545 will decrement the current position for every step taken, and when the signal is low, it will increment the current position for every step taken.

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.

[PULSE waveforms]

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.

STOPPED

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.

[INHIBIT_ABORT]

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.

[SLEW signal waveform]

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 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.

[INHIBIT_ABORT]

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.

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.

[Stopping motions with INHIBIT_ABORT]

CW_LIMIT and CCW_LIMIT

The CY545 also provides two inputs for immediately stopping a motion, the CW_LIMIT and CCW_LIMIT signals. If the relevant signal goes low during a motion in that direction, the CY545 immediately stops the motion. There will be no deceleration before the stop; the CY545 simply abandons the motion.

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 below.

[CW_LIMIT or CCW_LIMIT]

*** 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.

JOG Mode Operation

The CY545 provides a manual stepper control function through the JOG signal. This signal is tested whenever the CY545 is not executing a command or performing another motion. This is a special signal, because it is checked for one of three different states and is both an input and an output.

When the line is left floating, so the CY545 can drive it both ways, the jog function is disabled, and stepping only occurs when the CY545 is commanded to take a motion.

When the line is driven low, the CY545 will jog the motor in the clockwise direction. The CCW signal will change state, if required, to select this direction.

When the line is driven high, the CY545 will jog the motor in the counter clockwise direction. Again, the CCW signal will change state, if required, to select this direction. Note that the signal level on the JOG line matches the stepping direction selected by the CCW signal.

The CCW signal is restored to its original state when each jog single-step finishes.

Normally, the JOG signal will be connected to a three position, center-off switch. One side of the switch will be connected to ground, while the other side is connected to +5 volts. Jogging is enabled in each direction by pushing the switch from the center position to one side or the other. This is shown in the following figure.

[Switch Connections]

When jogging, the CY545 will take one step, then check for any new command inputs. If a new command is available, it will be executed, otherwise the JOG signal will be tested again. When the CY545 is idle, the effect of driving the JOG line is for the CY545 to take repeated single steps. Note that the checking for new commands during jogging allows you to issue CY545 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.

Automatic Position Display

Also, when bit 4 of the Mode Register is set, the CY545 will display the current position at the end of every jog or Home command step. The position is output to the currently enabled display device, and will affect the step rate. For example, sending the current position to a serial device would require enough time to issue the 11 character position string at the baud rate defined for the serial interface.

The JOG signal also represents a minimal mechanism for testing the CY545 and motor subsystem. Without any commands, it is possible to move the motor in either direction, verifying that the PULSE and CCW signals are correctly connected to the motor power driver, and that the motor is properly connected. This also verifies that the CY545 is functioning at least in a very basic fashion.

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:

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.

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:

[Home sensor signal]

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.

00 Contents ..|.. 01 Intro ..|.. 02 Pins & Packages ..|.. 03 Cmd Interfaces ..|.. 04 Commands..|.. 05 Motor Cmds
06 Bit Cmds..|.. 07 Memory Cmds..|.. 08 Prog Branch Cmds..|.. 09 Mode Cmds ..|.. 10 Misc Cmds
11 Circuits ..|.. 12 External Memory ..|.. 13 Thumbwheel Switch ..|.. 14 Output Display ..|.. 15 Proto Boards
16 Timing & Control ..|.. 17 Rate Tables ..|.. 18 Electrical Specs ..|.. 19 Examples ..|.. 20 Up & Running
Back to CY545 Data Sheet

© 1988 - 1999 Cybernetic Micro Systems, Inc. All rights reserved.
CY545 Manual 22MAR99