dSPIN fully integrated microstepping motor driver with motion
Features
■ Operating voltage: 8 - 45 V
■ 7.0 A out peak current (3.0 A r.m.s.)
■ Low R
■ Programmable speed profile and positioning
■ Programmable power MOS slew rate
■ Up to 1/128 microstepping
■ Sensorless stall detection
■ SPI interface
■ Low quiescent and standby currents
■ Programmable non-dissipative overcurrent
protection on high and low-side
■ Two levels of overtemperature protection
Application
■ Bipolar stepper motors
Description
The L6470, realized in analog mixed signal
technology, is an advanced fully integrated
solution suitable for driving two-phase bipolar
stepper motors with microstepping. It integrates a
dual low R
Power MOSFETs
DS(on)
DMOS full bridge with all of the
DS(on)
L6470
engine and SPI
Datasheet − production data
HTSSOP28POWERSO36
power switches equipped with an accurate onchip current sensing circuitry suitable for nondissipative current control and overcurrent
protection. Thanks to a unique control system, a
true 1/128 steps resolution is achieved. The
digital control core can generate user defined
motion profiles with acceleration, deceleration,
speed or target position, easily programmed
through a dedicated registers set. All commands
and data registers, including those used to set
analogue values (i.e. current control value,
current protection trip point, deadtime, PWM
frequency, etc.) are sent through a standard 5Mbit/s SPI. A very rich set of protections (thermal,
low bus voltage, overcurrent, motor stall) allows
the design of a fully protected application, as
required by the most demanding motor control
applications.
Table 1.Device summary
Order codesPackagePackaging
L6470HHTSSOP28Tube
L6470HTRHTSSOP28Tape and reel
L6470PDPOWERSO36Tube
L6470PDTRPOWERSO36Tape and reel
June 2012Doc ID16737 Rev 41/70
This is information on a product in full production.
Internal voltage regulator output pin
and logic supply voltage
Integrated ADC input voltage range
(ADCIN pin)
OSCIN and OSCOUT pin voltage
range
3.6V
-0.3 to +3.6V
-0.3 to +3.6V
Differential voltage between VSA,
, OUT2A, PGND and VSB,
V
out_diff
V
LOGIC
I
out
I
out_peak
T
OP
T
s
P
tot
1. Maximum output current limit is related to metal connection and bonding characteristics. Actual limit must satisfy maximum
thermal dissipation constraints.
2. HTSSOP28 mounted on EVAL6470H.
OUT1
A
, OUT2B, PGND pins
OUT1
B
Logic inputs voltage range-0.3 to +5.5V
(1)
R.m.s. output current3A
(1)
Pulsed output currentT
Operating junction temperature150°C
Storage temperature range-55 to 150°C
Total power dissipation (TA = 25 ºC)
V
= VSB = V
SA
PULSE
(2)
S
< 1 ms7A
48V
5W
Doc ID16737 Rev 49/70
Electrical dataL6470
2.2 Recommended operating conditions
Table 3.Recommended operating conditions
SymbolParameterTest conditionValueUnit
V
V
Logic interface supply voltage
DD
Motor supply voltageVSA = VSB = V
S
Differential voltage between
, OUT1A, OUT2A, PGND
V
V
out_diff
SA
and V
SB
PGND pins
V
REG,in
V
ADC
Logic supply voltage
Integrated ADC input voltage
(ADCIN pin)
Operating junction temperature- 25125°C
T
j
2.3 Thermal data
Table 4.Thermal data
SymbolParameterPackageTyp.Unit
R
thJA
1. HTSSOP28 mounted on EVAL6470H rev 1.0 board: four-layer FR4 PCB with a dissipating copper surface
of about 40 cm
2. POWERSO36 mounted on EVAL6470PD rev 1.0 board: four-layer FR4 PCB with a dissipating copper
surface of about 40 cm
Thermal resistance junction-ambient
2
on each layer and 15 via holes below the IC.
3.3 V logic outputs3.3
5 V logic outputs5
V
= VSB = V
, OUT1B, OUT2B,
SA
voltage imposed
V
REG
by external source
2
on each layer and 22 via holes below the IC.
S
S
HTSSOP28
POWERSO36
V
845V
45V
3.23.3V
0V
(1)
(2)
REG
22
12
V
°C/W
10/70Doc ID16737 Rev 4
L6470Electrical characteristics
3 Electrical characteristics
VSA = VSB = 36 V; VDD = 3.3 V; internal 3 V regulator; TJ = 25 °C, unless otherwise
specified.
Table 5.Electrical characteristics
SymbolParameterTest conditionMin. Typ. Max. Unit
General
V
SthOn
V
SthOff
V
SthHyst VS
I
q
T
j(WRN)
T
j(SD)
VS UVLO turn-on threshold7.58.28.9V
VS UVLO turn-off threshold6.67.27.8V
UVLO threshold hysteresis0.711.3V
Quiescent motor supply current
Thermal warning temperature130°C
Thermal shutdown temperature160°C
Charge pump
V
pump
f
pump,min
f
pump,max
I
boot
Voltage swing for charge pump oscillator10V
Minimum charge pump oscillator frequency
(1)
Maximum charge pump oscillator frequency
(1)
Average boot current
Output DMOS transistor
R
DS(on)
R
DS(on)
I
DSS
High-side switch on-resistance
Low-side switch on-resistance
Leakage current
Internal oscillator selected;
VREG = 3.3 V ext; CP
floating
f
= f
sw,A
= 15.6 kHz
sw,B
POW_SR = '10'
T
= 25 °C, I
j
T
= 125 °C,
j
T
= 25 °C, I
j
T
= 125 °C,
j
OUT = V
= 3 A0.37
out
(2)
I
= 3 A0.51
out
= 3 A0.18
out
(2)
I
= 3 A0.23
out
S
OUT = GND-0.3
0.50.65mA
660kHz
800kHz
1.11.4mA
Ω
3.1
mA
POW_SR = '00', I
POW_SR = '00', I
t
r
Rise time
(3)
POW_SR = '11', I
POW_SR = '10', I
POW_SR = '01', I
= +1 A100
out
= -1 A80
out
= ±1 A100
out
= ±1 A200
lout
= ±1 A300
out
ns
Doc ID16737 Rev 411/70
Electrical characteristicsL6470
Table 5.Electrical characteristics (continued)
SymbolParameterTest conditionMin. Typ. Max. Unit
SR
SR
t
f
out_r
out_f
Fall time
Output rising slew rate
Output falling slew rate
Deadtime and blanking
(3)
POW_SR = '00'; I
POW_SR = '00'; I
POW_SR = '11', I
POW_SR = '10', I
POW_SR = '01', I
POW_SR = '00', I
POW_SR = '00', I
POW_SR = '11', I
POW_SR = '10', I
POW_SR = '01', I
POW_SR = '00', I
POW_SR = '00', I
POW_SR = '11', I
POW_SR = '10', I
POW_SR = '01', I
= +1 A90
out
= -1 A110
out
= ±1 A110
out
= ±1 A260
out
= ±1 A375
load
= +1 A285
out
= -1 A360
out
= ±1 A285
out
= ±1 A150
out
= ±1 A95
out
= +1 A320
out
= -1 A 260
out
= ±1 A260
out
= ±1 A110
out
= ±1 A75
out
POW_SR = '00'250
ns
V/µs
V/µs
t
DT
t
blank
Deadtime
Blanking time
Source-drain diodes
V
SD,HS
V
t
t
SD,LS
rrHS
rrLS
High-side diode forward ON voltageI
Low-side diode forward ON voltageI
High-side diode reverse recovery timeI
Low-side diode reverse recovery timeI
(1)
(1)
POW_SR = '11',
f
= 16 MHz
OSC
POW_SR = '10',
f
= 16 MHz
OSC
POW_SR = '01',
f
= 16 MHz
OSC
375
625
875
POW_SR = '00'250
POW_SR = '11',
f
= 16 MHz
OSC
POW_SR = '10',
f
= 16 MHz
OSC
POW_SR = '01',
f
= 16 MHz
OSC
= 1 A11.1V
out
= 1 A11.1V
out
= 1 A30ns
out
= 1 A100ns
out
375
625
875
ns
ns
12/70Doc ID16737 Rev 4
L6470Electrical characteristics
Table 5.Electrical characteristics (continued)
SymbolParameterTest conditionMin. Typ. Max. Unit
Logic inputs and outputs
V
IL
V
IH
I
IH
I
IL
V
OL
V
OH
R
PU
R
PD
I
logic
I
logic,STBY
f
STCK
Low logic level input voltage0.8V
High logic level input voltage2V
High logic level input current
Low logic level input current
Low logic level output voltage
(4)
(5)
(6)
High logic level output voltage
CS pull-up and STBY pull-down resistors
Internal logic supply current
Standby mode internal logic supply current
Step-clock input frequency2MHz
Internal oscillator and external oscillator driver
f
osc,i
f
osc,e
V
OSCOUTH
V
OSCOUTL
t
rOSCOUT
t
fOSCOUT
t
extosc
t
intosc
Internal oscillator frequency
Programmable external oscillator frequency832MHz
OSCOUT clock source high level voltage
OSCOUT clock source low level voltage
OSCOUT clock source rise and fall timeInternal oscillator20ns
Internal to external oscillator switching delay3ms
External to internal oscillator switching delay1.5µs
SPI
f
CK,MAX
t
rCK
t
fCK
t
hCK
t
lCK
t
setCS
Maximum SPI clock frequency
SPI clock rise and fall time
SPI clock high and low time
Chip select setup time
(7)
(7)
5MHz
(7)
(7)
VIN = 5 V1µA
VIN = 0 V-1µA
VDD = 3.3 V, IOL = 4 mA0.3
V
VDD = 5 V, IOL = 4 mA0.3
VDD = 3.3 V, IOH = 4 mA2.4
V
= 5 V,
DD
I
= 4 mA
OH
CS = GND;
STBY/RST = 5 V
3.3 V V
externally
REG
supplied, internal oscillator
3.3 V V
externally
REG
supplied
= 25 °C,
T
j
V
= 3.3 V
REG
4.7
335430565kΩ
3.74.3mA
22.5µA
-3%16+3% MHz
V
Internal oscillator 3.3 V
V
externally supplied;
REG
I
OSCOUT
= 4 mA
2.4V
Internal oscillator 3.3 V
V
externally supplied;
REG
I
OSCOUT
= 4 mA
0.3V
CL = 30 pF25ns
75ns
350ns
Doc ID16737 Rev 413/70
Electrical characteristicsL6470
Table 5.Electrical characteristics (continued)
SymbolParameterTest conditionMin. Typ. Max. Unit
(7)
(7)
(7)
(7)
(7)
(7)
(7)
(7)
10ns
800ns
25ns
20ns
38ns
47ns
57ns
37ns
t
holCS
t
disCS
t
setSDI
t
holSDI
t
enSDO
t
disSDO
t
vSDO
t
holSDO
Chip select hold time
Deselect time
Data input setup time
Data input hold time
Data output enable time
Data output disable time
Data output valid time
Data output hold time
Switch input (SW)
R
PUSW
SW input pull-up resistanceSW = GND6085110kΩ
PWM modulators
f
PWM
N
PWM
Programmable PWM frequency
PWM resolution8bit
Stall detection
I
STALL,MAX
I
STALL,MIN
I
STALL,RES
Maximum programmable stall threshold STALL_TH = '1111111'4A
Standby and reset pin. LOW logic level resets the
logic and puts the device into Standby mode. If not
used, it should be connected to VDD.
18/70Doc ID16737 Rev 4
L6470Typical applications
5 Typical applications
Table 7.Typical application values
NameValue
C
C
VSPOL
C
REG
C
REGPOL
C
C
DDPOL
VS
DD
220 nF
100 µF
100 nF
47 µF
100 nF
10 µF
D1Charge pump diodes
C
C
R
R
C
BOOT
FLY
PU
SW
SW
R
A
R
B
220 nF
10 nF
39 kΩ
100 Ω
10 nF
2.7 kΩ (VS = 36 V)
62 kΩ (VS = 36 V)
Doc ID16737 Rev 419/70
Typical applicationsL6470
Figure 4.Bipolar stepper motor control application using L6470
20/70Doc ID16737 Rev 4
L6470Functional description
6 Functional description
6.1 Device power-up
At power-up end, the device state is the following:
●Registers are set to default
●Internal logic is driven by internal oscillator and a 2 MHz clock is provided by the
OSCOUT pin
●Bridges are disabled (High Z)
●UVLO bit in the STATUS register is forced low (fail condition)
●FLAG output is forced low.
During power-up, the device is under reset (all logic IOs disabled and power bridges in high
impedance state) until the following conditions are satisfied:
●V
●
●Internal oscillator is operative.
Any motion command makes the device exit from High Z state (HardStop and SoftStop
included).
is greater than V
S
V
is greater than V
REG
SthOn
REGth
= 2.8 V typical
6.2 Logic I/O
Pins CS, CK, SDI, STCK, SW and STBY\RST are TTL/CMOS 3.3 V - 5 V compatible logic
inputs.
Pin SDO is a TTL/CMOS compatible logic output. VDD pin voltage sets the logic output pin
voltage range; when it is connected to VREG or 3.3 V external supply voltage, the output is
3.3 V compatible. When VDD is connected to a 5 V supply voltage, SDO is 5 V compatible.
VDD is not internally connected to V
A 10 µF capacitor should be connected to the VDD pin in order to obtain a proper operation.
Pins FLAG
and BUSY\SYNC are open drain outputs.
6.3 Charge pump
To ensure the correct driving of the high-side integrated MOSFETs, a voltage higher than
the motor power supply voltage needs to be applied to the VBOOT pin. The high-side gate
driver supply voltage, V
realizing a charge pump (see Figure 5).
, an external connection is always needed.
REG
, is obtained through an oscillator and a few external components
boot
Doc ID16737 Rev 421/70
Functional descriptionL6470
Figure 5.Charge pump circuitry
6#06
6
3
$
#
"//4
6
3
$$
636#06$6
$
TOHIGHSIDE
GATEDRIVERS
6"//4#0
6$$
#
&,9
6
#0
F
05-0
!-V
6.4 Microstepping
The driver is able to divide the single step into up to 128 microsteps. Stepping mode can be
programmed by the STEP_SEL parameter in the STEP_MODE register (see Ta b le 1 8 ).
Step mode can only be changed when bridges are disabled. Every time the step mode is
changed the electrical position (i.e. the point of microstepping sinewave that is generated) is
reset to the first microstep and the absolute position counter value (see Section 6.5)
becomes meaningless.
Figure 6.Normal mode and microstepping (128 microsteps)
2ESET
POSITION
0(!3%!CURRENT
0(!3%"CURRENT
STEPSTEPSTEP STEP STEPSTEP
.ORMALDRIVING-ICROSTEPPING
2ESET
POSITION
0(!3%!CURRENT
0(!3%"CURRENT
ª STEPS
ª STEPS
ª STEPS
ª STEPS
MICROSTEPS
STEPSTEP STEP STEP
!-V
22/70Doc ID16737 Rev 4
L6470Functional description
6.4.1 Automatic full-step mode
When motor speed is greater than a programmable full-step speed threshold, the L6470
switches automatically to Full-step mode (see Figure 7); the driving mode returns to
microstepping when motor speed decreases below the full-step speed threshold. The fullstep speed threshold is set through the FS_SPD register (see Section 9.1.9).
Figure 7.Automatic full-step switching
I
peak
Phase A
Phase B
sin(π/4) x I
peak
µStepping
(2N+1) x π/4(2N+1) x π/4
6.5 Absolute position counter
An internal 22-bit register (ABS_POS) records the motor motion according to the selected
step mode; the stored value unit is equal to the selected step mode (full, half, quarter, etc.).
The position range is from -2
21
to +221-1 (µ)steps (see Section 9.1.1).
6.6 Programmable speed profiles
The user can easily program a customized speed profile defining independently
acceleration, deceleration, maximum and minimum speed values by the ACC, DEC,
MAX_SPEED and MIN_SPEED registers respectively (see Section 9.1.5, 9.1.6, 9.1.7 and
9.1.8).
When a command is sent to the device, the integrated logic generates the microstep
frequency profile that performs a motor motion compliant to speed profile boundaries.
All acceleration parameters are expressed in step/tick
expressed in step/tick; the unit of measurement does not depend on the selected step
mode. Acceleration and deceleration parameters range from 2
(equivalent to 14.55 to 59590 step/s
The minimum speed parameter ranges from 0 to (2
976.3 step/s).
The maximum speed parameter ranges from 2
15.25 to 15610 step/s).
2
).
Full-Step
2
and all speed parameters are
12-1
)•2
-18
to (210-1)• 2
µStepping
-40
to (212-2)•2
-24
step/tick (equivalent to 0 to
-18
step/tick (equivalent to
-40
step/tick2
Doc ID16737 Rev 423/70
Functional descriptionL6470
6.6.1 Infinite acceleration/deceleration mode
When the ACC register value is set to max. (0xFFF), the system works in “infinite
acceleration mode”: acceleration and deceleration phases are totally skipped, as shown in
Figure 8.
It is not possible to skip the acceleration or deceleration phase independently.
Figure 8.Speed profile in infinite acceleration/deceleration mode
For detailed command descriptions refer to Section 9.2 on page 55.
6.7.1 Constant speed commands
A constant speed command produces a motion in order to reach and maintain a userdefined target speed starting from the programmed minimum speed (set in the MIN_SPEED
register) and with the programmed acceleration/deceleration value (set in the ACC and DEC
registers). A new constant speed command can be requested anytime.
TIME
TIME
!-6
24/70Doc ID16737 Rev 4
L6470Functional description
Figure 9.Constant speed command examples
3PEED
TEPFREQUENCY
S
30$
2UN30$"7
30$
30$
2UN30$&7
-INIMUM
SPEED
-INIMUM
SPEED
30$
2UN30$&7
2UN30$&7
TIME
!-V
6.7.2 Positioning commands
An absolute positioning command produces a motion in order to reach a user-defined
position that is sent to the device together with the command. The position can be reached
performing the minimum path (minimum physical distance) or forcing a direction (see
Figure 10).
The performed motor motion is compliant to programmed speed profile boundaries
(acceleration, deceleration, minimum and maximum speed).
Note that with some speed profiles or positioning commands, the deceleration phase can
start before the maximum speed is reached.
Figure 10. Positioning command examples
&ORWARD
DI
RECTION
0RESENT
POSITION
'O4O4ARGETPOS
4ARGET
POSITION
0RESENT
POSITION
'O4O?$)24ARGETPOS&7
4ARGET
POSITION
!-V
6.7.3 Motion commands
Motion commands produce a motion in order to perform a user-defined number of
microsteps in a user-defined direction that are sent to the device together with the command
(see Figure 11).
Doc ID16737 Rev 425/70
Functional descriptionL6470
The performed motor motion is compliant to programmed speed profile boundaries
(acceleration, deceleration, minimum and maximum speed).
Note that with some speed profiles or motion commands, the deceleration phase can start
before the maximum speed is reached.
Figure 11. Motion command examples
30%%$
PROGRAMMED
MAXIMUM
SPEED
PROGRAMMED
MINIMUM
SPEED
PROGRAMMEDNUMBEROFMICROSTEPS
PROGRAMMED
!##%,%2!4)/.
PROGRAMMED
$%#%,%
2!4)/.
TIME
30%%$
PROGRAMMED
MAXIMUM
SPEED
PROGRAMMED
MINIMUM
SPEED
PROGRAMMED
!##%,%2!4)/.
PROGRAMMEDNUMBEROFMICROSTEPS
.OTEWITHSOME
!CCELERATION$ECELARATIONPROFILES
ROGRAMMEDMAXIMUMSPEED
THEP
ISNE
PROGRAMMED
2!4)/.
$%#%,%
VERREACHED
TIME
!-V
6.7.4 Stop commands
A stop command forces the motor to stop. Stop commands can be sent anytime.
The SoftStop command causes the motor to decelerate with programmed deceleration
value until the MIN_SPEED value is reached and then stops the motor keeping the rotor
position (a holding torque is applied).
The HardStop command stops the motor instantly, ignoring deceleration constraints and
keeping the rotor position (a holding torque is applied).
The SoftHiZ command causes the motor to decelerate with programmed deceleration value
until the MIN_SPEED value is reached and then forces the bridges in high impedance state
(no holding torque is present).
The HardHiZ command instantly forces the bridges into high impedance state (no holding
torque is present).
6.7.5 Step-clock mode
In Step-clock mode the motor motion is defined by the step-clock signal applied to the STCK
pin. At each step-clock rising edge, the motor is moved one microstep in the programmed
direction and the absolute position is consequently updated.
When the system is in Step-clock mode, the SCK_MOD flag in the STATUS register is
raised, the SPEED register is set to zero and motor status is considered stopped whatever
the STCK signal frequency (MOT_STATUS parameter in STATUS register equal to “00”).
6.7.6 GoUntil and ReleaseSW commands
In most applications the power-up position of the stepper motor is undefined, so an
initialization algorithm driving the motor to a known position is necessary.
The GoUntil and ReleaseSW commands can be used in combination with external switch
input (see Section 6.13) to easily initialize the motor position.
26/70Doc ID16737 Rev 4
L6470Functional description
The GoUntil command makes the motor run at the constant target speed until the SW input
is forced low (falling edge). When this event occurs, one of the following actions can be
performed:
●The ABS_POS register is set to zero (home position) and the motor decelerates to zero
speed (as a SoftStop command)
●The ABS_POS register value is stored in the MARK register and the motor decelerates
to zero speed (as a SoftStop command).
If the SW_MODE bit of the CONFIG register is set to ‘0’, the motor does not decelerate but
it immediately stops (as a HardStop command).
The ReleaseSW command makes the motor run at the programmed minimum speed until
the SW input is forced high (rising edge). When this event occurs, one of the following
actions can be performed:
●The ABS_POS register is set to zero (home position) and the motor immediately stops
(as a HardStop command)
●The ABS_POS register value is stored in the MARK register and the motor immediately
stops (as a HardStop command).
If the programmed minimum speed is less than 5 step/s, the motor is driven at 5 step/s.
6.8 Internal oscillator and oscillator driver
The control logic clock can be supplied by the internal 16-MHz oscillator, an external
oscillator (crystal or ceramic resonator) or a direct clock signal.
These working modes can be selected by EXT_CLK and OSC_SEL parameters in the
CONFIG register (see Ta b le 2 3 ).
At power-up the device starts using the internal oscillator and provides a 2-MHz clock signal
on the OSCOUT pin.
Attention: In any case, before changing clock source configuration, a
hardware reset is mandatory. Switching to different clock
configurations during operation may cause unexpected
behavior.
6.8.1 Internal oscillator
In this mode the internal oscillator is activated and OSCIN is unused. If the OSCOUT clock
source is enabled, the OSCOUT pin provides a 2, 4, 8 or 16-MHz clock signal (according to
OSC_SEL value); it is otherwise unused (see Figure 12).
6.8.2 External clock source
Two types of external clock source can be selected: crystal/ceramic resonator or direct clock
source. Four programmable clock frequencies are available for each external clock source:
8, 16, 24 and 32 MHz.
When an external crystal/resonator is selected, the OSCIN and OSCOUT pins are used to
drive the crystal/resonator (see Figure 12). The crystal/resonator and load capacitors (C
Doc ID16737 Rev 427/70
)
L
Functional descriptionL6470
must be placed as close as possible to the pins. Refer to Ta bl e 8 for the choice of load
capacitor values according to the external oscillator frequency.
Table 8.CL values according to external oscillator frequency
Crystal/resonator freq.
8 MHz25 pF (ESR
16 MHz18 pF (ESR
24 MHz15 pF (ESR
32 MHz10 pF (ESR
(1)
(2)
C
L
= 80 Ω)
max
= 50 Ω)
max
= 40 Ω)
max
= 40 Ω)
max
1. First harmonic resonance frequency.
2. Lower ESR value allows the driving of greater load capacitors.
If a direct clock source is used, it must be connected to the OSCIN pin and the OSCOUT pin
supplies the inverted OSCIN signal (see Figure 12).
Figure 12. OSCIN and OSCOUT pin configuration
%84?#,+%84?#,+
# ,# ,
-(Z
/3#?3%,XX
/3#)./3#/54/3#)./3#/54
%XTERNALOSCILLATOR
CONFIGURATION
/3#?3%,XX
5.53%$
/3#)./3#/54
)NTERNALOSCILLATOR
CONFIGURATION
WITHOUTCLOCKSOURC
5.53%$5.53%$
E
Note:When OSCIN is UNUSED, it should be left floating.
When OSCOUT is UNUSED, it should be left floating.
-(Z
%XTERNALCLOCKSOURCE
CONFIGURATION
/3#)./3#/54
)NTERNALOSCILLATOR
CONFIGURATION
WITHCL
OCKGENERATION
-(Z
!-V
6.9 Overcurrent detection
When the current in any of the Power MOSFETs exceeds a programmed overcurrent
threshold, the STATUS register OCD flag is forced low until the overcurrent event has
28/70Doc ID16737 Rev 4
L6470Functional description
expired and a GetStatus command is sent to the IC (see Section 9.1.22 and 9.1.17). The
overcurrent event expires when all the Power MOSFET currents fall below the programmed
overcurrent threshold.
The overcurrent threshold can be programmed through the OCD_TH register in one of 16
available values ranging from 375 mA to 6 A with steps of 375 mA (see Ta bl e 9 ,
Section 9.1.17).
It is possible to set whether an overcurrent event causes or not the MOSFET turn-off
(bridges in high impedance status) acting on the OC_SD bit in the CONFIG register (see
Section 9.1.21). The OCD flag in the STATUS register is raised anyway (see Ta bl e 3 4 ,
Section 9.1.22).
When the IC outputs are turned off by an OCD event, they cannot be turned on until the
OCD flag is released by a GetStatus command.
Attention: The overcurrent shutdown is a critical protection feature. It is
not recommended to disable it.
6.10 Undervoltage lockout (UVLO)
The L6470 provides a motor supply UVLO protection. When the motor supply voltage falls
below the V
threshold voltage, the STATUS register UVLO flag is forced low. When a
SthOff
GetStatus command is sent to the IC, and the undervoltage condition has expired, the
UVLO flag is released (see Section 9.1.22 and 9.2.20). The undervoltage condition expires
when the motor supply voltage goes over the V
threshold voltage. When the device is
SthOn
in undervoltage condition, no motion command can be performed. The UVLO flag is forced
low by logic reset (power-up included) even if no UVLO condition is present.
6.11 Thermal warning and thermal shutdown
An internal sensor allows the L6470 to detect when the device internal temperature exceeds
a thermal warning or an overtemperature threshold.
When the thermal warning threshold (T
register is forced low (see Section 9.1.22) until the temperature decreases below T
and a GetStatus command is sent to the IC (see Section 9.1.22 and 9.2.20).
When the thermal shutdown threshold (T
shutdown condition: the TH_SD bit in the STATUS register is forced low, the power bridges
are disabled bridges in high impedance state and the HiZ bit in the STATUS register is
raised (see Section 9.1.22).
The thermal shutdown condition only expires when the temperature goes below the thermal
warning threshold (T
j(WRN)
).
On exiting thermal shutdown condition, the bridges are still disabled (HiZ flag high); any
motion command makes the device exit from High Z state (HardStop and SoftStop
included).
) is reached, the TH_WRN bit in the STATUS
j(WRN)
) is reached, the device goes into thermal
j(OFF)
j(WRN)
Doc ID16737 Rev 429/70
Functional descriptionL6470
6.12 Reset and standby
The device can be reset and put into Standby mode through a dedicated pin. When the
STBY
\RST pin is driven low, the bridges are left open (High Z state), the internal charge
pump is stopped, the SPI interface and control logic are disabled and the internal 3 V
voltage regulator maximum output current is reduced to I
REG,STBY
heavily reduces the power consumption. At the same time the register values are reset to
default and all protection functions are disabled. STBY
least for t
STBY,min
in order to ensure the complete switch to Standby mode.
\RST input must be forced low at
On exiting Standby mode, as well as for IC power-up, a delay of up to t
before applying a new command to allow proper oscillator and logic startup and a delay of
up to t
must be given to allow the charge pump startup.
cpwu
On exiting Standby mode, the bridges are disabled (HiZ flag high) and any motion command
makes the device exit High Z state (HardStop and SoftStop included).
Attention: It is not recommended to reset the device when outputs are
active. The device should be switched to high impedance
state before being reset.
; as a result, the L6470
must be given
logicwu
6.13 External switch (SW pin)
The SW input is internally pulled up to VDD and detects if the pin is open or connected to
ground (see Figure 13).
The SW_F bit of the STATUS register indicates if the switch is open (‘0’) or closed (‘1’) (see
Section 9.1.22); the bit value is refreshed at every system clock cycle (125 ns). The
SW_EVN flag of the STATUS register is raised when a switch turn-on event (SW input falling
edge) is detected (see Section 9.1.22). A GetStatus command releases the SW_EVN flag
(see Section 9.2.20).
By default, a switch turn-on event causes a HardStop interrupt (SW_MODE bit of CONFIG
register set to ‘0’). Otherwise (SW_MODE bit of CONFIG register set to ‘1’), switch input
events do not cause interrupts and the switch status information is at the user’s disposal
(see Ta bl e 3 4, Section 9.1.22).
The switch input may be used by the GoUntil and ReleaseSW commands as described in
Section 9.2.10 and 9.2.11.
If the SW input is not used, it should be connected to VDD.
30/70Doc ID16737 Rev 4
L6470Functional description
Figure 13. External switch connection
6
$$
37
%XTERNAL
3WITCH
!-V
6.14 Programmable DMOS slew rate, deadtime and blanking time
Using the POW_SR parameter in the CONFIG register, it is possible to set the commutation
speed of the power bridges output (see Ta bl e 2 6, Section 9.1.21).
6.15 Integrated analog-to-digital converter
The L6470 integrates an N
bit ramp-compare analog-to-digital converter with a
ADC
reference voltage equal to VREG. The analog-to-digital converter input is available through
the ADCIN pin and the conversion result is available in the ADC_OUT register (see
Section 9.1.16).
Sampling frequency is equal to the programmed PWM frequency.
The ADC_OUT value can be used for motor supply voltage compensation or can be at the
user’s disposal.
6.16 Internal voltage regulator
The L6470 integrates a voltage regulator which generates a 3 V voltage starting from the
motor power supply (VSA and VSB). In order to make the voltage regulator stable, at least
22 µF should be connected between the VREG pin and ground (suggested value is 47 µF).
The internal voltage regulator can be used to supply the VDD pin in order to make the
device digital output range 3.3 V compatible (Figure 14). A digital output range, 5 V
compatible, may be obtained connecting the VDD pin to an external 5 V voltage source. In
both cases, a 10 µF capacitance should be connected to the VDD pin in order to obtain a
correct operation.
The internal voltage regulator is able to supply a current up to I
consumption included (I
that can be supplied is I
If an external 3.3 V regulated voltage is available, it can be applied to the VREG pin in order
to supply all the internal logic and to avoid power dissipation of the internal 3 V voltage
regulator (Figure 14). The external voltage regulator should never sink current from the
VREG pin.
). When the device is in Standby mode, the maximum current
logic
REG, STBY
, internal consumption included (I
REG,MAX
logic, STBY
, internal logic
).
Doc ID16737 Rev 431/70
Functional descriptionL6470
Figure 14. Internal 3 V linear regulator
VBAT
Vs
3V
DD
V
VREGVDDVSAVSB
3.3V
REG.
VREGVDDVSAVSB
V
s
µC
Logig supplied by
INTERNAL voltage regulator
6.17 BUSY\SYNC pin
This pin is an open drain output which can be used as the busy flag or synchronization
signal according to the SYNC_EN bit value (STEP_MODE register).
6.17.1 BUSY operation mode
The pin works as busy signal when the SYNC_EN bit is set low (default condition). In this
mode the output is forced low while a constant speed, absolute positioning or motion
command is under execution. The BUSY
executed (target speed or target position reached). The STATUS register includes a BUSY
flag that is the BUSY pin mirror (see Section 9.1.22).
In the case of daisy chain configuration, BUSY pins of different ICs can be hard-wired to
save host controller GPIOs.
IC
IC
AGNDDGND
Logig supplied by
EXTERNAL voltage regulator
pin is released when the command has been
AGNDDGND
6.17.2 SYNC operation mode
The pin works as synchronization signal when the SYNC_EN bit is set high. In this mode a
step-clock signal is provided on the output according to a SYNC_SEL and STEP_SEL
parameter combination (see Section 9.1.19).
32/70Doc ID16737 Rev 4
L6470Functional description
6.18 FLAG pin
By default, an internal open drain transistor pulls the FLAG pin to ground when at least one
of the following conditions occurs:
●Power-up or standby/reset exit
●Stall detection on A bridge
●Stall detection on B bridge
●Overcurrent detection
●Thermal warning
●Thermal shutdown
●UVLO
●Switch turn-on event
●Wrong command
●Non-performable command.
It is possible to mask one or more alarm conditions by programming the ALARM_EN
register (see Section 9.1.20, Tab le 2 1 ). If the corresponding bit of the ALARM_EN register is
low, the alarm condition is masked and it does not cause a FLAG pin transition; all other
actions imposed by alarm conditions are performed anyway. In the case of daisy chain
configuration, FLAG
pins of different ICs can be or-wired to save host controller GPIOs.
Doc ID16737 Rev 433/70
Phase current controlL6470
7 Phase current control
The L6470 controls the phase current applying a sinusoidal voltage to motor windings.
Phase current amplitude is not directly controlled but depends on phase voltage amplitude,
load torque, motor electrical characteristics and rotation speed. Sinewave amplitude is
proportional to the motor supply voltage multiplied by a coefficient (K
0 to 100% and the sinewave amplitude can be obtained through the following formula:
Equation 1
VAL
). K
ranges from
VAL
Different K
V
OUTVSKVAL
values can be programmed for acceleration, deceleration and constant speed
VAL
⋅=
phases and when the motor is stopped (HOLD phase) through the KVAL_ACC, KVAL_DEC,
KVAL_RUN and KVAL_HOLD registers (see Section 9.1.10). KVAL value is calculated
according to the following formula:
Equation 2
where K
K
VAL
is the starting K
VAL_X
K
VAL_X
BEMF_COMP+()VSCOMPK_THERM××[]microstep×=
value programmed for present motion phase (KVAL_ACC,
VAL
KVAL_DEC, KVAL_RUN or KVAL_HOLD), BEMF_COMP is the BEMF compensation curve
value, VSCOMP and K_THERM are the motor supply voltage and winding resistance
compensation factors and microstep is the current microstep value (fraction of target peak
current).
The L6470 offers various methods to guarantee a stable current value, allowing the
compensation of:
●low speed optimization (Section 7.37.3)
●back electromotive force value (Section 7.47.4)
●motor supply voltage variation (Section 7.57.5)
●windings resistance variation (Section 7.67.6).
7.1 PWM sinewave generators
The two voltage sinewaves applied to the stepper motor phases are generated by two PWM
modulators.
The PWM frequency (f
obtained through the following formula:
Equation 3
'N' is the integer division factor and 'm' is the multiplication factor. 'N' and 'm' values can be
programmed by the F_PWM_INT and F_PWM_DEC parameters in the CONFIG register
(see Ta bl e 2 8 and Ta bl e 2 9, Section 9.1.21).
Available PWM frequencies are listed in Section 9.1.21 from Ta bl e 3 0 to Tab le 3 3 .
34/70Doc ID16737 Rev 4
) is proportional to the oscillator frequency (f
PWM
f
OSC
f
PWM
---------------------
512N⋅
) and can be
OSC
m⋅=
L6470Phase current control
7.2 Sensorless stall detection
Depending on motor speed and load angle characteristics, the L6470 offers a motor stall
condition detection using a programmable current comparator.
When a stall event occurs, the respective flag (STEP_LOSS_A or STEP_LOSS_B) is forced
low until a GetStaus command or a system reset occurs (see Section 9.2.20).
7.3 Low speed optimization
When the motor is driven at a very low speed using a small driving voltage, the resulting
phase current can be distorted. As a consequence, the motor position is different from the
ideal one (see Figure 15).
The L6470 implements a low speed optimization in order to remove this effect.
Figure 15. Current distortion and compensation
7ITHOUTLOWSPEEDOPTIMIZAZION
)
PHASE
7ITHLOWSPEEDOPTIMIZAZION
)
PHASE
#URRENTDISTORTIONISHEAVILY
REDUCED
!-6
The optimization can be enabled setting high the LSPD_OPT bit in the MIN_SPEED register
(see Section 9.1.8) and is active in a speed range from zero to MIN_SPEED. When low
speed optimization is enabled, speed profile minimum speed is forced to zero.
Doc ID16737 Rev 435/70
Phase current controlL6470
7.4 BEMF compensation
Using the speed information, a compensation curve is added to the amplitude of the voltage
waveform applied to the motor winding in order to compensate the BEMF variations during
acceleration and deceleration (see Figure 16).
The compensation curve is approximated by a stacked line with a starting slope (ST_SLP)
when speed is lower than a programmable threshold speed (INT_SPEED) and a fine slope
(FN_SLP_ACC and FN_SLP_DEC) when speed is greater than the threshold speed (see
Section 9.1.11, Section 9.1.12, Section 9.1.13 and Section 9.1.14).
Figure 16. BEMF compensation curve
#OMPENSATION
VALUE
34?3,0
&.?3,0?
).4?30%%$
!##
To obtain different current values during acceleration and deceleration phases, two different
final slope values, and consequently two different compensation curves, can be
programmed.
The acceleration compensation curve is applied when the motor runs. No BEMF
compensation is applied when the motor is stopped.
7.5 Motor supply voltage compensation
The sinewave amplitude generated by the PWM modulators is directly proportional to the
motor supply voltage (V
the motor phases are driven with an incorrect voltage. The L6470 can compensate motor
supply voltage variations in order to avoid this effect.
). When the motor supply voltage is different from its nominal value,
S
&.?3,0?$%#
3PEED
!-V
The motor supply voltage should be connected to the integrated ADC input through a
resistor divider in order to obtain V
/2 voltage at the ADCIN pin when VS is at its nominal
REG
value (see Figure 17).
The ADC input is sampled at f
36/70Doc ID16737 Rev 4
frequency, which is equal to PWM frequency.
S
L6470Phase current control
Figure 17. Motor supply voltage compensation circuit
6
3
6
2%'
2
!
6
63X2"2!2"
!$#).
!$#).
!$#
2
"
F
07-
!$#?/54
!-V
Motor supply voltage compensation can be enabled setting high the EN_VSCOMP bit of the
CONFIG register (see Ta b le 2 2 , Section 9.1.21). If the EN_VSCOMP bit is low, the
compensation is disabled and the internal analog-to-digital converter is at the user’s
disposal; sampling rate is always equal to PWM frequency.
7.6 Winding resistance thermal drift compensation
The higher the winding resistance, the greater the voltage to be applied in order to obtain
the same phase current.
The L6470 integrates a register (K_THERM) which can be used to compensate phase
resistance increment due to temperature rising.
The value in the K_THERM register (see Section 9.1.15) multiplies the duty cycle value
allowing a higher phase resistance value to be faced.
The compensation algorithm and the eventual motor temperature measurement should be
implemented by microcontroller firmware.
Doc ID16737 Rev 437/70
Serial interfaceL6470
8 Serial interface
The integrated 8-bit serial peripheral interface (SPI) is used for a synchronous serial
communication between the host microprocessor (always master) and the L6470 (always
slave).
The SPI uses chip select (CS
output (SDO) pins. When CS
), serial clock (CK), serial data input (SDI) and serial data
is high, the device is unselected and the SDO line is inactive
(high-impedance).
The communication starts when CS
is forced low. The CK line is used for synchronization of
data communication.
All commands and data bytes are shifted into the device through the SDI input, most
significant bit first. The SDI is sampled on the rising edges of the CK.
All output data bytes are shifted out of the device through the SDO output, most significant
bit first. The SDO is latched on the falling edges of the CK. When a return value from the
device is not available, an all zero byte is sent.
After each byte transmission the CS
input must be raised and be kept high for at least t
disCS
in order to allow the device to decode the received command and put the return value into
the SHIFT register.
All timing requirements are shown in Figure 18 (see Section 3: Electrical characteristics for
values).
Multiple devices can be connected in daisy chain configuration, as shown in Figure 19.
Figure 18. SPI timings diagram
#3
TSET#3
TR#+TF#+TH#+TL#+
TDIS#3
#+
3$)
3$/
(I:
TEN3$/
TSET3$)
THOL3$)
-3",3"
THOL3$/
-3"
..
TV3$/
..
38/70Doc ID16737 Rev 4
,3"
THOL#3
TDIS3$/
-3"
!-V
L6470Serial interface
Figure 19. Daisy chain configuration
$%6
(/3430)SIGNALS
#3
3$/
3$)-
-
"YTE."YTE.
"YTE.
"YTE.
"YTE
"YTE
(/34
"YTE."YTE.
3$/
3$)
#3
#+
#3
#+
-
-
3$)
3$/
$%6
#3
#+
3$)
3$/
$%6.
#3
#+
3$)
3$/
!-V
Doc ID16737 Rev 439/70
Programming manualL6470
9 Programming manual
9.1 Registers and flags description
The following is a map of the user registers available (detailed description in respective
paragraphs):
The ABS_POS register contains the current motor absolute position in agreement with the
selected step mode; the stored value unit is equal to the selected step mode (full, half,
quarter, etc.). The value is in 2's complement format and it ranges from -2
At power-on the register is initialized to “0” (HOME position).
21
to +221-1.
(1)
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.1.2 EL_POS
The EL_POS register contains the current electrical position of the motor. The two MSbits
indicate the current step and the other bits indicate the current microstep (expressed in
step/128) within the step.
Table 10.EL_POS register
Bit 8Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
STEPMICROSTEP
When the EL_POS register is written by the user, the new electrical position is instantly
imposed. When the EL_POS register is written, its value must be masked in order to match
with the step mode selected in the STEP_MODE register in order to avoid a wrong
microstep value generation (see Section 9.1.19); otherwise the resulting microstep
sequence is incorrect.
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
Doc ID16737 Rev 441/70
Programming manualL6470
9.1.3 MARK
The MARK register contains an absolute position called MARK according to the selected
step mode; the stored value unit is equal to the selected step mode (full, half, quarter, etc.).
It is in 2's complement format and it ranges from -2
21
to +221-1.
9.1.4 SPEED
The SPEED register contains the current motor speed, expressed in step/tick (format
unsigned fixed point 0.28).
In order to convert the SPEED value in step/s, the following formula can be used:
Equation 4
28–
SPEED 2
step/s[]
----------- ------------- ------------- ---=
where SPEED is the integer number stored in the register and tick is 250 ns.
The available range is from 0 to 15625 step/s with a resolution of 0.015 step/s.
Note:The range effectively available to the user is limited by the MAX_SPEED parameter.
Any attempt to write the register causes the command to be ignored and the
NOTPERF_CMD flag to rise (see Section 9.1.22).
⋅
tick
9.1.5 ACC
The ACC register contains the speed profile acceleration expressed in step/tick2 (format
unsigned fixed point 0.40).
In order to convert ACC value in step/s
Equation 5
where ACC is the integer number stored in the register and tick is 250 ns.
The available range is from 14.55 to 59590 step/s
When the ACC value is set to 0xFFF, the device works in infinite acceleration mode.
Any attempt to write to the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.1.6 DEC
The DEC register contains the speed profile deceleration expressed in step/tick2 (format
unsigned fixed point 0.40).
In order to convert DEC value in step/s
2
, the following formula can be used:
2
step/s
[]
ACC 2
------------ ------------- ------=
2
, the following formula can be used:
40–
⋅
2
tick
2
with a resolution of 14.55 step/s2.
Equation 6
2
[]
step/s
42/70Doc ID16737 Rev 4
DEC2
------------ ------------- ------=
tick
40–
⋅
2
L6470Programming manual
where DEC is the integer number stored in the register and tick is 250 ns.
The available range is from 14.55 to 59590 step/s2 with a resolution of 14.55 step/s2.
When the device is working in infinite acceleration mode, this value is ignored.
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.1.7 MAX_SPEED
The MAX_SPEED register contains the speed profile maximum speed expressed in
step/tick (format unsigned fixed point 0.18).
In order to convert it in step/s, the following formula can be used:
where MAX_SPEED is the integer number stored in the register and tick is 250 ns.
The available range is from 15.25 to 15610 step/s with a resolution of 15.25 step/s.
18–
⋅
9.1.8 MIN_SPEED
The MIN_SPEED register contains the following parameters:
Table 11.MIN_SPEED register
Bit 12Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
LSPD_OPTMIN_SPEED
The MIN_SPEED parameter contains the speed profile minimum speed. Its value is
expressed in step/tick and to convert it in step/s, the following formula can be used:
Equation 8
where MIN_SPEED is the integer number stored in the register and tick is the ramp 250 ns.
The available range is from 0 to 976.3 step/s with a resolution of 0.238 step/s.
When the LSPD_OPT bit is set high, the low speed optimization feature is enabled and the
MIN_SPEED value indicates the speed threshold below which the compensation works. In
this case the minimum speed of the speed profile is set to zero.
An attempt to write the register when the motor is running causes the NOTPERF_CMD flag
to rise.
The FS_SPD register contains the threshold speed. When the actual speed exceeds this
value, the step mode is automatically switched to full-step two-phase on. Its value is
Doc ID16737 Rev 443/70
Programming manualL6470
expressed in step/tick (format unsigned fixed point 0.18) and to convert it in step/s, the
following formula can be used.
If the FS_SPD value is set to hFF (max.) the system always works in microstepping mode
(SPEED must go beyond the threshold to switch to Full-step mode). Setting FS_SPD to zero
does not have the same effect as setting Step mode to full-step two-phase on: the zero
FS_SPD value is equivalent to a speed threshold of about 7.63 step/s.
The available range is from 7.63 to 15625 step/s with a resolution of 15.25 step/s.
9.1.10 KVAL_HOLD, KVAL_RUN, KVAL_ACC and KVAL_DEC
The KVAL_HOLD register contains the K
value that is assigned to the PWM modulators
VAL
when the motor is stopped (compensation excluded).
The KVAL_RUN register contains the K
value that is assigned to the PWM modulators
VAL
when the motor is running at constant speed (compensation excluded).
The KVAL_ACC register contains the starting K
value that can be assigned to the PWM
VAL
modulators during acceleration (compensation excluded).
The KVAL_DEC register contains the starting K
value that can be assigned to the PWM
VAL
modulators during deceleration (compensation excluded).
The available range is from 0 to 0.996 x V
with a resolution of 0.004 x VS, as shown in
S
Ta bl e 1 2.
Table 12.Voltage amplitude regulation registers
KVAL_X [7..0]Output voltage
000000000
00000001V
…
11111110V
11111111V
…
…
…
…
…
…
…
x (1/256)
S
x (254/256)
S
x (255/256)
S
…
9.1.11 INT_SPEED
The INT_SPEED register contains the speed value at which the BEMF compensation curve
changes slope (see Section 7.4). Its value is expressed in step/tick and to convert it in
step/s, the following formula can be used:
Equation 10
INT SPEED–2
step s⁄[]
where INT_SPEED is the integer number stored in the register and tick is 250 ns.
The available range is from 0 to 976.5 step/s with a resolution of 0.0596 step/s.
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.1.12 ST_SLP
The ST_SLP register contains the BEMF compensation curve slope that is used when the
speed is lower than the intersect speed (see Section 7.4). Its value is expressed in s/step
and the available range is from 0 to 0.004 with a resolution of 0.000015.
When ST_SLP, FN_SLP_ACC and FN_SLP_DEC parameters are set to zero, no BEMF
compensation is performed.
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.1.13 FN_SLP_ACC
The FN_SLP_ACC register contains the BEMF compensation curve slope that is used when
the speed is greater than the intersect speed during acceleration (see Section 7.47.4). Its
value is expressed in s/step and the available range is from 0 to 0.004 with a resolution of
0.000015.
When ST_SLP, FN_SLP_ACC and FN_SLP_DEC parameters are set to zero, no BEMF
compensation is performed.
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.1.14 FN_SLP_DEC
The FN_SLP_DEC register contains the BEMF compensation curve slope that is used when
the speed is greater than the intersect speed during deceleration (see Section 7.47.4). Its
value is expressed in s/step and the available range is from 0 to 0.004 with a resolution of
0.000015.
When ST_SLP, FN_SLP_ACC and FN_SLP_DEC parameters are set to zero, no BEMF
compensation is performed.
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.1.15 K_THERM
The K_THERM register contains the value used by the winding resistance thermal drift
compensation system (see Section 7.6).
The available range is from 1 to 1.46875 with a resolution of 0.03125, as shown in Ta b le 1 3 .
The ADC_OUT register contains the result of the analog-to-digital conversion of the ADCIN
pin voltage; the result is available even if the supply voltage compensation is disabled.
Any attempt to write to the register causes the command to be ignored and the
NOTPERF_CMD flag to rise (see Section 9.1.22).
Table 14.ADC_OUT value and motor supply voltage compensation feature
Greater than V
V
S,nom
VS,
Lower than V
9.1.17 OCD_TH
The OCD_TH register contains the overcurrent threshold value (see Section 6.9). The
available range is from 375 mA to 6 A, in steps of 375 mA, as shown in Ta b le 1 5 .
Table 15.Overcurrent detection threshold
OCD_TH [3..0]Overcurrent detection threshold
0000375 mA
0001750 mA
…
…
ADC_OUT
[4..0]
…
…
…
…
…
…
…
…
V
S
+ 50%> 24/3211XXX0.65625
S,nom
+ 50%24/32110000.65625
…
VS,
nom
…
– 50%8/32010001.968875
nom
– 50%< 8/3200XXX1.968875
S,nom
V
ADCIN/VREG
…
16/32100001
…
Compensation
coefficient
…
…
……………
11105.625 A
11116 A
9.1.18 STALL_TH
The STALL_TH register contains the stall detection threshold value (see Section 7.2). The
available range is from 31.25 mA to 4 A with a resolution of 31.25 mA.
46/70Doc ID16737 Rev 4
L6470Programming manual
Table 16.Stall detection threshold
STALL_th [6..0]Stall detection threshold
000000031.25 mA
000000162.5 mA
……………………
11111103.969 A
11111114 A
9.1.19 STEP_MODE
The STEP_MODE register has the following structure:
Table 17.STEP_MODE register
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
SYNC_ENSYNC_SEL0
1. When the register is written, this bit should be set to 0.
(1)
STEP_SEL
The STEP_SEL parameter selects one of eight possible stepping modes:
Table 18.Step mode selection
STEP_SEL[2..0]Step mode
000Full-step
001Half-step
0101/4 microstep
0111/8 microstep
1001/16 microstep
1011/32 microstep
1101/64 microstep
1111/128 microstep
Every time the step mode is changed, the electrical position (i.e. the point of microstepping
sinewave that is generated) is reset to the first microstep.
Warning:Every time STEP_SEL is changed, the value in the ABS_POS
register loses meaning and should be reset.
Any attempt to write the register when the motor is running causes the command to be
ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
Doc ID16737 Rev 447/70
Programming manualL6470
When the SYNC_EN bit is set low, BUSY/SYNC output is forced low during command
execution, otherwise, when the SYNC_EN bit is set high, BUSY
The synchronization signal is obtained starting from electrical position information (EL_POS
register) according to Tab l e 1 0:
Table 20.SYNC signal source
SYNC_SEL[2..0]Source
000EL_POS[7]
001EL_POS[6]
010EL_POS[5]
011EL_POS[4]
100EL_POS[3]
101EL_POS[2]
110EL_POS[1]
111EL_POS[0]
9.1.20 ALARM_EN
The ALARM_EN register allows the selection of which alarm signals are used to generate
the FLAG output. If the respective bit of the ALARM_EN register is set high, the alarm
condition forces the FLAG pin output down.
48/70Doc ID16737 Rev 4
L6470Programming manual
Table 21.ALARM_EN register
ALARM_EN bitAlarm condition
0 (LSB)Overcurrent
1Thermal shutdown
2Thermal warning
3Undervoltage
4Stall detection (Bridge A)
5Stall detection (Bridge B)
6Switch turn-on event
7 (MSB)Wrong or non-performable command
9.1.21 CONFIG
The CONFIG register has the following structure:
Table 22.CONFIG register
Bit 15Bit 14Bit 13Bit 12Bit 11Bit 10Bit 9Bit 8
F_PWM_INTF_PWM_DECPOW_SR
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
OC_SDRESERVED EN_VSCOMP SW_MODE EXT_CLKOSC_SEL
The OSC_SEL and EXT_CLK bits set the system clock source:
Table 23.Oscillator management
EXT_C
LK
0000
0001
0010
0011
1000Internal oscillator: 16 MHzUnused
1001Internal oscillator: 16 MHzUnused
1010Internal oscillator: 16 MHzUnused
OSC_SEL[2..0]Clock sourceOSCINOSCOUT
Internal oscillator: 16 MHzUnusedUnused
Supplies a 2-MHz
clock
Supplies a 4-MHz
clock
Supplies an 8-MHz
clock
1011Internal oscillator: 16 MHzUnused
Doc ID16737 Rev 449/70
Supplies a 16-MHz
clock
Programming manualL6470
Table 23.Oscillator management (continued)
EXT_C
LK
0100
0101
0110
0111
1100
1101
1110
1111
OSC_SEL[2..0]Clock sourceOSCINOSCOUT
External crystal or resonator: 8
MHz
External crystal or resonator:
16 MHz
External crystal or resonator:
24 MHz
External crystal or resonator:
32 MHz
Ext clock source: 8 MHz
(Crystal/resonator driver
disabled)
Ext clock source: 16 MHz
(Crystal/resonator driver
disabled)
Ext clock source: 24 MHz
(Crystal/resonator driver
disabled)
Ext clock source: 32 MHz
(Crystal/resonator driver
disabled)
Crystal/resonator
driving
Crystal/resonator
driving
Crystal/resonator
driving
Crystal/resonator
driving
Clock source
Clock source
Clock source
Clock source
Crystal/resonator
driving
Crystal/resonator
driving
Crystal/resonator
driving
Crystal/resonator
driving
Supplies inverted
OSCIN signal
Supplies inverted
OSCIN signal
Supplies inverted
OSCIN signal
Supplies inverted
OSCIN signal
The SW_MODE bit sets the external switch to act as HardStop interrupt or not:
Table 24.External switch hard stop interrupt mode
SW_MODESwitch mode
0HardStop interrupt
1User disposal
The OC_SD bit sets whether an overcurrent event causes or not the bridges to turn off; the
OCD flag in the STATUS register is forced low anyway:
Table 25.Overcurrent event
OC_SDOvercurrent event
1Bridges shut down
0Bridges do not shut down
The POW_SR bits set the slew rate value of power bridge output:
50/70Doc ID16737 Rev 4
L6470Programming manual
Table 26.Programmable power bridge output slew rate values
POW_SR
[1..0]
Output slew rate
[V/µs]
00180
01180
10290
11530
(1)
1. See S
Rout_r
and S
parameters in Table 5 for details.
Rout_f
The EN_VSCOMP bit sets whether the motor supply voltage compensation is enabled or
not.
Table 27.Motor supply voltage compensation enable
EN_VSCOMPMotor supply voltage compensation
0Disabled
1Enabled
The F_PWM_INT bits set the integer division factor of PWM frequency generation.
Table 28.PWM frequency: integer division factor
F_PWM_INT
[2..0]
0001
0012
0103
0114
Integer division factor
1005
1016
1107
111
The F_PWM_DEC bits set the multiplication factor of PWM frequency generation.
Doc ID16737 Rev 451/70
Programming manualL6470
Table 29.PWM frequency: multiplication factor
F_PWM_DEC [2..0]Multiplication factor
0000.625
0010.75
0100.875
0111
1001.25
1011.5
1101.75
1112
In the following tables all available PWM frequencies are listed according to oscillator
frequency, F_PWM_INT and F_PWM_DEC values (CONFIG register OSC_SEL parameter
must be correctly programmed).
Table 30.Available PWM frequencies [kHz]: 8-MHz oscillator frequency
F_PWM_DEC
F_PWM_
INT
0009.811.713.715.619.523.427.331.3
0014.95.96.87.89.811.713.715.6
0103.33.94.65.26.57.89.110.4
0112.42.93.43.94.95.96.87.8
1002.02.32.73.13.94.75.56.3
1011.62.02.32.63.33.94.65.2
1101.41.72.02.22.83.33.94.5
000001010011100101110111
Table 31.Available PWM frequencies [kHz]: 16-MHz oscillator frequency
F_PWM_DEC
F_PWM_INT000001010011100101110111
00019.523.427.331.339.146.954.762.5
0019.811.713.715.619.523.427.331.3
0106.57.89.110.413.015.618.220.8
52/70Doc ID16737 Rev 4
L6470Programming manual
Table 31.Available PWM frequencies [kHz]: 16-MHz oscillator frequency
F_PWM_DEC
F_PWM_INT000001010011100101110111
0114.95.96.87.89.811.713.715.6
1003.94.75.56.37.89.410.912.5
1013.33.94.65.26.57.89.110.4
1102.83.33.94.55.66.77.88.9
Table 32.Available PWM frequencies [kHz]: 24-MHz oscillator frequency
F_PWM_DEC
F_PWM_INT000001010011100101110111
00029.335.241.046.958.670.382.093.8
00114.617.620.523.429.335.241.046.9
0109.811.713.715.619.523.427.331.3
0117.38.810.311.714.617.620.523.4
1005.97.08.29.411.714.116.418.8
1014.95.96.87.89.811.713.715.6
1104.25.05.96.78.410.011.713.4
Table 33.Available PWM frequencies [kHz]: 32-MHz oscillator frequency
F_PWM_DEC
F_PWM_
INT
00039.146.954.762.578.193.8109.4125.0
00119.523.427.331.339.146.954.762.5
01013.015.618.220.826.031.336.541.7
0119.811.713.715.619.523.427.331.3
1007.89.410.912.515.618.821.925.0
000001010011100101110111
1016.57.89.110.413.015.618.220.8
1105.66.77.88.911.213.415.617.9
Doc ID16737 Rev 453/70
Programming manualL6470
Any attempt to write the CONFIG register when the motor is running causes the command
to be ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
When the HiZ flag is high, it indicates that the bridges are in high impedance state. Any
motion command makes the device exit from High Z state (HardStop and SoftStop
included), unless error flags forcing a High Z state are active.
The UVLO flag is active low and is set by an undervoltage lockout or reset events (power-up
included).
The TH_WRN, TH_SD, OCD flags are active low and indicate, respectively, thermal
warning, thermal shutdown and overcurrent detection events.
STEP_LOSS_A and STEP_LOSS_B flags are forced low when a stall is detected on bridge
A or bridge B respectively.
The NOTPERF_CMD and WRONG_CMD flags are active high and indicate, respectively,
that the command received by SPI cannot be performed or does not exist at all.
The SW_F flag reports the SW input status (low for open and high for closed).
The SW_EVN flag is active high and indicates a switch turn-on event (SW input falling
edge).
The UVLO, TH_WRN, TH_SD, OCD, STEP_LOSS_A, STEP_LOSS_B, NOTPERF_CMD,
WRONG_CMD and SW_EVN flags are latched: when the respective conditions make them
active (low or high), they remain in that state until a GetStatus command is sent to the IC.
The BUSY bit reflects the BUSY
pin status. The BUSY flag is low when a constant speed,
positioning or motion command is under execution and is released (high) after the command
has been completed.
The SCK_MOD bit is an active high flag indicating that the device is working in Step-clock
mode. In this case the step-clock signal should be provided through the STCK input pin. The
DIR bit indicates the current motor direction:
Table 35.STATUS register DIR bit
DIRMotor direction
1Forward
0Reverse
MOT_STATUS indicates the current motor status:
54/70Doc ID16737 Rev 4
L6470Programming manual
Table 36.STATUS register MOT_STATE bits
MOT_STATUSMotor status
00Stopped
01Acceleration
10Deceleration
11Constant speed
Any attempt to write to the register causes the command to be ignored and the
NOTPERF_CMD flag to rise (see Section 9.1.22).
9.2 Application commands
The command summary is given in Ta b le 3 7 .
Table 37.Application commands
Command mnemonic
Command binary code
Action
[7..5] [4] [3] [2..1] [0]
NOP00000000Nothing
SetParam(PARAM,VALUE) 000[PARAM]Writes VALUE in PARAM register
GetParam(PARAM)001[PARAM]Returns the stored value in PARAM register
Run(DIR,SPD)0101000DIR Sets the target speed and the motor direction
StepClock(DIR)0101100DIR
Move(DIR,N_STEP)0100000DIR
GoTo(ABS_POS)01100000Brings motor into ABS_POS position (minimum path)
GoTo_DIR(DIR,ABS_POS) 0110100DIR
GoUntil(ACT,DIR,SPD)1000 ACT01DIR
ReleseSW(ACT, DIR)1001 ACT01DIR
GoHome01110000Brings the motor into HOME position
GoMark01111000Brings the motor into MARK position
ResetPos11011000Resets the ABS_POS register (set HOME position)
Puts the device into Step-clock mode and imposes DIR
direction
Makes N_STEP (micro)steps in DIR direction
(Not performable when motor is running)
Brings motor into ABS_POS position forcing DIR
direction
Performs a motion in DIR direction with speed SPD until
SW is closed, the ACT action is executed then a SoftStop
takes place.
Performs a motion in DIR direction at minimum speed
until the SW is released (open), the ACT action is
executed then a HardStop takes place.
ResetDevice11000000Device is reset to power-up conditions.
SoftStop10110000Stops motor with a deceleration phase
Doc ID16737 Rev 455/70
Programming manualL6470
Table 37.Application commands (continued)
Command binary code
Command mnemonic
[7..5] [4] [3] [2..1] [0]
HardStop10111000Stops motor immediately
Action
SoftHiZ10100000
HardHiZ10101000Puts the bridges into high impedance status immediately
GetStatus11010000Returns the STATUS register value
RESERVED11101011RESERVED COMMAND
RESERVED11111000RESERVED COMMAND
9.2.1 Command management
The host microcontroller can control motor motion and configure the L6470 through a
complete set of commands.
All commands are composed by a single byte. After the command byte, some bytes of
arguments should be needed (see Figure 20). Argument length can vary from 1 to 3 bytes.
Figure 20. Command with 3-byte argument
3$)
FROMHOST
3$/
TOHOST
By default, the device returns an all zero response for any received byte, the only exceptions
are the GetParam and GetStatus commands. When one of these commands is received,
the following response bytes represent the related register value (see Figure 21). Response
length can vary from 1 to 3 bytes.
#OMMANDBYTE
XXXX
Puts the bridges into high impedance status after a
deceleration phase
!RGUMENTBYTE
-3"
!RGUMENTBYTE
!RGUMENTBYTE
,3"
Figure 21. Command with 3-byte response
3$)
FROMHOST
3$/
TOHOST
#OMMANDBYTE
./0./0./0
2ESPONSEBYTE
-3"
During response transmission, new commands can be sent. If a command requiring a
response is sent before the previous response is completed, the response transmission is
aborted and the new response is loaded into the output communication buffer (see
Figure 22).
56/70Doc ID16737 Rev 4
2ESPONSEBYTEX
2ESPONSEBYTE
,3"
L6470Programming manual
Figure 22. Command response aborted
3$)
FROMHOST
3$/
TOHOST
#OMMAND
BYTERESPEXPECTED
#OMMAND
NORESPEXPECTED
2ESPONSEBYTE
When a byte that does not correspond to a command is sent to the IC, it is ignored and the
WRONG_CMD flag in the STATUS register is raised (see Section 9.1.22).
9.2.2 Nop
Table 38.Nop command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
00000000from host
Nothing is performed.
9.2.3 SetParam (PARAM, VALUE)
Table 39.SetParam command structure
-3"
#OMMAND
BYTERESPEXPECTED
2ESPONSEBYTEX
#OMMANDRESPONSE
ISABORTED
#OMMAND
NORESPEXPECTED
2ESPONSEBYTE
-3"
#OMMAND
NORESPEXPECTED
2ESPONSEBYTE
,3"
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
000PARAM
VALUE Byte 2 (if needed)
from host
VALUE Byte 1 (if needed)
VALUE Byte 0
The SetParam command sets the PARAM register value equal to VALUE; PARAM is the
respective register address listed in Ta b le 1 2 .
The command should be followed by the new register VALUE (most significant byte first).
The number of bytes making up the VALUE argument depends on the length of the target
register (see Ta bl e 1 2 ).
Some registers cannot be written (see Ta b le 1 2 ); any attempt to write one of those registers
causes the command to be ignored and the WRONG_CMD flag to rise at the end of the
command byte as if an unknown command code were sent (see Section 9.1.22).
Some registers can only be written in particular conditions (see Ta b le 1 2 ); any attempt to
write one of those registers when the conditions are not satisfied causes the command to be
ignored and the NOTPERF_CMD flag to rise at the end of the last argument byte (see
Section 9.1.22).
Any attempt to set an inexistent register (wrong address value) causes the command to be
ignored and the WRONG_CMD flag to rise at the end of the command byte as if an
unknown command code were sent.
Doc ID16737 Rev 457/70
Programming manualL6470
9.2.4 GetParam (PARAM)
Table 40.GetParam command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
001PARAMfrom host
ANS Byte 2 (if needed)to host
ANS Byte 1 (if needed)to host
ANS Byte 0to host
This command reads the current PARAM register value; PARAM is the respective register
address listed in Ta bl e 1 2 .
The command response is the current value of the register (most significant byte first). The
number of bytes making up the command response depends on the length of the target
register (see Ta bl e 1 2 ).
The returned value is the register one at the moment of GetParam command decoding. If
register values change after this moment, the response is not accordingly updated.
All registers can be read anytime.
Any attempt to read an inexistent register (wrong address value) causes the command to be
ignored and the WRONG_CMD flag to rise at the end of the command byte as if an
unknown command code were sent.
9.2.5 Run (DIR, SPD)
Table 41.Run command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0101000DIR from host
XXXXSPD (Byte 2)from host
SPD (Byte 1)from host
SPD (Byte 0)from host
The Run command produces a motion at SPD speed; the direction is selected by the DIR
bit: '1' forward or '0' reverse. The SPD value is expressed in step/tick (format unsigned fixed
point 0.28) that is the same format as the SPEED register (see Section 9.1.4).
Note:The SPD value should be lower than MAX_SPEED and greater than MIN_SPEED
otherwise the Run command is executed at MAX_SPEED or MIN_SPEED respectively.
This command keeps the BUSY flag low until the target speed is reached.
This command can be given anytime and is immediately executed.
58/70Doc ID16737 Rev 4
L6470Programming manual
9.2.6 StepClock (DIR)
Table 42.Stepclock command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0101100DIR from host
The StepClock command switches the device in Step-clock mode (see Section 6.7.5) and
imposes the forward (DIR = '1') or reverse (DIR = '0') direction.
When the device is in Step-clock mode, the SCK_MOD flag in the STATUS register is raised
and the motor is always considered stopped (see Section 6.7.5 and 9.1.22).
The device exits from Step-clock mode when a constant speed, absolute positioning or
motion command is sent through SPI. Motion direction is imposed by the respective
StepClock command argument and can by changed by a new StepClock command without
exiting Step-clock mode.
Events that cause bridges to be forced into high impedance state (overtemperature,
overcurrent, etc.) do not cause the device to leave Step-clock mode.
The StepClock command does not force the BUSY flag low. This command can only be
given when the motor is stopped. If a motion is in progress, the motor should be stopped
and it is then possible to send a StepClock command.
Any attempt to perform a StepClock command when the motor is running causes the
command to be ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
9.2.7 Move (DIR, N_STEP)
Table 43.Move command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0100000DIR from host
XXN_STEP (Byte 2)from host
The Move command produces a motion of N_STEP microsteps; the direction is selected by
the DIR bit ('1' forward or '0' reverse).
The N_STEP value is always in agreement with the selected step mode; the parameter
value unit is equal to the selected step mode (full, half, quarter, etc.).
This command keeps the BUSY flag low until the target number of steps is performed. This
command can only be performed when the motor is stopped. If a motion is in progress, the
motor must be stopped and it is then possible to perform a Move command.
Any attempt to perform a Move command when the motor is running causes the command
to be ignored and the NOTPERF_CMD flag to rise (see Section 9.1.22).
N_STEP (Byte 1)from host
N_STEP (Byte 0)from host
Doc ID16737 Rev 459/70
Programming manualL6470
9.2.8 GoTo (ABS_POS)
Table 44.GoTo command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0 1 1 00000 from host
XXABS_POS (Byte 2)from host
ABS_POS (Byte 1)from host
ABS_POS (Byte 0)from host
The GoTo command produces a motion to ABS_POS absolute position through the shortest
path. The ABS_POS value is always in agreement with the selected step mode; the
parameter value unit is equal to the selected step mode (full, half, quarter, etc.).
The GoTo command keeps the BUSY flag low until the target position is reached.
This command can be given only when the previous motion command has been completed
(BUSY flag released).
Any attempt to perform a GoTo command when a previous command is under execution
(BUSY low) causes the command to be ignored and the NOTPERF_CMD flag to rise (see
Section 9.1.22).
9.2.9 GoTo_DIR (DIR, ABS_POS)
Table 45.GoTo_DIR command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0110100DIR from host
XXABS_POS (Byte 2)from host
ABS_POS (Byte 1)from host
ABS_POS (Byte 0)from host
The GoTo_DIR command produces a motion to ABS_POS absolute position imposing a
forward (DIR = '1') or a reverse (DIR = '0') rotation. The ABS_POS value is always in
agreement with the selected step mode; the parameter value unit is equal to the selected
step mode (full, half, quarter, etc.).
The GoTo_DIR command keeps the BUSY flag low until the target speed is reached. This
command can be given only when the previous motion command has been completed
(BUSY flag released).
Any attempt to perform a GoTo_DIR command when a previous command is under
execution (BUSY low) causes the command to be ignored and the NOTPERF_CMD flag to
rise (see Section 9.1.22).
60/70Doc ID16737 Rev 4
L6470Programming manual
9.2.10 GoUntil (ACT, DIR, SPD)
Table 46.GoUntil command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
1000ACT01DIRfrom host
XXXXSPD (Byte 2)from host
SPD (Byte 1)from host
SPD (Byte 0)from host
The GoUntil command produces a motion at SPD speed imposing a forward (DIR = '1') or a
reverse (DIR = '0') direction. When an external switch turn-on event occurs (see
Section 6.13), the ABS_POS register is reset (if ACT = '0') or the ABS_POS register value is
copied into the MARK register (if ACT = '1'); then the system performs a SoftStop command.
The SPD value is expressed in step/tick (format unsigned fixed point 0.28) that is the same
format as the SPEED register (see Section 9.1.4).
The SPD value should be lower than MAX_SPEED and greater than MIN_SPEED,
otherwise the target speed is imposed at MAX_SPEED or MIN_SPEED respectively.
If the SW_MODE bit of the CONFIG register is set low, the external switch turn-on event
causes a HardStop interrupt instead of the SoftStop one (see Section 6.13 and 9.1.21).
This command keeps the BUSY flag low until the switch turn-on event occurs and the motor
is stopped. This command can be given anytime and is immediately executed.
9.2.11 ReleaseSW (ACT, DIR)
Table 47.ReleaseSW command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
1001ACT01DIRfrom host
The ReleaseSW command produces a motion at minimum speed imposing a forward (DIR =
'1') or reverse (DIR = '0') rotation. When SW is released (opened), the ABS_POS register is
reset (ACT = '0') or the ABS_POS register value is copied into the MARK register (ACT =
'1'); the system then performs a HardStop command.
Note that resetting the ABS_POS register is equivalent to setting the HOME position.
If the minimum speed value is less than 5 step/s or low speed optimization is enabled, the
motion is performed at 5 step/s.
The ReleaseSW command keeps the BUSY flag low until the switch input is released and
the motor is stopped.
Doc ID16737 Rev 461/70
Programming manualL6470
9.2.12 GoHome
Table 48.GoHome command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
01110000 from host
The GoHome command produces a motion to the HOME position (zero position) via the
shortest path.
Note that this command is equivalent to the “GoTo(0…0)” command. If a motor direction is
mandatory, the GoTo_DIR command must be used (see Section 9.2.9).
The GoHome command keeps the BUSY flag low until the home position is reached. This
command can be given only when the previous motion command has been completed. Any
attempt to perform a GoHome command when a previous command is under execution
(BUSY low) causes the command to be ignored and the NOTPERF_CMD to rise (see
Section 9.1.22).
9.2.13 GoMark
Table 49.GoMark command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
01111000from host
The GoMark command produces a motion to the MARK position performing the minimum
path.
Note that this command is equivalent to the “GoTo (MARK)” command. If a motor direction is
mandatory, the GoTo_DIR command must be used.
The GoMark command keeps the BUSY flag low until the MARK position is reached. This
command can be given only when the previous motion command has been completed
(BUSY flag released).
Any attempt to perform a GoMark command when a previous command is under execution
(BUSY low) causes the command to be ignored and the NOTPERF_CMD flag to rise (see
Section 9.1.22).
9.2.14 ResetPos
Table 50.ResetPos command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
11011000 from host
The ResetPos command resets the ABS_POS register to zero. The zero position is also
defined as HOME position (see Section 6.5).
62/70Doc ID16737 Rev 4
L6470Programming manual
9.2.15 ResetDevice
Table 51.ResetDevice command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
11000000 from host
The ResetDevice command resets the device to power-up conditions (see Section 6.1).
Note:At power-up the power bridges are disabled.
9.2.16 SoftStop
Table 52.SoftStop command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
10110000 from host
The SoftStop command causes an immediate deceleration to zero speed and a consequent
motor stop; the deceleration value used is the one stored in the DEC register (see
Section 9.1.6).
When the motor is in high impedance state, a SoftStop command forces the bridges to exit
from high impedance state; no motion is performed.
This command can be given anytime and is immediately executed. This command keeps
the BUSY flag low until the motor is stopped.
9.2.17 HardStop
Table 53.HardStop command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
10111000 from host
The HardStop command causes an immediate motor stop with infinite deceleration.
When the motor is in high impedance state, a HardStop command forces the bridges to exit
from high impedance state; no motion is performed.
This command can be given anytime and is immediately executed. This command keeps
the BUSY flag low until the motor is stopped.
9.2.18 SoftHiZ
Table 54.SoftHiZ command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
10100000 from host
Doc ID16737 Rev 463/70
Programming manualL6470
The SoftHiZ command disables the power bridges (high impedance state) after a
deceleration to zero; the deceleration value used is the one stored in the DEC register (see
Section 9.1.6). When bridges are disabled, the HiZ flag is raised.
When the motor is stopped, a SoftHiZ command forces the bridges to enter into high
impedance state.
This command can be given anytime and is immediately executed. This command keeps
the BUSY flag low until the motor is stopped.
9.2.19 HardHiZ
Table 55.HardHiZ command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
10101000 from host
The HardHiZ command immediately disables the power bridges (high impedance state) and
raises the HiZ flag.
When the motor is stopped, a HardHiZ command forces the bridges to enter into high
impedance state.
This command can be given anytime and is immediately executed. This command keeps
the BUSY flag low until the motor is stopped.
9.2.20 GetStatus
Table 56.GetStatus command structure
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
11010000 from host
The GetStatus command returns the STATUS register value.
The GetStatus command resets the STATUS register warning flags. The command forces
the system to exit from any error state. The GetStatus command DOES NOT reset the HiZ
flag.
STATUS MSByteto host
STATUS LSByteto host
64/70Doc ID16737 Rev 4
L6470Package mechanical data
10 Package mechanical data
In order to meet environmental requirements, ST offers these devices in different grades of
®
ECOPACK
specifications, grade definitions and product status are available at: www.st.com.
ECOPACK
Table 57.HTSSOP28 mechanical data
packages, depending on their level of environmental compliance. ECOPACK®
®
is an ST trademark.
mm
Dim.
Min.Typ.Max.
A1.2
A10.15
A20.81.01.05
b0.190.3
c0.090.2
(1)
D
D15.5
E6.26.46.6
(2)
E1
E22.8
E0.65
9.69.79.8
4.34.44.5
L0.450.60.75
L11.0
K0°8°
Aaa0.1
1. Dimension “D” does not include mold flash, protrusions or gate burrs. Mold flash, protrusions or gate burrs
must not exceed 0.15 mm per side.
2. Dimension “E1” does not include interlead flash or protrusions. Interlead flash or protrusions must not
05-Nov-20102Document status promoted from preliminary data to datasheet
18-May-20113
19-Jun-20124
Updated: Tab le 4 , Ta bl e 5
Added: Section 6.7.6, Section 6.4.1
Added device in POWERSO36 and Figure 3
Updated: Tab le 2 , Ta bl e 3 , Table 4, Table 5, Table 6, Tab le 9 and
Section 9.1.11.
Minor text changes.
Doc ID16737 Rev 469/70
L6470
Please Read Carefully:
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY TWO AUTHORIZED ST REPRESENTATIVES, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.