SLUUDM5 March   2026 MSPM0G1507 , MSPM0G1519 , MSPM0G3507 , MSPM0G3519

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
  5. Motor Control Theory
    1. 2.1 BLDC Motor Fundamentals
    2. 2.2 Mathematical Model and FOC Structure
    3. 2.3 Sensorless Field Oriented Control
      1. 2.3.1 FOC Fundamentals
      2. 2.3.2 Enhanced Sliding Mode Observer
      3. 2.3.3 Finite Difference BEMF Estimator
      4. 2.3.4 Rotor Position and Speed Estimation
  6. MSP FOC System
    1. 3.1 Design Source
    2. 3.2 FOC Feature Overview
    3. 3.3 FOC Benchmark
  7. MSP FOC Hardware
    1. 4.1 PWM Pin Configurations
    2. 4.2 ADC Pin Configurations
      1. 4.2.1 DC Bus Voltage
      2. 4.2.2 Motor Phase Voltage
      3. 4.2.3 Motor Phase Current
        1. 4.2.3.1 Single Shunt Current Sensing
        2. 4.2.3.2 Dual or Three Shunt Current Sensing
        3. 4.2.3.3 Three Shunt Current Sensing with Simultaneous Sampling
    3. 4.3 Fault Pin Configurations
    4. 4.4 Hall GPIO Pin Configurations
    5. 4.5 GPIO Pin Configurations
    6. 4.6 SPI Pin Configurations
    7. 4.7 UART Pin Configurations
    8. 4.8 External Connections for Evaluation Boards
  8. MSP FOC Software
    1. 5.1 Project Structure
    2. 5.2 Software Overview
      1. 5.2.1 Application Layer
        1. 5.2.1.1 FOC Library
        2. 5.2.1.2 Motor Control Application
        3. 5.2.1.3 Main Application
      2. 5.2.2 HAL Layer
        1. 5.2.2.1 Gate Driver Interface
        2. 5.2.2.2 Current Sensing Circuit
        3. 5.2.2.3 Hardware Interface
        4. 5.2.2.4 Communication Interface
      3. 5.2.3 MSPM0 Driverlib Layer
    3. 5.3 Register Map (Sensorless FOC)
      1. 5.3.1 User Control Registers (Base Address = 0x20200400h)
        1. 5.3.1.1 Speed Control Register (Offset = 0h) [Reset = 00000000h]
        2. 5.3.1.2 Algo Debug Control 1 Register (Offset = 4h) [Reset = 00000000h]
        3. 5.3.1.3 Algo Debug Control 2 Register (Offset = 8h) [Reset = 00000000h]
        4. 5.3.1.4 Algo Debug Control 3 Register (Offset = Ch) [Reset = 00000000h]
        5. 5.3.1.5 DAC Configuration Register (Offset = 10h) [Reset = 00000000h]
      2. 5.3.2 User Input Registers (Base Address = 0x20200000h)
        1. 5.3.2.1  SYSTEM_PARAMETERS (Offset = 0h)
        2. 5.3.2.2  MOTOR_STARTUP1 Register (Offset = 3Ch) [Reset = 00000000h]
        3. 5.3.2.3  MOTOR_STARTUP2 Register (Offset = 40h) [Reset = 00000000h]
        4. 5.3.2.4  CLOSED_LOOP1 Register (Offset = 44h) [Reset = 00000000h]
        5. 5.3.2.5  CLOSED_LOOP2 Register (Offset = 48h) [Reset = 00000000h]
        6. 5.3.2.6  FIELD_CTRL Register (Offset = 4Ch) [Reset = 00000000h]
        7. 5.3.2.7  FAULT_CONFIG1 Register (Offset = 50h) [Reset = 00000000h]
        8. 5.3.2.8  FAULT_CONFIG2 Register (Offset = 54h) [Reset = 00000000h]
        9. 5.3.2.9  MISC_ALGO Register (Offset = 58h) [Reset = 00000000h]
        10. 5.3.2.10 PIN_CONFIG Register (Offset = 5Ch) [Reset = 00000000h]
        11. 5.3.2.11 PERI_CONFIG Register (Offset = 60h) [Reset = 00000000h]
      3. 5.3.3 User Status Registers (Base Address = 0x20200430h)
  9. Quick Start Guide
    1. 6.1 CCS IDE
      1. 6.1.1 Project Setup
      2. 6.1.2 Project Debug
    2. 6.2 GUI
  10. Motor Tuning Guide
    1. 7.1 Hardware Board Parameter
      1. 7.1.1 Base Voltage (V)
      2. 7.1.2 Base Current (A)
    2. 7.2 Motor Parameter
      1. 7.2.1 Motor Phase Resistance (mΩ)
      2. 7.2.2 Motor Phase Inductance (ÎŒH)
      3. 7.2.3 Saliency of IPMSM Motor
      4. 7.2.4 Motor Pole Pairs
      5. 7.2.5 Motor BEMF Constant (mV/Hz)
      6. 7.2.6 Maximum Motor Electrical Speed (Hz)
      7. 7.2.7 Maximum Motor Power (W)
    3. 7.3 Control Loop Parameter
      1. 7.3.1 Speed / Power Loop
      2. 7.3.2 Current Loop
    4. 7.4 Hall Angle Table
      1. 7.4.1 Hall Calibration
      2. 7.4.2 Register Table
    5. 7.5 Spin the Motor (LVBLDC)
    6. 7.6 Spin the Motor with Hall Sensor
    7. 7.7 Tune the Motor (LVBLDC)
      1. 7.7.1 Basic Tuning
        1. 7.7.1.1  Startup Mode
          1. 7.7.1.1.1 Align Mode
            1. 7.7.1.1.1.1 Force Align Mode in Current Loop
            2. 7.7.1.1.1.2 Force Align Mode in PWM Loop
          2. 7.7.1.1.2 Double Align Mode
          3. 7.7.1.1.3 Initial Position Detection (IPD) Mode
            1. 7.7.1.1.3.1 High Resolution IPD
          4. 7.7.1.1.4 Slow First Cyle (SFC) Mode
        2. 7.7.1.2  Open Loop Mode
          1. 7.7.1.2.1 Auto Handoff
          2. 7.7.1.2.2 Force Open Loop Mode
        3. 7.7.1.3  Transition From Open Loop to Closed Loop
        4. 7.7.1.4  Closed Loop Mode
          1. 7.7.1.4.1 Tune Control Parameter
          2. 7.7.1.4.2 Tune PI Parameter
        5. 7.7.1.5  Stop Mode
          1. 7.7.1.5.1 Coast (Hi-Z) Mode
          2. 7.7.1.5.2 Active Spin Down Mode
          3. 7.7.1.5.3 Braking Mode
            1. 7.7.1.5.3.1 Low-Side Braking
            2. 7.7.1.5.3.2 Align Braking
        6. 7.7.1.6  Fault Handling
          1. 7.7.1.6.1 MOTOR_STALL
            1. 7.7.1.6.1.1 ABN_SPEED_FAULT
            2. 7.7.1.6.1.2 ABN_BEMF_FAULT
            3. 7.7.1.6.1.3 NO_MOTOR_FAULT
          2. 7.7.1.6.2 VOLTAGE_OUT_OF_BOUNDS
          3. 7.7.1.6.3 LOAD_STALL
          4. 7.7.1.6.4 HARDWARE_OVER_CURRENT
          5. 7.7.1.6.5 HV_DIE
        7. 7.7.1.7  Motor Spin Direction
        8. 7.7.1.8  PWM Configuration
          1. 7.7.1.8.1 PWM Frequency
          2. 7.7.1.8.2 PWM Deadband Time
        9. 7.7.1.9  FOC Loop Frequency
        10. 7.7.1.10 Hardcode for Basic Tuning
      2. 7.7.2 Advanced Tuning
        1. 7.7.2.1 Control Mode Setting
          1. 7.7.2.1.1 Closed Loop Speed Control Mode
          2. 7.7.2.1.2 Closed Loop Power Control Mode
          3. 7.7.2.1.3 Closed Loop Torque Control Mode
          4. 7.7.2.1.4 Open Loop Voltage Control Mode
            1. 7.7.2.1.4.1 Lead Angle Control
        2. 7.7.2.2 Maximum Torque Per Ampere (MTPA) Control
        3. 7.7.2.3 Field Weakening Control (FWC)
        4. 7.7.2.4 Deadtime Compensation
        5. 7.7.2.5 PWM Generation Mode
        6. 7.7.2.6 Overmodulation Mode
        7. 7.7.2.7 Initial Speed Detection (ISD) Mode
          1. 7.7.2.7.1 Motor Resynchronization
          2. 7.7.2.7.2 Reverse Drive
          3. 7.7.2.7.3 Fast ISD
        8. 7.7.2.8 Anti-Voltage Surge
    8. 7.8 Overwrite User Input Register Table
  11. Hardware Migration Guide
    1. 8.1 Hardware Layer Overview
    2. 8.2 Gate Driver Module
      1. 8.2.1 Select Reference Projects
      2. 8.2.2 Modify Pre-defined Symbols
      3. 8.2.3 Add Custom Source Files
        1. 8.2.3.1 Gate Driver Comm Folder
        2. 8.2.3.2 HAL Layer File
      4. 8.2.4 Add Custom Comm Interface
      5. 8.2.5 Overwrite Default Macro Definitions
        1. 8.2.5.1 main.h File
          1. 8.2.5.1.1 Delay Component in Current Sensing Path
        2. 8.2.5.2 gateDriver.h File
    3. 8.3 MCU Peripheral Configuration
      1. 8.3.1 PWM Module
        1. 8.3.1.1 Different Pin Used for PWM Output
        2. 8.3.1.2 Different Pin Used for PWM Fault Input
        3. 8.3.1.3 Different Mapping to PWM Output Channel
      2. 8.3.2 ADC Module
        1. 8.3.2.1 Current Sensing Type
        2. 8.3.2.2 Current Sensing Method
          1. 8.3.2.2.1 Three Shunt Configuration
          2. 8.3.2.2.2 Three Shunt Configuration with Simultaneously Sampling
          3. 8.3.2.2.3 Dual Shunt Configuration
          4. 8.3.2.2.4 Single Shunt Configuration
        3. 8.3.2.3 CSA Offset Scaling Factor
        4. 8.3.2.4 Channel Mapping
          1. 8.3.2.4.1 Phase Current Channels
            1. 8.3.2.4.1.1 Three Shunt Configuration
            2. 8.3.2.4.1.2 Dual Shunt Configuration
            3. 8.3.2.4.1.3 Single Shunt Configuration
          2. 8.3.2.4.2 Bus Voltage Channel
          3. 8.3.2.4.3 Phase Voltage Channels
        5. 8.3.2.5 Trigger Mode
          1. 8.3.2.5.1 Three or Dual Shunt Configuration
          2. 8.3.2.5.2 Single Shunt Configuration
      3. 8.3.3 GPIO Pin
      4. 8.3.4 HALL Module
      5. 8.3.5 UART Module
      6. 8.3.6 DAC12 Module
      7. 8.3.7 IPD Module (Capture Timer)
    4. 8.4 Verification for Customized Board
  12. Frequently Asked Questions (FAQs)
    1. 9.1 MSPM0 Failed to Connect
    2. 9.2 Spin the Motor in Hardcode
    3. 9.3 Reduce 1x ADC Pin for Simultaneously Sampling
    4. 9.4 Tune Real-time Control Parameter
    5. 9.5 Track Real-time Variable
      1. 9.5.1 DAC12 Output
      2. 9.5.2 J-Scope Tool
  13. 10Summary
  14. 11References
  15. 12Revision History

