mc1451a-e ETC-unknow, mc1451a-e Datasheet - Page 42

no-image

mc1451a-e

Manufacturer Part Number
mc1451a-e
Description
Advanced Brushless Motor Control Chipset
Manufacturer
ETC-unknow
Datasheet
Command Reference
Each command consists of a single byte, with a command code value
as described in the "encoding" description for each command. Data is
transmitted to/from the chip set in 16-bit words. All data is encoded
"high to low" i.e. each 16-bit word is encoded high byte first, low byte
second, and two word data values are encoded high word first, low
word second.
Signed data is represented in two’s complement format. In the case of
32-bit quantities, the entire 32-bit number is two's complemented. For
example to transmit the decimal number 1,234,567, which has a
hexadecimal representation of 12d687, the high word is sent first (12
hex) and then the low word is sent (d687 hex). Negative numbers are
treated in the same way. For example to transmit the decimal number
-746,455 , which has a hexadecimal value of fff49c29, then the high
word is transmitted first (fff4 hex.) followed by the low word (9c29 hex.).
Some chipset quantities such as position are provided with ‘unity
scaling’, meaning that the value provided is used by the chipset without
internal scaling.
Other chipset quantities are scaled by various constants to allow a
more useful operating range. The non-unity scaling constants that are
used by the chipset are either 1/2 16 or 1/2 32 .
If 1/2 16 scaling is used then the chipset expects a number which has
been scaled by a factor of 65,536 from the ‘user’ units. For example to
specify a velocity (SET_VEL command) of 2.75 counts/sample time,
2.75 is multiplied by 65,536 and the result is sent to the chipset as a 32
bit integer (180,224 dec. or 2c000 hex.). 1/2 16 scaling is used with 16
bit as well as 32 bit quantities. The size of the data word does not affect
how the scaling is performed.
If 1/2 32 scaling is indicated the chipset expects a number which has
been scaled by a factor of 4,294,967,296. For example to specify a
jerk value (SET_JERK command) of .0075 counts/sample time 3 , .0075
is multiplied by 4,294,967,296 and the result is sent to the chipset as a
32 bit integer (32,212,256 dec. or 1eb8520 hex).
All transmissions to/from the chip set are checksummed. The
checksum is a 16-bit quantity that can be read at the end of each
command transmission. The checksum value consists of the 16-bit sum
of all 16-bit transmissions to or from the chip set, including the
command byte which occupies the low byte of the first 16-bit
transmission word. 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:
+ fedc
+ ba98
----------
1b985
check sum = b985 (keep bottom 16 bits only)
0011
(code for SET_VEL command)
(high data word)
(low data word)
42
The following hex code commands are reserved for future use, or are
currently used during manufacturing/test. They return a valid checksum,
although they should not be used during normal chipset operations. The
hex command codes are: 49, 4e
The following hex code commands are illegal, and will return a
checksum of 0. They should not be used during normal chipset
operations. The hex command codes are: 00, 03, 04, 22, 3d, 80, 81, 82,
83, 85 through ff
Unless otherwise noted, all numerical values presented in this
command summary are in decimal.
Axis Control
SET_1
Data/direction:
Encoding:
Axis acted on:
Available on:
Double buffered:
SET_1 changes the current axis number to 1. All commands that
operate on the current axis will be affected by this command. The
status of axis #1 is returned. See GET_STATUS command for the
status word format.
SET_2
Data/direction:
Encoding:
Axis acted on:
Available on:
Double buffered:
SET_2 changes the current axis number to 2. All commands that
operate on the current axis will be affected by this command. The
status of the axis #2 is returned. See GET_STATUS command for the
status word format.
SET_I
Data/direction:
Encoding:
Axis acted on:
Available on:
Double buffered:
SET_I changes the current axis number to the interrupting axis, which
is the axis that has caused the host interrupt to become active. All
commands that operate on the current axis will be affected by this
command. The status of the interrupting axis is returned. See
GET_STATUS command for the status word format.
Set current axis to #1
1/read
01 (hex)
set by command
all axes
No
Set current axis to #2
1/read
02 (hex)
set by command
all axes
No
Set current axis to interrupting axis
1/read
08 (hex)
interrupting axis
all axes
No

Related parts for mc1451a-e