throbber
~National
`~ Semiconductor
`
`400062
`
`

`

`--------- .
`
`POWER IC's
`- DATABOOK
`
`1993 Edition
`
`Linear Voltage Regulators
`
`Low Dropout Voltage Regulators
`
`Switching Voltage Regulators
`
`Motion Control
`
`Peripheral Drivers
`
`High Current Switches
`
`Surface Mount
`
`Appendices/Physical Dimensions
`
`Ill
`
`Ell • • • • fll •
`
`

`

`0)
`N
`
`~ i ~ National \
`re ~ Semiconductor
`:::E
`tO
`-' LM62W/LM629 ~recision Motion Controller
`
`"
`
`General Description
`The LM628/LM629 are dedicated motion-control proces(cid:173)
`sors 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 re(cid:173)
`quired for high performance digital motion control. The host
`control software interface is facilitated by a high-level com(cid:173)
`mand 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, and are offered in both 6 MHz and
`8 MHz maximum frequency versions. The suffixes -6 and -8,
`respectively, are used to designate version. They incorpo(cid:173)
`rate an SDA core processor and cells designed by SDA.
`
`Features
`• 32-bit position, velocity, and acceleration registers
`• Programmable digital PIO filter with 16-bit coefficients
`• Programmable derivative sampling interval
`• 8- or 12-bit DAC output data (LM628)
`• 8-bit sign-magnitude PWM output data (LM629)
`•
`lntemal trapezoidal velocity profile generator
`• Velocity, target position, and filter parameters may be
`changed during motion
`• Position and velocity modes of operation
`• Real-time programmable host interrupts
`• 8-bit parallel asynchronous host interface
`• Quadrature incremental encoder interface with index
`pulse input
`
`LM628
`
`HOST 1/0 PORT
`___ ,,__ TO HOST PROCESSOR
`
`(
`
`}
`
`FIGURE 1. Typical System Block Diagram
`
`TUH/9219-L
`,.
`
`Connection Diagrams
`LM628
`
`LM629
`
`Voo
`im
`CLK
`DACO
`
`DAC1
`DAC2
`DAC3
`
`DACS
`DAC6
`DAC7
`HI
`i's
`WR
`
`2,
`
`23
`22
`
`20
`19
`
`17
`
`16
`15
`
`Yoo
`im
`CLK
`NC
`NC
`NC
`NC
`NC
`NC
`PWM W/>.G
`PWW SIGN
`HI
`i's
`WR
`
`cs
`iiii
`GND
`
`TL/H/9219-2
`
`TUH/9219-3
`
`Order Number LM628N-6, LM628N-8, LM629N-6 or LM629N-8
`See NS Package Number N28B
`
`4-28
`
`Absolute
`If Military/Ae
`please conu
`Offlce/Dlstrlb
`Voltage at An)
`Respect toe
`Ambient Stora1
`Lead Tempera
`Maximum Pow
`ESD Toleranci
`(CzAP = 12(
`DC Elect,
`
`~ D
`
`INPUT VOLTAGE
`
`V1H
`
`VJL
`
`11N
`OUTPUT VOL TAI
`
`VoH
`
`VoL
`
`lour
`
`AC Elect,
`!Voo and TA pt
`
`Tim
`
`ENCODER AND II
`
`Motor-Phi
`
`Dwell-Tim
`
`lndexPuli
`(Relative I
`
`CLOCK AND RES
`
`Clock Pull
`LM6281
`LM6281
`
`Clock Per
`' LM6281
`"'- ~M6281
`
`ResetPul
`
`

`

