AMI AMIS

AMIS-30621 LIN Microstepping Motordriver
Data Sheet
General Description
The chip receives high-level positioning instructions through
the interface and subsequently drives the motor coils until
the desired position is reached. The on-chip position
controller is configurable (OTP and Interface) for different
motor types, positioning ranges and parameters for speed,
acceleration, and deceleration.
The AMIS-30621 is a member of a stepper motordriver
family with position controller and control/diagnostics
interface integrated in one single chip.
The family consists of two products:
• AMIS-30621 with LIN interface, ready to build dedicated
mechatronics solutions connected remotely with a LIN
master.
• AMIS-30622 with SERIAL interface, ready to act as
peripheral device next to a microcontroller.
The AMIS-30621 acts as a slave on the bus and the master
can fetch specific status information like actual position,
error flags, etc. from each individual slave node.
Features
Motordriver
LIN Interface
• Microstepping (1/2, 1/4, 1/8, 1/16)
• Low resonance & noise
• High resolution
• Programmable peak current up to 800mA
• 20kHz PWM current-control
• Automatic selection of fast & slow decay mode
• Internal fly-back FETs
• Fully integrated current sense
• 8V-29V supply voltage
• Automotive compliant
• Full diagnostics and status information
• Physical - and data-link-layer (conform to LIN rev. 1.3)
• Dynamically allocated indentifiers
• Up to 128 node addresses
Controller with RAM and OTP Memory
Power Saving
• Position controller
• Configurable speeds, acceleration and deceleration
• Flexible hold-current
• Movement/position sensor-input
• Optional stall detection
• Power-down supply current <50µA
• 5V regulator with wake-up on LIN activity
Protection
• Over-current protection
• Under-voltage management
• Over-voltage protection
• High-temp warning and shutdown
• Low-temp warning
• LIN bus short-circuit protection to supply & ground
EMI compatibility
• Power drivers with slope control
Applications and Benefits
demands on the master microcontroller. The bus structure
simplifies PCB track-layout and/or wiring architectures.
The AMIS-30621 is ideally suited for small positioning
applications. Target markets include: automotive (headlamp
alignment, HVAC, idle control, cruise), industrial equipment
(lighting, fluid control, labeling, process, XYZ tables) and
building automation (HVAC, surveillance, satellite dish
positioning). Suitable applications typically have multiple
axes or require mechatronic solutions with the driver chip
mounted directly on the motor.
Microstepping operation removes the design trade-off
between minimal operation speed and avoiding the risk of
noise and step-loss due to resonance phenomena. The stalldetection feature (optional) offers silent, yet accurate
position-calibrations during the referencing run and allows
semi-closed loop operation when approaching the
mechanical end-stops.
The high abstraction level of the products’ command set
reduces the load of the processor on the master side.
Scaling of the application towards number of axes is
straight-forward: hardware - and software designs are
extended in a modular way, without severely effecting the
All these benefits result in reduced system-cost and timeto-market and improved technical performance.
Ordering Information
Part N° AMIS-30621
Package SOIC-20
Peak Current 800mA
Temp. Range -40°C…125°C
AMI Semiconductor - Rev. 1.4
www.amis.com
1
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
Table of Contents
1. Quick Reference Data
1.1
Absolute Maximum Ratings
1.2
Operating Ranges
2. Block Diagram
3. Pin-out
4. Package Thermal Resistance
4.1
SO20
5. DC Parameters
6. AC Parameters
7. Typical Application
8. Positioning Data
8.1
Stepping Modes
8.2
Maximum Velocity
8.3
Minimum Velocity
8.4
Acceleration and Deceleration
8.5
Positioning
8.5.1
Position Ranges
8.5.2
Secure Position
8.5.3
Shaft
9. Functional Description
9.1
Structure Description
9.1.1
Stepper Motordriver
9.1.2
Control Logic (Position Controller
and Main Control)
9.1.3
LIN Interface
9.1.4
Miscellaneous
9.2
Functions Description
9.2.1
Position Controller
9.2.1.1 Positioning and Motion Control
9.2.1.2 Position Initialization
9.2.1.3 External Switch and HW Pin
9.2.2
Main Control and Register, OTP
Memory + RAM
9.2.2.1 Power-up Phase
9.2.2.2 Reset State
9.2.2.3 Soft Stop
9.2.2.4 Thermal Shutdown Mode
9.2.2.5 Temperature Management
9.2.2.6 Battery voltage Management
9.2.2.7
9.2.2.8
9.2.2.9
9.2.2.10
9.2.2.11
9.2.2.12
9.2.2.14
3
3
3
3
4
4
4
5
6
7
8
8
8
8
9
9
9
12
12
13
13
13
13
13
13
14
14
14
16
16
10.
11.
17
17
18
18
18
18
19
12.
13.
Document History
Version
1.0
1.1
1.2
1.3
1.4
Date of Version
July 16th, 2002
October 18th, 2002
January 27th, 2003
February 19th, 2003
March 3rd, 2003
AMI Semiconductor - Rev. 1.4
www.amis.com
2
Sleep Mode
Motor Shutdown Mode
RAM Registers
Flags Table
Application Commands
Priority Encoder
Application Parameters Stored in
OTP Memory
9.2.2.15 OTP Memory Structure
9.2.3
Motordriver
9.2.3.1 Current Waveforms in the Coils
9.2.3.2 PWM Regulation
9.2.3.3 Motor Starting Phase
9.2.3.4 Motor Stopping Phase
9.2.3.5 Charge Pump Monitoring
9.2.3.6 Electrical Defect on Coils, Detection
and Confirmation
9.2.4
LIN Controller
9.2.4.1 General Description
9.2.4.2 Slave Operational Range for Proper
Self Synchronization
9.2.4.3 Functional Description
9.2.4.4 Error Status Register
9.2.4.5 Physical Address of the Curcuit
9.2.4.6 LIN Frames
9.2.4.7 Commands Table
Features
10.1
Position Periodicity
Resistance to Electrical and Electromagnetic
Disturbances
11.1
Electrostatic Discharges
11.2
Schäffner Pulses
11.3
EMC
11.4
EMI
11.5
Power Supply Micro-Interruptions
Packages Outline
Conditioning
20
20
21
22
23
24
26
27
28
28
28
28
29
29
29
30
30
30
31
31
31
32
32
38
38
39
39
39
39
39
39
40
40
AMIS-30621 LIN Microstepping Motordriver
1.0 Quick Reference Data
1.1 Absolute Maximum Ratings
Parameter
Vbb
Supply voltage
Vlin
Bus input voltage
Tamb
Ambient temperature under bias2
Tst
Storage temperature
Electrostatic discharge voltage on LIN pin
Vesd3
Electrostatic discharge voltage on other pins
Min
Max
-0.3
-80
-50
-55
-4
-2
Unit
+401
+80
+150
+160
+4
+2
Notes
(1) For limited time: < 0.5 s.
(2) The circuit functionality is not guaranteed.
(3) Human body model (100 pF via 1.5 kΩ, according to MIL
std. 883E, method 3015.7).
1.2 Operating Ranges
Parameter
Vbb
Supply voltage
Top
Operating temperature range
Vbb ≤ 18V
Vbb ≤ 29V
Min
+8
-40
-40
Max
+29
+125
+85
2.0 Block Diagram
AMI Semiconductor - Rev. 1.4
www.amis.com
3
Unit
V
°C
°C
V
V
°C
°C
kV
kV
Data Sheet
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
3.0 Pin-out
SOIC-20
Pin Name
HW0
HW1
VDD
GND
TST
LIN
HW2
CPN
CPP
VCP
VBB
MOTYN
MOTYP
MOTXN
MOTXP
SWI
Pin Description
Bit 0 of LIN-ADD
to be tied to GND
Bit 1 of LIN-ADD
or VDD if not used
Internal supply (needs external decoupling capacitor) 3
Ground, heat sink
Test pin (to be tied to ground in normal operation) 5
LIN-bus connection
Bit 2 of LIN-ADD
Negative connection of pump-capacitor (charge pump)
Positive connection of pump-capacitor (charge pump)
Charge-pump filter-capacitor
Battery voltage supply
Negative end of phase Y coil
Positive end of phase Y coil
Negative end of phase X coil
Positive end of phase X coil
Switch input
SOIC-20
1
2
4,7,14,17
6
8
9
10
11
12, 19
13
15
16
18
20
4.0 Package Thermal Resistance
4.1 SO20
The junction-case thermal resistance is 28°C/W, leading to a
junction-ambient thermal resistance of 63°C/W, with the
PCB ground plane layout condition given on the figure
beside, and with:
• PCB thickness = 1.6mm
• 1 layer
• Copper thickness = 35µm
AMI Semiconductor - Rev. 1.4
www.amis.com
2 x (10mm x 23mm)
4
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
5.0 DC Parameters
The DC parameters are given for Vbb and temperature in their operating ranges.
Convention: currents flowing in the circuit are defined as positive.
Symbol
Motordriver
Pin(s)
IMSmax Peak
IMSmax RMS
IMSabs
IMSrel
RDSon
MOTXP
MOTXN
MOTYP
MOTYN
Parameter
Max current trough motor
coil in normal operation
Max RMS current trough
coil in normal operation
Absolute error on coil current
Error on current ratio Icoilx / Icoily
On resistance for each pin
(including bond wire)
Pull down current
IMSL
LIN Transmitter
Ibus_on
Dominant state, driver on
Ibus_off
Dominant state, driver off
Ibus_off
LIN
Recessive state, driver off
Ibus_lim
Current limitation
Rslave
Pull-up resistance
LIN Receiver
Vbus_dom
Receiver dominant state
Vbus_rec
LIN
Receiver recessive state
Vbus_hys
Receiver hysteresis
Thermal Warning & Shutdown
Ttw
Thermal Warning
Ttsd (1)
Thermal shutdown
Tlow
Low temperature warning
Supply & Voltage Regulator
Vbb
Nominal operating supply range
VbbOTP
Supply voltage for OTP zapping
UV1
Stop voltage high threshold
VBB
UV2
Stop voltage low threshold
Ibat
Total current consumption
Ibat_s (2)
Sleep mode current consumption
Vdd
Internal regulated output (3)
IddStop
VDD
Digital current consumption
VddReset
Digital supply reset level (4)
IddLim
Current limitation
Switch Input and Hardwire Address Input
Rt_OFF
Switch OFF resistance (5)
Rt_ON
Switch ON resistance (5)
SWI
Vbb range for guaranteed
Vbb_sw
HW2
operation of SWI and HW2
Vmax_sw
Maximum voltage
Ilim_sw
Current limitation
Hardwired Address Inputs and Test Pin
Vlow
HW0
Input level high
Vhigh
HW1
Input level low
HWhyst
TST
Hysteresis
Charge Pump
Output voltage
Vcp
VCP
Cbuffer
External buffer capacitor
CPP
Cpump
External pump capacitor
CPN
Test Conditions
Typ
To be confirmed by
characterization
HZ mode
Vbus = 1.4V
Vbus = 0V
Vbus = Vbat
mA
570
mA
10
7
%
%
1
Ω
mA
30
20
200
47
mA
mA
µA
mA
kΩ
0.4
1
0.2
Vbb
Vbb
Vbb
152
°C
°C
°C
18
10.0
9.8
8.9
50
V
V
V
V
mA
µA
5.25
V
4.4
40
mA
V
mA
2
kΩ
kΩ
29
V
40V
V
mA
.
0.3
Vdd
Vdd
Vdd
Vbb+10 Vbb+12.5
Vbb+5.8V
220
Vbb+15
470
V
V
nF
220
470
nF
40
-1
0
0.6
0.05
138
6.5
9.0
8.8
8.1
Unloaded outputs
4.75
145
Ttw+10
Ttw-155
9.4
8.5
10
5
2
Pin shorted to ground
Switch to Gnd or Vbat,
10
6
T < 1s
Short to Gnd or Vbat
30
0.7
0.075
Vbb > 15V
Vbb > 8V
Unit
1
50
20
8V < Vbb < 18V
Cload = 1µF (+100nF cer.)
Vbb < UV2
Max
800
-10
-7
(4) The RAM content will not be altered above this voltage.
(5) External resistance value seen from pin SWI or HW2,
including 1kW series resistor.
Notes
(1) No more than 100 cumulated hours in life time above Ttsd.
(2) To be confirmed by measurements.
(3) Pin VDD must not be used for any external supply.
AMI Semiconducto - Rev. 1.4r
www.amis.com
Min
5
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
6.0 AC Parameters
The AC parameters are given for Vbb and temperature in their operating ranges.
Symbol
Pin(s)
Power-up
Tpu
Internal Oscillator
Fosc
LIN Transmitter
Slope_F/R
t_slope_F/R
LIN
T_tr_F
T_tr_R
t_slope_Sym
Tsym_tr
LIN Receiver
Parameter
Test Conditions
Typ
Max
Unit
10
ms
4.0
4.4
MHz
0.1
2.6
0.1
0.1
-4
-2
1
1
3
22.5
4
4
4
2
V/µs
µs
µs
µs
µs
µs
0.1
4
6
µs
0.1
4
6
µs
-2
50
100
2
200
µs
µs
Power-up time
Frequency of internal oscillator
Slope falling (or rising) edge
Slope time falling (or rising) edge
Propagation delay TxD low to bus
Propagation delay TxD high to bus
Slope time symmetry
Transmitter delay symmetry
Propagation delay bus dominant
to TxD low
LIN
Propagation delay bus recessive
T_rec_R
to TxD high
Tsym,Rec
Receiver delay symmetry
Twake
Wake-up delay time
Switch Input and Hardwire Address Input
Tsw
SWI
Scan pulse period (1)
Tsw_on
HW2
Scan pulse duration
Motordriver
Fpwm
PWM frequency (1)
Tbrise
MOTxx
Turn-on transient time
Tbfall
Turn-off transient time
Charge Pump
CPN
FCP
Charge pump frequency (1)
CPP
3.6
Between 40% and 60%
Extrapolated
t_slope_F – t_slope_R
T_tr_F – T_tr_R
T_rec_F
1024
1/16
18
Between 10% and 90%
20
350
250
250
Note
(1) Derived from the internal oscillator.
AMI Semiconductor - Rev. 1.4
www.amis.com
Min
6
µs
Tsw
22
kHz
ns
ns
kHz
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
7.0 Typical Application
(4) Depending on the application the ESR value of the 1µF
and 100µF capacitors must be carefully chosen.
(5) 100nF capacitors must be close to pins VBB and VDD.
(6) 220nF capacitors must be as close as possible to pins
CPN, CPP, VCP and VBB to reduce EMC radiation.
Notes
(1) The switch can be connected to battery instead of
ground.
(2) Resistors tolerance: ± 5%.
(3) 2.7nF capacitors: 2.7nF is the minimum value, maximum
value is 10nF.
AMI Semiconductor - Rev. 1.4
www.amis.com
7
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
8.0 Positioning Data
8.1 Stepping Modes
8.2 Maximum Velocity
One of four possible stepping modes can be programmed:
• Half-stepping
• 1/4 micro-stepping
• 1/8 micro-stepping
• 1/16 micro-stepping
For each stepping mode, Vmax can be programmed to 16
possible values given in the table below.
Vmax
Index
Vmax
(Full Step/s)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
99
136
167
197
213
228
243
273
303
334
364
395
456
546
729
973
Group
A
B
C
D
Half-stepping
(half-step/s)
197
273
334
395
425
456
486
546
607
668
729
790
912
1091
1457
1945
The accuracy of Vmax is derived from the internal oscillator.
Under special circumstances it is possible to change the
Vmax parameter while a motion is ongoing. All 16 entries
for the Vmax parameter are divided into four groups. When
changing Vmax during a motion the application must take
care that the new Vmax parameter stays within the same
group.
Stepping Mode
1/4th Micro-stepping
1/8th Micro-stepping
(micro-step/s)
(micro-step/s)
395
790
546
1091
668
1335
790
1579
851
1701
912
1823
973
1945
1091
2182
1213
2426
1335
2670
1457
2914
1579
3159
1823
3647
2182
4364
2914
5829
3891
7782
8.3 Minimum Velocity
Once Vmax is chosen, 16 possible values can be
programmed for Vmin. The table below provides the
Vmax
Index
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Vmax
Factor
1
1/32
2/32
3/32
4/32
5/32
6/32
7/32
8/32
9/32
10/32
11/32
12/32
13/32
14/32
15/32
99
99
3
6
9
12
15
18
21
24
28
31
34
37
40
43
46
136
136
4
8
12
16
21
25
30
33
38
42
47
51
55
59
64
167
167
5
10
15
20
26
31
36
41
47
51
57
62
68
72
78
197
197
6
11
18
24
31
36
43
49
55
61
68
73
80
86
93
213
213
6
12
19
26
32
39
46
52
59
66
72
79
86
93
99
obtainable values in Full-step/s. The accuracy of Vmin is
derived from the internal oscillator.
228
228
7
13
21
28
35
42
50
56
64
71
78
85
93
99
107
Vimax (Full-step/s)
273
303
334
273
303
334
8
8
10
15
17
19
25
27
31
32
36
40
42
46
51
50
55
61
59
65
72
67
74
82
76
84
93
84
93
103
93
103
114
101
113
124
111
122
135
118
132
145
128
141
156
243
243
7
14
22
30
37
45
52
60
68
75
83
91
98
106
113
Notes
(1) The Vmax factor is an approximation.
(2) In case of motion without acceleration (AccShape = 1)
the length of the steps = 1/Vmin. In case of accelerated
AMI Semiconductor - Rev. 1.4
www.amis.com
1/16th Micro-stepping
(micro-step/s)
1579
2182
2670
3159
3403
3647
3891
4364
4852
5341
5829
6317
7294
8728
11658
15564
364
364
10
21
32
44
55
67
78
90
101
113
124
135
147
158
170
395
395
11
23
36
48
61
72
86
97
111
122
135
147
160
172
185
456
456
13
27
42
55
71
84
99
113
128
141
156
170
185
198
214
546
546
15
31
50
65
84
99
118
134
153
168
187
202
221
237
256
729
729
19
42
65
88
111
134
156
179
202
225
248
271
294
317
340
973
973
27
57
88
118
149
179
210
240
271
301
332
362
393
423
454
motion (AccShape = 0) the length of the first step is shorter
than 1/Vmin depending of Vmin, Vmax and Acc.
8
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
8.4 Acceleration and Deceleration
Sixteen possible values can be programmed for Acc
(acceleration and deceleration between Vmin and Vmax).
The table below provides the obtainable values in Full-
99
136
167
197
213
228
243
273
303
334
Acceleration (Full-step/s2)
106
218
1004
3609
6228
8848
11409
13970
16531
19092
21886
24447
27008
29570
➔
Vmax (FS/s) ‘
ACC Index
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
step/s2. One observes restrictions for some combination of
acceleration index and maximum speed (gray cells).
The accuracy of Acc is derived from the internal oscillator.
14785
49
364
395
456
546
729
973
473
735
34925
40047
29570
The formula to compute the number of equivalent Full-step
during acceleration phase is:
8.5 Positioning
words must be aligned as described in the table below.
When
using
command
SetPositionShort
or
GotoSecurePosition, data is automatically aligned.
The position programmed in commands SetPosition and
SetPositionShort is given as a number of (micro)steps.
According to the chosen stepping mode, the position
Stepping
Mode
1/16th
1/8th
1/4th
Half-stepping
PositionShort
SecurePosition
Position Word: Pos [15 : 0]
S
S
S
S
S
S
B14
B13
B12
B11
S
B9
B13
B12
B11
B10
S
B8
B12 B11
B11 B10
B10 B9
B9
B8
B9
B8
B7
B6
B10
B9
B8
B7
B7
B5
B9
B8
B7
B6
B6
B4
B8
B7
B6
B5
B5
B3
B7
B6
B5
B4
B4
B2
B6
B5
B4
B3
B3
B1
Shift
B5
B4
B3
B2
B2
LSB
B4
B3
B2
B1
B1
0
B3
B2
B1
LSB
LSB
0
B2
B1
LSB
0
0
0
B1
LSB
0
0
0
0
LSB
0
0
0
0
0
No shift
1-bit left ↔ x2
2-bit left ↔ x4
3-bit left ↔ x8
No shift
No shift
8.5.1 Position Ranges
used (see § 9.2.2.11) and to the chosen stepping mode, the
position range will be as shown in the table below.
A position is coded by using the binary two’s complement
format. According to the positioning commands which are
Command
SetPosition
SetPositionShort
Stepping Mode
Half-stepping
1/4th micro-stepping
1/8th micro-stepping
1/16th micro-stepping
Half-stepping
Position Range
-4096 to +4095
-8192 to +8191
-16384 to +16383
-32768 to +32767
-1024 to +1023
Number
13
14
15
16
11
left by a certain number of bits, according to the chosen
stepping mode.
When using the command SetPosition, although coded
on 16 bits, the position word will have to be shifted on the
AMI Semiconductor - Rev. 1.4
www.amis.com
Full Range
8192 half-steps
16384 micro-steps
32768 micro-steps
65536 micro-steps
2048 half-steps
9
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
8.5.2 Secure Position
shown in the table
GotoSecurePosition.
A secure position can be programmed. It is coded on 11-bit,
thus having a lower resolution than normal positions, as
Stepping Mode
Half-stepping
1/4th micro-stepping
1/8th micro-stepping
1/16th micro-stepping
below.
See
command
Secure Position Resoultion
4 half-steps
8 micro-steps (1/4th)
16 micro-steps (1/8th)
32 micro-steps (1/16th)
Important note
The secure position is disabled in case the programmed value
is the reserved code “10000000000”
(most negative position).
8.5.3 Shaft
A shaft bit can be programmed to define whether a positive
motion is an outer or an inner motion:
• Shaft = 0 ➞ MOTXP is used as positive pin of the X coil,
while MOTXN is the negative one.
• Shaft = 1 ➞ opposite situation.
9.0 Functional Description
9.1 Structure Description
9.1.1 Stepper Motordriver
It will take into account the successive positioning
commands to initiate or stop properly the stepper motor in
order to reach the set point in a minimum time.
The Motordriver receives the control signals from the
control logic. It mainly features:
• Two H-bridges designed to drive a two separated coils
stepper motor. Each coil (X and Y) is driven by one Hbridge, and the driver controls the currents flowing
through the coils.
It also receives feedback from the motordriver part in order
to manage possible problems and decide about internal
actions and reporting to the LIN interface.
The rotational position of the rotor, in unloaded condition,
is defined by the ratio of current flowing in X and Y. The
torque of the stepper motor when unloaded is controlled
by the magnitude of the currents in X and Y.
• The control block for the H-bridges including the PWM
control, the synchronous rectification and the internal
current sensing circuitry
• The charge pump to allow driving of the H-bridges’ high
side transistors.
• Two pre-scale 4-bit DACs to set the maximum magnitude
of the current through X and Y.
• Two DACs to set the correct current ratio through X and Y.
9.1.3 LIN Interface
The LIN interface implements the physical layer and the
MAC and LLC layers according to the OSI Reference Model.
It provides and gets information to and from the Control
logic block, in order to drive the stepper motor, to
configure the way this motor must be driven, or to get
information such as actual position or diagnosis
(temperature, battery voltage, electrical status…) and pass
it to the LIN master node.
9.1.4 Miscellaneous
The AMIS-30621 also implements the followings:
• An internal oscillator, needed for the LIN protocol handler
as well as for the Control logic and for the PWM control of
the motordriver.
• An internal trimmed voltage source for precise
referencing.
• A protection block featuring a Thermal Shutdown and a
Power-on-reset circuit.
• A 5V regulator (from the battery supply) to supply the
internal logic circuitry.
Battery voltage monitoring is also performed by this block
which provides needed information to the control logic
part. The same applies for detection and reporting of an
electrical problem that could occur on the coils or the
charge pump.
9.1.2 Control Logic (Position Controller and Main Control)
The control logic block stores the information provided by
the LIN interface (in a RAM or an OTP memory) and digitally
controls the positioning of the stepper motor in terms of
speed and acceleration, by feeding the right signals to the
motordriver state machine.
AMI Semiconductor - Rev. 1.4
www.amis.com
10
AMIS-30621 LIN Microstepping Motordriver
9.2.1 Position Controller
9.2 Functions Description
This chapter describes the four most important blocks:
• Position controller
• Main control and register, OTP memory + ROM
• Motordriver
• LIN controller
Parameter
Pmax - Pmin
Zero speed Hold Current
Maximum current
Acceleration and deceleration
Vmin
Vmax
AMI Semiconductor - Rev. 1.4
www.amis.com
Data Sheet
9.2.1.1 Positioning and Motion Control
A positioning command will produce a motion as illustrated
below. A motion starts with an acceleration phase from
minimum velocity (Vmin) to maximum velocity (Vmax), and
ends with a symmetrical deceleration. This is defined by the
Control logic according to the position required by the
application and to the parameters programmed by the
application during configuration phase. The current in the
coils is also programmable.
Value
See § 8.5
See § 9.2.2.13 (Ihold)
See § 9.2.2.13 (Irun)
See § 8.4
See § 8.3
See § 8.2
11
AMIS-30621 LIN Microstepping Motordriver
Different positioning examples are shown in the table
below.
Short motion
New positioning command in same
direction, shorter or longer, while a
motion is running at maximum velocity
New positioning command in same
direction while in deceleration phase
Note: there is no wait time between the
deceleration phase and the new
acceleration phase.
New positioning command in reverse
direction while motion is running at
maximum velocity
New positioning command in reverse
direction while in deceleration phase
New velocity programming while
motion is running
AMI Semiconductor - Rev. 1.4
www.amis.com
12
Data Sheet
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.1.2 Position Initialization
After power-up or when a Vdd reset has been
acknowledged to the master, a position initialization of the
stepper-motor can be requested by the application, by use
of the RunInit command (see § 9.2.2.11). The position
initialization is performed by the position controller under
the control of the Main control block. This operation cannot
be interrupted or influenced by any further command. A
position initialization can only be interrupted
by the occurrence of the conditions driving to a Motor
shutdown (see § 9.2.2.8) or by a HardStop command. On
the other hand, sending a RunInit command while a
motion is already ongoing is not recommended.
The first motion is done with the specified Vmin and Vmax
velocities in the RunInit command, with the acceleration
(deceleration) parameter already in RAM, to a position
Pos1[15:0] also specified in RunInit. The goal here is to
perform a motion large enough to reach a stall position
(considered to be the reference position).
(2) Commands such as GetActualPos or GetStatus will
be executed while the position initialization is running.
This applies also for a dynamic ID assignment LIN frame
(see § 9.2.4.6.4).
(3) An initialization sequence starts by setting TagPos register
to SecPos value, provided secure position is enabled
otherwise TagPos is reset to zero.
(4) The acceleration/deceleration value applied during an
initialization sequence is the one stored in RAM before the
RunInit command is sent. The same applies for Shaft
bit, but not for Irun, Ihold and StepMode, which can
be changed during an initialization sequence.
(5) The Pos1, Pos2, Vmax, and Vmin values programmed in
a RunInit command apply only for a this initialization
sequence. All further positioning will use the parameters
stored in RAM (programmed for instance by a former
SetMotorParam command).
(6) Commands ResetPosition, RunInit and SoftStop
will be ignored while an initialization sequence is
ongoing, and will not be executed afterwards.
(7) A SetMotorParam command should not be sent during
an initialization sequence.
(8) If for some reason ActPos equals Pos1[15:0] at the
moment the RunInit command is issued, the circuit will
enter in deadlock state. Therefore, the application should
check the actual position by a GetPosition or a
GetFullStatus command prior to an initialization.
Another solution may consist in programming a value out
of the stepper motor range for Pos1[15:0].
A position initialization consists of 2 successive motions, as
illustrated below.
Then a second motion to a position Pos2[15:0] is done at
the specified Vmin velocity in the RunInit command (no
acceleration). The purpose of this second motion is to
confirm with a low velocity the positioning of the motor at
the stall position, assuming that the stepper motor may
have bounced against the stall position. Therefore, Pos2
should only be a few half or micro steps further than Pos1,
in order to perform a displacement of at least one electrical
period.
Once the second motion is achieved, the ActPos register
(see § 0) is reset to zero, to set the reached position as the
reference position, whereas TagPos register is not
changed.
Notes
(0) The priority encoder (see § 9.2.2.12) is describing the
management of states and commands. The notes below
are to be considered illustrative.
(1) The last SetPosition(Short) command issued during
an initialization sequence will be kept in memory and
executed afterwards. This applies also for the
commands Sleep and SetMotorParam and
GotoSecurePosition.
AMI Semiconductor - Rev. 1.4
www.amis.com
13
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.1.3 External Switch and HW2 Pin
Pin SWI and hardwired address pin HW2 (see § 9.2.4.5) will
alternatively attempt to source and sink a current in/from
the external switch (see application schematic) to test
whether it is ON or OFF. This current is set around 10mA
when a 1kW external series resistor is used.
This can be represented by the following time diagram (The
timings are given in § 6).
If the switch is detected ON (closed), then the flag <ESW>
is raised. The status of this flag can be read by the
application via a GetActualPos, a GetStatus or a
GetFullStatus reading frame. At the falling edge of
every current pulse (at around 1kHz), the stepper-motor
actual position is refreshed (register ActPos, see § 9.2.2.9),
so that the master node may get synchronous information
about the state of the switch together with the position of
the motor. The position is then given with an accuracy of ±
1 half-step (or micro-step, depending of the programmed
stepping mode). The block diagram below shows how this
function is implemented for HW2.
With the following truth table:
State
Float
Float
Float
Float
HW2Lo
HW2Lo
HW2Lo
HW2Lo
HW2Hi
HW2Hi
HW2Hi
HW2Hi
Drive LS
1
1
0
0
1
1
0
0
1
1
0
0
Drive HS
0
0
1
1
0
0
1
1
0
0
1
1
HW2_CMP
0
1
0
1
0
1
0
1
0
1
0
1
New State
Float
HW2Hi
Float
HW2Lo
HW2Lo
HW2Hi
Float
HW2Lo
Float
HW2Hi
HW2Hi
HW2Lo
HW2Hi
HW2Lo
HW2_CMP
Drive LS
Drive HS
note that e.g. if HW2 is connected to GND, LS-part will
report "float" while HS-part will report "low resistance
detected"
Note:
If HW2 is detected to be floating, motion to the secure position is performed.
AMI Semiconductor - Rev. 1.4
www.amis.com
address = "1"
address = "0"
CMP output; active high if low resistance
detected by the LS or HS Ohm-meter
request from digital to turn on the lowside part of the Ohm-meter
request from digital to turn on the highside part of the Ohm-meter
14
AMIS-30621 LIN Microstepping Motordriver
9.2.2 Main Control and Register, OTP Memory + ROM
Data Sheet
9.2.2.3 Soft Stop
A Soft Stop is an immediate interruption of a motion, but
with a deceleration phase. At the end of this action, the
register TagPos is loaded with the value contained in
register ActPos to avoid an attempt of the circuit to
achieve the motion (see § 0).
9.2.2.1 Power-up Phase
Power-up phase of the AMIS-30621 will not exceed 10ms.
After this phase, the AMIS-30621 is in Shutdown mode,
ready to receive LIN messages and to execute the
associated commands. After power-up, the registers and
flags are in the Reset state, some of them being loaded
with the OTP memory content (see § 9.2.2.2).
The circuit is then ready to execute a new positioning
command, provided thermal and electrical conditions allow
for it.
9.2.2.2 Reset State
After power-up, or after a reset occurrence (e.g. a micro cut
on pin VBB has made Vdd to go below VddReset level), the
H-bridges will be in high impedance mode, and the
registers and flags will be in a predetermined position. This
is documented in § 0 and § 9.2.2.10.
9.2.2.4 Thermal Shutdown Mode
When thermal shutdown occurs, the circuit performs a
SoftStop command and goes to Motor shutdown mode
(see below).
9.2.2.5 Temperature Management
The AMIS-30621 monitors temperature by mean of two
thresholds and one shutdown level, as illustrated in the
state diagram below. The only condition to reset flags
<TW> and <TSD> (respectively Thermal Warning and
Thermal Shutdown) is to be at a temperature lower than
Ttw and to get the occurrence of a GetStatus or a
GetFullStatus LIN frame.
AMI Semiconductor - Rev. 1.4
www.amis.com
15
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.2.6 Battery Voltage Management
<UV2> and <StepLoss> is to recover a battery voltage
higher than UV1 and to receive a GetStatus or a
GetFullStatus command.
The AMIS-30621 monitors the battery voltage by means of
one threshold and one shutdown level, as illustrated in the
state diagram below. The only condition to reset flags
9.9.2.7 Sleep Mode
Sleep mode can be entered in the following cases:
- The circuit receives a LIN frame with identifier 0x3C and
first Data byte containing 0x00, as required by LIN
specification rev 1.2.
- The LIN bus remains inactive (or is lost) during more than
25000 time slots (1.30 s at 19.2 kbit/s), after which a timeout signal switches the circuit to sleep mode.
When entering in Sleep mode, the stepper-motor can be
driven to its secure position. After which, the circuit is
completely powered down, apart from the LIN receiver
which remains active to detect dominant state on the bus.
In case sleep mode is entered while a motion is ongoing, a
transition will occur towards secure position as described in
§ 9.2.1. provided SecPos is enabled, otherwise SoftStop
is performed.
The circuit will return to normal mode if a valid LIN frame is
received while entering the Sleep mode (this valid frame
can be addressed to another slave).
AMI Semiconductor - Rev. 1.4
www.amis.com
16
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.2.8 Motor Shutdown Mode
A motor shutdown occurs when:
- The chip temperature rises above the thermal shutdown
threshold Ttsd (see § 5)
- The battery voltage goes below UV2 (see § 5)
- Flag <ElDef> = ‘1’, meaning an electrical problem is
detected on one or both coils, e.g. a short circuit
- Flag <CPFail> = ‘1’, meaning there is a charge pump
failure
A motor shutdown leads to the followings:
- H-bridges in high impedance mode
- The TagPos register is loaded with the ActPos (to avoid
any motion after leaving the motor shutdown mode)
The LIN interface remains active, being able to receive
orders or send status.
Important
While in shutdown mode, since there is no hold current in
the coils, the mechanical load can cause a step loss, which
indeed cannot be flagged by the AMIS-30621.
Warning
The application should limit the number of consecutive
GetStatus or GetFullStatus commands to try to get the
AMIS-30621 out of Shutdown mode when this proves to be
unsuccessful, e.g. there is a permanent defect. The reliability
of the circuit could be altered since Get(Full)Status
attempts to disable the protection of the H-bridges.
Note
(0) The priority encoder (see § 9.2.2.12) is describing the
management of states and commands. The note below is
to be considered illustrative.
(1) If the LIN communication is lost while in shutdown mode,
the circuit enters the sleep mode immediately.
AMI Semiconductor - Rev. 1.4
www.amis.com
The conditions to get out of a motor shutdown mode are:
- Reception of a GetStatus or GetFullStatus command
AND
- The four above causes are no more detected
Which leads to H-bridges in Ihold mode. Hence the circuit is
ready to execute any positioning command.
This can be illustrated in the following sequence given as an
application tip. The Master can check whether there is a
problem or not and decide which application strategy to
adopt.
17
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.2.9 RAM Registers
Register
Mnemonic
Length (bit)
Actual Position
ActPos
16
Last Programmed
Position
Pos/
TagPos
16/11
Acceleration Shape
AccShape
1
Coil Peak Current
Irun
4
Coil Hold Current
Ihold
4
Minimum Velocity
Vmin
4
Maximum Velocity
Vmax
4
Shaft
Shaft
1
Acceleration/
Deceleration
Acc
4
Secure Position
SecPos
11
Stepping Mode
StepMode
2
Related Commands
GetActualPos
GetFullStatus
GotoSecurePos
ResetPosition
GetFullStatus
GotoSecurePos
ResetPosition
SetPositionShort
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorPara
GetFullStatus
ResetToDefault1
SetMotorParam
Note
(1) A ResetToDefault command will act as a reset of the
RAM content, except for ActPos and TagPos registers
that are not modified. Therefore, the application should
not send a ResetToDefault during a motion, to avoid
any unwanted change of parameter.
AMI Semiconductor - Rev. 1.4
www.amis.com
18
Comment
Reset State
- 16-bit signed
Note 1
- 16-bit signed or
- 11-bit signed for half stepping
(see § 8.5)
‘0’ ➞ normal acceleration from Vmin to Vmax
‘1’ ➞ motion at Vmin without
acceleration
‘0’’
Operating current (see § 9.2.2.13)
Standstill current (see § 9.2.2.13)
See § 8.3 and § 9.2.2.13
(look-up table)
See § 8.2 and § 9.2.2.13
(look-up table)
Direction of movement for
positive velocity
See § 8.4 and § 9.2.2.13
(look-up table)
Target position when LIN
connection fails; 11 MSBs
of 16-bit position (LSBs fixed to ‘0’)
See § 8.1 and § 9.2.2.13
From OTP
memory
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.2.10 Flags Table
Register
Mnemonic
Length (bit)
Related Commands
Charge Pump
Failure
CPFail
1
GetFullStatus
Electrical Defect
ElDef
1
GetActualPos
GetStatus
GetFullStatus
External Switch
Status
ESW
1
GetActualPos
GetStatus
GetFullStatus
Electrical Flag
HS
1
Internal use
Motion Status
Motion
3
GetFullStatus
OVC1
1
GetFullStatus
OVC2
1
GetFullStatus
SecEn
1
Internal use
Sleep
1
Internal use
Over Current in
Coil X
Over Current in
Coil Y
Secure Position
Enabled
Circuit Going to
Sleep Mode
Step Loss
StepLoss
1
Motor Stop
Stop
1
Temperature Info
Tinfo
2
Thermal Shutdown
TSD
1
Thermal Warning
TW
1
Battery
Stop
Voltage
UV2
1
VddReset
1
Digital Supply
Reset
AMI Semiconductor - Rev. 1.4
www.amis.com
GetActualPos
GetStatus
GetFullStatus
Internal use
GetActualPos
GetStatus
GetFullStatus
GetActualPos
GetStatus
GetFullStatus
GetActualPos
GetStatus
GetFullStatus
GetActualPos
GetStatus
GetFullStatus
GetActualPos
GetStatus
GetFullStatus
19
Comment
‘0’ = charge pump OK
‘1’ = charge pump failure
reset only after GetFullStatus
<OVC1> or <OVC2> or <open
circuit 1> or <open circuit 2>
or <CPFail>
resets only after Get(Full)Status
‘0’ = open
‘1’ = close
<CPFail> or <UV2> or <ElDef>
or <VDDreset>
“x00” = Stop
“001” = inner motion acceleration
“010” = inner motion deceleration
“011” = inner motion max. speed
“101” = outer motion acceleration
“110” = outer motion deceleration
“111” = outer motion max. speed
‘1’ = over current
reset only after GetFullStatus
‘1’ = over current
reset only after GetFullStatus
‘0’ if SecPos = “100 0000 0000”
‘1’ otherwise
‘1’ = Sleep mode
reset by LIN command
Reset State
‘0’
‘0’
‘0’
‘0’
“000”
‘0’
‘0’
n.a.
‘0’
‘1’ = step loss due to under
voltage, over current or open circuit
‘1’
See § 9.2.2.12
“00” = normal temperature range
“01” = low temperature warning
“10” = high temperature warning
“11” = motor shutdown
‘1’ = shutdown (> 155°C typ.)
reset only after Get(Full)Status
and if <Tinfo> = “00”
‘1’ = over temp. (> 145°C)
reset only after Get(Full)Status
and if <Tinfo> = “00”
‘0’ = Vbb > UV2
‘1’ = Vbb ≤ UV2
reset only after Get(Full)Status
Set at ‘1’ after power-up of the circuit.
If this was due to a supply micro-cut,
it warns that the RAM contents may
have been lost; can be reset to ‘0’
with a GetStatus or a
GetFullStatus command.
‘0’
“00”
‘0’
‘0’
‘0’
‘1’
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.2.11 Application Commands
The LIN Master will have to use commands to manage the
different application tasks the AMIS-30621 can feature. The
commands summary is given in the table below.
Command Mnemonic
GetActualPos
GetFullStatus
GetOTPparam
GetStatus
GotoSecurePosition
HardStop
ResetPosition
ResetToDefault
RunInit
SetMotorParam
SetOTPparam
SetPosition
SetPositionShort (1 motor)
SetPositionShort (2 motors)
SetPositionShort (4 motors)
Sleep
SoftStop
Feature
Returns the actual position of the motor
Returns a complete status of the circuit
Returns the OTP memory content
Returns a short status of the circuit
Drives the motor to its secure position
Immediate motor stop
Actual position becomes the zero position
RAM content reset
Initialization sequence
Programs the motion parameters and values for the current in the
motor’s coils
Programs (and zaps) a selected byte of the OTP memory
Drives the motor to a given position
Drives the motor to a given position (half stepping mode only)
Drives 2 motors to 2 given positions (half stepping mode only)
Drives 4 motors to 4 given positions (half stepping mode only)
Drives circuit into sleep mode
Motor stopping with a deceleration phase
dynamic identifiers are used for other purpose, this is
acknowledged.
These commands are described hereafter, with their
corresponding LIN frames. One should also refer to §
9.2.4.6 for more details on LIN frames, particularly for what
concerns dynamic assignment of identifiers. A gray scale
coding is used to distinguish between master and slave
parts within the frames and to highlight dynamic identifiers.
An example is shown below.
Some frames implement a Broad bit that allows to address
a command to all the AMIS-30621 circuits connected to the
same LIN bus. Broad is active when at ‘0’, in which case the
physical address provided in the frame is thus not taken into
account by the slave nodes.
Usually, the AMIS-30621 makes use of dynamic identifiers
for general-purpose 2, 4 or 8 bytes writing frames. If
AMI Semiconductor - Rev. 1.4
www.amis.com
20
AMIS-30621 LIN Microstepping Motordriver
GetActualPos
This command is provided to the circuit by the LIN Master
to get the actual position of the Stepper-motor. This
position (ActPos[15:0]) is returned in signed two’s
complement 16-bit format. One should note that according
to the programmed stepping mode, the LSBs of
ActPos[15:0] may have no meaning and should be
assumed to be at ‘0’, as described in § 8.5.
Data Sheet
GetActualPos provides also a quick status of the circuit
and of the Stepper-motor, identical to that obtained by
command GetStatus (see further).
Note
A GetActualPosition command will not attempt to
reset any flag.
GetActualPos corresponds to the following LIN reading
frames.
1) 4 data bytes in-frame response with direct ID (type #5).
bit 7
*
ESW
bit 6
*
bit 5
1
bit 4
0
VddReset
StepLoss
ElDef
UV2
bit 3
ID3
AD[6:0]
ActPos[15:8]
ActPos[7:0]
TSD
bit 2
ID2
bit 1
ID1
TW
bit 0
ID0
Tinfo[1:0]
Identifier
Data1
Data2
Data3
Data4
*) according to parity computation
ID[5:0] :
Dynamically allocated direct identifier. There
should be as many dedicated identifiers to
the GetActualPos command as there are
stepper motors connected to the LIN bus.
2) One preparing frame prior 4 data bytes in-frame
response with 0x3D indirect ID.
Preparing Frame (type #7 or #8)
bit 7
bit 6
bit 5
*
*
0
1
1
In-frame Response (type #6)
0
1
1
ESW
VddReset
StepLoss
ElDef
bit 4
ID4
bit 3
ID3
CMD[6:0] = 0x00
AD[6:0]
1
1
AD[6:0]
ActPos[15:8]
ActPos[7:0]
UV2
TSD
0xFF
0xFF
0xFF
0xFF
bit 1
ID1
bit 0
ID0
1
0
1
TW
*) according to parity computation
AMI Semiconductor - Rev. 1.4
www.amis.com
bit 2
ID2
21
Tinfo[1:0]
Identifier
Data1
Data2
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
AMIS-30621 LIN Microstepping Motordriver
Note
A GetFullStatus command will attempt to reset flags
<TW>, <TSD>, <UV2>, <ElDef>, <StepLoss>, <CPFail>,
<OVC1>, <OVC2>, and <VddReset>.
GetFullStatus corresponds to two successive LIN in-frame
responses with 0x3D indirect ID.
GetFullStatus
This command is provided to the circuit by the LIN Master
to get a complete status of the circuit and of the Steppermotor. Refer to § 0 and § 9.2.2.10 to see the meaning of
the parameters sent to the LIN Master.
Preparing Frame (type #7 or #8)
bit 7
bit 6
bit 5
*
*
0
1
1
In-frame Response 1 (type #6)
0
1
1
1
Irun[3:0]
Vmax[3:0]
AccShape
StepMode[1:0]
VddReset
StepLoss
ElDef
Motion[2:0]
In-frame Response 2 (type #6)
0
1
1
1
1
1
1
bit 4
ID4
1
bit 3
ID3
CMD[6:0] = 0x01
AD[6:0]
1
AD[6:0]
Shaft
UV2
TSD
ESW
OVC1
Lin error status register (see 9.2.4.4)
0xFF
1
1
AD[6:0]
ActPos[15:8]
ActPos[7:0]
TagPos[15:8]
TagPos[7:0]
SecPos[7:0]
1
1
0xFF
bit 2
ID2
bit 1
ID1
bit 0
ID0
1
0
1
Ihold[3:0]
Vmin[3:0]
Acc[3:0]
TW
Tinfo[1:0]
CPFail
OVC2
1
1
0
SecPos[10:8]
*) according to parity computation
Important
It is not mandatory for the LIN Master to initiate the second
in-frame response if ActPos, TagPos and SecPos are not
needed by the application.
AMI Semiconductor - Rev. 1.4
www.amis.com
Data Sheet
22
1
Identifier
Data1
Data2
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
AMIS-30621 LIN Microstepping Motordriver
GetOTPparam
This command is provided to the circuit by the LIN Master
after a preparation frame (see § 9.2.4.6.3) was issued, to
read the content of an OTP Memory segment which
address was specified in the preparation frame.
Preparing Frame (type #7 or #8)
bit 7
bit 6
bit 5
*
*
0
1
1
In-frame Response (type #6)
0
1
1
ADM
HW2
HW1
bit 4
ID4
1
OTP
OTP
HW0
OTP
OTP
OTP
OTP
OTP
Data Sheet
GetOTPparam corresponds to a LIN in-frame response with
0x3D indirect ID.
bit 3
ID3
CMD[6:0] = 0x02
AD[6:0]
1
byte @0x00
byte @0x01
PA3
byte @0x03
byte @0x04
byte @0x05
byte @0x06
byte @0x07
bit 2
ID2
bit 1
ID1
bit 0
ID0
1
0
1
PA2
PA1
PA0
Identifier
Data1
Data2
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
*) according to parity computation
HW[2:0] : Although not stored in the OTP memory, the
hardwired address is returned by GetOTPparam
as if stored at address 0x02 of the OTP memory.
Note
A GetStatus command will attempt to reset flags <TW>,
<TSD>, <UV2>, <ElDef>, <StepLoss>, and <VddReset>.
GetStatus
This command is provided to the circuit by the LIN Master
to get a quick status (compared to that of GetFullStatus
command) of the circuit and of the stepper motor. Refer to
§ 9.2.2.10 to see the meaning of the parameters sent to the
LIN Master.
bit 7
*
ESW
VddReset
bit 6
*
bit 5
0
bit 4
ID4
bit 3
ID3
StepLoss
ElDef
UV2
TSD
GetStatus corresponds to a 2 data bytes LIN in-frame
response with a direct ID (type #5).
bit 2
ID2
AD[6:0]
TW
*) according to parity computation
ID[5:0] : Dynamically allocated identifier. There should
be as many dedicated identifiers to the
GetStatus command as there are stepper
motors connected to the LIN bus.
AMI Semiconductor - Rev. 1.4
www.amis.com
23
bit 1
ID1
bit 0
ID0
Tinfo[1:0]
Identifier
Data1
Data2
AMIS-30621 LIN Microstepping Motordriver
GotoSecurePosition
This command is provided by the LIN Master to one or all
the Stepper-motors to move to the secure position
SecPos[10:0]. It can also be internally triggered if the
LIN bus communication is lost, or after an initialization
phase or prior to going into sleep mode. See the priority
encoder
bit 7
*
1
Broad
bit 6
*
bit 5
0
bit 4
ID4
Data Sheet
description for more details (§ 9.2.1.2). The priority encoder
table also acknowledges the cases where a
GotoSecurePosition command will be ignored.
GotoSecurePosition corresponds to the following LIN
writing frame (type #1).
bit 3
ID3
CMD[6:0] = 0x04
AD[6:0]
bit 2
ID2
bit 1
ID1
bit 0
ID0
Identifier
Data1
Data2
*) according to parity computation
If Broad = ‘0’ all the Stepper motors connected to the LIN
bus will reach their secure position.
HardStop
This command will be internally triggered when an electrical
problem is detected in one or both coils, leading to
Shutdown mode. If this occurs while the motor is moving,
the <StepLoss> flag is raised to allow warning of the LIN
Master at the next GetStatus command that steps may
have been lost. Once the motor is stopped, ActPos
bit 7
*
1
Broad
bit 6
*
bit 5
0
bit 4
ID4
register is copied into TagPos register to ensure keeping
the stop position.
A hardstop command can also be issued by the LIN
Master for some safety reasons. It corresponds then to the
following 2 Data bytes LIN writing frame (type #1).
bit 3
ID3
CMD[6:0] = 0x05
AD[6:0]
bit 2
ID2
bit 1
ID1
bit 0
ID0
Identifier
Data1
Data2
*) according to parity computation
If Broad = ‘0’ all the Stepper motors connected to the LIN
bus will stop.
ResetPosition
This command is provided to the circuit by the LIN Master
to reset ActPos and TagPos registers to zero. This can be
helpful to prepare for instance a relative positioning.
bit 7
*
1
Broad
bit 6
*
bit 5
0
bit 4
ID4
ResetPosition corresponds to the following LIN writing
frames (type #1).
bit 3
ID3
CMD[6:0] = 0x06
AD[6:0]
*) according to parity computation
If Broad = ‘0’ all the circuits connected to the LIN bus will
reset their ActPos and TagPos registers.
AMI Semiconductor - Rev. 1.4
www.amis.com
24
bit 2
ID2
bit 1
ID1
bit 0
ID0
Identifier
Data1
Data2
AMIS-30621 LIN Microstepping Motordriver
ResetToDefault
This command is provided to the circuit by the LIN Master
in order to reset the whole Slave node into the initial state.
ResetToDefault will for instance overload the RAM with
the Reset state of the Registers parameters (see § 0). This is
another way for the LIN Master to initialize a slave node in
case of emergency, or simply to refresh the RAM content.
Note
ActPos and TagPos are
ResetToDefault command.
bit 7
*
bit 6
*
bit 5
0
Data Sheet
Important:
Care should be taken not to send a ResetToDefault
command while a motion is ongoing, since this could modify
the motion parameters in a way forbidden by the position
controller.
ResetToDefault corresponds to the following LIN writing
frames (type #1).
not
modified
by
a
bit 4
ID4
1
bit 3
ID3
bit 2
ID2
bit 1
ID1
bit 0
ID0
CMD[6:0] = 0x07
Broad
AD[6:0]
Identifier
Data1
Data2
*) according to parity computation
If Broad = ‘0’ all the circuits connected to the LIN bus will
reset to default.
Important:
If for some reason ActPos equals Pos1[15:0] at the
moment the RunInit command is issued, the circuit will
enter in deadlock state. Therefore, the application should
check the actual position by a GetPosition or a
GetFullStatus command prior to an initialization. Another
solution may consist in programming a value out of the
stepper motor range for Pos1[15:0]. For the same reason
Pos2[15:0] should not be equal to Pos1[15:0].
RunInit
This command is provided to the circuit by the LIN Master
in order to initialize positioning of the motor by seeking the
zero (or reference) position. See § 9.2.1.2 for a detailed
description or the initialization phase.
Note1:
This sequence cannot be interrupted by another positioning
command.
RunInit corresponds to the following LIN writing frame
with 0x3C identifier (type #4).
bit 7
0
bit 6
0
bit 5
1
bit 4
1
bit 3
1
bit 2
1
AppCMD = 0x80
1
CMD[6:0] = 0x08
Broad
AD[6:0]
Vmax[3:0]
Vmin[3:0]
Pos1[15:8]
Pos1[7:0]
Pos2[15:8]
Pos2[7:0]
If Broad = ‘0’ all the circuits connected to the LIN bus will
run the init sequence.
Vmax[3:0] :
Vmin[3:0] :
Pos1[15:0] :
Pos2[15:0] :
Max velocity for first motion of the init run
Min velocity for first motion of the init run
and velocity for the second motion of the
init run
First position to be reached during the init
run
Second position to be reached during the
init run
AMI Semiconductor - Rev. 1.4
www.amis.com
25
bit 1
0
bit 0
0
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
SetMotorParam()
This command is provided to the circuit by the LIN Master
to set the values for the Stepper motor parameters (listed
below) in RAM. Refer to § 0 to see the meaning of the
parameters sent by the LIN Master.
§ 9.2.1.1). Therefore the application should not change
other parameters than Vmax and Vmin while a motion is
running, otherwise correct positioning cannot be
guaranteed.
Important: If a SetMotorParam occurs while a motion is
ongoing, it will modify at once the motion parameters (see
SetMotorParam corresponds to the following LIN writing
frame with 0x3C identifier (type #4).
bit 7
0
bit 6
0
bit 5
1
1
Broad
bit 4
bit 3
1
1
AppCMD = 0x80
CMD[6:0] = 0x09
AD[6:0]
Irun[3:0]
Vmax[3:0]
SecPos[10:8] Shaft
1
1
1
bit 2
1
bit 1
0
bit 0
0
1
1
Ihold[3:0]
Vmin[3:0]
Acc[3:0]
SecPos[7:0]
AccShape
StepMode[1:0]
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
If Broad = ‘0’ all the circuits connected to the LIN bus will
set the parameters in their RAMs as requested.
Important:
This command must be sent under a specific Vbb voltage
value. See parameter VbbOTP in § 5. This is a mandatory
condition to ensure reliable zapping.
SetOTPparam()
This command is provided to the circuit by the LIN Master
to program the content D[7:0] of the OTP memory byte
OTPA[2:0], and to zap it.
SetMotorParam corresponds to a 0x3C LIN writing frames
(type #4).
bit 7
0
bit 6
0
bit 5
1
1
Broad
1
1
1
bit 4
bit 3
1
1
AppCMD = 0x80
CMD[6:0] = 0x10
AD[6:0]
1
1
D[7:0]
0xFF
0xFF
0xFF
If Broad = ‘0’ all the circuits connected to the LIN bus will
set the parameters in their OTP memories as requested.
AMI Semiconductor- Rev. 1.4
www.amis.com
26
bit 2
1
bit 1
0
OTPA[2:0]
bit 0
0
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
AMIS-30621 LIN Microstepping Motordriver
SetPosition()
This command is provided to the circuit by the LIN Master
to drive one or two motors to a given absolute position.
See § 8.5 for more details.
Data Sheet
The priority encoder table (§ 9.2.2.12) acknowledges the
cases where a SetPosition command will be ignored.
SetPosition corresponds to the following LIN write
frames.
1) 2 Data bytes frame with a direct ID (type #3)
bit 7
*
bit 6
*
bit 5
0
bit 4
bit 3
ID4
ID3
Pos[15:8]
Pos[7:0]
bit 2
ID2
bit 1
ID1
bit 0
ID0
bit 2
ID2
bit 1
ID1
bit 0
ID0
Identifier
Data1
Data2
*) according to parity computation
ID[5:0] :
Dynamically allocated direct identifier.
There should be as many dedicated
identifiers to this SetPosition command as
there are stepper motors connected to the
LIN bus.
2) 4 Data bytes frame with a general purpose identifier
(type #1)
bit 7
*
1
Broad
bit 6
*
bit 5
1
bit 4
0
bit 3
ID3
CMD[6:0] = 0x0B
AD[6:0]
Pos[15:8]
Pos[7:0]
Identifier
Data1
Data2
Data3
Data4
*) according to parity computation
If Broad = ‘0’ all the Stepper motors connected to the LIN
will must go to Pos[15:0].
3) Two motors positioning frame with 0x3C identifier (type #4)
bit 7
0
bit 6
0
1
1
1
ADn[6:0] :
bit 5
1
bit 4
bit 3
1
1
AppCMD = 0x80
CMD[6:0] = 0x0B
AD1[6:0]
Pos1[15:8]
Pos1[7:0]
AD2[6:0]
Pos2[15:8]
Pos2[7:0]
Motor #n physical address (n ∈ [1,2]).
Posn[15:0] : Signed 16-bit position set-point for Motor #n.
AMI Semiconductor - Rev. 1.4
www.amis.com
27
bit 2
1
bit 1
0
bit 0
0
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
AMIS-30621 LIN Microstepping Motordriver
SetPositionShort()
This command is provided to the circuit by the LIN Master
to drive one, two or four motors to a given absolute
position. It applies only for half stepping mode
(StepMode[1:0] = “00”) and is ignored when in other
stepping modes. See § 8.5 for more details.
Data Sheet
implementing a maximum of 16 slave nodes. These 4 bits
are normally corresponding to the bits PA[3:0] in OTP
memory (address 0x00), while bits AD[6:4] must be at ‘1’.
Two different cases must in fact be considered, depending
on the programmed value of bit ADM in the OTP memory
(see § 9.2.4.5):
The physical address is coded on 4 bits, hence
SetPositionShort can only be used with a network
ADM
0
1
1
AD[3]
X
0
1
pin HW0
pin HW1
pin HW2
Tied to Vbb
Tied to Gnd
Tied to Vbat
Tied to Vdd
The priority encoder table (§ 9.2.2.12) acknowledges the
cases where a SetPositionShort command will be
ignored.
bit PA0 in OTP memory
AD[0]
1
1
SetPositionShort corresponds to the following LIN
writing frames.
1) 2 Data bytes frame for 1 motor, with specific identifier (type #2)
bit 7
*
bit 6
*
Pos[10:8]
bit 5
0
bit 4
bit 3
ID4
ID3
Broad
Pos[7:0]
bit 2
bit 1
ID2
ID1
AD[3:0]
*) according to parity computation
bit 0
ID0
Identifier
Data1
Data2
SetPositionShort command.
If Broad = ‘0’ all the stepper motors connected to the LIN
bus will go to Pos[10:0].
ID[5:0] :
Dynamically allocated identifier to 2
Data bytes
2) 4 Data bytes frame for two motors, with specific identifier (type # 2)
bit 7
*
bit 6
*
Pos1[10:8]
bit 5
1
1
Pos2[10:8]
1
bit 4
0
bit 3
bit 2
ID3
ID2
AD1[3:0]
bit 1
ID1
bit 0
ID0
bit 1
ID1
AD1[3:0]
bit 0
ID0
Pos1[7:0]
AD2[3:0]
Pos2[7:0]
Identifier
Data1
Data2
Data3
Data4
*) according to parity computation
Dynamically allocated identifier to 4 Data
bytes SetPositionShort command.
ADn[3:0] :
Motor #n physical address least significant
bits (n ∈ [1,2]).
Posn[10:0] : Signed 11-bit position set point for Motor #n
ID[5:0] :
3) 8 Data bytes frame for 4 motors, with specific identifier (type #2)
bit 7
*
bit 6
*
Pos1[10:8]
bit 5
1
Pos2[10:8]
Pos3[10:8]
Pos4[10:8]
bit 4
bit 3
1
ID3
1
Pos1[7:0]
1
Pos2[7:0]
1
Pos3[7:0]
1
Pos4[7:0]
bit 2
ID2
AD2[3:0]
AD3[3:0]
AD4[3:0]
*) according to parity computation
ID[5:0] :
ADn[3:0] :
Motor #n physical address least significant
bits (n ∈ [1,4]).
Posn[10:0] : Signed 11-bit position set point for Motor #n
(see § 0).
Dynamically allocated identifier to 8 Data
bytes SetPositionShort command.
AMI Semiconductor - Rev. 1.4
www.amis.com
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
28
AMIS-30621 LIN Microstepping Motordriver
Sleep
This command is provided to the circuit by the LIN Master
to put all the Slave nodes connected to the LIN bus into
sleep mode. If this command occurs during a motion of the
motor, TagPos is reprogrammed to SecPos (provided
SecPos is different from “100 0000 0000”), or a SoftStop
bit 7
0
bit 6
0
bit 5
1
bit 4
1
Data Sheet
is executed before going to sleep mode. See LIN 1.2
specification and § 9.2.2.7.
The corresponding LIN frame is a Master Request
Command Frame (identifier 0x3C) with Data byte 1
containing 0x00 while the followings contain 0xFF.
bit 3
1
bit 2
1
bit 1
0
bit 0
0
0x00
0xFF
SoftStop
If a SoftStop command occurs during a motion of the
stepper motor, it provokes an immediate deceleration to
VMIN (see § 8.3) followed by a stop, regardless of the
position reached. Once the motor is stopped, TagPos
register is overwritten with value in ActPos register to
ensure keeping the stop position.
Identifier
Data1
Data2
Command SoftStop occurs in the following cases:
- The chip temperature rises above the Thermal shutdown
threshold (see § 5 and § 9.2.2.5);
- The LIN Master requests a SoftStop. Hence SoftStop
will correspond to the following 2 Data bytes LIN writing
frame (type #1).
Note
A SoftStop command occurring during a RunInit
sequence is not taken into account.
bit 7
*
1
Broad
bit 6
*
bit 5
0
bit 4
ID4
bit 3
ID3
CMD[6:0] = 0x0F
AD[6:0]
*) according to parity computation
If Broad = ‘0’ all the stepper motors connected to the LIN
bus will stop with deceleration.
AMI Semiconductor - Rev. 1.4
www.amis.com
29
bit 2
ID2
bit 1
ID1
bit 0
ID0
Identifier
Data1
Data2
AMIS-30621 LIN Microstepping Motordriver
9.2.2.12 Priority Encoder
The table below describes the state management
performed by the Main control block.
↔
AMI Semiconductor - Rev. 1.4
www.amis.com
30
Data Sheet
AMIS-30621 LIN Microstepping Motordriver
9 Two transitions are possible from state Stopped when
<Sleep> = ‘1’:
1) Transition to state Sleep if (<SecEn> = ‘0’) or
((<SecEn> = ‘1’) and (ActPos = SecPos)) or
<Stop> = ‘1’.
2) Otherwise transition to state GotoPos, with
TagPos = SecPos.
10 <SecEn> = ‘1’ when register SecPos is loaded with a value
different from the most negative value (i.e. different from
0x400 = “100 0000 0000”).
11 <Stop> flag allows to distinguish whether state Stopped
was entered after HardStop/SoftStop or not. <Stop> is set
to ‘1’ when leaving state HardStop or SoftStop and is
reset during first clock edge occurring in state Stopped.
12 Command for dynamic assignment of IDs is decoded in all
states except Sleep and has not effect on the current state.
13 While in state Stopped, if ActPos ≠ TagPos there is a
transition to state GotoPos. This transition has the lowest
priority, meaning that <Sleep>, <Stop>, <TSD>, etc. are
first evaluated for possible transitions.
14 If <StepLoss> is active, then SetPosition, SetPositionShort
and GotoSecurePosition commands are ignored (they
will not modify TagPos register whatever the state), and
motion to secure position is forbidden after a Sleep
command or a LIN timeout (the circuit will go into Sleep
state immediately, without positioning to secure position).
Other command like RunInit or ResetPosition will
be executed if allowed by current state. <StepLoss> can
only be cleared by a GetStatus or GetFullStatus
command.
Notes:
1 Leaving Sleep state is equivalent to Power-on-reset.
2 After Power-on reset, the Shutdown state is entered. The
Shutdown state can only be left after GetFullStatus
command (so that the Master could read the <VddReset>
flag).
3 A RunInit sequence runs with a separate set of RAM
registers. The parameters that are not specified in a RunInit
command are loaded with the values stored in RAM at the
moment the RunInit sequence starts. AccShape is forced to
‘1’ during second motion even if a ResetToDefault
command is issued during a RunInit sequence, in which
case AccShape at ‘0’ will be taken into account after the
RunInit sequence. A GetFullStatus command will return
the default parameters for Vmax and Vmin stored in RAM.
4 The <Sleep> flag is set to ‘1’ when a LIN timeout or a
Sleep command occurs. It is reset by the next LIN command
(<Sleep> is cancelled if not activated yet).
5 Shutdown state can be left only when <TSD> and <HS>
flags are reset.
6 Flags can be reset only after the master could read them via
a GetStatus or GetFullStatus command, and
provided the physical conditions allow for it (normal
temperature, correct battery voltage and no electrical or
charge pump defect).
7 A SetMotorParam command sent while a motion is
ongoing (state GotoPos) should not attempt to modify Acc
and Vmin values. This can be done during a RunInit
sequence since this motion uses its own parameters, the
new parameters will be taken into account at the next
SetPosition or SetPositionShort command.
8 Some transitions like GotoPos ➔ Sleep are actually done via
several states: GotoPos ➔ SoftStop ➔ Stopped ➔ Sleep (see
diagram below).
AMI Semiconductor- Rev. 1.4
www.amis.com
Data Sheet
31
AMIS-30621 LIN Microstepping Motordriver
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Irun
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Peak Current (mA)
0
59
1
71
0
84
1
100
0
119
1
141
0
168
1
200
0
238
1
283
0
336
1
400
0
476
1
566
0
673
1
800
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Ihold
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
StepMode
0
1
0
1
9.2.2.13 Application Parameters Stored in OTP Memory
Except for the physical address AD[3:0] and for bit ADM,
these parameters, although programmed in a non-volatile
memory can still be overridden in RAM by a LIN writing
operation.
AD[6:0]
Physical address of the stepper motor. Up to
128 stepper motors can theoretically be
connected to the same LIN bus.
ADM
Addressing mode bit (see § 9.2.4.5)
Irun[3:0] Peak current value to be fed to each coil of
the stepper-motor. The table to the right
provides the 16 possible values for IRUN.
Ihold[3:0] Hold current for each coil of the steppermotor. The table to the right provides the 16
possible values for IHOLD.
StepMode
Indicator of stepping mode to be used.
AMI Semiconductor - Rev. 1.4
www.amis.com
32
Data Sheet
Hold Current (mA)
59
71
84
100
119
141
168
200
238
283
336
400
476
566
673
800
Step Mode
Half stepping
1/4 micro step
1/8 micro step
1/16 micro step
AMIS-30621 LIN Microstepping Motordriver
Indicator of Reference Position. If Shaft =
‘0’, the reference position is the maximum
inner position, whereas if Shaft = ‘1’, the
reference position is the maximum outer
position.
Shaft
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
SecPos[10:0] Secure Position of the stepper motor. This
is the position to which the motor is driven
in case of a LIN communication loss or
when the LIN error counter overflows. If
SecPos[10:0] = “100 0000 0000”,
this means that Secure Position is disabled,
e.g. the stepper motor will be kept in the
position occupied at the moment these
events occur.
The Secure Position is coded on 11 bits
only, providing actually the most
significant bits of the position, the non
coded least significant bits being set to ‘0’.
Vmax[3:0]
Vmin[3:0]
Acc[3:0]
Code
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Data Sheet
Parameter Index
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Maximum velocity, minimum velocity and
acceleration of the stepper motor are
programmed by coding the respective
Vmax, Vmin and Acc parameters index as
defined in § 8 Positioning data.
9.2.2.14 OTP Memory Structure
The table below shows how the parameters to be stored in
the OTP memory are located.
OTP address
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
7
6
5
4
3
OSC3
EnableLIN
ADM
Irun3
Vmax3
SecPos10
SecPos7
OSC2
TSD2
OSC1
TSD1
OSC0
TSD0
Irun2
Vmax2
SecPos9
SecPos6
Irun1
Vmax1
SecPos8
SecPos5
Irun0
Vmax0
Shaft
SecPos4
IREF3
BG3
PA3
Ihold3
Vmin3
Acc3
SecPos3
StepMode1
IREF1
BG1
PA1
Ihold1
Vmin1
Acc1
SecPos1
LOCKBT
IREF0
BG0
PA0
Ihold0
Vmin0
Acc0
SecPos0
LOCKBG
Protected Byte
0x00 to 0x01
0x00 to 0x07
The command used to load the application parameters via
the LIN bus in the RAM prior to an OTP Memory
programming is SetMotorParam. This allows for a
functional verification before using a SetOTPparam
command to program and zap separately one OTP memory
byte. A GetOTPparam command issued after each
AMI Semiconductor - Rev. 1.4
www.amis.com
0
Once OTP programming is completed, bit LOCKBG can be
zapped, to disable future zapping, otherwise any OTP bit at
‘0’ could still be zapped by using a SetOTPparam
command.
Each OPT bit is at ‘0’ when not zapped. Zapping a bit will
set it to ‘1’. Thus only bits having to be at ‘1’ must be
zapped. Zapping of a bit already at ‘1’ is disabled.
(zapped before delivery)
IREF2
BG2
PA2
Ihold2
Vmin2
Acc2
SecPos2
StepMode0
1
Each OTP byte will be programmed separately (see
command SetOTPparam).
Parameters stored at address 0x00 and 0x01 and bit
LOCKBT are already programmed in the OTP memory at
circuit delivery, they correspond to the calibration of the
circuit and are just documented here as an indication.
Lock Bit
LOCKBT
LOCKBG
2
SetOTPparam command allows to verify the correct byte
zapping.
Note
Zapped bits will really be “active” after a GetOTPparam or a
ResetToDefault command or after a power-up.
33
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.3 Motordriver
9.2.3.1 Current Waveforms in the Coils
The figure below illustrates the current fed to the motor
coils by the motordriver in half-step mode.
Whereas the figure below shows the current fed to one coil
in 1/16th microstepping (1 electrical period).
9.2.3.2 PWM Regulation
9.2.3.3 Motor Starting Phase
In order to force a given current (determined by Irun or
Ihold and the current position of the rotor) through the
motor coil while ensuring high energy transfer efficiency, a
regulation based on PWM principle is used. The regulation
loop performs a comparison of the sensed output current to
an internal reference, and features a digital regulation
generating the PWM signal that drives the output switches.
The zoom over one micro-step in the figure above shows
how the PWM circuit performs this regulation.
At motion start, the currents in the coils are directly
switched from Ihold to Irun with a new sine/cos ratio
corresponding to the first half (or micro) step of the motion.
AMI Semiconductor- Rev. 1.4
www.amis.com
34
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.3.4 Motor Stopping Phase
At the end of the deceleration phase, the currents are
maintained in the coils at their actual DC level (hence
keeping the sine/cos ratio between coils) during 1/4th of an
electrical period at minimum velocity (thus 2 half-steps). The
currents are then set to the hold values, respectively Ihold x
sin(TagPos) and Ihold x cos(TagPos) as illustrated below. A
new positioning order can then be executed.
9.2.3.5 Charge Pump Monitoring
9.2.3.6 Electrical Defect on Coils, Detection and Confirmation
If the charge pump voltage is not sufficient for driving the
high side transistors (due to a failure), an internal HardStop
command is issued. This is acknowledged to the master by
raising flag <CPFail> (available with command
GetFullStatus).
The principle relies on the detection of a voltage drop on at
least one transistor of the H-bridge. Then the decision is
taken to open the transistors of the defective bridge.
This allow to detect the following short circuits:
• External coil short circuit.
• Short between one terminal of the coil and Vbat or Gnd.
• One cannot detect internal short in the motor.
Open circuits are detected by 100% PWM duty cycle value
during a long time.
In case this failure occurs while a motion is ongoing, the flag
<StepLoss> is also raised.
Pins
Yi or Xi
Yi or Xi
Yi or Xi
Y1 and Y2
X1 and X2
Xi and Yi
AMI Semiconductor - Rev. 1.4
www.amis.com
Fault Mode
Short circuit to GND
Short circuit to Vbat
Open
Short circuited
Short circuited
Short circuited
35
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.4 LIN Controller
9.2.4.1 General Description
The LIN (Local Interconnect Network) is a serial
communications protocol that efficiently supports the
control of mechatronic nodes in distributed automotive
applications.
• selectable length of Message Frame: 2, 4, and 8 bytes
• configuration flexibility
• data checksum security and error detection;
• detection of defective nodes in the network.
The interface implemented in the AMIS-30621 is compliant
with the LIN rev. 1.2 specifications. It features a slave node,
thus allowing for:
• single-master / multiple-slave communication
• self synchronization without quartz or ceramics resonator
in the slave nodes
• guaranteed latency times for signal transmission
• single-wire communication
• transmission speed of 19.2 kbit/s
It includes the analog physical layer and the digital protocol
handler.
The analog circuitry implements a low side driver with a
pull-up resistor as a transmitter, and a resistive divider with
a comparator as a receiver.
The specification of the line driver/receiver follows the ISO
9141 standard with some enhancements regarding the EMI
behavior.
9.4.2.4 Slave Operational Range for Proper Self Synchronization
The LIN interface will synchronize properly in the following
conditions:
- Vbb ≥ 8 V
- Ground shift between Master node and Slave node < ±1V
It is highly recommended to use the same type of reverse
battery voltage protection diode for the Master and the
Slave nodes.
AMI Semiconductor - Rev. 1.4
www.amis.com
36
AMIS-30621 LIN Microstepping Motordriver
9.2.4.3 Functional Description
9.2.4.3.1 Analog Part
The transmitter is a low-side driver with a pull-up resistor
and slope control. The figure below shows the
characteristics of the transmitted signal, including the delay
between internal TxD signal and LIN signal. See § 6 for
timing values.
The receiver mainly consists of a comparator which
threshold is equal to Vbb/2. The figure below shows the
delay between the received signal and the internal RxD
signal. See § 6 for timing values.
AMI Semiconductor - Rev. 1.4
www.amis.com
37
Data Sheet
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.4.3.2 Protocol Handler
9.2.4.3.3 Electro Magnetic Compatibility
This block implements:
- bit synchronization
- bit timing
- the MAC layer
- the LLC layer
- the supervisor
EMC behavior fulfills requirements defined by LIN
specification, rev. 1.2.
9.2.4.4 Error Status Register
The LIN interface implements a register containing an error
status of the LIN communication. This register is as follows:
bit 7
bit 6
bit 5
bit 4
not used
not used
not used
not used
bit 3
Time out
error
With:
- Data error flag = Checksum error + StopBit error +
Length error
- Header error flag
= Parity + SynchField error
A GetFullStatus frame will reset the error status register.
bit 2
Data error
flag
bit 1
Header error
flag
bit 0
Bit error
flag
9.2.4.5 Physical Address of the Circuit
The circuit must be provided with a physical address in
order to discriminate this circuit from other ones on the LIN
bus. This address is coded on 7 bits, yielding the theoretical
possibility of 128 different circuits on the same bus. It is a
combination of 4 OTP memory bits (see § 9.2.2.14) and of
the 3 hardwired address bits (pins HW[2:0]).
The OTP memory contains also an extra bit, ADM, which
allows for the following combinations:
Note
Pins HW0 and HW1 are 5V digital inputs, whereas pin HW2 is
compliant with a 12V level, e.g. it can be connected to Vbat
or Gnd via a terminal of the PCB. To provide cleaning current
for this terminal, the system used for pin SWI is also
implemented for pin HW2 (see § 9.2.1.3).
9.2.4.6 LIN Frames
- Provide set-point position for the stepper motor.
Whereas Reading frames will be used to:
- Get the actual position of the stepper motor;
- Get status information such as error flags;
- Verify the right programming and configuration of the
component.
The LIN frames can be divided in writing and reading
frames. A frame is composed of an 8-bit Identifier followed
by 2, 4 or 8 Data-bytes. Writing frames will be used to:
- Program the OTP Memory;
- Configure the component with the stepper motor
parameters (current, speed, stepping mode, etc.);
AMI Semiconductor - Rev. 1.4
www.amis.com
38
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.4.6.1 Writing Frames
A writing frame is sent by the LIN Master to send
commands and/or information to the Slave nodes.
According to the LIN specification, identifiers are to be used
to determine a specific action. If a physical addressing is
needed, then some bits of the Data field can be dedicated
to this, as illustrated in the example below.
Note
Bit 7 of byte Data1 must be at ‘1’ since the LIN specification
requires that contents from 0x00 to 0x7F must be reserved for
broadcast messages (0x00 being for the “Sleep” message).
Another possibility is to determine the specific action within
the Data field in order to use less identifiers. One can for
example use the reserved identifier 0x3C and take
advantage of the 8-byte Data field to provide a physical
address, a command and the needed parameters for the
action, as illustrated in the example below.
The writing frames used with the AMIS-30621 are the
followings:
• Type #1: General purpose 2 or 4 Data bytes writing frame
with a dynamically assigned identifier
This type is dedicated to short writing actions when the bus
load can be an issue. They are used to provide direct
command to one (Broad = ‘1’) or all the slave nodes (Broad
= ‘0’). If Broad = ‘1’, the physical address of the slave node
is provided by the 7 remaining bits of DATA2. DATA1 will
contain the command code (see § 9.2.4.7), while, if
present, DATA3 to DATA4 will contain the command
parameters, as shown below.
• Type #2: 2, 4 or 8 Data bytes writing frame with an
identifier dynamically assigned to an application
command, regardless of the physical address of
the circuit.
• Type #3: 2 Data bytes writing frame with an identifier
dynamically assigned to a particular slave node
together with an application command. This
type of frame requires that there are as many
dynamically assigned identifiers as there are
AMIS-30621 circuits using this command
connected to the LIN bus.
• Type #4: 8 Data bytes writing frame with 0x3C identifier.
The structure is similar to Type #1 but uses the reserved ID
0x3C. Type #1 has the advantage to be shorter than Type #4.
AMI Semiconductor - Rev. 1.4
www.amis.com
39
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
Notes
(1) A reading frame with indirect ID must always be
consecutive to a preparing frame. It will otherwise not be
taken into account.
(2) A reading frame will always return the physical address of
the answering slave node in order to ensure robustness in
the communication.
9.2.4.6.2 Reading frames
A reading frame uses an in-frame response mechanism.
That is: the master initiates the frame (synchronization field +
identifier field), and one slave sends back the data field
together with the check field. Hence, two types of identifiers
can be used for a reading frame:
- Direct ID, which points at a particular slave node, indicating
at the same time which kind of information is awaited from
this slave node, thus triggering a specific command. This ID
provides the fastest access to a read command but is
forbidden for any other action.
The reading frames used with the AMIS-30621 are the
followings:
• Type #5: 2, 4 or 8 Data bytes reading frame with a direct
IDs dynamically assigned to a particular slave node
together with an application command. A preparing frame
is not needed.
• Type #6: 8 Data bytes reading frame with 0x3D identifier.
This is intrinsically an indirect type, needing therefore a
preparation frame. It has the advantage to use a reserved
identifier.
- Indirect ID, which only specifies a reading command, the
physical address of the slave node that must answer having
been passed in a previous writing frame, called a preparing
frame. Indirect ID gives more flexibility than a direct one,
but provides a slower access to a read command.
also contain a command indicating which kind of
information is awaited from the slave.
9.2.4.6.3 Preparing Frames
A preparing frame is a writing frame that warns a particular
slave node that it will have to answer in the next frame
(hence a reading frame). A preparing frame is needed when
a reading frame does not use a dynamically assigned direct
ID. Preparing and reading frames must be consecutive. A
preparing frame will contain the physical address of the LIN
slave node that must answer in the reading frame, and will
The preparing frames used with the AMIS-30621 can be of
Type #7 or Type #8 described below.
• Type #7: 2 Data bytes writing frame with dynamically assigned identifier.
bit 7
*
1
1
bit 6
*
bit 5
0
bit 4
ID4
bit 3
ID3
CMD[6:0]
AD[6:0]
bit 2
ID2
bit 1
ID1
bit 0
ID0
bit 2
1
bit 1
0
bit 0
0
Identifier
Data1
Data2
*) according to parity computation
• Type #8: 8 Data bytes writing frame with 0x3C identifier.
bit 7
0
bit 6
0
1
1
AppCMD :
bit 5
1
bit 4
bit 3
1
1
AppCMD = 0x80
CMD[6:0]
AD[6:0]
0xFF
0x80 indicates that Data2 contains an
application command byte
AMI Semiconductor - Rev. 1.4
www.amis.com
Identifier
Data1
Data2
Data3
Data4-8
CMD[6:0] : Command byte
AD[6:0] :
Slave node’s physical address
40
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.4.6.4 Dynamic Assignment of Identifiers
RAM to make them correspond to commands pointers
located in the slave’s ROM. This is the strategy adopted for
the AMIS-30621.
Apart from identifiers 0x3C to 0x3F, the LIN rev 1.2
specification does not indicate how identifiers can be
allocated. Therefore, slave nodes need to be flexible
enough to adapt themselves to a given LIN network.
Dynamic assignment must be done by a writing frame with
identifier 0x3C.
One solution proposed by BMW is to implement a dynamic
assignment of the identifiers by the LIN Master. This is done
at start-up of the system by writing identifiers in the slave’s
bit 7
0
bit 6
0
1
Broad
AD6
bit 5
1
AD5
ID1[3:0]
ID2[1:0]
bit 4
bit 3
1
1
AppCmd = 0x80
CMD[6:0] = 0x11
AD4
AD3
bit 2
1
AD2
AD1
ROMp1[3:0]
ROMp2[3:0]
ROMp3[3:0]
ROMp4[1:0]
ID4[5:0]
bit 1
0
bit 0
0
AD0
ID1[5:4]
ID2[5:2]
ID3[5:0]
ROMp4[3:2]
Identifier
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Data8
With:
CMD[6:0] : 0x11, corresponding to dynamic assignment
of 4 LIN identifiers.
Broad
If Broad = ‘0’ all the circuits connected to the
LIN bus will share the same dynamically
assigned identifiers.
IDn[5:0] : Dynamically assigned LIN identifier to the
application command which ROM pointer is
ROMpn[3:0] (see § 9.2.4.7).
One frame allows only to assign 4 identifiers. Therefore,
additional frames could be needed in order to assign more
identifiers (maximum 3 for the AMIS-30621).
9.2.4.7 Commands Table
Command Mnemonic
GetActualPos
GetFullStatus
GetOTPparam
GetStatus
GotoSecurePosition
HardStop
ResetPosition
ResetToDefault
RunInit
SetMotorParam
SetOTPparam
SetPosition (16-bit)
SetPositionShort (1 motor)
SetPositionShort (2 motors)
SetPositionShort (4 motors)
Sleep
SoftStop
Dynamic ID assignment
General purpose 2 Data bytes
General purpose 4 Data bytes
Preparation frame
Command Byte
(CMD)
000000
0x00
000001
0x01
000010
0x02
000011
0x03
000100
0x04
000101
0x05
000110
0x06
000111
0x07
001000
0x08
001001
0x09
010000
0x10
001011
0x0B
001100
0x0C
001101
0x0D
001110
0x0E
n.a. n.a.
001111
0x0F
010001
0x11
Dynamic ID
(example)
100xxx
n.a.
n.a.
000xxx
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
010xxx
001001
101001
111001
n.a.
n.a.
011000
101000
011010
xxx allows to address physically a slave node. Therefore,
these dynamic IDs cannot be used for more than 8 stepper
motors.
AMI Semiconductor - Rev. 1.4
www.amis.com
ROM Pointer
0010
0011
0100
0101
0110
0111
0000
0001
1000
Only 9 ROM pointers are needed for the AMIS-30621.
41
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
10.0 Features
10.1 Position Periodicity
As an example in the figure below is illustrated the moving
direction going from ActPos = +32700 to SetPos =
–32700 is counter clockwise.
Depending on the stepping mode the position can range
between –4096 to +4095 in half-step mode to –32768 to
+32767 in 1/16th microstepping mode (see 8.5.1) one can
project all these positions lying on a circle. When executing
the command SetPosition the position controller will set
the movement direction in such a way that the traveled
distance is minimum.
If a clockwise motion is required in this example, several
consecutive SetPosition commands can be used.
11.0 Resistance to Electrical and Electromagnetic Disturbances
11.1 Electrostatic Discharges
See. § 1.1 Absolute Maximum Ratings
11.2 Schäffner Pulses
Shäffner Pulses are applied to the power supply wires of the
equipment implementing the AMIS-30621 (see application
schematic), according to Renault 36-00-808/--E document.
Pulse
#1
#2a
#3a
#3b
#5b (load dump)
Amplitude
-100V
+100V
-150V (from +13.5V)
+100V (from +13.5V)
+21.5V (from +13.5V)
Rise Time
≤ 1µs
≤ 1µs
5ns
5ns
≤ 10ms
Pulse Duration
2ms
50µs
100ns (burst)
100ns (burst)
400ms
11.3 EMC
Bulk current injection (BCI), according to Renault 36-00808/--E document (p61).
Current
60mA
100mA
200mA
Opertaing Class
A
B
C
AMI Semiconductor - Rev. 1.4
www.amis.com
42
Rs
10Ω
2Ω
50Ω
50Ω
≤ 1Ω
Operating Class
C
B
A
A
C
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
11.4 EMI
EMI requirement is given here as a target, since it is also
PCB dependent. Any EMI issue will have to be solved on
common basis with the customer.
Radiated disturbance electromagnetic quietness test,
according to Renault 36-00-808/--E document:
• Permanent broadband limit (Renault 36-00-808/--E
document diagram p98)
• Narrow band limit (Renault 36-00-808/--E document
diagram p99)
11.5. Power Supply Micro-Interruptions
According to Renault 36-00-808/--E (p47 and followings).
Test
10µs micro-interruptions (1)
100µs micro-interruptions
5ms micro-interruptions
50ms micro-interruptions
300ms micro-interruptions
Operating Class
A
B
B
C
C
Note 1: To achieve Class A a 100nF capacitor between Vbat
and ground is needed in case HW is connected to Vbat. (see
§ 7 typical application)
12.0 Package Outlines
Note: See variations AC for dimensions D and N.
13.0 Conditioning
To be documented.
AMI Semiconductor - Rev. 1.4
www.amis.com
© Copyright 2003 AMI Semiconductor – All rights reserved. Information furnished is believed to be accurate and reliable. However, AMI Semiconductor assumes no responsibility for errors or omissions in the information and for the
consequences of use of such information. AMI Semiconductor reserves the right to change the information contained herein at any time without notice.
This information is provided “AS IS” without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement of intellectual
property.
All title and intellectual property rights including, without limitation, copyrights, trademarks, in and to this information and products are owned by AMI Semiconductor, and are protected by applicable laws. No license under any patent
or other intellectual property of AMI Semiconductor is granted, by implication, estoppel or otherwise.