Professional Documents
Culture Documents
Getting Started With The X-NUCLEO-IHM07M1 Motor Driver Expansion Board
Getting Started With The X-NUCLEO-IHM07M1 Motor Driver Expansion Board
User manual
Introduction
The X-NUCLEO-IHM07M1 is a three-phase brushless DC motor driver expansion board based on the L6230 for STM32 Nucleo.
It provides an affordable and easy-to-use solution for driving three-phase brushless DC motor in your STM32 Nucleo project.
The X-NUCLEO-IHM07M1 is compatible with the ST Morpho connector and supports the addition of other boards which can be
stacked with onto a single STM32 Nucleo board.
The user can also mount the Arduino UNO R3 connector. The driver used on this expansion board is the L6230, a DMOS fully
integrated driver for three-phase brushless DC motors assembled in a PowerSO-36 package (L6230PD), with overcurrent and
thermal protection.
The L6230 driver is optimized for six-step and FOC algorithms thanks to independent current sensing.
Figure 1. X-NUCLEO-IHM07M1 three-phase brushless DC motor driver expansion board based on L6230 for STM32
Nucleo
1 Getting started
1.1 Overview
The X-NUCLEO-IHM07M1 expansion board features:
• 3-phase driver for BLDC/PMSM motors
• Nominal operating voltage range from 8 V to 48 VDC
• 2.8 A output peak current (1.4 ARMS)
• Operating frequency up to 100 kHz
• Non dissipative overcurrent detection and protection
• Cross-conduction protection
• Thermal measuring and overheating protection
• Compatible with STM32 Nucleo boards
• Fully compatible with STM32 Motor Control SDK (X-CUBE-MCSDK-Y)
• Equipped with ST morpho connectors
• Three-shunt and single-shunt configurable jumpers for motor current sensing
• Hall/Encoder motor sensor connector and circuit
• Debug connector for DAC, GPIOs, etc.
• Potentiometer available for speed regulation
• User LED
• RoHS compliant
1.3 Architecture
A generic motor control system can be schematized in:
• a control block which accepts user commands and drive the motor; an STM32 Nucleo development board
provides digital signals to properly implement motor driver control;
• a power block which is based on three-phase inverter topology. The power block core consists of the L6230
driver, which contains the necessary active power and analog components to perform low voltage PMSM
motor control;
• a motor - the X-NUCLEO-IHM07M1 can drive a low voltage BLDC/PMSM motor.
The X-NUCLEO-IHM07M1 is designed to be plugged onto many STM32 Nucleo development boards without
modifying any solder bridge. When stacked, the system is ready to operate with a BLDC/PMSM motor.
Note: For software details, refer to STM32 Motor Control SDK (X-CUBE-MCSDK-Y).
Caution: When J9 is closed, do not exceed 12 V DC on J1 connector to prevent damaging the STM32 Nucleo board.
Important:
JP5 jumper on the STM32 Nucleo has to be connected between pin 2 and 3 to enable the STM32 Nucleo external power
supply.
The X-NUCLEO-IHM07M1 expansion board is equipped with ST morpho connectors (CN7 and CN10 male pin
headers are accessible on both sides of the board). They connect the power board to the STM32 Nucleo board.
All signals and power pins of the MCU are available on the ST morpho connector.
1 PC9
CN10 2 PC8
3 PB8
4 PC6
5 PB9
6 PC5
7 AVDD
8 U5V (2)
9 GND
10 NC
16 PB12
17 PB6
18 PB11/NC
19 PC7
20 GND
CN10 21 PA9 VH_PWM R64
22 PB2 LED RED R83
23 PA8 UH_PWM R56
24 PB1 POTENTIOMETER R78
25 PB10 Encoder Z/Hall H3 R84
2 Circuit description
1 2
3 4
The L6230 integrates a three-phase bridge which consists of six power MOSFETs. Using the N-channel power
MOSFET for the upper transistors in the bridge requires a gate drive voltage above the power supply voltage.
The bootstrapped supply (VBOOT) is obtained through an internal oscillator and a few external components to
implement a charge pump circuit as shown below.
J1
VIN +
2
1
220nF, 16V
21
31
17
35
34
23
16
14
20
37
2
3
6
U11
CON2 D12 L6230PD
EP
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
SMBJ48A-TR C9
C13 C15 12
C11 100uF, 63V 33 SENS1 8
VSB SENS2
2
100nF/ 100V 100nF/ 100V 4 25
30 VSA SENS3
D1 3 7 VBOOT 1
C12
SMBD 7000 10n 100V VCP GND 36
GND 19
J16 GND 18
GND
1
RIN G 29
EN3
1
CP+ 13 11
CP+ 28 CP+ IN 3 27
R21 CP-
CURR ENTR EF 24 CP- EN2 26
33K CPOUT
CPOUT IN 2
9
10 IN 1 22
OUT 1
OUT 2
OUT 3
EN1 DI AG/EN
15
5
32
2.1.2 Overcurrent detection (OCP) and current sensing measurement
The L6230 driver implements overcurrent protection with an internal detection circuit that does not require an
external resistor.
The current is compared with an embedded current reference and the output signals a fault condition to the
DIAG pin that goes to ground. This pin, connected to the STM32 Nucleo board (BKIN timer function), detects this
condition and immediately disables the driving signals.
The current sensing input is connected to the sensing resistors Rsense (shown in the figure below). You can
choose between three-shunt or single-shunt configuration through J5 and J6 jumpers (refer to Table 1. Jumper
settings).
CON3 CON3
21
31
17
35
34
23
16
14
20
37
2
3
6
U11 1 1
2 Vshunt_1 2 Vshunt_3
L6230PD SENS1 SENS3
EP
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
N.C .
3 3
12 Vshunt_2 Vshunt_2
SENS1
33 SENS1 8 SENS2
VSB SENS2 Vshunt_2 J5 J6
4 25 SENS3
30 VSA SENS3
7 VBOOT 1
VCP GND 36
GND 19
GND 18 3V3
GND 29 Vshunt_1 Vshunt_2 Vshunt_3
EN3
13 EN3 11 EN3
IN 3
28 CP+ IN 3 27 IN 3
EN2 R43 R44 R45
24 CP- EN2 26 EN2
IN 2 R22 0.33 1W 0.33 1W 0.33 1W
CPOUT IN 2 IN 2
10K
9
10 IN 1 22
OUT 1
OUT 2
OUT 3
R25 R26
OUT 1 15
OUT 2 5
OUT 3 32
Motor J2
JUMPER
D2 D3 D4
BAT30KFILM
BAT30KFILM
BAT30KFILM
R27 R28 R29
10k 10k 10k
J3 R30
1k8 R31
A+/H1 1 1k8 A+/H1
B+/H2 2
B+/H2
Z+/H3 3 Z+/H3
5V 4 R32
GND 5 1k8 R33 R34 R35
C19 C20 C21 C22
10pF 10V
10pF 10V
10pF 10V
100n 5V
Stripline m. 1x5
4K7 N.M. 4K7 N.M. 4K7 N.M.
J4
1
RING
D5 D6 D7 D8 D9 D10
3V3 BAT30KFILM BAT30KFILM BAT30KFILM BAT30KFILM BAT30KFILM BAT30KFILM
C23
0.1µF/6.3V R36 R37 R38
2.2k 2.2k 2.2k
OUT1 R39 BEMF1 BEMF1 OUT2 R40 OUT3 R41 BEMF3 BEMF3
BEMF2
10k 10k 10k
R 17
169 K 1 %
Temperature feedback
VBUS_SENS
VBUS C 10
3V3 10n F 10 V
R 19
1 2 R 20
R 18 C 14 4K7
N T C 10 K
4 . 7n F / 10 V
RS model 742-8420
9 . 31K 1% Placed near the L6230 driver
4
Vshunt_1 680pF 10V
R2 3 + U10A
680 1 Curr_fdbk1
Vs h u n t _ 1 _ GND 2 -
R4 TSV994IPT 0 R3
2.2k
11
3V3 3V3
4
R5 2.2k 12 + U10D
14
JP1 C4 13 -
FOC N.M. 100pF/6.3V TSV994IPT
11
C5
3V3
680pF 10V CP+
R6
4
Vshunt_2 2.2k Ov e r a l l AV=1 . 5 3
R7 5 + U10B
680 7 Curr_fdbk2
Vs h u n t _ 2 _ GND 6
R9
2.2k
-
TSV994IPT 0
R8
11
JP2 FOC
R10 2.2k
R11
2.2k
3V3 C6
N.M. 100pF/6.3V
C7
R12 3V3
680pF 10V 2.2k
4
Vshunt_3
R13 10 + U10C
Vs h u n t _ 3 _ GND
680
9 -
8
TSV994IPT
0
R14 Curr_fdbk3
Schematic diagrams
R15
11
2.2k
R16
UM1943
2.2k
page 11/19
C8
N.M. 100pF/6.3V
Figure 12. X-NUCLEO-IHM07M1 circuit schematic (2 of 4)
UM1943 - Rev 2
VIN+
Temperature feedback
VBUS sensor
C10
R17 3V3 10nF 10V
169K 1% R19
1 2
VBUS_SENS R20
VBUS NTC 10K
4K7
RS mo d e l 7 4 2 - 8 4 2 0
Pl a c e d n e a r t h e L6 2 3 0 d r i v e r
R18 C14
4.7nF/10V
9.31K 1%
3V3 3V3
JP3
JUMPER
Hall/Encoder sensor D2 D3 D4
BAT30KFILM
BAT30KFILM
BAT30KFILM
R27 R28 R29
10k 10k 10k
J3 R30
1k8 R31
A+/ H1 1 1k8 A+/H1
B+/ H2 2
B+/H2
Z+/ H3 3 Z+/H3
5V 4 R32
GND 5 1k8 R33 R34 R35
C19 C20 C21 C22
10pF 10V
10pF 10V
10pF 10V
Stripline m. 1x5 100n 5V
4K7 N.M. 4K7 N.M. 4K7 N.M.
J4
1
RING
3V3
Schematic diagrams
R43 R44 R45
R42 SPEED SPEED 0.33 1W 0.33 1W 0.33 1W
100K Vs hunt _2_GND Vs hunt _3_GND
UM1943
Vs hunt _1_GND
page 12/19
Figure 13. X-NUCLEO-IHM07M1 circuit schematic (3 of 4)
UM1943 - Rev 2
Power connector
J1
VIN+
2
1
220nF, 16V
21
31
17
35
34
23
16
14
20
37
2
3
6
U11
CON2 D12 L6230PD
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
N.C.
EP
SMBJ48A-TR C15 C9
100uF, 63V 12 SENS1
C11 33 SENS1 8 SENS2
C13 VSB SENS2 Vshunt_2
2
100nF/100V 4 25 SENS3
30 VSA SENS3
100nF/100V D1 VBOOT
3 C12 7 1
SMBD 7000 10n 100V VCP GND 36
GND 19
J16 GND 18 3V3
GND
1
RING 29 EN3 EN3
EN3
1
CP+ 13 11 IN3
CP+ CP+ IN3 IN3
CURRENT REF CP- 28 27 EN2 EN2
CPOUT 24 CP- EN2 26 IN2 R22
R21 CPOUT IN2 IN2
33K 10K
C16 IN1 9
IN1 IN1
3V3 100n,6.3V EN1 10 22
OUT1
OUT3
OUT2
EN1 EN1 DIAG/EN DIAG/EN
R24
R23 39k R25 R26
OUT1 15
OUT3 32
OUT2 5
10K 39k 39k C17
1nF/6.3V
CPOUT
C18
3
2
1
10n-N.M.
Motor J2
D5 D6 D7 D8 D9 D10
3V3 BAT30KFILM BAT30KFILM BAT30KFILM BAT30KFILM BAT30KFILM BAT30KFILM
C23
0.1uF/6.3V R36 R37 R38
2.2k 2.2k 2.2k
OUT1 R39 BEMF1 BEMF1 OUT2 R40 BEMF2 OUT3 R41 BEMF3 BEMF3
10k 10k 10k
Schematic diagrams
UM1943
page 13/19
DAC/REF
VIN+
Arduino/STMorpho connector J9
CN7 2 1 VIN C7_24
5V CN10 JUMPER VIN 3A
C7_1 C7_2
C7_3 1 2 C7_4 C7_18 C10_1 C10_2
3 4 1 2 OPEN BY DEFAULT
C7_5 E5V C7_6 CN5 10 C5_10 C10_3 C10_4 J27 ON:
C7_7 5 6 C7_8 3V3 CN6 9 C5_9 C10_5 3 4 C10_6
7 8 5 6 1)12VMAX ON J26
C7_9 N.C. C7_10 C6_1 N.C. 1 8 C5_8 C10_7 C10_8
C7_11 9 10 C7_12 C6_2 +3V3 2 7 C5_7 C10_9 7 8 C10_10
2)JP5 (Nucleo pin 2,3)
C7_13 11 12 C7_14 C6_3 3 6 C5_6 C10_11 9 10 C10_12 2)JP1 (Nucleo) Removed
C7_15 13 14 C7_16 C6_4 4 5 C5_5 C10_13 11 12 C10_14
C7_17 15 16 C7_18 C6_5 5 4 C5_4 C10_15 13 14 C10_16
C7_19 17 18 C7_20 C6_6 6 3 C5_3 C10_17 15 16 C10_18
C7_21 19 20 C7_22 C6_7 7 2 C5_2 C10_19 17 18 C10_20
C7_23 21 22 C7_24 C6_8 8 1 C5_1 C10_21 19 20 C10_22
C7_25 23 24 C7_26 8 C9_8 C10_23 21 22 C10_24
C7_27 25 26 C7_28 C8_1 1 7 C9_7 C10_25 23 24 C10_26
C7_29 27 28 C7_30 C8_2 2 6 C9_6 C10_27 25 26 C10_28
C7_31 29 30 C7_32 C8_3 3 5 C9_5 C10_29 27 28 C10_30
C7_33 31 32 C7_34 C8_4 4 4 C9_4 C10_31 29 30 C10_32 STM32 Nucleo part used
C7_35 33 34 C7_36 C8_5 5 3 C9_3 C10_33 31 32 C10_34
C7_37 35 36 C7_38 C8_6 6 2 C9_2 C10_35 33 34 C10_36 PC13 - START/STOP (B1 BUTTON)
37 38 1 C9_1 C10_37 35 36 C10_38
37 38 RESET - MCU RST (B2 BUTTON)
CN8 CN9
Schematic diagrams
UM1943
page 14/19
UM1943
Bill of materials
4 Bill of materials
Revision history