AMI AMIS

AMIS-30622 I2C 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-30622 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.
The AMIS-30622 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.
Features
Motordriver
Serial 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
• 2-wire serial interface
• 5V microcontroller compatible
• Up to 32 node addresses
• 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
Controller with RAM and OTP memory
• Position controller
• Configurable speeds, acceleration and deceleration
• Flexible hold-current
• Movement/position sensor-input
• Optional stall detection
Power Saving
• Power-down supply current <50µA
• 5V regulator with wake-up on LIN activity
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-30622 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-30622
Package SOIC-20
Peak Current 800mA
Temp. Range -40°C…125°C
AMI Semiconductor - Rev. 2.3
www.amis.com
1
AMIS-30622 I2C 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
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 Motor Shutdown Mode
9.2.2.8
9.2.2.9
9.2.2.10
9.2.2.11
9.2.2.12
3
3
3
3
4
4
4
5
6
7
8
8
8
8
9
9
9
10
10
10
10
10
10
10
11
11
11
13
14
10.
11.
15
15
15
15
15
15
16
17
12.
13.
Document History
Version
2.0
2.1
2.2
2.3
Date of Version
March 4th, 2003
April 2nd, 2003
April 3rd, 2003
May 28th, 2003
AMI Semiconductor - Rev. 2.3
www.amis.com
2
RAM Registers
Flags Table
Application Commands
Priority Encoder
Application Parameters Stored in
OTP Memory
9.2.2.13 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
Inter-IC Control (I2C) Bus
9.2.4.1 Physical Layer
9.2.4.2 Communication on 2-wire Serial Bus
Interface
9.2.4.3 Physical Address of the Circuit
9.2.4.4 Write Data to AMIS-30622
9.2.4.5 Read Data from AMIS-30622
9.2.4.6 Timing and Electrical Characteristics
of the Serial Interface
9.2.4.7 Description of Application Commands
9.2.4.8 Command Overview
9.2.4.9 Commands Description
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
18
19
20
21
23
24
25
25
25
25
26
26
26
27
27
27
28
28
28
28
29
29
29
34
34
34
34
34
34
35
35
35
35
AMIS-30622 I2C Microstepping Motordriver
1.0 Quick Reference Data
1.1. Absolute Maximum Ratings
Parameter
Vbb
Supply voltage
Tamb
Ambient temperature under bias (2)
Tst
Storage temperature
Vesd
Electrostatic discharge voltage on all pins (3) -2
Min
-0.3
-50
-55
+2
Max
+40(1)
+150
+160
kV
Unit
V
°C
°C
Min
+6.5
-40
-40
Max
+29
+125
+85
Unit
V
°C
°C
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 (1)
Top
Operating temperature range
Vbb ≤ 18V
Vbb ≤ 29V
Notes
(1) Motordriver is disabled when Vbb < 8.9V.
2.0 Block Diagram
AMI Semiconductor - Rev. 2.3
www.amis.com
3
Data Sheet
AMIS-30622 I2C Microstepping Motordriver
3.0 Pin-out
SOIC-20
Pin Name
SDA
SCK
VDD
GND
TST1
TST2
HW
CPN
CPP
VCP
VBB
MOTYN
MOTYP
MOTXN
MOTXP
SWI
Pin Description
Serial I/O
Clock for SDA
Internal supply (needs external decoupling capacitor)
Ground, heat sink
Test pin (to be tied to ground in normal operation)
Test pin (to be left open in normal operation)
Hardwired address bit
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
3
4,7,14,17
5
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. 2.3
www.amis.com
4
Data Sheet
AMIS-30622 I2C 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
MOTXP
MOTXN
MOTYP
MOTYN
RDSon
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
Thermal Warning & Shutdown
Ttw
Thermal warning
Ttsd
Thermal shutdown (1)
Tlow
Low temperature warning
Supply & Voltage Regulator
Vbb
Nominal operating supply range (2)
VbbOTP
Supply voltage for OTP zapping
UV1
Stop voltage high threshold
VBB
UV2
Stop voltage low threshold
Ibat
Total 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
HW
operation of SWI and HW
Vmax_sw
Maximum voltage
Ilim_sw
Current limitation
Serial Interface Pins
VIL
Input level low (6)
VIH
Input level high (7)
Noise margin at the LOW level
VnL
SDA
for each connected device
SCK
(including hysteresis)
Noise margin at the HIGH level
VnH
for each connected device
(including hysteresis)
Charge Pump
Vcp
Cpump
CPP
CPN
Typ
To be confirmed by
characterization
HZ mode
570
mA
145
Ttw+10
Ttw-155
6.5
9.0
8.0
8.5
10
4.75
5
%
%
1
Ω
mA
152
°C
°C
°C
18
10.0
9.8
9.0
V
V
V
V
mA
5.35
V
4.4
40
mA
V
mA
2
kΩ
kΩ
29
V
40V
V
mA
0.3 Vdd
Vdd + 0.5
V
V
10
6
T < 1s
Short to Gnd or Vbat
30
-0.5
0.7 Vdd
Vbb > 15V
Vbb > 8V
10
7
2
Pin shorted to ground
Switch to Gnd or Vbat,
Unit
mA
1
138
Unloaded outputs
8V < Vbb < 18V
Cload = 1µF (+100nF cer.)
Vbb < UV2
Max
800
-10
-7
0.1VDD
V
0.2VDD
V
Vbb+15
External buffer capacitor
470
V
V
nF
External pump capacitor
220
470
nF
Notes
(1) No more than 100 cumulated hours in life time above
Ttsd.
(2) Communication over serial bus is operating. Motordriver
is disabled when Vbb < UV2.
(3) Pin VDD must not be used for any external supply.
(4) The RAM content will not be altered above this voltage.
AMI Semiconductor - Rev. 2.3
www.amis.com
Min
Vbb+10 Vbb+12.5
Vbb+5.8V
220
Output voltage
VCP
Cbuffer
Test Conditions
(5) External resistance value seen from pin SWI or HW,
including 1kΩ series resistor.
(6) If input voltage ≤ 0.3V, then a resistor of 22 to 100Ω
must be added in series.
(7) In case 100kHz ≤ fSCL ≤ 360kHz VIH min = 0.7VDD.
5
AMIS-30622 I2C 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
I2C Transceiver
Parameter
fSCL
SCL clock frequency
tHD;STA
Hold time (repeated) START
condition. After this period,
the first clock pulse is generated.
Frequency of internal oscillator
LOW period of the SCK clock
tHIGH
HIGH period of the SCK clock
tSU;STA
Set-up time for a repeated
START condition
tSU;DAT
Data set-up time
SDA
SCK
tf
tSU;STO
Rise time of both SDA and
SCK signals (1)
Fall time of both SDA and
SCK signals (1)
Set-up time for STOP condition
tBUF
Bus free time between a STOP
and START condition
Pulse width of spikes which must
tSP
be suppressed by the input filter
Cb
Capacitive load for each bus line
Ci
Capacitance for each I/O pin
Switch Input and Hardwire Address Input
Tsw
SWI
Scan pulse period (2)
Tsw_on
HW
Scan pulse duration
Motordriver
fpwm
PWM frequency (2)
Tbrise
MOTxx
Turn-on transient time
Tbfall
Turn-off transient time
Charge Pump
CPN
fCP
Charge pump frequency (2)
CPP
3.6
Typ
4.0
Max
Unit
10
ms
4.4
MHz
100
360
kHz
kHz
µs
fSCL ≤ 100kHz
fSCL ≤ 360kHz
fSCL ≤ 100kHz
fSCL ≤
360kHz
0
0
4.0
0.6
µs
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
fSCL ≤
4.7
1.3
4.0
0.6
4.7
0.6
250
100
µs
µs
µs
µs
µs
µs
ns
ns
ns
ns
ns
ns
µs
µs
µs
µs
100kHz
360kHz
100kHz
360kHz
100kHz
360kHz
100kHz
360kHz
100kHz
360kHz
100kHz
360kHz
100kHz
360kHz
100kHz
360kHz
20+0.1Cb
20+0.1Cb
4.0
0.6
4.7
1.3
1000
300
300
300
50
ns
400
10
1024
1/16
18
Between 10% and 90%
20
350
250
250
Notes
(1) Cb = total capacitance of one bus line in pF.
(2) Derived from the internal oscillator.
AMI Semiconductor - Rev. 2.3
www.amis.com
Min
Power-up time
tLOW
tr
Test Conditions
6
pF
pF
µs
Tsw
22
kHz
ns
ns
kHz
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
7.0 Typical Application
Notes
(1) Optionally an external switch to Vbat or GND can be
connected to the SWI pin.
(2) Resistors tolerance: ± 5%.
(3) Depending on the application the ESR value of the 1µF
and 100µF capacitors must be carefully chosen. The
working voltage of the 100µF capacitor depends on the
maximum Vbat value.
AMI Semiconductor - Rev. 2.3
www.amis.com
(4) 100nF capacitors must be close to pins VBB and VDD.
(5) 220nF capacitors must be as close as possible to pins
CPN, CPP, VCP, and VBB to reduce EMC radiation.
(6) If SDA and/or SCK input voltage ≤ 0.3V, then a resistor
of 22 to 100Ω must be added in series.
7
AMIS-30622 I2C 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.
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.
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
Stepping Mode
1/ th Micro-stepping
8
(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
1/ th Micro-stepping
4
Half-Stepping
(half-step/s)
197
273
334
395
425
456
486
546
607
668
729
790
912
1091
1457
1945
1/ th Micro-stepping
16
(micro-step/s)
1579
2182
2670
3159
3403
3647
3891
4364
4852
5341
5829
6317
7294
8728
11658
15564
8.3 Minimum Velocity
obtainable values in Full-step/s. The accuracy of Vmin is
derived from the internal oscillator.
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
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. 2.3
www.amis.com
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-30622 I2C Microstepping Motordriver
Data Sheet
8.4 Acceleration and Deceleration
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.
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
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
described in the table below. When using command
GotoSecurePosition, data is automatically aligned.
The position programmed in command SetPosition is
given as a number of (micro)steps. According to the chosen
stepping mode, the position words must be aligned as
Stepping
Mode
1/16th
1/8th
1/4th
Half-stepping
SecurePosition
Position Word: Pos [15 : 0]
S
S
S
S
S
B14
B13
B12
B11
B9
B13
B12
B11
B10
B8
B12 B11
B11 B10
B10 B9
B9
B8
B7
B6
B10
B9
B8
B7
B5
B9
B8
B7
B6
B4
B8
B7
B6
B5
B3
B7
B6
B5
B4
B2
B6
B5
B4
B3
B1
Shift
B5
B4
B3
B2
LSB
B4
B3
B2
B1
0
B3
B2
B1
LSB
0
B2
B1
LSB
0
0
B1
LSB
0
0
0
LSB
0
0
0
0
No shift
1-bit left ↔ x2
2-bit left ↔ x4
3-bit left ↔ x8
No shift
8.5.1 Position Ranges
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
used (see § 9.2.2.10 Application Commands) and to the
Command
SetPosition
Stepping Mode
Half-stepping
1/4th micro-stepping
1/8th micro-stepping
1/16th micro-stepping
Position Range
-4096 to +4095
-8192 to +8191
-16384 to +16383
-32768 to +32767
Number of Bits
13
14
15
16
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. 2.3
www.amis.com
Full Range
8192 half-steps
16384 micro-steps
32768 micro-steps
65536 micro-steps
9
AMIS-30622 I2C 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
9.1.2 Control Logic (Position Controller and Main Control)
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.
• 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.
The control logic block stores the information provided by
the I2C interface (in the RAM or 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.
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.
It also receives feedback from the motordriver part in order
to manage possible problems and decide about internal
actions and reporting to the I2C interface.
9.1.3 Miscellaneous
The AMIS-30622 also implements the followings:
• An internal oscillator, needed 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.
AMI Semiconductor - Rev. 2.3
www.amis.com
10
AMIS-30622 I2C 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 + RAM
• Motordriver
• I2C controller
Parameter
Pmax - Pmin
Zero Speed Hold Current
Maximum Current
Acceleration and Deceleration
Vmin
Vmax
AMI Semiconductor - Rev. 2.3
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.12 (Ihold)
See § 9.2.2.12 (Irun)
See § 8.4
See § 8.3
See § 8.2
11
AMIS-30622 I2C 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. 2.3
www.amis.com
12
Data Sheet
AMIS-30622 I2C 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 § 0). 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.7) 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).
(3) Commands such as GetActualPos or GetStatus will
be executed while the position initialization is running.
(4) An initialization sequence starts by setting TagPos register
to SecPos value, provided secure position is enabled
otherwise TagPos is reset to zero.
(5) 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.
(6) The Pos1, Pos2, Vmax and Vmin values programmed in
a RunInit command apply only for this initialization
sequence. All further positioning will use the parameters
stored in RAM (programmed for instance by a former
SetMotorParam command).
(7) Commands ResetPosition, RunInit and SoftStop
will be ignored while an initialization sequence is
ongoing, and will not be executed afterwards.
(8) A SetMotorParam command should not be sent during
an initialization sequence.
(9) 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 two 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
(1) The priority encoder (see 9.2.2.11 Priority Encoder) is
describing the management of states and commands. The
notes below are to be considered illustrative.
(2) The last SetPosition command issued during an
initialization sequence will be kept in memory and
executed afterwards. This applies also for the commands
SetMotorParam and GotoSecurePosition.
AMI Semiconductor - Rev. 2.3
www.amis.com
13
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
9.2.1.3 External Switch and HW Pin
Pin SWI and hardwired address pin HW (see § 9.2.4.3
Physical Address) 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 1kΩ external series resistor is
used.
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 or a GetFullStatus1 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 microstep, depending of the programmed stepping mode). The
block diagram below shows how this function is
implemented for HW.
This can be represented by the following time diagram (the
timings are given in § 6).
With the following truth table:
State
Float
Float
Float
Float
HWLo
HWLo
HWLo
HWLo
HWHi
HWHi
HWHi
HWHi
Sink
1
1
0
0
1
1
0
0
1
1
0
0
Source
0
0
1
1
0
0
1
1
0
0
1
1
New State
Float
HWHi
Float
HWLo
HWLo
HWHi
Float
HWLo
Float
HWHi
HWHi
HWLo
HWHi
HWLo
address = "1"
address = "0"
note that e.g. if HW is connected
to GND, LS-part will report "float"
while HS-part will report "low
resistance detected".
Note
If HW is detected to be floating, motion to the secure position is performed.
AMI Semiconductor - Rev. 2.3
www.amis.com
14
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
9.2.2 Main Control and Register, OTP Memory + RAM
9.2.2.1 Power-up Phase
The circuit is then ready to execute a new positioning
command, provided thermal and electrical conditions allow
for it.
Power-up phase of the AMIS-30622 will not exceed 10ms.
After this phase, the AMIS-30622 is in Shutdown mode,
ready to receive I 2 C 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.13 OTP Memory
Structure)
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.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. See also §
9.2.2.7 Motor Shutdown Mode and Digital Supply Reset in
§ 9.2.2.9 Flags Table.
9.2.2.5 Temperature Management
The AMIS-30622 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 GetFullStatus1
command.
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 § 9.2.2.9 Flags Table).
AMI Semiconductor - Rev. 2.3
www.amis.com
15
AMIS-30622 I2C 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 GetFullStatus1
command.
The AMIS-30622 monitors the battery voltage by mean of
one threshold and one shutdown level, as illustrated in the
state diagram below. The only condition to reset flags
AMI Semiconductor - Rev. 2.3
www.amis.com
16
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
9.2.2.7 Motor Shutdown Mode
A motor shutdown occurs when:
1. The chip temperature rises above the thermal shutdown
threshold Ttsd (see § 5 DC-Parameters).
2. The battery voltage goes below UV2 (see § 5 DC
Parameters).
3. Flag <ElDef> = ‘1’, meaning an electrical problem is
detected on one or both coils.
4. Flag <CPFail> = ‘1’, meaning there is a charge pump
failure.
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.
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)
Warning
The application should limit the number of consecutive
GetFullStatus1 commands to try to get the AMIS-30622
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 GetFullStatus1 attempts to disable
the protection of the H-bridges.
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-30622.
The I 2C interface remains active, being able to receive
orders or send status.
Note
The priority encoder (see § 9.2.2.11 Priority Encoder) is
describing the management of states and commands. The
table above is to be considered illustrative.
The conditions to get out of a motor shutdown mode are:
• Reception of a GetFullStatus1 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.
AMI Semiconductor - Rev. 2.3
www.amis.com
17
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
9.2.2.8 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
GetFullStatus2
GotoSecurePos
ResetPosition
GetFullStatus2
GotoSecurePos
ResetPosition
SetPosition
GetFullStatus1
ResetToDefault1
SetMotorParam
GetFullStatus1
ResetToDefault1
SetMotorParam
GetFullStatus
ResetToDefault1
SetMotorParam
GetFullStatus1
ResetToDefault1
SetMotorParam
GetFullStatus1
ResetToDefault1
SetMotorParam
GetFullStatus1
ResetToDefault1
SetMotorParam
GetFullStatus1
ResetToDefault1
SetMotorParam
GetFullStatus2
ResetToDefault1
SetMotorParam
GetFullStatus1
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. 2.3
www.amis.com
18
Comment
Reset State
- 16-bit signed
(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.12)
Standstill current (see § 9.2.2.12)
See § 8.3 and § 9.2.2.12
(look-up table)
See § 8.2 and § 9.2.2.12
(look-up table)
Direction of movement for
positive velocity
See § 8.4 and § 9.2.2.12
(look-up table)
Target position when I2C
connection fails; 11 MSBs
of 16-bit position (LSBs fixed to ‘0’)
See § 8.1 and § 9.2.2.12
From OTP
memory
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
9.2.2.9 Flags Table
Register
Mnemonic
Length (bit)
Related Commands
Charge Pump
Failure
CPFail
1
GetFullStatus
Electrical Defect
ElDef
1
GetActualPos
GetStatus
GetFullStatus1
External Switch
Status
ESW
1
GetActualPos
GetStatus
GetFullStatus1
Electrical Flag
HS
1
Internal use
Motion Status
Motion
3
GetFullStatus1
OVC1
1
GetFullStatus1
OVC2
1
GetFullStatus1
SecEn
1
Internal use
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
Over Current in
Coil X
Over Current in
Coil Y
Secure Position
Enabled
Digital Supply
Reset
AMI Semiconductor- Rev. 2.3
www.amis.com
GetActualPos
GetStatus
GetFullStatus1
Internal use
GetActualPos
GetStatus
GetFullStatus1
GetActualPos
GetStatus
GetFullStatus1
GetActualPos
GetStatus
GetFullStatus1
GetActualPos
GetStatus
GetFullStatus1
GetActualPos
GetStatus
GetFullStatus1
19
Comment
‘0’ = charge pump OK
‘1’ = charge pump failure
reset only after GetFullStatus1
<OVC1> or <OVC2> or <open
circuit 1> or <open circuit 2>
or <CPFail>
resets only after GetFullStatus1
‘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 GetFullStatus1
‘1’ = over current
reset only after GetFullStatus1
‘0’ if SecPos = “100 0000 0000”
‘1’ otherwise
Reset State
‘0’
‘1’
‘0’
‘0’
“000”
‘1’
‘1’
n.a.
‘1’ = step loss due to under
voltage, over current or open circuit
‘1’
See § 9.2.2.11
“00” = normal temperature range
“01” = low temperature warning
“10” = high temperature warning
“11” = motor shutdown
‘1’ = shutdown (> 155°C typ.)
reset only after GetFullStatus1
and if <Tinfo> = “00”
‘1’ = over temp. (> 145°C)
reset only after GetFullStatus1
and if <Tinfo> = “00”
‘0’ = Vbb > UV2
‘1’ = Vbb ≤ UV2
reset only after GetFullStatus1
Set at ‘1’ after power-up of the circuit.
If this was due to a supply micro-cut,
may have been lost; it warns that the
RAM contents can be reset to ‘0’ with a
GetFullStatus1 command.
‘0’
“00”
‘0’
‘0’
‘0’
‘1’
AMIS-30622 I2C Microstepping Motordriver
9.2.2.10 Application Commands
The I2C Master will have to use commands to manage the
different application tasks the AMIS-30622 can feature. The
commands summary is given in the table below.
Command Mnemonic
GetFullStatus1
GetFullStatus2
GetOTPParam
GotoSecurePosition
HardStop
ResetPosition
ResetToDefault
RunInit
SetMotorParam
SetOTP
SetPosition
SoftStop
AMI Semiconductor - Rev. 2.3
www.amis.com
Function
Returns complete status of the chip
Returns actual, target and secure position
Returns OTP parameters
Drives motor to secure position
Immediate full stop
Sets actual position to zero
Overwrites the chip RAM with OTP contents
Reference Search
Sets motor parameter
Zaps the OTP memory
Programmes a target
Motor stopping with deceleration phase
20
Data Sheet
AMIS-30622 I2C Microstepping Motordriver
9.2.2.11 Priority Encoder
The table below describes the state management
performed by the Main control block.
↔
AMI Semiconductor - Rev. 2.3
www.amis.com
21
Data Sheet
AMIS-30622 I2C Microstepping Motordriver
Notes
(1) After Power-on-reset, the Shutdown state is entered. The
Shutdown state can only be left after GetFullStatus1
command (so that the Master could read the <VddReset>
flag).
(2) 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
GetFullStatus1 command will return the default
parameters for Vmax and Vmin stored in RAM.
(3) Shutdown state can be left only when <TSD> and <HS>
flags are reset.
(4) Flags can be reset only after the master could read them
via a GetFullStatus1 command, and provided the
physical conditions allow for it (normal temperature,
correct battery voltage and no electrical or charge pump
defect).
AMI Semiconductor - Rev. 2.3
www.amis.com
Data Sheet
(5) 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 command.
(6) <SecEn> = ‘1’ when register SecPos is loaded with a
value different from the most negative value (i.e. different
from 0x400 = “100 0000 0000”).
(7) <Stop> flag allows distinguishing 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.
(8) While in state Stopped, if ActPos ≠ TagPos there is a
transition to state GotoPos. This transition has the lowest
priority, meaning that <Stop>, <TSD>, etc. are first
evaluated for possible transitions.
(9) If <StepLoss> is active, then SetPosition and
GotoSecurePosition commands are ignored (they will
not modify TagPos register whatever the state), and
motion to secure position is forbidden. Other command
like RunInit or ResetPosition will be executed if
allowed by current state. <StepLoss> can only be
cleared by a GetFullStatus1 command.
22
AMIS-30622 I2C Microstepping Motordriver
Irun
9.2.2.12 Application Parameters Stored in OTP Memory
Except for the physical address AD[3:0] these parameters,
although programmed in a non-volatile memory can still be
overridden in RAM by a I2C writing operation.
AD[4:0]
Physical address of the stepper motor. Up
to 32 Stepper-motors can theoretically be
connected to the same I2C bus.
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 stepper
motor. The table to the right provides the
16 possible values for IHOLD.
StepMode
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
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
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Hold 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
StepMode
0
0
1
1
AMI Semiconductor - Rev. 2.3
www.amis.com
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Ihold
Indicator of stepping mode to be used.
23
Data Sheet
0
1
0
1
Step mode
Half stepping
1/4 micro step
1/8 micro step
1/16 micro step
AMIS-30622 I2C Microstepping Motordriver
Shaft
Code
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.
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 GotoSecurePosition
command, or if the HW-pin is disconnected
from Vbat or Gnd.
If SecPos[10:0] = “100 0000 0000”, this
means that Secure Position is disabled, e.g.
the steppermotor 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]
Data Sheet
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
Vmin[3:0]
Acc[3:0]
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
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
acceleration of the stepper motor are
programmed by coding the respective
Vmax, Vmin and Acc parameters index as
defined in § 8 Positioning Data.
Maximum velocity, minimum velocity and
9.2.2.13 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
OSC2
TSD2
OSC1
TSD1
OSC0
TSD0
Irun3
Vmax3
SecPos10
SecPos7
Irun2
Vmax2
SecPos9
SecPos6
Irun1
Vmax1
SecPos8
SecPos5
Irun0
Vmax0
Shaft
SecPos4
IREF3
BG3
PA3
Ihold3
Vmin3
Acc3
SecPos3
StepMode1
0
IREF1
BG1
PA1
Ihold1
Vmin1
Acc1
SecPos1
LOCKBT
IREF0
BG0
PA0
Ihold0
Vmin0
Acc0
SecPos0
LOCKBG
Once OTP programming is completed, bit LOCKBG can be
zapped, to disable future zapping, otherwise using a
SetOTPparam command could still zap any OTP bit at ‘0’.
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.
Protected Byte
0x00 to 0x01
0x00 to 0x07
The command used to load the application parameters via
the I 2 C 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. 2.3
www.amis.com
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 (zapped before delivery)
LOCKBG
2
SetOTPparam command allows verifying the correct byte
zapping.
Note
Zapped bits will really be “active” after a GetOTPparam or a
ResetToDefault command or after a power-up.
24
AMIS-30622 I2C 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. 2.3
www.amis.com
25
AMIS-30622 I2C 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
GetFullStatus1).
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
In case this failure occurs while a motion is ongoing, the flag
<StepLoss> is also raised.
Open circuits are detected by 100% PWM duty cycle value
during a long time
Pins
Yi or Xi
Yi or Xi
Yi or Xi
Y1 and Y2
X1 and X2
Xi and Yi
AMI Semiconductor - Rev. 2.3
www.amis.com
Fault Mode
Short circuit to GND
Short circuit to Vbat
Open
Short circuited
Short circuited
Short circuited
26
AMIS-30622 I2C Microstepping Motordriver
9.2.4 Inter-IC Control (I2C) Bus
The I2C interface enabled in the AMIS-30622 uses pins 1 and
2 as Data I/O and Serial Clock respectively.
Data Sheet
9.2.4.1 Physical Layer
Both SDA and SCK lines are connected to positive supply
voltage via a current source or pull-up resistor. When there
is no traffic on the bus both lines are high. Analog glitch
filters are implemented to suppress spikes with a length up
to 50 ns.
9.2.4.2 Communication on 2-wire Serial Bus Interface
defines a Stop condition. (see figure “Start / Stop
conditions” below). The master always generates the SCK
clock. On every rising transition of SCK the data on SDA is
valid. Data on SDA line is only allowed to change as long as
SCK is low.
Each communication starts with a Start condition and ends
with a Stop condition. Both conditions are unique and
cannot be confused with data. A high to low transition on
the SDA line while SCK is high defines a Start condition. A
low to high transition on the SDA line while SCK is high
Start / Stop Conditions
Bit Transfer on 2-wire Serial Bus Interface
Every byte sent on SDA must be 8-bit, with the most
significant bit (MSB) transferred first. The number of bytes
that can be transmitted to the AMIS-30622 is restricted to 8
AMI Semiconductor - Rev. 2.3
www.amis.com
bytes. Each byte is followed by an acknowledge bit, which is
issued by the receiving node (figure below).
27
AMIS-30622 I2C Microstepping Motordriver
9.2.4.3 Physical Address of the Circuit
The circuit is provided with a physical address in order to
discriminate this circuit from other ones on the I2C bus. This
address is coded on 7 bits (2 bits being internally hardwired
to ‘1’), yielding the theoretical possibility of 32 different
circuits on the same bus. It is a combination of four OTP
memory bits (see § 9.2.2.13 OTP Memory Structure) and of
the externally hardwired address bits (pin HW). HW must
either be connected to Ground or to Vbat. When HW is not
Data Sheet
connected and left floating correct functionality of the
positioner is not guaranteed. The motor will be driven to
the programmed Secure Position. (see § 9.2.2.12
Application Parameters SecPos [10:0])
The AMIS-30622 supports a “general call” address.
Therefore the circuit is addressable with either the physical
slave address or with address “000 0000”.
the SDA line to ‘0’. The AMIS-30622 reads the incoming
data at SDA on every rising edge of the SCK signal. To
finish the transmission the master has to transmit a Stop
condition. Some commands for the AMIS-30622 are
supporting 8 bytes of data, other commands are
transmitting 2 bytes of data.
9.2.4.4 Write Data to AMIS-30622
A complete transmission consists of the followings: a Start
condition, the slave address (7-bit), a read/write bit (‘0’ =
write, ‘1’ = read), and an acknowledge bit. Any further
databytes are followed by an acknowledge bit. The
acknowledge bit is used to signal a correct reception of the
data to the transmitter. In this case the AMIS-30622 pulls
↔
↔
9.2.4.5 Read Data from AMIS-30622
slave address and the read bit. Then the master can read
the data bits on the SDA line on every rising edge of signal
SCK. After each byte of data the master has to
acknowledge correct data reception by pulling SDA to ‘0’.
The last byte is not to acknowledge by the master and
therefore the slave knows the end of transmission.
When reading data from a slave two transmissions are
needed. The first transmission consists of two bytes of data.
The first byte contains the slave address and the write bit.
The second byte contains the address of an internal register
in the AMIS-30622. The internal register address is stored in
the circuit RAM. The second transmission consists of the
↔
↔
9.2.4.6 Timing and Electrical Characteristics of the Serial Interface
See § 5 and § 6 for DC and AC parameter values.
AMI Semiconductor - Rev. 2.3
www.amis.com
28
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
9.2.4.7 Description of Application Commands
Writing commands are used to:
• Program the OTP Memory
• Configure the positioner with motion parameters
(max/min speed, acceleration, stepping mode, etc.)
• Provide target positions to the stepper motor
Communications between the AMIS-30622 and a 2-wire
Serial Bus Interface Master takes place via a large set of
commands.
Reading commands are used to:
• Get actual status information, e.g. error flags
• Get actual position of the stepper motor
• Verify the right programming and configuration of the
AMIS-30622
9.2.4.8 Command Overview
Command Mnemonic
GetFullStatus1
GetFullStatus2
GetOTPParam
GotoSecurePosition
HardStop
ResetPosition
ResetToDefault
RunInit
SetMotorParam
SetOTP
SetPosition
SoftStop
Function
Command Byte
Returns complete status of the chip
Returns actual, target and secure position
Returns OTP parameter
Drives motor to secure position
Immediate full stop
Sets actual position to zero
Overwrites the chip RAM with OTP contents
Reference search
Sets motor parameter
Zaps the OTP memory
Programmes a target and secure position
Motor stopping with deceleration phase
GetFullStatus1
This command is provided to the circuit by the Master to
get a complete status of the circuit and of the stepper
motor. The parameters sent via the 2-wire serial bus to the
Master are:
• coil peak and hold currents value (Irun and Ihold)
• maximum and minimum velocities for the stepper motor
(Vmax and Vmin)
• direction of movement clockwise / counter clockwise
(Shaft)
• stepping mode (StepMode)
• acceleration (deceleration) for the stepper motor (Acc)
• acceleration shape (AccShape)
Content
0
1
Slave Address
GetFullStatus1
Byte
Content
0
1
2
3
4
5
6
7
8
Slave Address
Address
Irun & Ihold
Vmax & Vmin
Status 1
Status 2
Status 3
N/A
N/A
AMI Semiconductor - Rev. 2.3
www.amis.com
bit 7
1
1
Hexadecimal
0x81
0xFC
0x82
0x84
0x85
0x86
0x87
0x88
0x89
0x90
0x8B
0x8F
• status information (see further)
• motion status <Motion [2:0]>
• over current flags for coil #1 <OVC1> and coil #2 <OVC2>
• digital supply reset <VddReset>
• charge pump status <CPFail>
• external switch status <ESW>
• step loss <StepLoss>
• electrical defect <ElDef>
• under voltage <UV2>
• temperature information <Tinfo>
• temperature warning <TW>
• temperature shutdown <TSD>
9.2.4.9 Commands Description
Byte
Binary
“1000 0001”
“1111 1100”
“1000 0010”
“1000 0100”
“1000 0101”
“1000 0110”
“1000 0111”
“1000 1000”
“1000 1001”
“1001 0000”
“1000 1011”
“1000 1111”
GetFullStatus1 Command
Structure
bit 6
bit 5
bit 4
1
OTP3
OTP2
0
0
0
bit 3
OTP1
0
GetFullStatus1 Command (Response)
Structure
bit 7
bit 6
bit 5
bit 4
bit 3
1
1
OTP3
OTP2
OTP1
1
1
1
1
OTP3
Irun [3:0]
Vmax [3:0]
AccShape
StepMode[1:0]
Shaft
VDDReset
StepLoss ElDef
UV2
TSD
Motion[2:0]
ESW
OVC1
1
1
1
1
1
1
1
1
1
1
29
bit 2
OTP0
0
bit 1
HW
0
bit 0
0
1
bit 2
bit 1
bit 0
OTP0
HW
1
OTP2
OTP1
OTP0
Ihold [3:0]
Vmin [3:0]
ACC[3:0]
TW
Tinfo[1:0]
OVC2
1
CPFail
1
1
1
1
1
1
AMIS-30622 I2C Microstepping Motordriver
GetFullStatus2
This command is provided to the circuit by the Master to
get the actual position of the stepper motor. The position is
provided by the circuit in 16-bit format, with the three LSBs
at ‘0’ when in half stepping mode (StepMode = “00”).
Furthermore programmed target position and secure
position are also provided.
Byte
Content
0
1
Slave Address
GetFullStatus2
Byte
Content
bit 7
1
1
Data Sheet
Notations:
• actual position of the stepper motor <ActPos [15:0]>
• target position of the stepper motor <TagPos [15:0]>
• secure position of the stepper motor <SecPos[10:0])>
GetFullStatus2 Command
Structure
bit 6
bit 5
bit 4
1
OTP3
OTP2
1
1
1
bit 3
OTP1
1
bit 2
OTP0
1
bit 1
HW
0
bit 0
0
0
Structure
bit 2
OTP0
OTP2
bit 1
HW
OTP1
bit 0
1
OTP0
GetFullStatus2 Command (Response)
0
1
2
3
4
5
6
7
8
Slave Address
Address
Actual Position 1
Actual Position 2
Target Position 1
Target Position 2
Secure Position
Secure Position
N/A
bit 7
1
1
bit 6
1
1
bit 5
OTP3
1
1
1
1
1
1
1
bit 4
bit 3
OTP2
OTP1
1
OTP3
ActPos[15:8]
ActPos[7:0]
TagPos[15:0]
TagPos[7:0]
SecPos[7:0]
1
1
1
1
1
SecPos[10:8]
1
1
GetOTPParam
This command is provided to the circuit by to read the
content of an OTP Memory. For more information refer to
see § 9.2.2.13 OTP Memory Structure.
Byte
Content
0
1
Slave Address
GetOTPParam
Byte
Content
0
1
2
3
4
5
6
7
Slave Address
OTP byte 0
OTP byte 1
OTP byte 2
OTP byte 3
OTP byte 4
OTP byte 5
OTP byte 6
OTP byte 7
AMI Semiconductor - Rev. 2.3
www.amis.com
bit 7
1
1
bit 7
1
bit 6
1
0
GetOTPParam Command
Structure
bit 5
bit 4
OTP3
OTP2
0
0
bit 3
OTP1
0
GetOTPParam Command (Response)
Structure
bit 6
bit 5
bit 4
bit 3
1
OTP3
OTP2
OTP1
OTP@0x00
OTP@0x01
OTP@0x02
OTP@0x03
OTP@0x04
OTP@0x05
OTP@0x06
OTP@0x07
30
bit 2
OTP0
0
bit 1
HW
1
bit 0
0
0
bit 2
OTP0
bit 1
HW
bit 0
1
AMIS-30622 I2C Microstepping Motordriver
Data Sheet
GotoSecurePosition
The Master provides this command to one or all the
Stepper-motors to move to the secure position
SecPos[10:0].
Byte
Content
0
1
bit 7
Slave Address
1
GotoSecurePosition 1
GotoSecurePosition Command
Structure
bit 6
bit 5
bit 4
1
OTP3
OTP2
0
0
0
HardStop
This command is internally triggered when an electrical
problem is detected in one or both coils, leading to switch
off the H-bridges. If this problem is detected while the
motor is moving, the <StepLoss> flag is raised allowing
Byte
Content
0
1
Slave Address
HardStop
bit 7
1
1
bit 6
1
0
Content
0
1
Slave Address
ResetPosition
bit 7
1
1
HardStop Command
Structure
bit 5
bit 4
OTP3
OTP2
0
0
Content
0
1
Slave Address
ResetToDefaults
AMI Semiconductor - Rev. 2.3
www.amis.com
bit 7
1
1
bit 1
HW
0
bit 0
0
0
bit 3
OTP1
0
bit 2
OTP0
1
bit 1
HW
0
bit 0
0
1
positioning for an initialisation of the stepper motor
position.
ResetPosition Command
Structure
bit 6
bit 5
bit 4
1
OTP3
OTP2
0
0
0
ResetToDefaults
The Master provides this command to the circuit in order to
reset the whole Slave node into the initial state.
ResetToDefaults will for instance overload the RAM
Byte
bit 2
OTP0
1
warning the Master that steps may have been lost at the
next GetStatus command. The Master for some safety
reasons can also issue a HardStop command.
ResetPosition
This command is provided to the circuit by the Master to
reset ActPos and TagPos registers, in order to allow a
Byte
bit 3
OTP1
0
bit 3
OTP1
0
bit 2
OTP0
1
bit 1
HW
1
bit 0
0
0
with the Reset state of the Registers parameters. This is
another way for the Master to initialise a slave node in case
of emergency, or simply to refresh the RAM content.
ResetToDefaults Command
Structure
bit 6
bit 5
bit 4
1
OTP3
OTP2
0
0
0
31
bit 3
OTP1
0
bit 2
OTP0
1
bit 1
HW
1
bit 0
0
1
AMIS-30622 I2C Microstepping Motordriver
RunInit
The Master provides this command to the circuit in order to
initialize positioning of the motor by seeking the zero (or
reference) position.
command is received. Furthermore the master has to check
that the actual position of the stepper motor does not
correspond to the target position of the first motion. This is
very important otherwise the circuit goes into a deadlock
state. Once the circuit is in deadlock state only a hardstop
command followed by a GetFullStatus1 command will
cause the circuit to leave this state.
Once the RunInit command is started it cannot be
interrupted by any other command, except on the
occurrence of a condition leading to a motor shutdown (See
§ 9.2.2.7 Motor Shutdown Mode), or when a HardStop
Byte
Content
0
1
2
3
4
5
6
7
8
Slave Address
RunInit command
N/A
N/A
Vmax Vmin
Position2 byte 1
Position2 byte 2
Position1 byte 1
Position1 byte 2
bit 7
1
1
1
1
RunInit Command
Structure
bit 6
bit 5
bit 4
bit 3
1
OTP3
OTP2
OTP1
0
0
0
1
1
1
1
1
1
1
1
1
Vmax[3:0]
TagPos1[15:8]
TagPos1[7:0]
TagPos2[15:8]
TagPos2[7:0]
SetMotorParam
This command is provided to the circuit by the Master to
set the values for the Stepper motor parameters (listed
below) in RAM.
• coil peak current value (Irun)
• coil hold current value (Ihold)
• maximum velocity for the stepper motor (Vmax)
Byte
Content
0
1
2
3
4
5
6
7
8
Slave Address
SetMotorParam
N/A
N/A
Irun & I hold
Vmax & Vmin
Status
SecurePos
StepMode
bit 7
1
1
1
1
1
Data Sheet
bit 2
bit 1
OTP0
HW
0
0
1
1
1
1
Vmin[3:0]
bit 0
0
0
1
1
• minimum velocity for the Stepper-motor (Vmin)
• acceleration shape (AccShape)
• stepping mode (StepMode)
• indicator of the stepper motor reference position (Shaft)
• acceleration (deceleration) for the stepper motor (Acc)
• secure position for the stepper motor (SecPos)
SetMotorParam Command
Structure
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
1
OTP3
OTP2
OTP1
OTP0
HW
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
Irun[3:0]
Ihold[3:0]
Vmax[3:0]
Vmin[3:0]
SecPos[10:8] Shaft
Acc[3:0]
SecPos[7:0]
1
1
AccShape
StepMode[1:0]
1
bit 0
0
1
1
1
1
SetOTP
The Master provides this command to the circuit in order to
zap the OTP memory.
Byte
Content
0
1
2
3
4
5
Slave Address
ZapOTP
N/A
N/A
OTP Address
Pbit
AMI Semiconductor - Rev. 2.3
www.amis.com
bit 7
1
1
1
1
1
bit 6
1
0
1
1
1
SetOTP Command
Structure
bit 5
bit 4
bit 3
OTP3
OTP2
OTP1
0
1
0
1
1
1
1
1
1
1
1
1
Pbit[7:0]
32
bit 2
OTP0
0
1
1
bit 1
HW
0
1
1
OTPA[2:0]
bit 0
0
0
1
1
AMIS-30622 I2C Microstepping Motordriver
SetPosition
This command is provided to the circuit by the Master to
the motors to a given position relative to the zero position,
defined in number of half or micro steps, according to
StepMode[1:0] value.
Byte
Content
0
1
2
3
4
5
Slave Address
SetPosition
N/A
N/A
Position byte1
Position byte2
bit 7
1
1
1
1
SetPosition will not be performed if one of the following
flags is set to one:
• temperature shutdown <TSD>
• under voltage <UV2>
• step loss <StepLoss>
• electrical defect <ElDef>
SetPosition Command
Structure
bit 6
bit 5
bit 4
bit 3
1
OTP3
OTP2
OTP1
0
0
0
1
1
1
1
1
1
1
1
1
TagPos[15:8]
TagPos[7:0]
SoftStop
If a SoftStop command occurs during a motion of the
stepper motor, it provokes an immediate deceleration to
Vmin followed by a stop, regardless of the position
reached. This command occurs in the following cases:
Byte
Content
0
1
Slave Address
SoftStop
AMI Semiconductor - Rev. 2.3
www.amis.com
bit 7
1
1
bit 6
1
0
Data Sheet
bit 2
OTP0
0
1
1
bit 1
HW
1
1
1
bit 0
0
1
1
1
• The chip temperature raises the thermal shutdown
threshold.
• The Master requests a SoftStop.
SoftStop Command
Structure
bit 5
bit 4
OTP3
OTP2
0
0
33
bit 3
OTP1
1
bit 2
OTP0
1
bit 1
HW
1
bit 0
0
1
AMIS-30622 I2C 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 Position
Ranges) 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-30622 (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. 2.3
www.amis.com
34
Rs
10Ω
2Ω
50Ω
50Ω
≤ 1Ω
Operating Class
C
B
A
A
C
AMIS-30622 I2C 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.
• Permanent broadband limit (Renault 36-00-808/--E
document diagram p98)
• Narrow band limit (Renault 36-00-808/--E document
diagram p99)
Radiated disturbance electromagnetic quietness test,
according to Renault 36-00-808/--E document:
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. 2.3
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.