dm00095012

AN4355
Application note
L648x devices: high power stepper motor controllers
Enrico Poli
Introduction
The L6480 and L6482 devices are motor controllers providing a flexible solution for the high
power stepper motor applications. The devices can be controlled by a host microcontroller
through a fast SPI interface and are able to execute a complete set of motion commands.
This document describes how the devices can be configured and gives some suggestions
on the operation and application design.
The current control algorithm of the devices - voltage mode driving for the L6480 and the
advanced current control for the L6482 device - will be not investigated in this document.
Please refer to the respective application notes AN4144 “Voltage mode control operation
and parameter optimization” and AN4158 “Peak current control with automatic decay
adjustment and predictive current control: basics and setup” for more details about them.
March 2015
DocID025240 Rev 2
1/25
www.st.com
25
Contents
AN4355
Contents
1
2
The L6480 and L6482 communication interface . . . . . . . . . . . . . . . . . . . 3
1.1
Communication protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2
Daisy chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3
5 V and 3.3 V communication interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Motion engine control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1
Speed tracking commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2
Positioning commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Change the target position of the on-the-fly command . . . . . . . . . . . . . . . . . . . . . . 9
2.3
Stop commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4
Initializing position using GoUntil and ReleaseSW commands . . . . . . . . 10
3
Supply management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4
Gate driving circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5
4.1
Turn-on sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2
Turn-off sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Protections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1
Overtemperature protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2
Overcurrent protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3
Gate drivers undervoltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.4
VS undervoltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6
Stall detection (L6480 only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7
Main clock source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8
Layout suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2/25
DocID025240 Rev 2
AN4355
1
The L6480 and L6482 communication interface
The L6480 and L6482 communication interface
The device (always slave) can be driven by an MCU (always master) sending commands
through an 8-bit SPI interface. The 8-bit shift register of the device is kept enabled while the
CS input is forced low. During this time, at every raising edge of the serial clock (CK), the
SDI input is stored into the shift register. At CK falling edges the SDO output is updated
according to the last bit of the shift register.
When the CS input is raised, the device catches the shift register content and interprets its
value as a command or an argument of the previously received command.
All the bytes are sent through the SPI data lines starting from the most significant bit.
1.1
Communication protocol
The communication protocol is based on single byte commands that can be followed by
a command argument up to 3 byte long which must be transmitted starting from the most
significant byte.
Part of the information needed to execute the target operation could be embedded into the
command byte, for example the target register address in the GetParam and SetParam
commands, and the argument provides extra data as well as the target position of the GoTo
command.
By default the response byte of the device is h00 (hexadecimal format). Some commands,
for example those used to read the value of a register, generate a response from the device
up to 3 byte long which is transmitted during the following transmission cycles starting from
the most significant byte.
1.2
Daisy chain
The device is compatible with the daisy chain architecture allowing the MCU to drive
multiple devices with a single SPI interface.
The daisy chain architecture is obtained as follows:

Master serial clock line is connected to the CK input of each slave device.

Master slave select line is connected to the CS input of each slave device.

Master serial data output (MOSI) is connected to the SDI input of the first slave of the
chain.

The SDO output of each slave device is connected to the SDI input of the next one, last
slave excluded.

Master serial data input (MISO) is connected to the SDO output of the last slave of the
chain.
DocID025240 Rev 2
3/25
25
The L6480 and L6482 communication interface
AN4355
The connection diagram of the configuration is shown in Figure 1.
Figure 1.
Daisy chain connection diagram
MCU
Slave select
Serial clock
Serial data out
Device 1 (1st of the chain)
Device X
Device X+1
Device N (last of the chain)
Serial data in
CS
CS
CS
CK
CK
CK
SDI
SDI
SDO
to SDI of
device 2
SDO
from SDO of
device X -1
SDI
CS
CK
SDI
SDO
to SDI of
device X+2
SDO
from SDO of
device N -1
AM16587v1
In this configuration, the chain of slaves acts as a single slave with an SPI device of N byte.
Each communication cycle, for example when the master needs to transmit/receive a byte
from/to a slave, the master must fill all the shift registers of the slaves before raising the CS
line.
The devices are addressed according to the position of the byte in the communication cycle:
the first byte transmitted by the master is received by the last device of the chain; the
second one is received by the last-but-one slave and so on down to the last transmitted byte
which is received by the first slave of the chain. The response bytes from the device chain
are addressed to the same way: the first byte received by the master has been transmitted
by the last device of the chain; the second one has been transmitted by the last-but-one
slave and so on down to the last received byte which has been transmitted by the first slave
of the chain.
In theory, the number of slaves that an MCU can drive using the daisy chain configuration is
unlimited; in practice the maximum number of devices connected to the same SPI depends
on the clock skew.
The number of slaves limits the communication speed also because every time a byte has
to be transmitted to a device, the whole N slave chain has to be filled transmitting N - 1 extra
bytes.
4/25
DocID025240 Rev 2
AN4355
1.3
The L6480 and L6482 communication interface
5 V and 3.3 V communication interface
The device can be configured to operate both with 3.3 V or 5 V standard logic as shown in
Figure 2.
Figure 2. Logic interface supply scenarios
)XOO\VHOIVXSSOLHGGHYLFH
FRPSOLDQWZLWK9ORJLF
&5(*32/
&5(*
Q)
&''
95(*
9''
&''32/
Q)
9
6HOIVXSSOLHGGHYLFH
FRPSOLDQWZLWK9ORJLF
&5(*32/
&5(*
Q)
&''
95(*
9''
Q)
9&&5(* 95(* 9''
Q)
&''32/
9
([WHUQDOO\VXSSOLHGGHYLFH
FRPSOLDQWZLWK 9ORJLF
&5(*
Q)
&''
9
9
([WHUQDOO\VXSSOLHGGHYLFH
FRPSOLDQWZLWK9ORJLF
&''32/
&5(*
Q)
9&&5(* 95(* 9''
&''
&''32/
Q)
$0
DocID025240 Rev 2
5/25
25
Motion engine control
2
AN4355
Motion engine control
The L648x devices integrate a motion engine providing a full set of commands. The motion
engine generates the step sequence according to the programmed speed profile and the
requested command.
The speed profile represents the operation boundaries, defined by the acceleration,
deceleration, maximum and minimum speed, which should be respected to ensure the
proper functioning of the application.
The devices allow all the parameters to be set independently:

Acceleration and deceleration values range from 14.55 up to 59590 steps/s2. The
device can also be set to use an infinite acceleration and deceleration value; in this
case, both the acceleration and deceleration phases are totally skipped.

Maximum speed value ranges from 15.25 steps/s up to 15610 step/s.

Minimum speed value ranges from 0 up to 976 steps/s.
The acceleration, deceleration and minimum speed parameters can be modified when the
motor is stopped only. The maximum speed can be also changed when the motor is
running, but the new value is only considered at next command execution.
The commands supported by the motion engine are listed in Table 1.
Table 1. Command list
Name
Length
(bytes)
Description
Notes
Move
4 (including 3 Performing the target number of microsteps
of arguments) as per requested direction.
Can be executed when the motor is
stopped only.
GoTo
4 (including 3 Reaching the absolute target position
of arguments) (ABS_POS register) using the shortest path.
Not accepted while another command
is under execution.
GoTo_DIR
Reaching the absolute target position
4 (including 3
Not accepted while another command
(ABS_POS register) running as per requested
of arguments)
is under execution.
direction.
GoHome
1
Reaching the home position (all zeroes) using Not accepted while another command
the shortest path.
is under execution.
GoMark
1
Reaching the position stored into the MARK
register using the shortest path.
Run
StepClock
GoUntil
ReleaseSW
6/25
4 (including 3 Reaching the target speed in the requested
of arguments) direction.
1
Switching the device in step-clock mode
imposing the direction.
Not accepted while another command
is under execution.
Always accepted and immediately
executed (if present, the previous
command is aborted)
Can be executed when the motor is
stopped only.
Reaching the speed target in the requested
4 (including 3
direction and stopping when SW input is
of arguments)
forced low (falling edge).
Always accepted and immediately
executed (if present, the previous
command is aborted)
Running the motor at low speed in the
requested direction and stopping when SW
input is forced high (rising edge).
Always accepted and immediately
executed (if present, the previous
command is aborted)
1
DocID025240 Rev 2
AN4355
Motion engine control
Table 1. Command list (continued)
Name
Length
(bytes)
SoftStop
1
Stopping the motor in accordance to the
programmed speed profile.
Always accepted and immediately
executed (if present, the previous
command is aborted)
HardStop
1
Stopping the motor immediately (infinite
deceleration).
Always accepted and immediately
executed (if present, the previous
command is aborted)
SoftHiZ
1
Stopping the motor in accordance to the
Always accepted and immediately
programmed speed profile and then disabling executed (if present, the previous
the power bridges.
command is aborted)
HardHiz
1
Disabling the power bridges immediately.
2.1
Description
Notes
Always accepted and immediately
executed (if present, the previous
command is aborted)
Speed tracking commands
During the speed tracking, the device dynamically changes the motor speed according to
the application requirements. The Run command can be used to achieve this result.
The Run command sets the speed target and direction which the motor has to reach. Both
speed target and direction can be changed in real time through a new Run command (see
Figure 3).
Figure 3. Speed tracking using Run command sequences
Speed
500
Run(forward, 600)
400
300
200
100
Time
Run(forward, 100)
100
Run(forward, 400)
200
Run(reverse, 300)
300
400
AM16589v1
DocID025240 Rev 2
7/25
25
Motion engine control
2.2
AN4355
Positioning commands
The motion engine, integrated into the devices, allows the position of the motor in a target
position based on integrated ABS_POS register.
The ABS_POS register traces all the motion performed by the motor adding a unit to each
microstep completed in forward direction and subtracting a unit when the microstep is
performed in reverse direction.
The target positioning can be directly imposed indicating the ABS_POS register value
(absolute position) or the distance between the current position and the target one (relative
position).
The relative positioning command is Move. The motion engine executes this command only
when the motor is stopped in order to avoid unexpected behaviors (e.g.: the target of
number of steps is not enough to allow the speed profile compliance).
Figure 4. Relative positioning command example
h3FFFFF 0 h000001
Final position
h3FFFFF 0 h000001
Starting position
Move(Reverse)
Starting position
Move(Forward)
h200000
h200000 h1FFFFF
Final position
h1FFFFF
AM16590v1
The absolute positioning commands are GoTo and GoTo_DIR. The former moves the motor
to the position target choosing the rotation direction according to a minimum path algorithm
(i.e.: the lower number of microsteps is executed) whereas the latter imposes the direction
directly.
Figure 5. Absolute positioning command example
h3FFFFF 0 h000001
h3FFFFF 0 h000001
Target position
Target position
GoTo
Starting position
Starting position
GoTo_DIR(Forward)
h200000 h1FFFFF
h200000 h1FFFFF
AM16591v1
8/25
DocID025240 Rev 2
AN4355
Motion engine control
If a GoTo command is requested when the motor is running, the minimum path algorithm
also considers the steps required to reverse the direction (see Figure 6).
Figure 6. Minimum path algorithm when motor is running
h3FFFFF 0 h000001
Reverse direction path
Current position
Target position
Motor is running
in forward direction
Forward direction path
Zero speed position
(where the motor will stop if it starts decelerating)
h200000 h1FFFFF
Reverse direction path > Forward direction path then forward direction is used.
AM16592v1
The GoTo and GoTo_DIR can only be executed when no other commands are under
execution.
Change the target position of the on-the-fly command
If a Run command is sent to the device during the execution of a GoTo command, it aborts
the previous command. This effect can be used to change the target position of the motion
engine on-the-fly.
Following the suggested sequence of operations:
1.
Read the current motor speed (SPEED register) and direction (DIR bit in the STATUS
register).
2.
Send a Run command setting the target speed and direction equal to the values
obtained at point 1.
3.
Wait for the execution command monitoring the BUSY pin or the BUSY flag in the
STATUS register.
4.
Send the new positioning command.
This operation could introduce a small error in the generation of the speed profile. If the
target position is changed a high number of times (tracking position) the error increases and
anomalous behaviors could occur.
DocID025240 Rev 2
9/25
25
Motion engine control
2.3
AN4355
Stop commands
The motor can be stopped through the stop commands. These commands can be sent at
any time and they are executed immediately.
The SoftStop command stops the motor fitting the deceleration value of the speed profile
whereas HardStop command stops the motor immediately (infinite deceleration).
The SoftHiZ and HardHiZ commands operate similarly, but the power bridges are disabled
as soon as the zero speed is reached (the high impedance status is forced).
2.4
Initializing position using GoUntil and ReleaseSW
commands
The Information stored into the ABS_POS register can be initialized according to an
external position sensor. In this way a relation between ABS_POS value and mechanical
position of the motor is established.
The position initialization sequence, as shown in Figure 7, is the following:
10/25
1.
In power-up status, the load position is unknown.
2.
Using GoUntil command the load is moved to the limit switch at high speed.
3.
When the load reaches the limit switch the SW input of the device is forced low. The
motor decelerates and then stops.
4.
Considering the high speed used to approach the load to the limit switch, a significant
error in the positioning could happen.
5.
Using ReleaseSW command the load is moved away from the limit switch at low
speed.
6.
As soon as the threshold position of the limit switch is crossed by the load the SW input
of the device is forced high. The motor stops immediately.
7.
The load is positioned in correspondence to the threshold position of the limit switch
with high precision.
DocID025240 Rev 2
AN4355
Motion engine control
Figure 7.
Initialization position using GoUntil and ReleaseSW commands
Position sensor
(limit switch)
Load in unknown
position
SW
Stepper motor
dSPIN family motor driver
GoUntil command is executed and the load reaches the limit switch
SW
ReleaseSW command is executed and the load is positioned
exactly on the triggering point of the limit switch
SW
AM16593v1
DocID025240 Rev 2
11/25
25
Supply management
3
AN4355
Supply management
The L648x devices integrate two linear voltage regulators which can be used for the
generation of the supply voltages of the gate drivers and the control logic. This allows the
device to operate both using a single supply source (the motor supply) and using separated
supply sources for gate driving and logic parts.
The supply pins of the device are listed in Table 2.
Table 2. Device supply pins
Pin
Voltage range (operative)
Description
VS
From VSREG to 85 V
Motor supply voltage. It is used by the device only as a reference
voltage for internal circuitry.
VBOOT
From VS to VS + VCC
High-side gate drivers supply voltage. It is generated through
a charge pump circuit. The charge pump is supplied by the VCC pin.
VSREG
From VCC + 3 V to VS or shorted
Input voltage of the VCC linear voltage regulator.
to VCC (VCC directly supplied)
VCC
VCCREG
VREG
VDD
From 7.5 V to 15 V
Output voltage of the VCC linear voltage regulator and low-side gate
drivers supply voltage. It is also the supply voltage of the charge
pump circuit generating the VBOOT voltage.
From 6.3 V to VCC or shorted to
Input voltage of the VREG linear voltage regulator.
VREG (VREG directly supplied)
3.3 V
Output voltage of the VREG linear voltage regulator and logic supply
voltage.
3.3 V or 5 V
Digital outputs supply voltage.
The supply circuit for the gate drivers is shown in Figure 8. When the VCC voltage is
generated through the integrated linear regulator the VSREG pin must be connected to
a supply voltage ranging from VCC + 3 V (3 V is the dropout voltage of the linear regulator)
and the motor supply voltage VS. VSREG must be always lower than VBOOT otherwise the
ESD protection diode is turned on and the device can be damaged.
The device can be protected from this event adding an external low drop diode between the
VSREG and VS pins, charge pump diodes should be low drop too.
In order to supply directly the gate driving circuitry the external supply voltage must be
connected to both the VCC and VSREG pins; this way the internal linear regulator is
disabled.
12/25
DocID025240 Rev 2
AN4355
Supply management
Figure 8. Gate drivers supply circuit
+LJKVLGH
JDWHGULYHUV
9%227
(6'
GLRGH
&3
965(*·9
96
(6'
GLRGH
9&&9·96
965(*
99
9&&
/RZVLGH
JDWHGULYHUV
DQGFKDUJHSXPS
$0
The supply circuit for the device logic is shown in Figure 9. When the VREG voltage is
generated through the integrated linear regulator the VCCREG pin must be connected to
a supply voltage ranging from VREG + 3 V = 6.3 V (3 V is the dropout voltage of the linear
regulator) and VCC. VCCREG must be always lower than VCC otherwise the ESD protection
diode is turned on and the device can be damaged.
The device can be protected from this event adding an external low drop diode between the
VCCREG and VCC pins.
In order to supply directly the logic the external supply voltage must be connected to both
the VREG and VCCREG pins; this way the internal linear regulator is disabled.
Figure 9. Logic supply circuit
9&&
(6'
GLRGH
95(*9·9&&
9&&5(*
9
95(*
/RJLF
$0
DocID025240 Rev 2
13/25
25
Gate driving circuitry
4
AN4355
Gate driving circuitry
The L648x devices integrate a programmable gate driving circuitry which allows to drive
a wide range of external N-channel MOSFETs.
The parameters which can be set are listed in Table 3.
Table 3. Gate driving circuit parameters
Parameter
Description
Gate source/sink current
The current used to charge/discharge the gate of the MOSFETs.
Controlled current time
(charging time)
The charging/discharging time of the gate of the MOSFETs.
Turn-off current boost time
The part of the discharging time during which the gate current is forced
to the maximum value.
Deadtime
The time between the turn-off of a MOSFET and the turn-on of the
opposite one.
Blanking time
The time after the MOSFETs commutation where the sensing circuitry is
disabled in order to avoid spurious triggering.
Figure 10. Gate driving circuit diagram
9%227
&3
96
9&&
96
+9*;<
9
+6026)(7
287;<
9&&
/9*;<
/6026)(7
5 VHQVH
/RQO\
*1'
$0
14/25
DocID025240 Rev 2
AN4355
Gate driving circuitry
Both the high-side and low-side gate drivers are programmable current generators which
allow to charge and discharge the MOSFETs gate with a constant current. The gate drivers
also integrate a Miller clamp MOSFET which avoids induced turn-on effect.
The low-side gate driver is supplied by the VCC pin which can be connected both to an
external voltage source and to the integrated linear regulator which generates the supply
voltage (7.5 V or 15 V according to the configuration) from the VSREG supply pin.
The high-side gate driver is supplied by charge pump circuitry. This way the on time of the
high-side MOSFET is not limited as in the case of a bootstrap capacitor. A clamping diode
limits the gate-source voltage of the high-side MOSFET to 17 V avoiding the breaking of the
gate in case of the power stage output is short-circuited to ground. In fact in this case, if the
voltage limiter was not present, the final gate-source voltage of the high-side MOSFET was
equal to VBOOT (see Figure 11).
Figure 11. high-side gate driver operation when output is shorted to ground
9%227
&3
96
9&&
96
+9*;<
9
+6026)(7
9JV 9
287;<
$0
Warning:
The clamping diode protects the MOSFET from the Vgs
breakdown, but not by the high current which can be
generated by the short-circuit condition.
DocID025240 Rev 2
15/25
25
Gate driving circuitry
4.1
AN4355
Turn-on sequence
When one of the external MOSFET must be turned-on the gate driving circuitry disables the
respective Miller clamp switch and starts forcing the programmed current into the gate. After
the controlled current time expires, the high-side and the low-side drivers act differently: the
low-side drivers do not limit the gate current; the high-side ones instead limit the gate
current to about 1 mA.
Figure 12. Turn-on sequence
WFF
/RZVLGHJDWHFXUUHQWLVQRW
OLPLWHGDWWKHHQGRIWKHWFFWLPH
4J
,JDWH
+LJKVLGHJDWHFXUUHQWLVOLPLWHG
WRP$DWWKHHQGRIWKHWFFWLPH
$0
4.2
Turn-off sequence
When one of the external MOSFET must be turned-off the gate driving circuitry starts
sinking the programmed current from the gate. At the beginning of the controlled current
time the gate current is set to the maximum for tboost time. After the controlled current time
expires, the Miller clamp switch is turned on.
16/25
DocID025240 Rev 2
AN4355
Gate driving circuitry
Figure 13. Turn-off sequence
W FF
W ERRVW
,ERRVW ,JDWH
4J
$0
DocID025240 Rev 2
17/25
25
Protections
5
AN4355
Protections
The L648x devices provide a complete set of protections designed to prevent damaging the
device in critical conditions.
The implemented protections are:
5.1

Overtemperature (see Section 5.1)

Overcurrent (see Section 5.2)

Gate drivers undervoltage (see Section 5.3)

VS undervoltage (see Section 5.4)
Overtemperature protection
The overtemperature protection disables the power stage of the device when the
temperature of the chip exceeds the safe operation conditions.
The device provides a 3-levels protection: when the temperature exceeds the warning
threshold an alarm condition is set, but the device operation is still guarantee. If the
temperature further increase, the output shutdown threshold is triggered and the gate
drivers are disabled. The device is kept in this condition until the junction temperature
decreases below the release threshold. A second protection is triggered if the device
temperature continues increasing even when the gate drivers are disabled. This protection
turns off the internal voltage regulators and it is released only when the device temperature
falls below the warning threshold.
5.2
Overcurrent protection
The overcurrent protection monitors the drain-source voltage drop of all the external power
MOSFETs and disables the power stage when the programmed threshold is reached. No
information about the specific MOSFET or bridge causing the failure is available.
As soon as the overcurrent protection is triggered the device is locked in a safe condition (all
MOSFETS are turned off) and is kept in this condition until the OCD failure flag is released
by a GetStatus command (see the Section 6.9 in the L6480 and L6482 datasheet for
details).
When the device is locked in safe state no commands which enable the bridges can be
executed (e.g.: Move, Run, GoTo, HardStop, etc.). The commands are simply ignored, no
non-performable signaling is returned by the device.
Warning:
18/25
The overcurrent protection can be disabled setting the
OC_SD pin of the CONFIG register to zero. However it is not
recommended to disable this protection.
DocID025240 Rev 2
AN4355
Protections
The relation between the voltage threshold which is programmed into the device register
and the actual load current is defined by Equation 1:
Equation 1
IOCDth = VOCDth × Rds(ON)
Where Rds(ON) is the ON resistance of the external MOSFET. Considering that the on
resistance value varies with temperature and gate voltage, the VCC value and the operative
temperature of the power stage must be considered when the threshold value is defined.
5.3
Gate drivers undervoltage
The undervoltage protection avoids the gate driving circuitry of the device to operate with
a supply voltage below a programmed value. This way a minimum gate-source voltage for
the external MOSFET is guaranteed.
At power-up the device is in undervoltage status: the power stage is kept disabled until the
VCC voltage is below the turn-on threshold. In this condition all the commands enabling the
bridges (e.g.: Move, Run, GoTo, HardStop, etc.) are ignored and the UVLO failure flag is
forced low.
When the turn-on threshold is reached the power stage is operative. The UVLO flag is kept
low until it is released through a GetStatus command.
The device returns in undervoltage status if the supply voltage falls below the turn-off
threshold.
Figure 14. Undervoltage protection
9&&
7X UQRQWKUHVKROG
7XUQRIIWKUHVKROG
3RZHUEULGJHV
3RZHUEULGJHVFDQEHHQDEOHG
DUHNHSWGLVDEOHG
7KH89/2IODJLVNHSWORZXQWLO
7KH89/2IODJLVIRUFHGORZ LWLVUHOHDVHG*HW6WDWXVFRPPDQG
3RZHUEULGJHVDUHNHSWGLVDEOHG
7KH89/2IODJLVIRUFHGORZ
3RZHUEULGJHVFDQEHHQDEOHG
7KH89/2IODJLVNHSWORZXQWLO
LWLVUHOHDVHG*HW6WDWXVFRPPDQG
7LPH
$0
Two possible threshold values can be set through the UVLOVAL bit in the CONFIG register.
DocID025240 Rev 2
19/25
25
Protections
5.4
AN4355
VS undervoltage
The device also provides an undervoltage detection feature for the power stage supply (VS)
through the integrated ADC. Connecting the ADCIN pin to VS through a voltage divider the
motor supply voltage is constantly monitored.
When the ADC input voltage falls below 1.16 V (typical), the protection is triggered and the
UVLO_ADC failure flag is asserted. The failure flag can be released through a GetStatus
command after the ADC input voltage returns above the threshold value. The protection
does not affect the device operation.
If the voltage divider is sized in order to obtain VREG/2 voltage at the ADCIN pin when VS is
at its nominal, the VS undervoltage threshold corresponds to a reduction of the 30% of the
nominal supply voltage.
20/25
DocID025240 Rev 2
AN4355
6
Stall detection (L6480 only)
Stall detection (L6480 only)
The L6480 device also includes a sensorless stall detection system. This feature allows the
device to detect the stall condition of the motor measuring the increase of the phase current
caused by the sudden cancellation of the back electromotive force.
The voltage mode control applies a sinusoidal voltage to the motor phases obtaining
a sinusoidal current. The amplitude of the voltage sine wave is increased with speed in
order to compensate the back electromotive force effect and keep the amplitude of the
phase current constant. If the motor stalls (i.e.: stops its rotation) the back electromotive
force becomes null, but the voltage applied to the phase is still increased to face its effect. In
this condition the phase current results higher than the nominal one and the stall condition
can be easily detected. The load current is measured monitoring the drain-source voltage
drop of the low-side external power MOSFETs.
The stall detection threshold must be set above the nominal peak current.
Figure 15. Stall detection threshold
1RUPDOFRQGLWLRQV
6WDOOFRQGLWLRQV
6WDOOWKUHVKROG
,SK
6WDOOWKUHVKROG
,SK
$0
The relation between the voltage threshold which is programmed into the device register
and the actual load current is defined by the following formula:
Equation 2
ISTALLth = VSTALLth × Rds(ON)
Where Rds(ON) is the ON resistance of the external MOSFET. Considering that the on
resistance value varies with temperature and gate voltage, the VCC value and the operative
temperature of the power stage must be considered when the threshold value is defined.
DocID025240 Rev 2
21/25
25
Main clock source
7
AN4355
Main clock source
The motion engine integrated into the L648x generates the internal step clock starting from
the main clock source of the system. As a consequence, the perturbations on the main clock
affect the accuracy with which the device generates the speed of the motor (step rate).
The main clock also affects the following parameters:

Gate driving timings (controlled current time, boost time, deadtime and blanking time).

Frequency of the PWM modulators (L6480).

On time measurement and current control timings (L6482).
The devices can operate with both external and internal clock sources. By default the clock
source is the integrated oscillator operating at 16 MHz. This solution, if compared to a high
precision external source, allows the maximum integration with lower precision of the
generation of the speed profile (acceleration, deceleration and target speed). The effects on
the current control systems (voltage mode or advanced current control) are negligible.
The device can be configured to use an external clock source or to drive a crystal/resonator.
In both cases the clock frequency must be chosen between four values: 8, 16, 24 or 32
MHz.
Warning:
Setting the wrong value or applying a clock frequency
significantly different from the nominal value might cause
failures.
The external clock source allows obtaining higher precision of the speed profile.
22/25
DocID025240 Rev 2
AN4355
8
Layout suggestions
Layout suggestions
The L648x devices require external MOSFETs for implementing the power stage which
drives the motor phases. The electrical connections between the device and the external
MOSFETs are critical and particular attention must be paid to reduce parasitic inductances.
Figure 16 shows the critical paths which should be designed to be as short as possible and
the area of the circuits should be minimized avoiding the sensitivity of such structures to the
surrounding noise. Typically, a good power system layout keeps the power MOSFETs as
close as possible to the related gate driver.
Figure 16. Layout critical paths
96
96
+9*;<
+6026)(7
287;<
%XON
FDSDFLWRU
/9*;<
/6026) (7
6(16(;/RQO\
5VHQVH
*1'
/RQO\
$0
DocID025240 Rev 2
23/25
25
Revision history
9
AN4355
Revision history
Table 4. Document revision history
Date
Revision
11-Oct-2013
1
Initial release.
2
Replaced main title on page 1 by new title “L648x
devices: high power stepper motor controllers”.
Replaced “cSPIN™ and dSPIN™ family” by “L648x” in
the whole document.
Minor modifications throughout document.
27-Mar-2015
24/25
Changes
DocID025240 Rev 2
AN4355
IMPORTANT NOTICE – PLEASE READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and
improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on
ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order
acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or
the design of Purchasers’ products.
No license, express or implied, to any intellectual property right is granted by ST herein.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.
© 2015 STMicroelectronics – All rights reserved
DocID025240 Rev 2
25/25
25