BLDC Motor Fundamentals

A Brushless Direct Current (BLDC) motor comprises three essential elements: a wound stator, a permanent magnet rotor assembly, and rotor position sensing devices that can be integrated internally or mounted externally. These position sensors deliver real-time feedback that allows for precise adjustment of both the frequency and amplitude of the stator voltage reference, providing smooth torque generation and continuous rotor rotation.

The motor's architecture, featuring a permanent magnet rotor core surrounded by external stator windings, provides multiple performance advantages:

  • Low rotor inertia for improved dynamic response

  • Great heat dissipation through efficient thermal pathways

  • Compact design enabling reduced overall motor dimensions

BLDC motors can exhibit either trapezoidal or sinusoidal Back Electromotive Force (BEMF) characteristics. This document specifically addresses motor control implementation for BLDC motors with sinusoidal BEMF waveforms (1). Follow the motor control principles below:

  • Synchronous motor construction: Permanent magnets are rigidly fixed to the rotating axis to create a constant rotor flux. This rotor flux usually has a constant magnitude. The stator windings when energized create a rotating electromagnetic field. To control the rotating magnetic field, it is necessary to control the stator currents.
  • The actual structure of the rotor varies depending on the power range and rated speed of the machine. Permanent magnets are suitable for synchronous machines ranging up-to a few Kilowatts. For higher power ratings the rotor usually consists of windings in which a DC current circulates. The mechanical structure of the rotor is designed for number of poles desired, and the desired flux gradients desired.
  • The interaction between the stator and rotor fluxes produces a torque. Since the stator is firmly mounted to the frame, and the rotor is free to rotate, the rotor will rotate, producing a useful mechanical output as shown in Figure 2-1.
  • The angle between the rotor magnetic field and stator field must be carefully controlled to produce maximum torque and achieve high electromechanical conversion efficiency. For this purpose a fine tuning is needed after closing the speed loop using sensorless algorithm to draw minimum amount of current under the same speed and torque conditions.
  • The rotating stator field must rotate at the same frequency as the rotor permanent magnetic field; otherwise the rotor will experience rapidly alternating positive and negative torque. This will result in less than optimal torque production, and excessive mechanical vibration, noise, and mechanical stresses on the machine parts. In addition, if the rotor inertia prevents the rotor from being able to respond to these oscillations, the rotor will stop rotating at the synchronous frequency, and respond to the average torque as seen by the stationary rotor: Zero. This means that the machine experiences a phenomenon known as pull-out. This is also the reason why the synchronous machine is not self starting.
  • The angle between the rotor field and the stator field must be equal to 90ÂșC to obtain the highest mutual torque production. This synchronization requires knowing the rotor position to generate the right stator field.
  • The stator magnetic field can be made to have any direction and magnitude by combining the contribution of different stator phases to produce the resulting stator flux.

  1. Includes library overview, software setup, hardware setup, and more. BLDC motors with a sinusoidal BEMF waveform are also commonly referred to as Permanent Magnet Synchronous (PMSM) motors.

 The Interaction Between the Rotating Stator Flux, and the Rotor Flux Produces a TorqueFigure 2-1 The Interaction Between the Rotating Stator Flux, and the Rotor Flux Produces a Torque