PMSM motors – Field-oriented control (FOC)

Permanent Magnet Synchronous Motors (PMSM) at a glance:

  • Require alternating stator current
  • Stator is a 3-phase winding
  • Rotor houses permanent magnets
    - On the surface (Surface-mounted PMSM)
    - Buried within the rotor (Internal PMSM)
  • Stator excitation frequency is synchronous with rotor electrical speed
  • Rotation induces sinusoidal Back Electro-Motive Force (BEMF) in motor phases
  • Gives best performance (torque steadiness) when driven by sinusoidal phase current

Field-oriented control (FOC) at a glance: stator currents (field) are controlled in amplitude and phase (orientation) with respect to rotor flux

  • Best energy efficiency even during transient operation
  • Responsive speed control to load variations
  • Decoupled control of both electromagnetic torque and flux
  • Acoustical noise reduction due to sinusoidal waveforms
  • Active electrical brake and energy reversal

STM32 solution

Firmware library

The STM32 PMSM FOC Software Development Kit (STSW-STM32100), which includes the PMSM FOC firmware library and ST MC Workbench (Graphical User Interface / FW library configurator), lets users evaluate the performance of STM32 MCUs in applications driving single or dual field-oriented control (FOC) 3-phase Permanent Magnet motors (PMSM, BLDC).


  • DB2187: STM32 PMSM FOC Software Development Kit
  • UM1052: STM32F PMSM single/dual FOC SDK
  • UM1053: Advanced developer guide for STM32F PMSM single/dual FOC library
  • UM1080: Quick start guide for STM32F PMSM single/dual FOC SDK V4.3
  • RN0085: STM32 PMSM single/dual FOC SDK Release note v4.3
  • DT0012: Dual PMSM motor drive using STM32F303CB/CC peripherals in “time-sharing”
  • DT0026: Field oriented control of PMSM motor exploiting SLLIMM™ nano and STM32F302x/303x


Hardware boards

3-phase motor development boards (Main motor control kits)




Motor/Control type

ST Main Parts

Application focus

Motor Control kits


Up to 48 V (12 V with motor provided)

Up to 40 W (10 W with the motor provided)

Nucleo Pack
FOC/Six step
Single/3 shunt

1x STM32F302R8

1x L6230

Motor Control Nucleo Pack with NUCLEO-F302R8 and X-NUCLEO-IHM07M1 +  External power supply



1x STM32F103


1x L6386

1x TSV994

Motor control starter kit for STM32 (128KB flash) Performance and Access Line microcontrollers

Expansion boards (for STM32 Nucleo)


Up to 48 V, 1.4 ARMS

Up to 40 W 

FOC/Six step

1x L6230



Three-phase brushless DC motor driver expansion board based on L6230 for STM32 Nucleo


Up to 48 V, 15 ARMS

Up to 200 W 

Six step

3x L6398

6x STL220N6F7

Three-phase brushless DC motor driver expansion board based on 3x gate driver and 6x MOSFET for STM32 Nucleo




Motor control connector adapter

Non-silicon devices

Allow connection of STM32 Nucleo boards with any ST motor control power board

Link to other evaluation boards

Other dedicated application notes

  • AN4277: Using STM32F3 Series PWM shut-down features for motor control and digital power conversion
  • AN2009: PWM management for 3-Phase BLDC motor drives using ST7MC

MATLAB/Simulink resources

  • STM32-MAT/TARGET: STM32 embedded target for MATLAB and Simulink
  • Hands-on presentation



Upcoming Seminars

ST Technology Tour 2019 07 Mar - 03 Dec, 2019
STM32MP1 microprocessor hands-on workshop for developers 18 Jun - 23 Oct, 2019
STM32G4 mixed-signal MCU hands-on workshop series 10 Sep - 05 Nov, 2019