STM32 motor control firmware library STM32 FOC PMSM SDK v3.0 Contents STM32 FOC PMSM SDK v3.0 overview The FOC (field oriented control) algorithm STM32 with FOC Motor control and electric motor offer FOC with STM32F100 and STM32F103 Support tools for 3-phase motor control application Overview STM32 FOC PMSM SDK v 3.0 Firmware library (free of charge) It implements the field oriented control (FOC) drive of 3-phase permanent magnet synchronous motors (PMSM), both surface mounted (SM-PMSM) and internal (I-PMSM) supporting STM32F103 microcontroller (STM32 performance line) Medium-density devices (up to 256 Kbytes of Flash) or high-density devices (from 256 Kbytes to 1 Mbyte of Flash) STM32F100 microcontroller (STM32 value line) in order to Quickly evaluate ST microcontrollers on 3phase PMSM motor control applications Save time when developing motor control solutions to be run on ST microcontrollers Electric motor control at ST PMSM Higher efficiency and/or reliability Permanent magnet Sinusoidal Synchronous Surface mounted PM Wound field Trapezoidal AC ACIM Asynchronous Electric motors Internal mounted PM Squirrel cage wound rotor DC STM32 motor control FW library available Also supported by ST products Stepper Variable reluctance Universal Switched reluctance ACIM: 3-phase induction motor PMSM: 3-phase permanent magnet synchronous motor Field oriented control (FOC) Mathematical technique used to achieve decoupled control of the flux and torque in a 3-phase motors Block diagram of FOC algorithm example iqs * b + - ids* + θr a c Φm PID PID vqs v ds - v a,b,c REVERSE PARK & circle limitation v αβ CALC SVPWM Bus voltage measurement θ r el iqs PARK ids iαβ θ r el iαβ SENSORLESS Rotor ROTOR Angle/Speed SPEED/POSITION reconstruction STATE OBSERVER DC domain CLARKE b-emf α b-emf β AC domain iabc CURRENT READING v αβ BACK-EMFs CALCULATION Benefits of FOC Optimized efficiency even during transient operation Precise and responsive speed control to load variations Precise position control (through instantaneous torque control) Acoustical noise reduction due to precise control technique FOC with STM32 Power stage Vα d,q α,β SV PWM Vβ Va Vb Vc 6-channel PWM timer θs θs Iα d,q α,β Iβ Ia α,β a,b Ib 6x PWM Fault signals Ia and Ib ADCs VBUS θs θs ωm FOC algorithm Speed/position feedback timer HW peripherals Tachometer/encoder/Hall sensor Not present for sensorless algorithm M STM32 FOC PMSM SDK v3.0 key features Single/dual simultaneous vector control (FOC) Any combination of current-reading topologies and speed or position sensors is supported Supports both STM32F100x and STM32F103x families STM32 FOC PMSM SDK v 3.0 Algorithm improvements compared to v2.0 Full customization through ST MC workbench (GUI) Application example based on FreeRTOS Performances 3-phase brushless motor control evolution Q3 2007: STR750 MC kit Q4 2008: Q1 2008: STM32 FOC FW STM32 library v2.0 MC kit High-end FOC Q1 2011: STM32 FOC PMSM SDK v3.0 - Dual FOCs - High-end FOC - Low-end FOC Next step Support new advanced MCUs Adding new features STM32F100 Value line 32-bit ARM® Cortex™-M3 core Up to 30 DMIPS at 24 MHz max 2.0 to 3.6 V operation -40 to +105 °C Enhanced control 1x 16-bit advanced timer 6x 16-bit PWM timers Advanced analog 1x fast 12-bit 1.2 µs ADC Dual-channel 12-bit DAC System integration Internal 8 MHz RC oscillator Built-in safe reset system Datasheets FOC single motor drive with STM32F100 Advantages Target application characteristics Requirements for dynamic performances are moderate Quietness of sinusoidal current control (versus 6-step drive) is valuable Extended speed range is required Particularly suitable for pumps, fans and compressors Current Six-step drive Cost optimized More silent Lower torque ripple Extended speed range more easily achieved Current FOC control Performances of FOC with STM32F100 Configuration: 1 shunt/sensorless at 20 kHz PWM,10 kHz FOC Motor control code size is 15.82 Kbytes Motor control RAM usage is 2.77 Kbytes FOC total execution time is 65.22 µs (ADC ISR + TIM1 update ISR) FOC introduced CPU load is 65.2% Total CPU load is ~70% (~60% at 8 kHz FOC) ISR: interrupt service routine STM32F103 Performance line 32-bit ARM® Cortex™-M3 core 1.25 DMIPS/MHz (Dhrystone 2.1) 2 to 3.6 V supply -40 to + 105°C From 16-Kbytes to 1-Mbyte Flash memory Enhanced control Up to 2x 16-bit advanced timer Up to 4x 16-bit PWM timers Advanced analog Up to 3x fast 12-bit 1.2 µs ADC System integration Internal 8 MHz RC oscillator Built-in safe reset system Datasheets FOC single motor drive with STM32F103 Target applications Wide application range from home appliances to robotics, where: Accurate and quick regulation of motor speed and torque is required (such as in torque load transient or abrupt target speed variations) CPU load granted to motor control must be low due to other duties Power tools Fitness, wellness and healthcare Industrial motor drives Home appliances Games Escalators and elevators Performances of FOC with STM32F103 Configuration: 1 shunt/sensorless at 10 kHz FOC sampling time Motor control code size is 16.2 Kbytes Motor control RAM usage is <2.5 Kbytes FOC total execution time is 26.1 µs (ADC ISR + TIM1 update ISR) FOC introduced CPU load is 30% ISR: interrupt service routine FOC dual motor drive with STM32F103 Target applications Target applications Wide application range from home appliances to robotics, where: Up to two FOC drives have to run at the same time Accurate and quick regulation of motor speed and torque is required (such as in torque load transient or abrupt target speed variations) Dishwashers: spray + drain pumps Washing machines: drum + drain pumps Air conditioners: compressors + outdoor fans Industrial motor drives Dual FOC PMSM – block diagram Gate drivers Power bridge1 Motor1 va,b,c BKIN Current sensors: 3shunt/1shunt/ICS ωr*1 ωr*2 BKIN Speed sensors: Sensorless, Hall, Encoder With STM32 FOC PMSM SDK v3.0, STM32F103 high-density devices with their extended set of peripherals (2 advanced timers, 3 fast ADCs, and more) can drive 2 motors in diverse configurations Motor2 va,b,c Gate drivers Current sensors: 3shunt/1shunt/ICS Power bridge2 Speed sensors: Sensorless, Hall, Encoder ICS: isolated current sensors Performances of dual FOC with STM32F103 Example of configuration No. 1: Motor 1, 1 shunt/sensorless @ 8 kHz PWM/FOC – flux weakening enabled Motor 2, 1 shunt/sensorless @ 16 kHz PWM, 8 kHz FOC Motor control code size is 22.3 Kbytes (1.5 times below single motor case) Motor control RAM usage is 4.01 Kbytes FOC introduced CPU load (including TIMx update ISRs) is 44% Total CPU load ~50% ISR: interrupt service routine Performances of dual FOCs with STM32F103 Example of configuration No. 2: Motor 1, 3 shunts/sensorless @ 16 kHz PWM/FOC – MTPA and flux weakening enabled Motor 2, 1 shunt/sensorless @ 16 kHz PWM, 8 kHz FOC Motor control code size is 25.5 Kbytes Motor control RAM usage is 4.14 Kbytes FOCs introduced CPU load (including TIMx update ISRs) is 62.6% Total CPU load <70% ISR: interrupt service routine Summary table: features set – MCU support STM32F103 (Performance line) HD STM32F103 (Performance line) MD and HD STM32F100 (Value line) and STM32F103 Dual FOC 1-shunt Flux weakening IPMSM MTPA 3-shunt Feed forward Sensorless (STO + PLL) Sensorless (STO + Cordic) FreeRTOS Encoder Hall sensors Debug and tuning ICS ST MC workbench support USART-based com protocol add-on Max FOC ~ 11 kHz Max FOC ~25 kHz Max dual FOC ~20 kHz Max FOC ~25 kHz ICS: isolated current sensors ST Motor Control Workbench v1.0.2 (STMCWB) STMCWB is a PC code generator tool developed to reduce the firmware development time for STM32 FOC PMSM SDK v3.0. A graphical user interface (GUI) allows you to generate all parameter header files that configure the library, according to application needs. Motor Power stage Drive management Control stage STM3210B-MCKIT starter kit MC connector STM3210B-MCKIT STM3210B-MCKIT starter kit STM3210B-MCKIT starter kit Main features Driving strategy: vector control AC induction motors, sensored PMSM motors, sensored and sensorless 34-pin dedicated motor control connector Encoder, Hall sensor, tachometer sensor inputs Current sensing mode: 3 shunt resistors Single shunt ST complete offer STM32F103 (32-bit MCU with dedicated motor control timer) L6386DE (gate driver) VIPer12AS (power supply downconverter) L7815CP, L7805CP, LD1117S33TR (voltage regulators) STGF7NC60H (IGBT) TSV994, TS374ID, TS372ID (op-amps) M74HC09RM13TR, M74HCT7007RM13TR (logic) STM32 evaluation boards (control board) STM32 FOC PMSM SDK v3.0 FOC Optimized for STM32F100x STM32100B-EVAL http://www.st.com/evalboards STEVAL-IHM032V1 FOC High performance STM3210B-EVAL FOC Dual FOC High performance STM3210E-EVAL STEVAL-IHM022V1 Complementary high-voltage power stages SLLIMM™ (ST IPMs) based STEVAL-IHM025V1 1000 W 1x IGBT SLLIMM™: STGIPL14K60 1x converter based on VIPer16 1x IGBT: STGP10NC60KD Gate-driver and power-transistor based STEVAL-IHM023V2 1000 W 3x PWM smart drivers: L6390 1x converter based on VIPer16 7x IGBT power switches: STGP10NC60KD STEVAL-IHM021V1 STEVAL-IHM027V1 1000 W 1x IGBT SLLIMM™: STGIPS10K60A 1x converter based on VIPer16 1x IGBT: STGP10NC60KD STEVAL-IHM028V1 (*) Available in Q4/2011 2000 W 1x IGBT SLLIMM™: STGIPS20K60 1x PWM SMPS: VIPer26LD 1x IGBT: STGW35NB60SD http://www.st.com/evalboards 3x PWM smart drivers: L6390 1x converter based on VIPer12 6x MOSFET power switches: STD5N52U STEVAL-IHM024V1 3x PWM smart drivers: L6390 1x converter based on VIPer12 6x IGBT power switches: STGDL35NC60DI STEVAL-IHM032V1 (*) 150 W 3x PWM smart drivers: 2xL6392D and 1x L6391D 1x converter based on VIPer12 6x IGBT power switches: STGD3HF60HD Low voltage power stages and drive solutions Low-voltage power stages Complete motor drive solutions STEVAL-IFN003V1 (*) STEVAL-IHM031V1 120 W 3x dual power MOSFETs: STS8DNH3L 2x PWM smart drivers: L6387E 1x step-down converter: L4976D STEVAL-IEM003V1 (*) Available in Q4/2011 Power stage up to 48 V 2000 W 3x PWM smart drivers: L6388 6x LV power MOSFETs: STV250N55F3 1x step-down converter: L4978D http://www.st.com/evalboards FOC PMSM motor drive 80 W 1x 32-bit microcontroller: STM32F103C 1x motor drive IC: L6230PD Example: STEVAL-IHM025V1 configurations Field oriented control (FOC) STM32 MC STM32 FOC PMSM SDK v3.0 configuration through the PC GUI: STMCWB v1.0.2 STEVAL-IHM025V1 STM32 control board motor HW ready to work in FOC control Segger J-Link PMSM More information Download: STM32 FOC PMSM SDK v 3.0 firmware library zip file ST MC Workbenchv1.0.2 zip file Consult: Technical note TN0516 Overview of the STM32F103/STM32F100 PMSM single/dual FOC SDK V3.0 User manual UM1052 STM32F103 or STM32F100 PMSM single/dual FOC SDK V3.0 User manual UM1053 Advanced dev. guide for STM32F103/STM32F100 PMSM single/dual FOC library www.st.com/stm32 Thank you