SPRUJ26A September   2021  – April 2024

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Motor Control Theory
    1. 2.1 Mathematical Model and FOC Structure of PMSM
    2. 2.2 Field Oriented Control of PM Synchronous Motor
    3. 2.3 Sensorless Control of PM Synchronous Motor
      1. 2.3.1 Enhanced Sliding Mode Observer with Phase Locked Loop
        1. 2.3.1.1 Design of ESMO for PMSM
        2. 2.3.1.2 Rotor Position and Speed Estimation With PLL
    4. 2.4 Hardware Prerequisites for Motor Drive
      1. 2.4.1 Motor Phase Voltage Feedback
    5. 2.5 Additional Control Features
      1. 2.5.1 Field Weakening (FW) and Maximum Torque Per Ampere (MTPA) Control
      2. 2.5.2 Flying Start
  6. 3Running the Universal Lab on TI Hardware Kits
    1. 3.1 Supported TI Motor Evaluation Kits
    2. 3.2 Hardware Board Setup
      1. 3.2.1  LAUNCHXL-F280025C Setup
      2. 3.2.2  LAUNCHXL-F280039C Setup
      3. 3.2.3  LAUNCHXL-F2800137 Setup
      4. 3.2.4  TMDSCNCD280025C Setup
      5. 3.2.5  TMDSCNCD280039C Setup
      6. 3.2.6  TMDSCNCD2800137 Setup
      7. 3.2.7  TMDSADAP180TO100 Setup
      8. 3.2.8  DRV8329AEVM Setup
      9. 3.2.9  BOOSTXL-DRV8323RH Setup
      10. 3.2.10 BOOSTXL-DRV8323RS Setup
      11. 3.2.11 DRV8353RS-EVM Setup
      12. 3.2.12 BOOSTXL-3PHGANINV Setup
      13. 3.2.13 DRV8316REVM Setup
      14. 3.2.14 TMDSHVMTRINSPIN Setup
      15.      34
      16.      35
    3. 3.3 Lab Software Implementation
      1. 3.3.1 Importing and Configuring Project
      2.      38
      3.      39
      4. 3.3.2 Lab Project Structure
      5. 3.3.3 Lab Software Overview
    4. 3.4 Monitoring Feedback or Control Variables
      1. 3.4.1 Using DATALOG Function
      2. 3.4.2 Using PWMDAC Function
      3. 3.4.3 Using External DAC Board
    5. 3.5 Running the Project Incrementally Using Different Build Levels
      1. 3.5.1 Level 1 Incremental Build
        1. 3.5.1.1 Build and Load Project
        2. 3.5.1.2 Setup Debug Environment Windows
        3. 3.5.1.3 Run the Code
      2. 3.5.2 Level 2 Incremental Build
        1. 3.5.2.1 Build and Load Project
        2. 3.5.2.2 Setup Debug Environment Windows
        3. 3.5.2.3 Run the Code
      3. 3.5.3 Level 3 Incremental Build
        1. 3.5.3.1 Build and Load Project
        2. 3.5.3.2 Setup Debug Environment Windows
        3. 3.5.3.3 Run the Code
      4. 3.5.4 Level 4 Incremental Build
        1. 3.5.4.1 Build and Load Project
        2. 3.5.4.2 Setup Debug Environment Windows
        3. 3.5.4.3 Run the Code
  7. 4Building a Custom Board
    1. 4.1 Building a New Custom Board
      1. 4.1.1 Hardware Setup
      2. 4.1.2 Migrating Reference Code to a Custom Board
        1. 4.1.2.1 Setting Hardware Board Parameters
        2. 4.1.2.2 Modifying Motor Control Parameters
        3. 4.1.2.3 Changing Pin Assignment
        4. 4.1.2.4 Configuring the PWM Module
        5. 4.1.2.5 Configuring the ADC Module
        6. 4.1.2.6 Configuring the CMPSS Module
        7. 4.1.2.7 Configuring Fault Protection Function
      3. 4.1.3 Adding Additional Functionality to Motor Control Project
        1. 4.1.3.1 Adding Push Buttons Functionality
        2. 4.1.3.2 Adding Potentiometer Read Functionality
        3. 4.1.3.3 Adding CAN Functionality
    2. 4.2 Supporting New BLDC Motor Driver Board
    3. 4.3 Porting Reference Code to New C2000 MCU
  8.   A Appendix A. Motor Control Parameters
  9.   References
  10.   Revision History

Introduction

The Universal Motor Control Lab project described in this guide is intended for you to not only experiment with various motor control algorithms but also to use as a reference for your own design. The universal motor control solution, as well as the lab project, is located within the MotorControl SDK.

The Universal Motor Control Lab project provides an example using the F28002x, F28003x, and F280013x series C2000 MCU. This is a single project with build examples for different Sensorless (FAST™, eSMO, InstaSPIN™-BLDC) and Sensored (Incremental Encoder, Hall) motor control techniques (FOC, Trapezoidal), with included system features and debug interfaces that can be used across a variety of three-phase inverter motor evaluation kits.

The FAST library (which is used to estimate the motor Flux, Angle, Speed, and Torque) is implemented with InstaSPIN-FOC™ in this Universal Motor Control Lab project. This library enables the use of the FAST observer for InstaSPIN-FOC with FPU enabled and C2000Ware-MotorControl-SDK supported C2000 devices. The user no longer needs to use a C2000 device with special ROM content in order to use FAST or InstaSPIN-FOC.

In this user's guide you will learn how to modify the user_mtr1.h file, which is the header file that stores all of the user parameters. Some of these parameters can be manipulated through CCS during run-time, but the parameters must be updated in the user_mtr1.h file to be saved permanently in your project. You will learn how to migrate the lab to your own hardware board, and port the lab project to the other C2000 MCU controllers by modifying the hal.h and hal.c files.

The lab project provides several interface functions to start/stop the motor and set the reference speed by using push a button, potentiometer, or CAN interface.

The Motor Control Universal Lab project is built within the MotorControl SDK folder and additionally uses files from C2000Ware. The MotorControl SDK software includes firmware that runs on C2000 motor control evaluation modules (EVMs) and TI designs (TIDs). A copy of C2000Ware is provided as part of the MotorControl SDK and offers various projects, ranging from device-specific drivers and support software to complete example system applications.

The Universal MotorControl Lab requires:

  • Code Composer Studio™ v12.0.0 or newer
  • C2000 Compiler v22.6.0 LTS or newer
  • C2000Ware MotorControl SDK V4.01.00 or newer