`,.
`
`i~rs
`fffcients
`
`l)
`
`·s may be
`
`r,oith
`
`index
`
`Absolute Maximum Ratings (Note 1)
`If MIiitary/Aerospace specified devices are required,
`please contact the National Semiconductor Sales
`Office/Distributors for availability and specifications.
`Voltage at Any Pin with
`Respect to GND (Pin 14)
`Ambient Storage Temperature
`Lead Temperature (Soldering, 4 sec.)
`Maximum Power Dissipation
`ESD Tolerance
`(CzAP = 120 pF, RZAP = 1.5k)
`
`-0.3Vto +7.0V
`-65'Cto +15o•c
`260°c
`550mW
`
`2000V
`
`Operating Ratings
`Temperature Range
`Clock Frequency:
`LM628N-6, LM629N-6
`LM628N-8, LM629N-8
`Voo Range
`
`-40"C <TA< +0s·c
`
`1.0 MHz< fcLK < 6.0 MHz
`1.0 MHz< fcLK < 8.0 MHz
`4.5V < Voo < 5.5V
`
`r
`SI:
`O>
`N
`CD
`......
`r
`SI:
`O>
`. "-) co
`
`DC Electrical Characteristics <Voo and TA per Operati~g Ratings; fcLK = 6 MHz)
`Tested Limits
`
`Conditions
`
`Symbol
`
`Parameter
`
`loo
`
`Supply Current
`
`Outputs Open
`
`INPUT VOLTAGES
`
`V1L
`
`11N
`
`Logic 1 Input Voltage
`
`Logic O Input Voltage
`
`Input Currents
`
`OUTPUT VOLTAGES
`
`VoH
`
`lour
`
`Logic 1
`
`LogicO
`
`TRI-STATE® Output Leakage Current
`
`loH = -1.6mA
`loL = 1.6mA
`o,,; Vour,,; Voo
`
`Min
`
`2.0
`
`-10
`
`2.4
`
`-10
`
`Max
`
`100
`
`0.8
`
`10
`
`0.4
`
`10
`
`AC Electrical Characteristics
`(Voo and TA per Operating Ratings; fcLK = 6 MHz; CLOAO = 50 pF; Input Test Signal t,. = t, = 10 ns)
`
`Units
`
`mA
`
`V
`
`V
`µA
`
`V
`
`V
`µA
`
`Timing Interval
`
`}
`
`• ENCODER AND INDEX TIMING (See Figure 2)
`
`Motor-Phase Pulse Width
`
`Dwell-Time per State
`
`Index Pulse Setup and Hold
`(Relative to A and B Low)
`
`CLOCK AND RESET TIMING (See Figure 3)
`
`Clock Pulse Width
`LM628N-6 or LM629N-6
`LM628N-8 or LM629N-8
`
`Clock Period
`LM628N-6 or LM629N-6
`LM628N-8 or LM629N-8
`
`Reset Pulse Width
`
`UH/9219-3
`
`T#
`
`T1
`
`T2
`
`T3
`
`T4
`T4
`
`T5
`T5
`
`T6
`
`Min
`
`16
`fcLK
`8
`fcLK
`
`0
`
`78
`57
`
`166
`125
`
`8
`fcLK
`
`4-29
`
`Tested Limits
`
`Max
`
`Units
`
`µ,s
`
`µ,s
`
`µ,s
`
`ns
`ns
`
`ns
`ns
`
`µ,s
`
`• 1
`' '1
`
`

`

`a,
`N
`<O
`::::E
`....I
`......
`CIO
`N
`<O
`:::E
`....I
`
`AC Electrical Characteristics (Continued)
`(Voo and TA per Operating Ratings; fcLK = 6 MHz; CLOAD = 50 pF; Input Test Signal t, = 11 = 10 ns)
`
`Timing Interval
`
`STATUS BYTE READ TIMING (See Figure 4)
`
`Chip-Select Setup/Hold Time
`
`Port-Select Setup Time
`
`Port-Select Hold nme
`
`Read Data Access Time
`
`Read Data Hold Time
`
`RD High to Hi-Z Time
`
`COMMAND BYTE WRITE TIMING (See Agure 5)
`
`Chip-Select Setup/Hold Time
`
`Port-Select Setup nme
`
`Port-Select Hold Time
`
`Busy Bit Delay
`
`WR Pulse Width
`
`Write Data Setup Time
`
`Write Data Hold Time
`
`DATA WORD READ TIMING (See Figure 6)
`
`Chip-Select Setup/Hold nme
`
`T#
`
`T7
`
`TS
`
`T9
`
`T10
`
`T11
`
`T12
`
`T7
`
`TS
`
`T9
`
`T13
`
`T14
`
`T15
`
`T16
`
`Tested Limits
`
`Min
`
`Max
`
`Units
`
`180
`
`180
`
`(Note 2)
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`0
`
`30
`
`30
`
`0
`
`0
`
`30
`
`30
`
`100
`
`50
`
`120
`
`0
`
`Port-Select Setu·p Time
`
`Port-Select Hold nme
`
`Read Data Access Time
`
`Read Data Hold Time
`
`RD High to Hi-Z Time
`
`Busy Bit Delay
`
`Read Recovery Time
`
`DATA WORD WRITE TIMING (See Agure 7)
`
`Chip-Select Setup/Hold Time
`
`Port-Select Setup Time
`
`Port-Select Hold Time
`
`Busy Bit Delay
`
`WR Pulse Width
`
`Write Data Setup Time
`
`Write Data Hold Time
`
`T7
`
`TS
`
`T9
`
`T10
`
`T11
`
`T12
`
`T13
`
`T17
`
`T7
`
`TS
`
`T9
`
`T13
`
`T14
`
`T15
`
`T16
`
`30
`
`30
`
`0
`
`120
`
`0
`
`30
`
`30
`
`100
`
`50
`
`120
`
`180
`
`180
`
`(Note2)
`
`(Note2)
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`
`ns
`120
`T18
`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: 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
`
`. .
`
`~
`
`I
`
`4-30
`
`

