SLAU927A March   2024  – June 2024 MSPM0G3507

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Hardware Setup
    1. 2.1  EVM Hardware Setup
      1. 2.1.1 EVM Hardware Support
    2. 2.2  Pin Configurations for IPD Usage
    3. 2.3  Pin Configurations for PWM Outputs
    4. 2.4  Pin Configurations for ADC Currents
    5. 2.5  Pin Configurations for ADC Voltages
    6. 2.6  Pin Configurations for Faults
    7. 2.7  Pin Configurations for GPIO Output Functions
    8. 2.8  Pin Configurations for SPI Communication
    9. 2.9  Pin Configurations for UART Communication
    10. 2.10 External Connections for Evaluation Boards
  6. 3Software Setup
    1. 3.1 Software Support
  7. 4GUI Setup
  8. 5Register Map
    1. 5.1 User Control Registers (Base Address = 0x20200400h)
    2. 5.2 User Input Registers (Base Address = 0x20200000h)
    3. 5.3 User Status Registers (Base Address = 0x20200430h)
  9. 6Basic Tuning
    1. 6.1 System Configuration Parameters
      1. 6.1.1 Configuring System Parameters from GUI
      2. 6.1.2 Motor Resistance in Milliohms (mΩ)
      3. 6.1.3 Motor Inductance in Microhenries (μH)
      4. 6.1.4 Saliency of IPMSM Motor
      5. 6.1.5 Motor BEMF Constant
      6. 6.1.6 Base Voltage (V)
      7. 6.1.7 Base Current (A)
      8. 6.1.8 Maximum Motor Electrical Speed (Hz)
    2. 6.2 Control Configurations for Basic Motor Spinning
      1. 6.2.1 Basic Motor Startup
        1. 6.2.1.1 Disable ISD
        2. 6.2.1.2 Motor Start Option - Align
        3. 6.2.1.3 Motor Open Loop Ramp
        4. 6.2.1.4 Motor Open Loop Debug
      2. 6.2.2 Controller Configuration for spinning the Motor in Closed Loop
        1. 6.2.2.1 PI Controller Tuning for Closed Loop Speed Control
        2. 6.2.2.2 Testing for Successful Startup Into Closed Loop
    3. 6.3 Fault Handling
      1. 6.3.1 Abnormal BEMF Fault [ABN_BEMF]
      2. 6.3.2 Monitoring Power Supply Voltage Fluctuations for Voltage Out of Bound Faults
      3. 6.3.3 No Motor Fault [NO_MTR]
  10. 7Advanced Tuning
    1. 7.1 Control Configurations Tuning
      1. 7.1.1  Initial Speed Detection of the Motor for Reliable Motor Resynchronization
      2. 7.1.2  Unidirectional Motor Drive Detecting Backward Spin
      3. 7.1.3  Preventing Back Spin of Rotor During Startup
      4. 7.1.4  Gradual and Smooth Start up Motion
      5. 7.1.5  Faster Startup Timing
      6. 7.1.6  Stopping Motor Quickly
      7. 7.1.7  Flux Weakening : Operating Motor at Speeds Higher than Rated Speed
      8. 7.1.8  Maximum Torque Per Ampere : Improve Efficiency of IPMSM Motors
      9. 7.1.9  Preventing Supply Voltage Overshoot During Motor Stop.
      10. 7.1.10 Protecting the Power Supply
      11. 7.1.11 FOC Bandwidth Selection
  11. 8Hardware Configurations
    1. 8.1 Direction Configuration
    2. 8.2 Brake Configuration
    3. 8.3 Main.h Definitions
    4. 8.4 Real Time Variable Tracking
  12. 9Revision History

Real Time Variable Tracking

32-bit algorithm variables can be output in real time from the MCU through the DAC. DAC output is enabled by setting DAC_EN = 1. The DAC in MSPM0 is 12 bit, thus a scaling needs to be applied before output. User has two ways to scale the variable before output.

  • For variables in global IQ format(IQ27):

    DAC_OUTPUT_VOLTAGE = (VARIABLE_VALUE × DAC_SCALING_FACTOR + 1) × 1.65V

    In the above equation setting the DAC_SCALING_FACTOR to 1 enables user to represent a data of IQ(1.0) to IQ(-1.0) in between 0V and 3.3V. To represent the data exceeding the value 1.0 use higher DAC_SCALING_FACTOR.

    For Example: To represent a data from -2.0 to +2.0 , set the DAC_SCALING_FACTOR to 0.5.

  • For variables in other IQ format:

    For output of any other IQ, user can left shift or right shift the variable to bring the data in a 12-bit range before output. This mode is selected by setting DAC_SCALING_FACTOR to 0.

    If variable value is less than a 12-bit value, set DAC_SCALE to positive, the DAC output follows as below:

    DAC_OUTPUT_VOLTAGE = (VARIABLE_VALUE << DAC_SCALE) × 3.3V

    If variable value is greater than a 12-bit value, set DAC_SCALE to negative, the DAC output follows as below

    DAC_OUTPUT_VOLTAGE = (VARIABLE_VALUE >> DAC_SCALE) × 3.3V

    Note: Settings DAC_EN = 1 feeds the variable output to the DAC registers, but user needs to enable the DAC peripheral in TI SysConfig for the DAC peripheral to function. Also make sure the DAC output pin is not loaded by any other peripheral.
Table 8-1 Address Table for DAC Monitoring
Variable Address
A phase current 0x20200600
B phase current 0x20200604
C phase current 0x20200608
A phase current raw ADC value 0x2020060C
B phase current raw ADC value 0x20200610
C phase current raw ADC value 0x20200614
A phase voltage 0x20200670
B phase voltage 0x20200674
C phase voltage 0x20200678
A phase voltage raw ADC value 0x2020067C
B phase voltage raw ADC value 0x20200680
C phase voltage raw ADC value 0x20200684
D axis current 0x20200748
Q axis current 0x2020074C
D axis voltage 0x20200750
Q axis voltage 0x20200754
Estimated motor velocity filtered 0x20200BD4
Estimated rotor angle 0x20200BDC
SVM output duty A phase 0x20200718
SVM output duty B phase 0x2020071C
SVM output duty C phase 0x20200720