English
Language : 

MC1451A Datasheet, PDF (26/51 Pages) List of Unclassifed Manufacturers – Advanced Step Motor Control Chipset
Read Command
Time
-->
-->
-->
->
Cmd Write:
Data Write:
Data Read:
Cmd byte
Word 1 [Word 2] [pkt checksum]
[ ] Indicates an optional operation
Packet Checksum
The above charts show that at the end of each packet, a checksum
word is available for reading.
Although host to chip set I/O operations are extremely reliable, for
critical applications the checksum can provide a further reliability
enhancement (particularly in very noisy electrical environments, or
when the communication signals are routed over a media that may
have data losses such as a serial link).
This checksum consists of a 16-bit sum of all previous communications
that have occurred for the associated command. The command byte is
included in the low byte of the 1st checksum word (high byte set to 0).
Data words are added as is to the checksum value.
For example if a SET_VEL command (which takes two 16-bit words of
data) was sent with a data value of fedcba98 (hex), the checksum
would be:
0011 (code for SET_VEL command)
+ fedc (high data word)
+ ba98 (low data word)
----------
1b985
check sum = b985 (keep bottom 16 bits only)
Reading the checksum is optional. Recovering from an incorrect packet
transfer (bad checksum) will depend on the nature of the packet. Read
and Write operations can always be re-transmitted, while a command
resulting in an action may or may not be re-tried, depending on the
command and the state of the axis.
Illegal Commands
When the MC1451A receives a command that is illegal (see host
command summary for listing of illegal commands), it will signal this
condition by returning a checksum of 0, regardless of the illegal
command value or the value of any subsequent data written to the host
as part of the illegal command sequence.
In this manner the host processor checksum can be used to detect
communication problems as well as an illegal command sequence,
resulting in a simplification of the host processor communication code.
Command Errors
If a command, or command sequence is sent to the chipset that is not
valid at a given operating condition of the chipset, but is valid at other
times, this command is said to cause a command error.
When a command error occurs this condition is indicated by the
'command error' bit of the axis status word (See the section of this
manual entitled "Axis Status" for more information on the axis status
word).
The following list indicates the command sequences that result in a
command error:
- Changing and updating the acceleration (SET_ACC, UPDATE)
when in the trapezoidal profile mode and when the axis
trajectory is still in motion.
- Changing and updating either the velocity, max acceleration, or
jerk (SET_VEL or SET_MAX_ACC or SET_JERK, and then
UPDATE) when in the S-curve profiling mode and when the
trajectory is in motion
- Commanding a move in the same direction as a limit switch
condition when in Trapezoidal or S-curve profile mode. For
example if travelling in the positive direction and a limit switch
is encountered, a further move in the positive direction will be
ignored and a command error will be generated.
Once a command error occurs the command error bit is set, and the
illegal profile changes are ignored. If additional parameters are also
changed such as position or any filter values as part of the same
UPDATE command then these parameters will not be rejected at the
time of the UPDATE, and they will become the active values.
Axis Addressing
Most chip set commands alter the parameters or the operating state of
one axis at a time. In this way each axis can be controlled separately.
To facilitate efficient communication for these types of commands, the
chip set maintains the concept of a current axis number, which can be
set explicitly by the host. After setting the current axis number,
commands that are addressed to the current axis will automatically
operate on this axis. The current axis number will stay the same until it
is changed by one of the commands that alter the current axis number.
As an illustration of this, the following sequence sets the current axis to
#2, updates some motion parameters, and switches to axis #1, and
alters some other motion parameters.
SET_2
SET_POS
UPDATE
02345678
-> sets current axis to #2
-> loads current axis (#2) dest.
position with value of 2345678
-> causes the loaded value to take
effect (axis # 2)
26