`

`~
`
`I
`
`_..r _
`
`Units
`
`ns
`ns
`ns
`ns
`ns
`ns
`
`ns
`ns
`ns
`ns
`ns
`ns
`ns
`
`ns
`ns
`ns
`ns
`ns
`ns
`ns
`ns
`
`ns
`ns
`ns
`ns
`ns
`ns
`ns
`ns
`:ation• do not apply when operati
`
`ima the chip requires to set the bU~
`, to read it.
`
`1---T1 ---i---- T1 ---j
`A_J
`
`I
`
`B
`
`-:T2~
`
`I
`
`~, J~-
`; I
`L
`
`~T2
`
`r-
`3:
`0)
`N
`
`CXI -r-
`
`a::: 0)
`N co
`
`1--- rJ-j
`-
`;
`FIGURE 2. Quadrature Encoder Input Timing
`
`j-r3......J
`;-
`INDEX=A•B•IN
`
`Tl/ H/ 9219-4
`
`CLOCK
`
`1-r,--+-r,---- rs --.j
`
`1---rs ----I
`FIGURE 3. Clock and Reset Timing
`
`Tl/H/9219-5
`
`T7
`
`T7
`
`T9
`
`j-l12
`
`00-07
`
`•-------------1~
`(HI-Z)
`
`DATA
`Vol - .,. __ v_A_L_10 __ -'Tl
`
`FIGURE 4. Status Byte Read Timing
`
`TL/H/9219-8
`
`4-31
`
`

