SPRUJF4A October   2024  – December 2024

 

  1.   1
  2.   Description
  3.   Features
  4.   Applications
  5.   5
  6. 1Evaluation Module Overview
    1. 1.1 Introduction
    2. 1.2 Kit Contents
    3. 1.3 Specification
    4. 1.4 Device Information
    5.     General Texas Instruments High Voltage Evaluation (TI HV EVM) User Safety Guidelines
  7. 2Hardware
    1. 2.1 Hardware Description
      1. 2.1.1 Auxiliary Power Supply
      2. 2.1.2 DC Link Voltage Sensing
      3. 2.1.3 Motor Phase Voltage Sensing
      4. 2.1.4 Motor Phase Current Sensing
        1. 2.1.4.1 Three-Shunt Current Sensing
        2. 2.1.4.2 Single-Shunt Current Sensing
      5. 2.1.5 External Overcurrent Protection
      6. 2.1.6 Internal Overcurrent Protection for TMS320F2800F137
    2. 2.2 Getting Started Hardware
      1. 2.2.1 Test Conditions and Equipment
      2. 2.2.2 Test Setup
  8. 3Motor Control Software
    1. 3.1 Three-Phase PMSM Drive System Design Theory
      1. 3.1.1 Field-Oriented Control of PMSM
        1. 3.1.1.1 Space Vector Definition and Projection
          1. 3.1.1.1.1 ( a ,   b ) ⇒ ( α , β ) Clarke Transformation
          2. 3.1.1.1.2 ( α , β ) ⇒ ( d ,   q ) Park Transformation
        2. 3.1.1.2 Basic Scheme of FOC for AC Motor
        3. 3.1.1.3 Rotor Flux Position
      2. 3.1.2 Sensorless Control of PM Synchronous Motor
        1. 3.1.2.1 Enhanced Sliding Mode Observer With Phase-Locked Loop
          1. 3.1.2.1.1 Mathematical Model and FOC Structure of an IPMSM
          2. 3.1.2.1.2 Design of ESMO for the IPMS
            1. 3.1.2.1.2.1 Rotor Position and Speed Estimation With PLL
      3. 3.1.3 Field Weakening (FW) and Maximum Torque Per Ampere (MTPA) Control
    2. 3.2 Getting Started Software
      1. 3.2.1 GUI
      2. 3.2.2 Download and Install C2000 Software
      3. 3.2.3 Using the Software
      4. 3.2.4 Project Structure
  9. 4Test Procedure and Results
    1. 4.1 Build Level 1: CPU and Board Setup
    2. 4.2 Build Level 2: Open-Loop Check With ADC Feedback
    3. 4.3 Build Level 3: Closed Current Loop Check
    4. 4.4 Build Level 4: Full Motor Drive Control
    5. 4.5 Test Procedure
      1. 4.5.1 Startup
      2. 4.5.2 Build and Load Project
      3. 4.5.3 Setup Debug Environment Windows
      4. 4.5.4 Run the Code
        1. 4.5.4.1 Build Level 1 Test Procedure
        2. 4.5.4.2 Build Level 2 Test Procedure
        3. 4.5.4.3 Build Level 3 Test Procedure
        4. 4.5.4.4 Build Level 4 Test Procedure
          1. 4.5.4.4.1 Tuning Motor Drive FOC Parameters
          2. 4.5.4.4.2 Tuning Field Weakening and MTPA Control Parameters
          3. 4.5.4.4.3 Tuning Current Sensing Parameters
    6. 4.6 Performance Data and Results
      1. 4.6.1 Load and Thermal Test
      2. 4.6.2 Overcurrent Protection by External Comparator
      3. 4.6.3 Overcurrent Protection by Internal CMPSS
  10. 5Hardware Design Files
    1. 5.1 Schematics
    2. 5.2 PCB Layouts
    3. 5.3 Bill of Materials (BOM)
  11. 6Additional Information
    1. 6.1 Known Hardware or Software Issues
    2. 6.2 Trademarks
    3. 6.3 Terminology
  12. 7References
  13. 8Revision History

Build and Load Project

To build and load the project, complete the following steps:

  1. Right-click on the project name, click the Properties command, move to pre-defined symbols to change GUI_SCI_EN to GUI_SCI_N to disable the SCI function for the GUI as described in Figure 3-24.
  2. Open the sys_settings.h file and set DMC_BUILDLEVEL to the selected build level. The build levels are described in Table 3-1.
    1. DMC_LEVEL_1
    2. DMC_LEVEL_2
    3. DMC_LEVEL_3
    4. DMC_LEVEL_4
  3. Build Levels 2, 3, and 4 require the motor physical parameters to be accurately known.
    1. The required motor parameters must be recorded in the header files (user_mtr1.h) as shown in the following example codes. These are not the only motor parameters, this is an excerpt for example purposes.
      #define USER_MOTOR1_Rs_Ohm                  (2.68207002f)
      #define USER_MOTOR1_Ls_d_H                  (0.00926135667f)
      #define USER_MOTOR1_Ls_q_H                  (0.00926135667f)
      #define USER_MOTOR1_RATED_FLUX_VpHz         (0.381890297f)
    2. If the four specific motor parameters listed above are not accurately known, FAST motor identification can be used in Build Level 4 to determine the motor parameters if the FAST estimator is utilized. Do the following, then refer to the Build Level 4 instructions for further information.
      1. In main(), change the userParams_M1.flag_bypassMotorId value to "false" to enable motor identification, as shown in the following example code.
        // true->enable identification, false->disable identification
            userParams[MTR_1].flag_bypassMotorId = false;
        Set the following identification parameters to appropriate values in the user_mtr1.h header file according to the specifications of the motor, if known.
         #define USER_MOTOR1_RES_EST_CURRENT_A       (1.0f)      // A - 10~30% of rated current of the motor
        #define USER_MOTOR1_IND_EST_CURRENT_A       (-1.0f)     // A - 10~30% of rated current of the motor, just enough to enable rotation
        #define USER_MOTOR1_MAX_CURRENT_A           (6.5f)      // A - 30~150% of rated current of the motor
        #define USER_MOTOR1_FLUX_EXC_FREQ_Hz        (40.0f)     // Hz - 10~30% of rated frequency of the motor
  4. If another build option was built previously, right click on the project name and click on Clean Project, and then click on Build Project. Watch the tools run in the build window. Wait until the project builds successfully.
  5. In the Project Explorer window, right-click on the .ccxml file and select 'Set as Active Target Configuration'
  6. Turn on the AC or DC power supply to apply 30 VAC or 40 VDC to J5, generating the +15 V and +3.3 V for the controller and gate driver. Click on the Debug button TIEVM-MTR-HVINV or click RunDebug. The code for the selected build level can be compiled and loaded onto the C2000 device. Notice the CCS Debug icon in the upper right-hand corner, indicating that the user is now in the Debug Perspective view. When launched, the program stops at the start of main().