LM629MX-8 [NSC]
IC BRUSH DC MOTOR CONTROLLER, PDSO24, SOP-24, Motion Control Electronics;型号: | LM629MX-8 |
厂家: | National Semiconductor |
描述: | IC BRUSH DC MOTOR CONTROLLER, PDSO24, SOP-24, Motion Control Electronics 电动机控制 光电二极管 |
文件: | 总26页 (文件大小:669K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
January 2003
LM628/LM629
Precision Motion Controller
General Description
Features
n 32-bit position, velocity, and acceleration registers
n Programmable digital PID filter with 16-bit coefficients
n Programmable derivative sampling interval
n 8- or 12-bit DAC output data (LM628)
n 8-bit sign-magnitude PWM output data (LM629)
n Internal trapezoidal velocity profile generator
n Velocity, target position, and filter parameters may be
changed during motion
The LM628/LM629 are dedicated motion-control processors
designed for use with a variety of DC and brushless DC
servo motors, and other servomechanisms which provide a
quadrature incremental position feedback signal. The parts
perform the intensive, real-time computational tasks required
for high performance digital motion control. The host control
software interface is facilitated by a high-level command set.
The LM628 has an 8-bit output which can drive either an
8-bit or a 12-bit DAC. The components required to build a
servo system are reduced to the DC motor/actuator, an
incremental encoder, a DAC, a power amplifier, and the
LM628. An LM629-based system is similar, except that it
provides an 8-bit PWM output for directly driving H-switches.
The parts are fabricated in NMOS and packaged in a 28-pin
dual in-line package or a 24-pin surface mount package
(LM629 only). Both 6 MHz and 8 MHz maximum frequency
versions are available with the suffixes -6 and -8, respec-
tively, used to designate the versions. They incorporate an
SDA core processor and cells designed by SDA.
n Position and velocity modes of operation
n Real-time programmable host interrupts
n 8-bit parallel asynchronous host interface
n Quadrature incremental encoder interface with index
pulse input
n Available in a 28-pin dual in-line package or a 24-pin
surface mount package (LM629 only)
00921901
FIGURE 1. Block Diagram
TRISTATE&® is a registered trademark of National Semiconductor Corporation.
© 2003 National Semiconductor Corporation
DS009219
www.national.com
Connection Diagrams
LM628N
LM629N
LM629M
00921921
00921902
00921903
*Do not connect.
Order Number LM629M-6, LM629M-8, LM628N-6, LM628N-8, LM629N-6 or LM629N-8
See NS Package Number M24B or N28B
www.national.com
2
Absolute Maximum Ratings (Note 1)
If Military/Aerospace specified devices are required,
please contact the National Semiconductor Sales Office/
Distributors for availability and specifications.
(TA ≤ 85˚C, (Note 2)
ESD Tolerance
605 mW
1000V
(CZAP = 120 pF, RZAP = 1.5k)
Voltage at Any Pin with
Operating Ratings
Respect to GND
−0.3V to +7.0V
< <
−40˚C TA +85˚C
Temperature Range
Ambient Storage Temperature
Lead Temperature
−65˚C to +150˚C
Clock Frequency:
LM628N-6, LM629N-6,
28-pin Dual In-Line
< <
1.0 MHz fCLK 6.0 MHz
LM629M-6
Package (Soldering, 4 sec.)
24-pin Surface Mount
260˚C
300˚C
LM628N-8, LM629N-8,
LM629M-8
<
<
1.0 MHz fCLK 8.0 MHz
Package (Soldering, 10 sec.)
Maximum Power Dissipation
< <
4.5V VDD 5.5V
VDD Range
DC Electrical Characteristics
(VDD and TA per Operating Ratings; fCLK = 6 MHz)
Symbol
Parameter
Conditions
Tested Limits
Units
Min
Max
IDD
Supply Current
Outputs Open
110
mA
INPUT VOLTAGES
VIH
VIL
IIN
Logic 1 Input Voltage
Logic 0 Input Voltage
Input Currents
2.0
−10
2.4
V
V
0.8
10
0 ≤ VIN ≤ VDD
µA
OUTPUT VOLTAGES
VOH
VOL
IOUT
Logic 1
IOH = −1.6 mA
IOL = 1.6 mA
V
V
Logic 0
0.4
10
TRI-STATE® Output Leakage Current
0 ≤ VOUT ≤ VDD
−10
µA
AC Electrical Characteristics
(VDD and TA per Operating Ratings; fCLK = 6 MHz; CLOAD = 50 pF; Input Test Signal tr = tf = 10 ns)
#
Timing Interval
T
Tested Limits
Units
Min
Max
ENCODER AND INDEX TIMING (See Figure 2)
Motor-Phase Pulse Width
T1
T2
T3
µs
Dwell-Time per State
µs
µs
Index Pulse Setup and Hold
(Relative to A and B Low)
0
CLOCK AND RESET TIMING (See Figure 3)
Clock Pulse Width
LM628N-6, LM629N-6, LM629M-6
LM628N-8, LM629N-8, LM629M-8
Clock Period
T4
T4
78
57
ns
ns
LM628N-6, LM629N-6, LM629M-6
LM628N-8, LM629N-8, LM629M-8
Reset Pulse Width
T5
T5
T6
166
125
ns
ns
µs
3
www.national.com
AC Electrical Characteristics (Continued)
(VDD and TA per Operating Ratings; fCLK = 6 MHz; CLOAD = 50 pF; Input Test Signal tr = tf = 10 ns)
#
Timing Interval
T
Tested Limits
Units
Min
Max
STATUS BYTE READ TIMING (See Figure 4)
Chip-Select Setup/Hold Time
Port-Select Setup Time
Port-Select Hold Time
T7
T8
0
ns
ns
ns
ns
ns
ns
30
30
T9
Read Data Access Time
Read Data Hold Time
T10
T11
T12
180
180
0
RD High to Hi-Z Time
COMMAND BYTE WRITE TIMING (See Figure 5)
Chip-Select Setup/Hold Time
Port-Select Setup Time
Port-Select Hold Time
T7
T8
0
ns
ns
ns
ns
ns
ns
ns
30
30
T9
Busy Bit Delay
T13
T14
T15
T16
(Note 3)
WR Pulse Width
100
50
Write Data Setup Time
Write Data Hold Time
120
DATA WORD READ TIMING (See Figure 6)
Chip-Select Setup/Hold Time
Port-Select Setup Time
Port-Select Hold Time
T7
T8
0
ns
ns
ns
ns
ns
ns
ns
ns
30
30
T9
Read Data Access Time
Read Data Hold Time
T10
T11
T12
T13
T17
180
0
RD High to Hi-Z Time
180
Busy Bit Delay
(Note 3)
Read Recovery Time
120
DATA WORD WRITE TIMING (See Figure 7)
Chip-Select Setup/Hold Time
Port-Select Setup Time
Port-Select Hold Time
T7
T8
0
ns
ns
ns
ns
ns
ns
ns
ns
30
30
T9
Busy Bit Delay
T13
T14
T15
T16
T18
(Note 3)
WR Pulse Width
100
50
Write Data Setup Time
Write Data Hold Time
120
120
Write Recovery Time
Note 1: Absolute Maximum Ratings indicate limits beyond which damage to the device may occur. DC and AC electrical specifications do not apply when operating
the device beyond the above Operating Ratings.
Note 2: When operating at ambient temperatures above 70˚C, the device must be protected against excessive junction temperatures. Mounting the package on a
printed circuit board having an area greater than three square inches and surrounding the leads and body with wide copper traces and large, uninterrupted areas
of copper, such as a ground plane, suffices. The 28-pin DIP (N) and the 24-pin surface mount package (M) are molded plastic packages with solid copper lead
frames. Most of the heat generated at the die flows from the die, through the copper lead frame, and into copper traces on the printed circuit board. The copper traces
act as a heat sink. Double-sided or multi-layer boards provide heat transfer characteristics superior to those of single-sided boards.
Note 3: In order to read the busy bit, the status byte must first be read. The time required to read the busy bit far exceeds the time the chip requires to set the busy
bit. It is, therefore, impossible to test actual busy bit delay. The busy bit is guaranteed to be valid as soon as the user is able to read it.
www.national.com
4
00921904
FIGURE 2. Quadrature Encoder Input Timing
00921905
FIGURE 3. Clock and Reset Timing
00921906
FIGURE 4. Status Byte Read Timing
5
www.national.com
00921907
FIGURE 5. Command Byte Write Timing
00921908
FIGURE 6. Data Word Read Timing
www.national.com
6
00921909
FIGURE 7. Data Word Write Timing
3. Data is written and read via the data port (Pin 16 high).
Pinout Description
Pin 17 (10), Host Interrupt (HI) Output: This active-high
signal alerts the host (via a host interrupt service routine)
that an interrupt condition has occurred.
(See Connection Diagrams) Pin numbers for the 24-pin sur-
face mount package are indicated in parentheses.
Pin 1 (17), Index (IN) Input: Receives optional index pulse
from the encoder. Must be tied high if not used. The index
position is read when Pins 1, 2, and 3 are low.
Pins 18 to 25, DAC Port (DAC0 to DAC7): Output port
which is used in three different modes:
1. LM628 (8-bit output mode): Outputs latched data to the
DAC. The MSB is Pin 18 and the LSB is Pin 25.
Pins 2 and 3 (18 and 19), Encoder Signal (A, B) Inputs:
Receive the two-phase quadrature signals provided by the
incremental encoder. When the motor is rotating in the posi-
tive (“forward”) direction, the signal at Pin 2 leads the signal
at Pin 3 by 90 degrees. Note that the signals at Pins 2 and 3
must remain at each encoder state (See Figure 9) for a
minimum of 8 clock periods in order to be recognized. Be-
cause of a four-to-one resolution advantage gained by the
method of decoding the quadrature encoder signals, this
corresponds to a maximum encoder-state capture rate of 1.0
MHz (fCLK = 8.0 MHz) or 750 kHz (fCLK = 6.0 MHz). For
other clock frequencies the encoder signals must also re-
main at each state a minimum of 8 clock periods.
2. LM628 (12-bit output mode): Outputs two, multiplexed
6-bit words. The less-significant word is output first. The
MSB is on Pin 18 and the LSB is on Pin 23. Pin 24 is
used to demultiplex the words; Pin 24 is low for the
less-significant word. The positive-going edge of the
signal on Pin 25 is used to strobe the output data. Figure
8 shows the timing of the multiplexed signals.
3. LM629 (sign/magnitude outputs): Outputs a PWM sign
signal on Pin 18 (11 for surface mount), and a PWM
magnitude signal on Pin 19 (13 for surface mount). Pins
20 to 25 are not used in the LM629. Figure 11 shows the
PWM output signal format.
Pins 4 to 11 (20 to 24 and 2 to 4), Host I/O Port (D0 to D7):
Bi-directional data port which connects to host computer/
processor. Used for writing commands and data to the
LM628, and for reading the status byte and data from the
LM628, as controlled by CS (Pin 12), PS (Pin 16), RD (Pin
13), and WR (Pin 15).
Pin 26 (14), Clock (CLK) Input: Receives system clock.
Pin 27 (15), Reset (RST) Input: Active-low, positive-edge
triggered, resets the LM628 to the internal conditions shown
below. Note that the reset pulse must be logic low for a
minimum of 8 clock periods. Reset does the following:
Pin 12 (5), Chip Select (CS ) Input: Used to select the
LM628 for writing and reading operations.
1. Filter coefficient and trajectory parameters are zeroed.
2. Sets position error threshold to maximum value (7FFF
hex), and effectively executes command LPEI.
Pin 13 (6), Read (RD ) Input: Used to read status and data.
Pin 14 (7), Ground (GND): Power-supply return pin.
3. The SBPA/SBPR interrupt is masked (disabled).
4. The five other interrupts are unmasked (enabled).
5. Initializes current position to zero, or “home” position.
Pin 15 (8), Write (WR ) Input: Used to write commands and
data.
Pin 16 (9), Port Select (PS ) Input: Used to select com-
mand or data port. Selects command port when low, data
port when high. The following modes are controlled by Pin
16:
6. Sets derivative sampling interval to 2048/fCLK or 256 µs
for an 8.0 MHz clock.
7. DAC port outputs 800 hex to “zero” a 12-bit DAC and
then reverts to 80 hex to “zero” an 8-bit DAC.
1. Commands are written to the command port (Pin 16
low),
Immediately after releasing the reset pin from the LM628,
the status port should read “00”. If the reset is successfully
completed, the status word will change to hex “84” or “C4”
2. Status byte is read from command port (Pin 16 low), and
7
www.national.com
has reset properly, the status byte will change from hex “84”
or “C4” to hex “80” or “C0”. If this does not occur, perform
another reset and repeat the above steps.
Pinout Description (Continued)
within 1.5 ms. If the status word has not changed from hex
“00” to “84” or “C4” within 1.5 ms, perform another reset and
repeat the above steps. To be certain that the reset was
properly performed, execute a RSTI command. If the chip
Pin 28 (16), Supply Voltage (VDD): Power supply voltage
(+5V).
00921910
FIGURE 8. 12-Bit Multiplexed Output Timing
keep track of the absolute position of the motor. Each time a
logic transition occurs at one of the quadrature inputs, the
LM628 internal position register is incremented or decre-
mented accordingly. This provides four times the resolution
over the number of lines provided by the encoder. See
Figure 9. Each of the encoder signal inputs is synchronized
with the LM628 clock.
Theory of Operation
INTRODUCTION
The typical system block diagram (See Figure 1) illustrates a
servo system built using the LM628. The host processor
communicates with the LM628 through an I/O port to facili-
tate programming a trapezoidal velocity profile and a digital
compensation filter. The DAC output interfaces to an exter-
nal digital-to-analog converter to produce the signal that is
power amplified and applied to the motor. An incremental
encoder provides feedback for closing the position servo
loop. The trapezoidal velocity profile generator calculates the
required trajectory for either position or velocity mode of
operation. In operation, the LM628 subtracts the actual po-
sition (feedback position) from the desired position (profile
generator position), and the resulting position error is pro-
cessed by the digital filter to drive the motor to the desired
position. Table 1 provides a brief summary of specifications
offered by the LM628/LM629:
The optional index pulse output provided by some encoders
assumes the logic-low state once per revolution. If the
LM628 is so programmed by the user, it will record the
absolute motor position in a dedicated register (the index
register) at the time when all three encoder inputs are logic
low.
If the encoder does not provide an index output, the LM628
index input can also be used to record the home position of
the motor. In this case, typically, the motor will close a switch
which is arranged to cause a logic-low level at the index
input, and the LM628 will record motor position in the index
register and alert (interrupt) the host processor. Permanently
grounding the index input will cause the LM628 to malfunc-
tion.
POSITION FEEDBACK INTERFACE
The LM628 interfaces to a motor via an incremental encoder.
Three inputs are provided: two quadrature signal inputs, and
an index pulse input. The quadrature signals are used to
TABLE 1. System Specifications Summary
−1,073,741,824 to 1,073,741,823 counts
0 to 1,073,741,823/216 counts/sample; ie, 0 to 16,383 counts/sample, with a resolution of 1/216
Position Range
Velocity Range
counts/sample
Acceleration Range
Motor Drive Output
0 to 1,073,741,823/216 counts/sample/sample; ie, 0 to 16,383 counts/sample/sample, with a
resolution of 1/216 counts/sample/sample
LM628: 8-bit parallel output to DAC, or 12-bit multiplexed output to DAC
LM629: 8-bit PWM sign/magnitude signals
Operating Modes
Feedback Device
Position and Velocity
Incremental Encoder (quadrature signals; support for index pulse)
www.national.com
8
Theory of Operation (Continued)
TABLE 1. System Specifications Summary (Continued)
Control Algorithm
Sample Intervals
Proportional Integral Derivative (PID) (plus programmable integration limit)
*
Derivative Term: Programmable from 2048/fCLK to (2048 256)/fCLK in steps of 2048/fCLK (256 to
65,536 µs for an 8.0 MHz clock).
Proportional and Integral: 2048/fCLK
00921911
FIGURE 9. Quadrature Encoder Signals
00921912
FIGURE 10. Typical Velocity Profiles
VELOCITY PROFILE (TRAJECTORY) GENERATION
locity profiles. Figure 10(a) shows a simple trapezoid, while
Figure 10(b) is an example of what the trajectory looks like
when velocity and position are changed at different times
during the move.
The trapezoidal velocity profile generator computes the de-
sired position of the motor versus time. In the position mode
of operation, the host processor specifies acceleration, maxi-
mum velocity, and final position. The LM628 uses this infor-
mation to affect the move by accelerating as specified until
the maximum velocity is reached or until deceleration must
begin to stop at the specified final position. The deceleration
rate is equal to the acceleration rate. At any time during the
move the maximum velocity and/or the target position may
be changed, and the motor will accelerate or decelerate
accordingly. Figure 10 illustrates two typical trapezoidal ve-
When operating in the velocity mode, the motor accelerates
to the specified velocity at the specified acceleration rate and
maintains the specified velocity until commanded to stop.
The velocity is maintained by advancing the desired position
at a constant rate. If there are disturbances to the motion
during velocity mode operation, the long-time average veloc-
ity remains constant. If the motor is unable to maintain the
specified velocity (which could be caused by a locked rotor,
9
www.national.com
PID COMPENSATION FILTER
Theory of Operation (Continued)
The LM628 uses a digital Proportional Integral Derivative
(PID) filter to compensate the control loop. The motor is held
at the desired position by applying a restoring force to the
motor that is proportional to the position error, plus the
integral of the error, plus the derivative of the error. The
following discrete-time equation illustrates the control per-
formed by the LM628:
for example), the desired position will continue to be in-
creased, resulting in a very large position error. If this con-
dition goes undetected, and the impeding force on the motor
is subsequently released, the motor could reach a very high
velocity in order to catch up to the desired position (which is
still advancing as specified). This condition is easily de-
tected; see commands LPEI and LPES.
All trajectory parameters are 32-bit values. Position is a
signed quantity. Acceleration and velocity are specified as
16-bit, positive-only integers having 16-bit fractions. The
integer portion of velocity specifies how many counts per
sampling interval the motor will traverse. The fractional por-
tion designates an additional fractional count per sampling
interval. Although the position resolution of the LM628 is
limited to integer counts, the fractional counts provide in-
creased average velocity resolution. Acceleration is treated
in the same manner. Each sampling interval the commanded
acceleration value is added to the current desired velocity to
generate a new desired velocity (unless the command ve-
locity has been reached).
(1)
where u(n) is the motor control signal output at sample time
n, e(n) is the position error at sample time n, n'
indicates sampling at the derivative sampling rate,
and kp, ki, and kd are the discrete-time filter param-
eters loaded by the users.
The first term, the proportional term, provides a restoring
force porportional to the position error, just as does a spring
obeying Hooke’s law. The second term, the integration term,
provides a restoring force that grows with time, and thus
ensures that the static position error is zero. If there is a
constant torque loading, the motor will still be able to achieve
zero position error.
One determines the trajectory parameters for a desired
move as follows. If, for example, one has a 500-line shaft
encoder, desires that the motor accelerate at one revolution
per second per second until it is moving at 600 rpm, and then
decelerate to a stop at a position exactly 100 revolutions
from the start, one would calculate the trajectory parameters
as follows:
The third term, the derivative term, provides a force propor-
tional to the rate of change of position error. It acts just like
viscous damping in a damped spring and mass system (like
a shock absorber in an automobile). The sampling interval
associated with the derivative term is user-selectable; this
capability enables the LM628 to control a wider range of
inertial loads (system mechanical time constants) by provid-
ing a better approximation of the continuous derivative. In
general, longer sampling intervals are useful for low-velocity
operations.
let P = target position (units = encoder counts)
*
let R = encoder lines 4 (system resolution)
*
then R = 500 4 = 2000
*
and P = 2000 desired number of revolutions
*
P = 2000 100 revs = 200,000 counts (value to load)
P (coding) = 00030D40 (hex code written to LM628)
let V = velocity (units = counts/sample)
let T = sample time (seconds) = 341 µs (with 6 MHz clock)
let C = conversion factor = 1 minute/60 seconds
In operation, the filter algorithm receives a 16-bit error signal
from the loop summing-junction. The error signal is saturated
at 16 bits to ensure predictable behavior. In addition to being
multiplied by filter coefficient kp, the error signal is added to
an accumulation of previous errors (to form the integral
signal) and, at a rate determined by the chosen derivative
sampling interval, the previous error is subtracted from it (to
form the derivative signal). All filter multiplications are 16-bit
operations; only the bottom 16 bits of the product are used.
*
*
*
C desired rpm
then V = R
T
*
*
*
and V = 2000 341E−6 1/60 600 rpm
V = 6.82 counts/sample
*
V (scaled) = 6.82 65,536 = 446,955.52
V (rounded) = 446,956 (value to load)
V (coding) = 0006D1EC (hex code written to LM628)
let A = acceleration (units = counts/sample/sample)
The integral signal is maintained to 24 bits, but only the top
16 bits are used. This scaling technique results in a more
usable (less sensitive) range of coefficient ki values. The 16
bits are right-shifted eight positions and multiplied by filter
coefficient ki to form the term which contributes to the motor
control output. The absolute magnitude of this product is
compared to coefficient il, and the lesser, appropriately
signed magnitude then contributes to the motor control sig-
nal.
*
*
*
T desired acceleration (rev/sec/sec)
A = R
T
*
*
*
then A = 2000 341E−6 341E-6 1 rev/sec/sec
and A = 2.33E−4 counts/sample/sample
*
A (scaled) = 2.33E−4 65,536 = 15.24
A (rounded) = 15 (value to load)
A (coding) = 0000000F (hex code written to LM628)
The above position, velocity, and acceleration values must
be converted to binary codes to be loaded into the LM628.
The values shown for velocity and acceleration must be
multiplied by 65,536 (as shown) to adjust for the required
integer/fraction format of the input data. Note that after scal-
ing the velocity and acceleration values, literal fractional data
cannot be loaded; the data must be rounded and converted
to binary. The factor of four increase in system resolution is
due to the method used to decode the quadrature encoder
signals, see Figure 9.
The derivative signal is multiplied by coefficient kd each
derivative sampling interval. This product contributes to the
motor control output every sample interval, independent of
the user-chosen derivative sampling interval.
The kp, limited ki, and kd product terms are summed to form
a 16-bit quantity. Depending on the output mode (wordsize),
either the top 8 or top 12 bits become the motor control
output signal.
www.national.com
10
transfer the next byte pair (when transferring multiple
words). Data transfers are accomplished via LM628-internal
interrupts (which are not nested); the busy bit informs the
host processor when the LM628 may not be interrupted for
data transfer (or a command byte). If a command is written
when the busy bit is high, the command will be ignored.
Theory of Operation (Continued)
LM628 READING AND WRITING OPERATIONS
The host processor writes commands to the LM628 via the
host I/O port when Port Select (PS ) input (Pin 16) is logic
low. The desired command code is applied to the parallel
port line and the Write (WR ) input (Pin 15) is strobed. The
command byte is latched into the LM628 on the rising edge
of the WR input. When writing command bytes it is neces-
sary to first read the status byte and check the state of a flag
called the “busy bit” (Bit 0). If the busy bit is logic high, no
command write may take place. The busy bit is never high
longer than 100 µs, and typically falls within 15 µs to 25 µs.
The busy bit goes high immediately after writing a command
byte, or reading or writing a second byte of data (See Figure
5 thru Figure 7).
MOTOR OUTPUTS
The LM628 DAC output port can be configured to provide
either a latched eight-bit parallel output or a multiplexed
12-bit output. The 8-bit output can be directly connected to a
flow-through (non-input-latching) D/A converter; the 12-bit
output can be easily demultiplexed using an external 6-bit
latch and an input-latching 12-bit D/A converter. The DAC
output data is offset-binary coded; the 8-bit code for zero is
80 hex and the 12-bit code for zero is 800 hex. Values less
than these cause a negative torque to be applied to the
motor and, conversely, larger values cause positive motor
torque. The LM628, when configured for 12-bit output, pro-
vides signals which control the demultiplexing process. See
for details.
The host processor reads the LM628 status byte in a similar
manner: by strobing the Read (RD ) input (Pin 13) when PS
(Pin 16) is low; status information remains valid as long as
RD is low.
Writing and reading data to/from the LM628 (as opposed to
writing commands and reading status) are done with PS (Pin
16) logic high. These writes and reads are always an integral
number (from one to seven) of two-byte words, with the first
byte of each word being the more significant. Each byte
requires a write (WR ) or read (RD ) strobe. When transfer-
ring data words (byte-pairs), it is necessary to first read the
status byte and check the state of the busy bit. When the
busy bit is logic low, the user may then sequentially transfer
both bytes comprising a data word, but the busy bit must
again be checked and found to be low before attempting to
The LM629 provides 8-bit, sign and magnitude PWM output
signals for directly driving switch-mode motor-drive amplifi-
ers. Figure 11 shows the format of the PWM magnitude
output signal.
00921913
FIGURE 11. PWM Output Signal Format (Sign output (pin 18) not shown)
TABLE 2. LM628 User Command Set
Description
Command
RESET
Type
Initialize
Hex
Data
Note
Bytes
Reset LM628
00
05
06
02
03
1B
1A
20
0
0
0
0
0
2
2
4
1
2
2
1
1
1
1
1
PORT8
PORT12
DFH
Initialize
Initialize
Initialize
Interrupt
Interrupt
Interrupt
Interrupt
Select 8-Bit Output
Select 12-Bit Output
Define Home
SIP
Set Index Position
Interrupt on Error
Stop on Error
LPEI
LPES
SBPA
Set Breakpoint, Absolute
11
www.national.com
Theory of Operation (Continued)
TABLE 2. LM628 User Command Set (Continued)
Command
Type
Description
Hex
Data
Note
Bytes
SBPR
Interrupt
Set Breakpoint, Relative
Mask Interrupts
21
1C
1D
1E
04
4
1
1
MSKI
Interrupt
Interrupt
Filter
2
RSTI
Reset Interrupts
2
1
LFIL
Load Filter Parameters
Update Filter
2 to 10
1
UDF
Filter
0
1
LTRJ
Trajectory
Trajectory
Report
Report
Report
Report
Report
Report
Report
Report
Load Trajectory
1F
2 to 14
1
STT
Start Motion
01
0
1
2
4
4
4
4
2
2
3
RDSTAT
RDSIGS
RDIP
Read Status Byte
Read Signals Register
Read Index Position
Read Desired Position
Read Real Position
Read Desired Velocity
Read Real Velocity
Read Integration Sum
None
0C
09
1, 4
1
1
RDDP
RDRP
RDDV
RDRV
RDSUM
08
1
0A
07
1
1
0B
0D
1
1
Note 4: Commands may be executed “On the Fly” during motion.
Note 5: Commands not applicable to execution during motion.
Note 6: Command may be executed during motion if acceleration parameter was not changed.
Note 7: Command needs no code because the command port status-byte read is totally supported by hardware.
five of the six interrupt masks (only the SBPA/SBPR interrupt
is masked), sets the output port size to 8 bits, and defines
the current absolute position as home. Reset, which may be
executed at any time, will be completed in less than 1.5 ms.
Also see commands PORT8 and PORT12.
User Command Set
GENERAL
The following paragraphs describe the user command set of
the LM628. Some of the commands can be issued alone and
some require a supporting data structure. As examples, the
command STT (STarT motion) does not require additional
data; command LFIL (Load FILter parameters) requires ad-
ditional data (derivative-term sampling interval and/or filter
parameters).
PORT8 COMMAND: SET OUTPUT PORT SIZE TO 8
BITS
Command Code:
Data Bytes:
05 Hex
None
Executable During Motion: Not Applicable
Commands are categorized by function: initialization, inter-
rupt control, filter control, trajectory control, and data report-
ing. The commands are listed in Table 2 and described in the
following paragraphs. Along with each command name is its
command-byte code, the number of accompanying data
bytes that are to be written (or read), and a comment as to
whether the command is executable during motion.
The default output port size of the LM628 is 8 bits; so the
PORT8 command need not be executed when using an 8-bit
DAC. This command must not be executed when using a
12-bit converter; it will result in erratic, unpredictable motor
behavior. The 8-bit output port size is the required selection
when using the LM629, the PWM-output version of the
LM628.
Initialization Commands
PORT12 COMMAND: SET OUTPUT PORT SIZE TO 12
BITS
The following four LM628 user commands are used primarily
to initialize the system for use.
Command Code:
Data Bytes:
06 Hex
None
RESET COMMAND: RESET THE LM628
Executable During Motion: Not Applicable
Command Code:
Data Bytes:
00 Hex
None
When a 12-bit DAC is used, command PORT12 should be
issued very early in the initialization process. Because use of
this command is determined by system hardware, there is
only one foreseen reason to execute it later: if the RESET
command is issued (because an 8-bit output would then be
selected as the default) command PORT12 should be im-
mediately executed. This command must not be issued
when using an 8-bit converter or the LM629, the PWM-
output version of the LM628.
Executable During Motion: Yes
This command (and the hardware reset input, Pin 27) results
in setting the following data items to zero: filter coefficients
and their input buffers, trajectory parameters and their input
buffers, and the motor control output. A zero motor control
output is a half-scale, offset-binary code: (80 hex for the 8-bit
output mode; 800 hex for 12-bit mode). During reset, the
DAC port outputs 800 hex to “zero” a 12-bit DAC and reverts
to 80 hex to “zero” an 8-bit DAC. The command also clears
www.national.com
12
LPES COMMAND: LOAD POSITION ERROR FOR
STOPPING
Initialization Commands (Continued)
DFH COMMAND: DEFINE HOME
Command Code:
Data Bytes:
1A Hex
Command Code:
Data Bytes:
02 Hex
None
Two
Data Range:
0000 to 7FFF Hex
Executable During Motion: Yes
Executable During Motion: Yes
This command declares the current position as “home”, or
absolute position 0 (Zero). If DFH is executed during motion
it will not affect the stopping position of the on-going move
unless command STT is also executed.
Instruction LPES is essentially the same as command LPEI
above, but adds the feature of turning off the motor upon
detecting excessive position error. The motor drive is not
actually switched off, it is set to half-scale, the offset-binary
code for zero. As with command LPEI, bit 5 of the status byte
is also set to logic high. The first byte of threshold data
written with command LPES is the more significant. The user
can have the LM628 interrupt the host to signify that an
excessive position error has occurred. See the descriptions
for commands MSKI and RSTI.
Interrupt Control Commands
The following seven LM628 user commands are associated
with conditions which can be used to interrupt the host
computer. In order for any of the potential interrupt condi-
tions to actually interrupt the host via Pin 17, the correspond-
ing bit in the interrupt mask data associated with command
MSKI must have been set to logic high (the non-masked
state).
SBPA COMMAND:
Command Code:
Data Bytes:
20 Hex
Four
The identity of all interrupts is made known to the host via
reading and parsing the status byte. Even if all interrupts are
masked off via command MSKI, the state of each condition
is still reflected in the status byte. This feature facilitates
polling the LM628 for status information, as opposed to
interrupt driven operation.
Data Range:
C0000000 to 3FFFFFFF Hex
Executable During Motion: Yes
This command enables the user to set a breakpoint in terms
of absolute position. Bit 6 of the status byte is set to logic
high when the breakpoint position is reached. This condition
is useful for signaling trajectory and/or filter parameter up-
dates. The user can also arrange to have the LM628 inter-
rupt the host to signify that a breakpoint position has been
reached. See the descriptions for commands MSKI and
RSTI.
SIP COMMAND: SET INDEX POSITION
Command Code:
Data Bytes:
03 Hex
None
Executable During Motion: Yes
After this command is executed, the absolute position which
corresponds to the occurrence of the next index pulse input
will be recorded in the index register, and bit 3 of the status
byte will be set to logic high. The position is recorded when
both encoder-phase inputs and the index pulse input are
logic low. This register can then be read by the user (see
description for command RDIP) to facilitate aligning the defi-
nition of home position (see description of command DFH)
with an index pulse. The user can also arrange to have the
LM628 interrupt the host to signify that an index pulse has
occurred. See the descriptions for commands MSKI and
RSTI.
SBPR COMMAND:
Command Code:
Data Bytes:
21 Hex
Four
Data Range:
See Text
Executable During Motion: Yes
This command enables the user to set a breakpoint in terms
of relative position. As with command SBPA, bit 6 of the
status byte is set to logic high when the breakpoint position
(relative to the current commanded target position) is
reached. The relative breakpoint input value must be such
that when this value is added to the target position the result
remains within the absolute position range of the system
(C0000000 to 3FFFFFFF hex). This condition is useful for
signaling trajectory and/or filter parameter updates. The user
can also arrange to have the LM628 interrupt the host to
signify that a breakpoint position has been reached. See the
descriptions for commands MSKI and RSTI.
LPEI COMMAND: LOAD POSITION ERROR FOR
INTERRUPT
Command Code:
Data Bytes:
1B Hex
Two
Data Range:
0000 to 7FFF Hex
Executable During Motion: Yes
MSKI COMMAND: MASK INTERRUPTS
An excessive position error (the output of the loop summing
junction) can indicate a serious system problem; e.g., a
stalled rotor. Instruction LPEI allows the user to input a
threshold for position error detection. Error detection occurs
when the absolute magnitude of the position error exceeds
the threshold, which results in bit 5 of the status byte being
set to logic high. If it is desired to also stop (turn off) the
motor upon detecting excessive position error, see com-
mand LPES, below. The first byte of threshold data written
with command LPEI is the more significant. The user can
have the LM628 interrupt the host to signify that an exces-
sive position error has occurred. See the descriptions for
commands MSKI and RSTI.
Command Code:
Data Bytes:
1C Hex
Two
Data Range:
See Text
Executable During Motion: Yes
The MSKI command lets the user determine which potential
interrupt condition(s) will interrupt the host. Bits 1 through 6
of the status byte are indicators of the six conditions which
are candidates for host interrupt(s). When interrupted, the
host then reads the status byte to learn which condition(s)
occurred. Note that the MSKI command is immediately fol-
lowed by two data bytes. Bits 1 through 6 of the second (less
significant) byte written determine the masked/unmasked
status of each potential interrupt. Any zero(s) in this 6-bit
13
www.national.com
Interrupt Control Commands
(Continued)
field will mask the corresponding interrupt(s); any one(s)
enable the interrupt(s). Other bits comprising the two bytes
have no effect. The mask controls only the host interrupt
process; reading the status byte will still reflect the actual
conditions independent of the mask byte. See Table 3.
(see Eq. 1) to values equal to or less than a user-defined
maximum value; this capability minimizes integral or reset
“wind-up” (an overshooting effect of the integral action). The
positive-only input value is compared to the absolute mag-
nitude of the integration term; when the magnitude of inte-
gration term value exceeds il, the il value (with appropriate
sign) is substituted for the integration term value.
TABLE 3. Mask and Reset Bit Allocations for Interrupts
Bit Position
Bits 15 thru 7
Bit 6
Function
Not Used
The derivative-term sampling interval is also programmable
via this command. After writing the command code, the first
two data bytes that are written specify the derivative-term
sampling interval and which of the four filter parameters
is/are to be written via any forthcoming data bytes. The first
byte written is the more significant. Thus the two data bytes
constitute a filter control word that informs the LM628 as to
the nature and number of any following data bytes. See
Table 4.
Breakpoint Interrupt
Position-Error Interrupt
Wrap-Around Interrupt
Index-Pulse Interrupt
Trajectory-Complete Interrupt
Command-Error Interrupt
Not Used
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TABLE 4. Filter Control word Bit Allocation
RSTI COMMAND: RESET INTERRUPTS
Bit Position
Bit 15
Function
Derivative Sampling Interval Bit 7
Derivative Sampling Interval Bit 6
Derivative Sampling Interval Bit 5
Derivative Sampling Interval Bit 4
Derivative Sampling Interval Bit 3
Derivative Sampling Interval Bit 2
Derivative Sampling Interval Bit 1
Derivative Sampling Interval Bit 0
Not Used
Command Code:
Data Bytes:
1D Hex
Two
Bit 14
Data Range:
See Text
Bit 13
Executable During Motion: Yes
Bit 12
When one of the potential interrupt conditions of Table 3
occurs, command RSTI is used to reset the corresponding
interrupt flag bit in the status byte. The host may reset one or
all flag bits. Resetting them one at a time allows the host to
service them one at a time according to a priority pro-
grammed by the user. As in the MSKI command, bits 1
through 6 of the second (less significant) byte correspond to
the potential interrupt conditions shown in Table 3. Also see
description of RDSTAT command. Any zero(s) in this 6-bit
field reset the corresponding interrupt(s). The remaining bits
have no effect.
Bit 11
Bit 10
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
9
8
7
6
5
4
3
2
1
0
Not Used
Not Used
Not Used
Loading kp Data
Filter Control Commands
Loading ki Data
The following two LM628 user commands are used for set-
ting the derivative-term sampling interval, for adjusting the
filter parameters as required to tune the system, and to
control the timing of these system changes.
Loading kd Data
Loading il Data
Bits 8 through 15 select the derivative-term sampling inter-
val. See Table 5. The user must locally save and restore
these bits during successive writes of the filter control word.
LFIL COMMAND: LOAD FILTER PARAMETERS
Command Code:
Data Bytes:
1E Hex
Bits 4 through 7 of the filter control word are not used.
Two to Ten
Bits 0 to 3 inform the LM628 as to whether any or all of the
filter parameters are about to be written. The user may
choose to update any or all (or none) of the filter parameters.
Those chosen for updating are so indicated by logic one(s) in
the corresponding bit position(s) of the filter control word.
Data Ranges…
Filter Control Word:
Filter Coefficients:
Integration Limit:
See Text
0000 to 7FFF Hex (Pos Only)
0000 to 7FFF Hex (Pos Only)
The data bytes specified by and immediately following the
filter control word are written in pairs to comprise 16-bit
words. The order of sending the data words to the LM628
corresponds to the descending order shown in the above
description of the filter control word; i.e., beginning with kp,
then ki, kd and il. The first byte of each word is the more-
significant byte. Prior to writing a word (byte pair) it is nec-
essary to check the busy bit in the status byte for readiness.
The required data is written to the primary buffers of a
double-buffered scheme by the above described operations;
Executable During Motion: Yes
The filter parameters (coefficients) which are written to the
LM628 to control loop compensation are: kp, ki, kd, and il
(integration limit). The integration limit (il) constrains the
contribution of the integration term
www.national.com
14
celeration), mode of operation (position or velocity), and
direction (velocity mode only) as required to describe a
desired motion or to select the mode of a manually directed
stop, and to control the timing of these system changes.
Filter Control Commands (Continued)
it is not transferred to the secondary (working) registers until
the UDF command is executed. This fact can be used ad-
vantageously; the user can input numerous data ahead of
their actual use. This simple pipeline effect can relieve po-
tential host computer data communications bottlenecks, and
facilitates easier synchronization of multiple-axis controls.
LTRJ COMMAND: LOAD TRAJECTORY PARAMETERS
Command Code:
Data Bytes:
Data Ranges…
Trajectory Control
Word:
1F Hex
Two to Fourteen
UDF COMMAND: UPDATE FILTER
Command Code:
Data Bytes:
04 Hex
None
See Text
Executable During Motion: Yes
Position:
C0000000 to 3FFFFFFF Hex
00000000 to 3FFFFFFF Hex
(Pos Only)
The UDF command is used to update the filter parameters,
the specifics of which have been programmed via the LFIL
command. Any or all parameters (derivative-term sampling
interval, kp, ki, kd, and/or il) may be changed by the appro-
priate command(s), but command UDF must be executed to
affect the change in filter tuning. Filter updating is synchro-
nized with the calculations to eliminate erratic or spurious
behavior.
Velocity:
Acceleration:
00000000 to 3FFFFFFF Hex
(Pos Only)
Executable During
Motion:
Conditionally, See Text
Trajectory Control Commands
The following two LM628 user commands are used for set-
ting the trajectory control parameters (position, velocity, ac-
TABLE 5. Derivative-Term Sampling Interval Selection Codes
Bit Position
Selected Derivative
Sampling Interval
256 µs
15
0
14
0
13
0
12
0
11
0
10
0
9
0
0
1
1
8
0
1
0
1
0
0
0
0
0
0
512 µs
0
0
0
0
0
0
768 µs
0
0
0
0
0
0
1024 µs, etc…
thru
1
1
1
1
1
1
1
1
65,536 µs
Note 8: Sampling intervals shown are when using an 8.0 MHz clock. The 256 corresponds to 2048/8 MHz; sample intervals must be scaled for other clock
frequencies.
The trajectory control parameters which are written to the
Bit Position
Function
Stop Abruptly (Maximum Deceleration)
Turn Off Motor (Output Zero Drive)
Not Used
LM628 to control motion are: acceleration, velocity, and po-
sition. In addition, indications as to whether these three
parameters are to be considered as absolute or relative
inputs, selection of velocity mode and direction, and manual
stopping mode selection and execution are programmable
via this command. After writing the command code, the first
two data bytes that are written specify which parameter(s)
is/are being changed. The first byte written is the more
significant. Thus the two data bytes constitute a trajectory
control word that informs the LM628 as to the nature and
number of any following data bytes. See Table 6.
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
9
8
7
6
5
4
3
2
1
0
Not Used
Acceleration Will Be Loaded
Acceleration Data Is Relative
Velocity Will Be Loaded
Velocity Data Is Relative
Position Will Be Loaded
Position Data Is Relative
TABLE 6. Trajectory Control Word Bit Allocation
Bit Position
Bit 15
Function
Bit 12 determines the motor direction when in the velocity
mode. A logic one indicates forward direction. This bit has no
effect when in position mode.
Not Used
Not Used
Not Used
Bit 14
Bit 11 determines whether the LM628 operates in velocity
mode (Bit 11 logic one) or position mode (Bit 11 logic zero).
Bit 13
Bit 12
Forward Direction (Velocity Mode Only)
Velocity Mode
Bits 8 through 10 are used to select the method of manually
stopping the motor. These bits are not provided for one to
merely specify the desired mode of stopping, in position
mode operations, normal stopping is always smooth and
Bit 11
Bit 10
Stop Smoothly (Decelerate as
Programmed)
15
www.national.com
one sample interval) can be arranged by loading the re-
quired trajectory parameters for each (and every) axis and
then simultaneously issuing a single STT command to all
axes. This command may be executed at any time, unless
the acceleration value has been changed and a trajectory
has not been completed or the motor has not been manually
stopped. If STT is issued during motion and acceleration has
been changed, a command error interrupt will be generated
and the command will be ignored.
Trajectory Control Commands
(Continued)
occurs automatically at the end of the specified trajectory.
Under exceptional circumstances it may be desired to manu-
ally intervene with the trajectory generation process to affect
a premature stop. In velocity mode operations, however, the
normal means of stopping is via bits 8 through 10 (usually bit
10). Bit 8 is set to logic one to stop the motor by turning off
motor drive output (outputting the appropriate offset-binary
code to apply zero drive to the motor); bit 9 is set to one to
stop the motor abruptly (at maximum available acceleration,
by setting the target position equal to the current position);
and bit 10 is set to one to stop the motor smoothly by using
the current user-programmed acceleration value. Bits 8
through 10 are to be used exclusively; only one bit should be
a logic one at any time.
Data Reporting Commands
The following seven LM628 user commands are used to
obtain data from various registers in the LM628. Status,
position, and velocity information are reported. With the
exception of RDSTAT, the data is read from the LM628 data
port after first writing the corresponding command to the
command port.
Bits 0 through 5 inform the LM628 as to whether any or all of
the trajectory controlling parameters are about to be written,
and whether the data should be interpreted as absolute or
relative. The user may choose to update any or all (or none)
of the trajectory parameters. Those chosen for updating are
so indicated by logic one(s) in the corresponding bit posi-
tion(s). Any parameter may be changed while the motor is in
motion; however, if acceleration is changed then the next
STT command must not be issued until the LM628 has
completed the current move or has been manually stopped.
RDSTAT COMMAND: READ STATUS BYTE
Command Code:
Byte Read:
None
One
Data Range:
See Text
Executable During Motion: Yes
The RDSTAT command is really not a command, but is listed
with the other commands because it is used very frequently
to control communications with the host computer. There is
no identification code; it is directly supported by the hard-
ware and may be executed at any time. The single-byte
status read is selected by placing CS , PS and RD at logic
zero. See Table 7.
The data bytes specified by and immediately following the
trajectory control word are written in pairs which comprise
16-bit words. Each data item (parameter) requires two 16-bit
words; the word and byte order is most-to-least significant.
The order of sending the parameters to the LM628 corre-
sponds to the descending order shown in the above descrip-
tion of the trajectory control word; i.e., beginning with accel-
eration, then velocity, and finally position.
TABLE 7. Status Byte Bit Allocation
Bit Position
Bit 7
Function
Acceleration and velocity are 32 bits, positive only, but range
only from 0 (00000000 hex) to [230]−1 (3FFFFFFF hex). The
bottom 16 bits of both acceleration and velocity are scaled
as fractional data; therefore, the least-significant integer data
bit for these parameters is bit 16 (where the bits are num-
bered 0 through 31). To determine the coding for a given
velocity, for example, one multiplies the desired velocity (in
counts per sample interval) times 65,536 and converts the
result to binary. The units of acceleration are counts per
sample per sample. The value loaded for acceleration must
not exceed the value loaded for velocity. Position is a signed,
32-bit integer, but ranges only from −[230] (C0000000 hex) to
[230]−1 (3FFFFFFF Hex).
Motor Off
Bit 6
Breakpoint Reached [Interrupt]
Excessive Position Error [Interrupt]
Wraparound Occurred [Interrupt]
Index Pulse Observed [Interrupt]
Trajectory Complete [Interrupt]
Command Error [Interrupt]
Busy Bit
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit 7, the motor-off flag, is set to logic one when the motor
drive output is off (at the half-scale, offset-binary code for
zero). The motor is turned off by any of the following condi-
tions: power-up reset, command RESET, excessive position
error (if command LPES had been executed), or when com-
mand LTRJ is used to manually stop the motor via turning
the motor off. Note that when bit 7 is set in conjunction with
command LTRJ for producing a manual, motor-off stop, the
actual setting of bit 7 does not occur until command STT is
issued to affect the stop. Bit 7 is cleared by command STT,
except as described in the previous sentence.
The required data is written to the primary buffers of a
double-buffered scheme by the above described operations;
it is not transferred to the secondary (working) registers until
the STT command is executed. This fact can be used ad-
vantageously; the user can input numerous data ahead of
their actual use. This simple pipeline effect can relieve po-
tential host computer data communications bottlenecks, and
facilitates easier synchronization of multiple-axis controls.
STT COMMAND: START MOTION CONTROL
Bit 6, the breakpoint-reached interrupt flag, is set to logic one
when the position breakpoint loaded via command SBPA or
SBPR has been exceeded. The flag is functional indepen-
dent of the host interrupt mask status. Bit 6 is cleared via
command RSTI.
Command Code:
Data Bytes:
01 Hex
None
Executable During Motion: Yes, if acceleration has not
been changed
Bit 5, the excessive-position-error interrupt flag, is set to
logic one when a position-error interrupt condition exists.
This occurs when the error threshold loaded via command
The STT command is used to execute the desired trajectory,
the specifics of which have been programmed via the LTRJ
command. Synchronization of multi-axis control (to within
www.national.com
16
Data Reporting Commands
Bit Position
Function
(Continued)
Bit 10
On Target
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
9
8
7
6
5
4
3
2
1
0
Turn Off upon Excessive Position Error
Eight-Bit Output Mode
LPEI or LPES has been exceeded. The flag is functional
independent of the host interrupt mask status. Bit 5 is
cleared via command RSTI.
Motor Off
Bit 4, the wraparound interrupt flag, is set to logic one when
a numerical “wraparound” has occurred. To “wraparound”
means to exceed the position address space of the LM628,
which could occur during velocity mode operation. If a wrap-
around has occurred, then position information will be in
error and this interrupt helps the user to ensure position data
integrity. The flag is functional independent of the host inter-
rupt mask status. Bit 4 is cleared via command RSTI.
Breakpoint Reached [Interrupt]
Excessive Position Error [Interrupt]
Wraparound Occurred [Interrupt]
Index Pulse Acquired [Interrupt]
Trajectory Complete [Interrupt]
Command Error [Interrupt]
Bit 3, the index-pulse acquired interrupt flag, is set to logic
one when an index pulse has occurred (if command SIP had
been executed) and indicates that the index position register
has been updated. The flag is functional independent of the
host interrupt mask status. Bit 3 is cleared by command
RSTI.
Acquire Next Index (SIP Executed)
Bit 15, the host interrupt flag, is set to logic one when the
host interrupt output (Pin 17) is logic one. Pin 17 is set to
logic one when any of the six host interrupt conditions occur
(if the corresponding interrupt has not been masked). Bit 15
(and Pin 17) are cleared via command RSTI.
Bit 2, the trajectory complete interrupt flag, is set to logic one
when the trajectory programmed by the LTRJ command and
initiated by the STT command has been completed. Be-
cause of overshoot or a limiting condition (such as com-
manding the velocity to be higher than the motor can
achieve), the motor may not yet be at the final commanded
position. This bit is the logical OR of bits 7 and 10 of the
Signals Register, see command RDSIGS below. The flag
functions independently of the host interrupt mask status. Bit
2 is cleared via command RSTI.
Bit 14, the acceleration-loaded flag, is set to logic one when
acceleration data is written to the LM628. Bit 14 is cleared by
the STT command.
Bit 13, the UDF-executed flag, is set to logic one when the
UDF command is executed. Because bit 13 is cleared at the
end of the sampling interval in which it has been set, this
signal is very short-lived and probably not very profitable for
monitoring.
Bit 12, the forward direction flag, is meaningful only when the
LM628 is in velocity mode. The bit is set to logic one to
indicate that the desired direction of motion is “forward”; zero
indicates “reverse” direction. Bit 12 is set and cleared via
command LTRJ. The actual setting and clearing of bit 12
does not occur until command STT is executed.
Bit 1, the command-error interrupt flag, is set to logic one
when the user attempts to read data when a write was
appropriate (or vice versa). The flag is functional indepen-
dent of the host interrupt mask status. Bit 1 is cleared via
command RSTI.
Bit 0, the busy flag, is frequently tested by the user (via the
host computer program) to determine the busy/ready status
prior to writing and reading any data. Such writes and reads
may be executed only when bit 0 is logic zero (not busy). Any
command or data writes when the busy bit is high will be
ignored. Any data reads when the busy bit is high will read
the current contents of the I/O port buffers, not the data
expected by the host. Such reads or writes (with the busy bit
high) will not generate a command-error interrupt.
Bit 11, the velocity mode flag, is set to logic one to indicate
that the user has selected (via command LTRJ) velocity
mode. Bit 11 is cleared when position mode is selected (via
command LTRJ). The actual setting and clearing of bit 11
does not occur until command STT is executed.
Bit 10, the on-target flag, is set to logic one when the
trajectory generator has completed its functions for the last-
issued STT command. Bit 10 is cleared by the next STT
command.
Bit 9, the turn-off on-error flag, is set to logic one when
command LPES is executed. Bit 9 is cleared by command
LPEI.
RDSIGS COMMAND: READ SIGNALS REGISTER
Command Code:
Bytes Read:
0C Hex
Two
Bit 8, the 8-bit output flag, is set to logic one when the LM628
is reset, or when command PORT8 is executed. Bit 8 is
cleared by command PORT12.
Data Range:
See Text
Executable During Motion: Yes
Bits 0 through 7 replicate the status byte (see ), with the
exception of bit 0. Bit 0, the acquire next index flag, is set to
logic one when command SIP is executed; it then remains
set until the next index pulse occurs.
The LM628 internal “signals” register may be read using this
command. The first byte read is the more significant. The
less significant byte of this register (with the exception of bit
0) duplicates the status byte. See Table 8.
RDIP COMMAND: READ INDEX POSITION
TABLE 8. Signals Register Bit Allocation
Command Code:
Bytes Read:
09 Hex
Bit Position
Bit 15
Function
Four
Host Interrupt
Data Range:
C0000000 to 3FFFFFFF Hex
Bit 14
Acceleration Loaded (But Not Updated)
UDF Executed (But Filter Not yet Updated)
Forward Direction
Executable During Motion: Yes
Bit 13
This command reads the position recorded in the index
register. Reading the index register can be part of a system
error checking scheme. Whenever the SIP command is ex-
ecuted, the new index position minus the old index position,
Bit 12
Bit 11
Velocity Mode
17
www.national.com
as with command RDDV above, data returned by command
RDRV is a signed quantity, with negative values represent-
ing reverse-direction motion.
Data Reporting Commands
(Continued)
divided by the incremental encoder resolution (encoder lines
times four), should always be an integral number. The RDIP
command facilitates acquiring these data for host-based
calculations. The command can also be used to identify/
verify home or some other special position. The bytes are
read in most-to-least significant order.
RDSUM COMMAND: READ INTEGRATION-TERM
SUMMATION VALUE
Command Code:
Bytes Read:
0D Hex
Two
Data Range:
00000 Hex to
the Current
Value of the Integration Limit
RDDP COMMAND: READ DESIRED POSITION
Executable During Motion: Yes
Command Code:
Bytes Read:
08 Hex
This command reads the value to which the integration term
has accumulated. The ability to read this value may be
helpful in initially or adaptively tuning the system.
Four
Data Range:
C0000000 to 3FFFFFFF Hex
Executable During Motion: Yes
This command reads the instantaneous desired (current
temporal ) position output of the profile generator. This is the
“setpoint” input to the position-loop summing junction. The
bytes are read in most-to-least significant order.
Typical Applications
PROGRAMMING LM628 HOST HANDSHAKING
(INTERRUPTS)
A few words regarding the LM628 host handshaking will be
helpful to the system programmer. As indicated in various
portions of the above text, the LM628 handshakes with the
host computer in two ways: via the host interrupt output (Pin
17), or via polling the status byte for “interrupt” conditions.
When the hardwired interrupt is used, the status byte is also
read and parsed to determine which of six possible condi-
tions caused the interrupt.
RDRP COMMAND: READ REAL POSITION
Command Code:
Bytes Read:
0A Hex
Four
Data Range:
C0000000 to 3FFFFFFF Hex
Executable During Motion: Yes
This command reads the current actual position of the motor.
This is the feedback input to the loop summing junction. The
bytes are read in most-to-least significant order.
When using the hardwired interrupt it is very important that
the host interrupt service routine does not interfere with a
command sequence which might have been in progress
when the interrupt occurred. If the host interrupt service
routine were to issue a command to the LM628 while it is in
the middle of an ongoing command sequence, the ongoing
command will be aborted (which could be detrimental to the
application).
RDDV COMMAND: READ DESIRED VELOCITY
Command Code:
Bytes Read:
07 Hex
Four
Data Range:
C0000001 to 3FFFFFFF
Executable During Motion: Yes
Two approaches exist for avoiding this problem. If one is
using hardwired interrupts, they should be disabled at the
host prior to issuing any LM628 command sequence, and
re-enabled after each command sequence. The second ap-
proach is to avoid hardwired interrupts and poll the LM628
status byte for “interrupt” status. The status byte always
reflects the interrupt-condition status, independent of
whether or not the interrupts have been masked.
This command reads the integer and fractional portions of
the instantaneous desired (current temporal ) velocity, as
used to generate the desired position profile. The bytes are
read in most-to-least significant order. The value read is
properly scaled for numerical comparison with the user-
supplied (commanded) velocity; however, because the two
least-significant bytes represent fractional velocity, only the
two most-significant bytes are appropriate for comparison
with the data obtained via command RDRV (see below).
Also note that, although the velocity input data is constrained
to positive numbers (see command LTRJ), the data returned
by command RDDV represents a signed quantity where
negative numbers represent operation in the reverse direc-
tion.
TYPICAL HOST COMPUTER/PROCESSOR INTERFACE
The LM628 is interfaced with the host computer/processor
via an 8-bit parallel bus. Figure 12 shows such an interface
and a minimum system configuration.
As shown in Figure 12, the LM628 interfaces with the host
data, address and control lines. The address lines are de-
coded to generate the LM628 CS input; the host address
LSB directly drives the LM628 PS input. Figure 12 also
shows an 8-bit DAC and an LM12 Power Op Amp interfaced
to the LM628.
RDRV COMMAND: READ REAL VELOCITY
Command Code:
Bytes Read:
0B Hex
Two
Data Range:
C000 to 3FFF Hex, See Text
Executable During Motion: Yes
LM628 AND HIGH PERFORMANCE CONTROLLER
(HPC)INTERFACE
This command reads the integer portion of the instanta-
neous actual velocity of the motor. The internally maintained
fractional portion of velocity is not reported because the
reported data is derived by reading the incremental encoder,
which produces only integer data. For comparison with the
result obtained by executing command RDDV (or the user-
supplied input value), the value returned by command RDRV
must be multiplied by 216 (shifted left 16 bit positions). Also,
Figure 13 shows the LM628 interfaced to a National HPC
High Performance Controller. The delay and logic associated
with the WR line is used to effectively increase the write-data
hold time of the HPC (as seen at the LM628) by causing the
WR pulse to rise early. Note that the HPC CK2 output
www.national.com
18
TYPICAL PWM MOTOR DRIVE INTERFACES
Typical Applications (Continued)
provides the clock for the LM628. The 74LS245 is used to
decrease the read-data hold time, which is necessary when
interfacing to fast host busses.
Figure 16 shows an LM18298 dual full-bridge driver inter-
faced to the LM629 PWM outputs to provide a switch-mode
power amplifier for driving small brush/commutator motors.
Incremental Encoder Interface
INTERFACING A 12-BIT DAC
The incremental (position feedback) encoder interface con-
sists of three lines: Phase A (Pin 2), Phase B (Pin 3), and
Index (Pin 1). The index pulse output is not available on
some encoders. The LM628 will work with both encoder
types, but commands SIP and RDIP will not be meaningful
without an index pulse (or alternative input for this input …
be sure to tie Pin 1 high if not used).
Figure 14 illustrates use of a 12-bit DAC with the LM628. The
74LS378 hex gated-D flip-flop and an inverter demultiplex
the 12-bit output. DAC offset must be adjusted to minimize
DAC linearity and monotonicity errors. Two methods exist for
making this adjustment. If the DAC1210 has been socketed,
remove it and temporarily connect a 15 kΩ resistor between
Pins 11 and 13 of the DAC socket (Pins 2 and 6 of the
LF356) and adjust the 25 kΩ potentiometer for 0V at Pin 6 of
the LF356.
Some consideration is merited relative to use in high
Gaussian-noise environments. If noise is added to the en-
coder inputs (either or both inputs) and is such that it is not
sustained until the next encoder transition, the LM628 de-
coder logic will reject it. Noise that mimics quadrature counts
or persists through encoder transitions must be eliminated
by appropriate EMI design.
If the DAC is not removable, the second method of adjust-
ment requires that the DAC1210 inputs be presented an
all-zeros code. This can be arranged by commanding the
appropriate move via the LM628, but with no feedback from
the system encoder. When the all-zeros code is present,
adjust the pot for 0V at Pin 6 of the LF356.
Simple digital “filtering” schemes merely reduce susceptibil-
ity to noise (there will always be noise pulses longer than the
filter can eliminate). Further, any noise filtering scheme re-
duces decoder bandwidth. In the LM628 it was decided
(since simple filtering does not eliminate the noise problem)
to not include a noise filter in favor of offering maximum
possible decoder bandwidth. Attempting to drive encoder
signals too long a distance with simple TTL lines can also be
a source of “noise” in the form of signal degradation (poor
risetime and/or ringing). This can also cause a system to
lose positional integrity. Probably the most effective counter-
measure to noise induction can be had by using balanced-
line drivers and receivers on the encoder inputs. Figure 17
shows circuitry using the DS26LS31 and DS26LS32.
A MONOLITHIC LINEAR DRIVE USING LM12 POWER
OP AMP
Figure 15 shows a motor-drive amplifier built using the LM12
Power Operational Amplifier. This circuit is very simple and
can deliver up to 8A at 30V (using the LM12L/LM12CL).
Resistors R1 and R2 should be chosen to set the gain to
provide maximum output voltage consistent with maximum
input voltage. This example provides a gain of 2.2, which
allows for amplifier output saturation at 22V with a 10V
input, assuming power supply voltages of 30V. The ampli-
fier gain should not be higher than necessary because the
system is non-linear when saturated, and because gain
should be controlled by the LM628. The LM12 can also be
configured as a current driver, see 1987 Linear Databook,
Vol. 1, p. 2–280.
19
www.national.com
Typical Applications (Continued)
00921914
Note:
FIGURE 12. Host Interface and Minimum System Configuration
www.national.com
20
Typical Applications (Continued)
00921915
FIGURE 13. LM628 and HPC Interface
21
www.national.com
www.national.com
22
Typical Applications (Continued)
00921917
FIGURE 15. Driving a Motor with the LM12 Power Op Amp
00921918
FIGURE 16. PWM Drive for Brush/Commutator Motors
23
www.national.com
Typical Applications (Continued)
00921920
FIGURE 17. Typical Balanced-Line Encoder Input Circuit
www.national.com
24
Physical Dimensions inches (millimeters) unless otherwise noted
24-Lead Small Outline Package (M)
Order Number LM629M-6 or LM629M-8
NS Package Number M24B
28 Lead Molded Dual-In-Line Package (N)
Order Number LM628N-6, LM628N-8, LM629N-6 or LM629N-8
NS Package Number N28B
25
www.national.com
Notes
LIFE SUPPORT POLICY
NATIONAL’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT
DEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL
COUNSEL OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein:
1. Life support devices or systems are devices or
systems which, (a) are intended for surgical implant
into the body, or (b) support or sustain life, and
whose failure to perform when properly used in
accordance with instructions for use provided in the
labeling, can be reasonably expected to result in a
significant injury to the user.
2. A critical component is any component of a life
support device or system whose failure to perform
can be reasonably expected to cause the failure of
the life support device or system, or to affect its
safety or effectiveness.
National Semiconductor
Americas Customer
Support Center
National Semiconductor
Europe Customer Support Center
Fax: +49 (0) 180-530 85 86
National Semiconductor
Asia Pacific Customer
Support Center
National Semiconductor
Japan Customer Support Center
Fax: 81-3-5639-7507
Email: new.feedback@nsc.com
Tel: 1-800-272-9959
Email: europe.support@nsc.com
Deutsch Tel: +49 (0) 69 9508 6208
English Tel: +44 (0) 870 24 0 2171
Français Tel: +33 (0) 1 41 91 8790
Fax: 65-6250 4466
Email: ap.support@nsc.com
Tel: 65-6254 4466
Email: nsj.crc@jksmtp.nsc.com
Tel: 81-3-5639-7560
www.national.com
National does not assume any responsibility for use of any circuitry described, no circuit patent licenses are implied and National reserves the right at any time without notice to change said circuitry and specifications.
相关型号:
LM629N-8/NOPB
IC BRUSH DC MOTOR CONTROLLER, PDIP28, ROHS COMPLIANT, PLASTIC, DIP-28, Motion Control Electronics
NSC
LM62BIM3/NOPB
Analog Temperature Sensor, ANALOG TEMP SENSOR-VOLTAGE, 0.48-1.88V, 2Cel, RECTANGULAR, SURFACE MOUNT, PLASTIC, SOT-23, 3 PIN
NSC
©2020 ICPDF网 联系我们和版权申明