`

`t------ ------ ------ ----- ----- ----------------, r
`i:
`...,
`Pinout Description (See Connection Diagrams)
`CJ)
`......
`0)
`Pin 1, Index (iiii) Input Receives optional index pulse from
`r
`Iha encoder. Must be tied high if not used. The index posi(cid:173)
`i:
`...,
`tion is read when Pins 1 , 2, and 3 are low.
`CJ)
`Pins 2 and 3, Encoder Signal (A, B) Inputs: Receive the
`co
`two-phase quadrature signals provided by the incremental
`encoder. When the motor is rotating in the positive ("for(cid:173)
`ward") 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 Rgure 9) for a minimum
`of 8 clock periods in order to be recognized. Because 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 remain at each
`state a minimum of 8 clock periods.
`Pins 4 to 11, Host 1/0 Port (DO 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
`~ (Pin 12), J5S (Pin 16), ~ (Pin 13), and WR" (Pin 15).
`Pin 12, Chip select (CS) Input: Used to select the LM628
`for writing and reading operations.
`Pin 13, Read (lW) Input: Used to read status and data.
`Pin 14, Ground (GND): Power-supply return pin.
`Pin 15, Write (WR) Input: Used to write commands and
`data.
`Pin 16, Port Select (J5S) Input: Used to select command or
`data port. Selects command port when low, data port when
`high. The following modes are controlled by Pin 16:
`1. Commands are written to the command port (Pin 16 low),
`2. Status byte is read from command port (Pin 16 low), and
`3. Data is written and read via the data port (Pin 16 high).
`Pin 17, Host Interrupt (HI) Output: This active-high signal
`alerts the host (via a host interrupt service routine) that an
`interrupt condition has occurred.
`Pins 18 to 25, DAC Port (DACO 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.
`
`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-signifi.
`cant 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, and a PWM magnitude signal on Pin 19.
`Pins 20 to 25 are not used in the LM629. Figure 11 shows
`the PWM output signal format.
`Pin 26, Clock (CLK) Input: Receives system clock.
`Pin 27, Reset ("Rs'f) Input: Active-low, positive-edge trig(cid:173)
`gered, 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:
`1. Filter coefficient and trajectory parameters are zeroed.
`2. Sets position error threshold to maximum value (7FFF
`hex), and effectively executes command LPEI.
`3. The SBPNSBPR interrupt is masked (disabled).
`4. The five other interrupts are unmasked (enabled).
`5. Initializes current position to zero, or "home" position.
`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.
`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'
`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
`has reset properly, the status byte will change from hex '84'
`or 'C4' to hex '80' or 'CO'. If this does not occur, perform
`another reset and repeat the above steps.
`Pin 28, Supply Voltage CVoo): Power supply voltage
`(+sV).
`
`(PINS 18 - 23)
`
`(PIN 24)
`
`STROBE:
`(PIN 25)
`
`DATA: ~ X SLOW BITS X
`SELECT: -----t·:~
`-------\~~
`I ,:LKr-
`I
`i
`~R~ fcLK
`
`·1 ~sc-
`
`2048
`fcLK
`
`6 HIGH BITS
`
`R__j
`
`fcLK
`
`FIGU.RE 8. 12-Blt Multiplexed Output Timing
`
`TL/H/9219-10
`
`4.33
`
`·l , _
`
`rLJH/9219-S
`
`S:
`
`~
`
`~
`
`L/H/9219-i
`
`

`

`'I
`
`Theory of Ope1
`
`0,
`
`N co
`:E
`...I
`...... eo
`N co
`~
`
`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 1/0 port to facili-
`tate programming a trapezoidal velocity profile and a digital
`compensation filter. The DAG 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 fesdback 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 I provides a brief summary of specifications
`offered by the LM628/LM629:
`
`POSITION FEEDBACK INTERFACE
`The LM628 interfaces to a motor via an incremental encod-
`er. Three inputs are provided: two quadrature signal inputs,
`
`and an index pulse input. The quadrature signals are used
`to keep track of the absolute position of the motor. Each
`time a logic transition occurs at one of the quadrature in-
`puts, the LM628 internal position register is incremented or
`decremented accordingly. This provides four times the reso-
`lution over the number of lines provided by the encoder.
`See Figure 9. Each of the encoder signal inputs is synchro-
`nized with the LM628 clock.
`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 ab-
`solute motor position in a dedicated register (the index reg-
`ister) 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. Per-
`manently grounding the index input will cause the LM628 to
`malfunction.
`
`Position Range
`
`Velocity Range
`
`Acceleration Range
`
`Motor Drive Output
`
`TABLE I. System Specifications Summary
`
`-1 ,073, 741,824 to 1,073,741,823 counts
`
`Oto 1,073,741,823/216 counts/sample; ie, Oto 16,383 counts/sample, with a resolution of 1/216
`counts/ sample
`
`O to 1,073, 7 41,823/216 counts/sample/sample; ie, O to 16,383 counts/sample/sample, with a
`resolution of 1/216 counts/sample/sample
`
`LM628: 8-bit parallel output to DAG, or 12-bit multiplexed output to DAC
`LM629: 8-bit PWM sign/magnitude signals
`
`Operating Modes
`
`Position and Velocity
`
`Feedback Device
`
`Incremental Encoder (quadrature signals; support for index pulse)
`
`Control Algorithm
`
`Proportional Integral Derivative (PIO) (plus programmable integration limit)
`
`(I
`
`Sample Intervals
`
`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
`
`4-34
`
`VELOCITY PROFILE (TR
`The trapezoidal velocity p
`sired position of the motor
`of operation, the host 1
`maximum velocity, and fir
`information to affect the r
`until the maximum veloci1
`must begin to stop at the !
`eration rate is equal to ti
`during the move the ma
`po_~n may be~!:!.@
`y.H
`decelerate ac
`ezo1 al velocity profiles. f
`zoid, while Figure 10 (b) is
`looks like when velocity a
`ent times dliring thE1'm1;M
`When operating in the v.2J
`to the specified velocity
`and maintains the speci·
`stop. The velocity is mai
`position at a constant rat
`motio'n during velocity IT1(
`age velocity remains co
`maintain the specified vel
`locked rotor, tor example:
`to be increased, resulting
`
`I
`
`I .
`
`.
`
`- Ji
`
`

`

`Theory of Operation (Continued)
`1 ONE
`1
`---+!ENCODER,__
`LINE
`I
`1
`
`:--fi-ri--n-
`
`:
`
`I
`
`I
`
`I
`
`:
`
`STATES 8 A
`1 1 0
`2 1 1
`3 0 1
`4 0 0
`1 1 0
`2 1 1
`3 0 1
`
`r POS
`1 NEG
`
`DIRECTION
`
`r-
`3: a,
`N
`at
`.......
`r-
`311::
`a,
`N co
`
`signals are used
`the motor. Each
`1e quadrature in(cid:173)
`s incremented or
`Jr times., the reso(cid:173)
`by the encoder.
`nputs is synetiro-
`
`,y some encoders
`revolution. If the
`viii record the ab(cid:173)
`:er (the index reg(cid:173)
`puts are logic low.
`>utput, the LM628
`1 home position of
`1otor will close a
`c-low level at the
`>tor position in the
`st processor. Per-
`1use the LM628 to
`
`,solution of 1 /216
`
`'sample, with a
`
`A
`
`'
`I
`111213 1411 12 13 14,___ STATE
`iN~
`--I ,__ INDEX = A•B•IN
`
`FIGURE 9. Quadrature Encoder Slgnals
`
`VELOCITY
`
`\
`
`LIMITING VELOCITY
`
`(a)
`
`STANDARD TRAPEZOl[ll>.L PROFILE
`
`VELOCITY
`
`(b)
`
`Tl/H/ 9219-11
`
`STOPPING POSITION
`IS INTEGRAL OF
`TRAPEZOID
`
`/
`
`TIME
`
`TIME
`
`TL/ H/ 9219-12
`
`>f 2048/fcLK (256
`
`FIGURE 10. Typical Velocity Profiles
`
`VELOCITY PROFILE (TRAJECTORY) GENERATION
`The trapezoidal velocity profile generator computes the de(cid:173)
`sired position of the motor versus time. In the position mode
`of operation, the host processor specifies acceleration,
`maximum velocity, and final position. The LM628 uses this
`information 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 decel(cid:173)
`eration rate is equal to the acceleration rate. At any time
`during the ~~ve the maximum velocity and/or-ilia~
`~{_
`positi~ .. C)l ~Qged, and the motor will accelerate or _
`decelerate acc.Qtdingly_-Figuni Willustrates two typical trap(cid:173)
`ezoidal velocity profiles. Figure 10 (a) shows a simple trape(cid:173)
`zoid, while Figure 10 (b) is an example of what the trajectory
`looks like when velocity and position are changed at differ(cid:173)
`ent times during the move.
`•
`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 aver(cid:173)
`age velocity remains constant. If the motor is unable to
`maintain the specified velocity (which could be caused by a
`locked rotor, for example), the desired position will continue
`to be increased, resulting in a very large position error. If this
`
`condition 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 easi(cid:173)
`ly detected; 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 in(cid:173)
`teger portion of velocity specifies how many counts per
`sampling interval the motor will traverse. The fractional por(cid:173)
`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(cid:173)
`creased average velocity resolution. Acceleration is treated
`in the same manner. Each sampling interval the command(cid:173)
`ed acceleration value is added to the current desired veloci(cid:173)
`ty to generate a new desired velocity (unless the command
`velocity has been reached).
`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 revolu(cid:173)
`tions from the start, one would calculate the trajectory pa(cid:173)
`rameters as follows:
`
`4-35
`
`

`

`~ co
`:E
`...I
`......
`CD
`N co
`:E
`...I
`
`Theory of Operation <Continued)
`lat P = target position (units = encoder counts)
`lat R = encoder lines • 4 (system resolution)
`than 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 coda written to LM62B)
`
`lat V = velocity (units = counts/sample)
`lat T = sample time (seconds) = 341 µ.s (with 6 MHz
`clock)
`lat C = conversion factor = 1 minuta/60 seconds
`than V = R • T • C • desired rpm
`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) = 0006D1 EC (hex coda written to LM628)
`
`lat A = acceleration (units = counts/sample/sample)
`A = R • T • T • desired acceleration (rev/sac/sec)
`than A= 2000 • 341E-6 • 341E-6 • 1 rev/sac/sac
`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) = OOOOOOOF (hex coda 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
`scaling the velocity and acceleration values, literal fractional
`data cannot be loaded; the data must be rounded and con(cid:173)
`verted to binary. The factor of four increase in system reso(cid:173)
`lution is due to the method used to decode the quadrature
`encoder signals, sea Figure 9.
`
`PIO COMPENSATION FILTER
`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(cid:173)
`formed by the LM62B:
`
`n
`u(n) = kp•e(n) + ki_L a(n) +
`N-0
`
`(Eq.1)
`kd[e(n') - e(n' - 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' indi(cid:173)
`cates sampling at the derivative sampling rate, and
`kp, ki, and kd are the discrete-time filter parameters
`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
`
`4-36
`
`a constant torque loading, the motor will still be able to
`achieve zero position error.
`The third term, the derivative term, provides a force propo,-(cid:173)
`tional to the rate of change of position error. It acts just like
`viscous damping in a damped spring and mass system Oike
`a shock absorber in an automobile). The sampling interval
`associated with the derivative term is user-selectable; this
`capability enables the LM62B to control a wider range of
`inertial loads (system mechanical time constants) by provid(cid:173)
`ing a batter approximation of the continuous derivative. In
`general, longer sampling intervals are useful for low-velocity
`operations.
`In operation, the filter algorithm receives a 16-bit error signal
`from the loop summing-junction. The error signal is saturat(cid:173)
`ed 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 de(cid:173)
`rivative 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.
`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 mo(cid:173)
`tor control output. The absolute magnitude of this product is
`compared to coefficient ii, and the lesser, appropriately
`signed magnitude then contributes to the motor control sig.
`nal.
`The derivative signal is multiplied by coefficient kd each de(cid:173)
`rivative 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.
`
`LM628 READING AND WRITING OPERATIONS
`The host processor writes commands to the LM628 via the
`host 1/0 port when Port Select (°pg) 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. Whan writing command bytes it is neces(cid:173)
`sary to first read the status byte and check the state of a
`flag called the "busy bit" (Bit O). 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 host processor reads the LM628 status byte in a similar
`manner: by strobing the Read (lffi) input (Pin 13) when ~
`(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 pg (Pin
`16) logic high. These writes and reads are always an inte(cid:173)
`gral number (from one to seven) of two-byte words, with the
`first byte of each word being the more signlflcant. Each byte
`requires a write (WR) or read (R°O) strobe. Whan transferring
`data words (byte-pairs), it is necessary to first read the
`status byte and check the state of the "busy bit. Whan the
`
`Theory of Op
`busy bit is logic low, tt
`both bytes comprisi~
`again be checked and
`transfer the next b)
`.,,ords). Data transfers
`Interrupts (which are
`host processor when
`data transfer (or a co1
`when the busy bit is t
`The busy bit goes higl
`byte, or reading or w1
`ures 5 thru n.
`MOTOR OUTPUTS
`The LM628 DAC out1
`either a latched eigt
`12-bit output. The 8-t
`a flow-through (non-ir
`output can be easily
`latch and an input-la·
`output data is offset-I
`BO hex and the 12-bi
`than these cause a
`motor and, converse
`torque. The LM628, 1
`vidas signals which c
`Figure 8 for details.
`
`Command
`
`RESET
`PORTS
`PORT12
`DFH
`SIP
`LPEI
`LPES
`SBPA
`SBPR
`MSKI
`RSTI
`LFIL
`UDF
`LTRJ
`sn
`RDSTAT
`RDSIGS
`RDIP
`RDDP
`RDRP
`RDDV
`RDRV
`RDSUM
`Note 1: Commands ma
`Note 2: Commands no'
`Note 3: Command ma)
`Note 4: Command nee
`
`.
`
`________________________ ....,. _______________ .,.. .• _ . ____ _
`
`

`

`r
`31:
`0)
`N
`..... r
`CD
`31:
`0)
`N co
`
`The lM629 provides 8-bit, sign and magnitude PWM output
`signals for directly driving switch-mode motor-drive amplifi(cid:173)
`ers. Figure 11 shows the format of the PWM magnitude out(cid:173)
`put signal.
`
`PWM IIAGNnuDE WAVEFORMS (pin 19):
`
`DUTY CYCLE:
`o
`1 (ON)
`(a) 128 = OFF O - - - - - - - - - - - -
`
`{b) ...!...: MIN
`1
`128 llftlVE O
`
`r~ n 1 r~ IL
`
`256
`
`c .!L 5(),; 7J I lwc
`( ) 128 -DRIVE O ru--L..f"'L..nJ
`MAX 7J lwc I
`{d) 127 = POS r--1r-,r-,r-,r
`U
`U
`U
`U
`128 DRIVE o I
`l---~------
`128 MAX
`1 - - - - - - - - - - - -
`(•) 128 = NEG O (OFF)
`DRIVE
`
`508
`
`)tor will still be able to
`
`provides a force propor(cid:173)
`tion error. It acts just like
`'9 and mass system (like
`3). The sampling interv~I
`n is user-selectable; this
`control a wider range of
`ime constants) by provid(cid:173)
`continuous derivative. In
`are useful for low-velocity
`
`Theory of Operation ceontinuedl
`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
`transfer the next byte pair (when transferring multiple
`words). Data transfers are accomplished via lM62S-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.
`The busy bit goes high immediately after writing a command
`byte, or reading or writing a second byte of data (See Fig(cid:173)
`urBS 5 thru 7).
`
`::eives a 16-bit error signal
`rhe error signal is saturat(cid:173)
`le behavior. In addition to
`3nt kp, the error signal is
`3Vious errors (to form the
`3rmined by the chosen de(cid:173)
`evious error is subtracted
`,al). All filter multiplications
`ittom 16 bits of the product
`
`1s
`
`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) DI A converter; the 12-bit
`output can be easily demultiplexed using an external 6-bit
`latch and an input-latching 12-bit DI 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
`t
`to 24 bits, but only the op
`• a more torque. The lM628, when configured for 12-bit output, pro-
`•
`11
` m The 16 vides signals which control the demultiplexing process. See
`e1chni~ue re_su
`A
`·oeffietent k1 va ues.
`-1
`8 f d
`ions and multiplied by filter
`or eta, s.
`,gure
`•hich contributes to the m<:>"
`magnitude of this product 1s t---- -- - - , - - - - - -- -r--T_AB_L_E_I_I._L_M_6_2_8_U_s_e_r_C_o_m_m_a_ndr-Se_t ___ - , - - - - - - . . - - - - - -
`d the lesser, appropriately
`Data
`tes to the motor control s1g- Command
`By1es
`
`Note: Sign output (pin 18) not shown
`FIGURE 11. PWM Output Signal Format
`
`TUH/9219-13
`
`Type
`
`Description
`
`Hex
`
`Note
`
`RESET
`PORTS
`PORT12
`. DFH
`SIP
`lPEI
`lPES
`SBPA
`SBPR
`
`,d by coefficient kd each de-
`product contributes to the
`,pie interval, independent of
`,piing interval.
`ct terms are summed to form
`1 the output mode (wordsize),
`, become the motor control
`
`NG OPERATIONS
`,mands to the lM628 via t
`:;t (F'S) input (Pin 16) is logi
`ode is applied to the parall
`nput (Pin 15) is strobed. Th
`the lM628 on the rising edg
`~ command bytes it is nece
`,yte and check the sta~e of
`O). If the busy bit is logic h1g
`place. The busy bit is nev
`1 typically falls within 15 ,-.s t
`
`lM628 status byte in a simil
`d (iffi) Input (Pin 13) when
`ation remains valid as long
`
`Reset lM628
`Initialize
`Select 8-Bit Output
`Initialize
`Select 12-Bit Output
`Initialize
`Define Home
`Initialize
`Set Index Position
`Interrupt
`Interrupt on Error
`Interrupt
`Stop on Error
`Interrupt
`Interrupt
`Set Breakpoint, Absolute
`Set BreakpOint, Relative
`Interrupt
`Mask Interrupts
`Interrupt
`Reset Interrupts
`Interrupt
`load Filter Parameters
`Filter
`Update Filter
`Filter
`load Trajectory
`Trajectory
`Start Motion
`Trajectory
`Read Status Byte
`Report
`Read Signals Register
`Report
`Read Index Position
`Report
`Read Desired Position
`Report
`Read Real Position
`Report
`Read Desired Velocity
`Report
`Read Real Velocity
`Report
`RDRV
`Read Integration Sum
`Report
`RDSUM
`rom the lM62B (as o~posedp· e 1: Commands may be executed " On the Fly" durtng motion.
`19 status) are done with l5'S_( t
`2: Commands not applicable to execution during motion.
`and reads are always an 1n
`d with t e 3: Command may be executed during motion ff acceleration parameter was not changed.
`,en) of two-~yt~f. wort. SE, ach b
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket