This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280025C: General motors lab cannot identify motors

Part Number: TMS320F280025C
Other Parts Discussed in Thread: LAUNCHXL-F280025C, C2000WARE-MOTORCONTROL-SDK, C2000WARE, TMDSCNCD280025C, BOOSTXL-DRV8323RS

My development board is LaunchXL-F280025C, and the driver board is DEV8323RS. According to the General motor guide, A 47nF capacitor has been installed for C9, C10 and C11 respectively, and SW2 has been dialed to 1,1. I have connected the driver board to launchXL-F280025C. I set flag_bypassMotorId as flash to identify the motor, and change the polar log of the motor parameter in user.h to 14, because I don't know the other parameters, I need to identify the motor. When the program runs, I set flagEnableRunAndIdentify to 1, and I immediately receive the moduleOverCurrent error, which comes from the TZFLG register. It is related to OST, DCAEVT1 and DCAEVT2 registers. This error seems to tell me that one of them should be set, but in fact it is not. How can I eliminate this error and successfully identify motor parameters?

  • Please take a look at the lab user’s guide as the link below, and follow it to run the lab from build level 1.

    C2000WARE-MOTORCONTROL-SDK: https://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK

    Universal Project and Lab User’s Guide: https://www.ti.com/lit/spruj26

    Example lab project at the folder: C:\ti\c2000\C2000Ware_MotorControl_SDK_3_03_00_00\solutions\universal_motorcontrol_lab\f28002x

    Don't add any load to run the motor before the build level 4 and to identify the motor in build level 4.

  • I already built the program with DMC_LEVEL_1 and passed, then I built the program with DMC_LEVEL_4 and the above error occurred.

  • I found an interesting phenomenon, after I removed the motor from DRV8323RS, I used DMC_LEVEL_4 to build the program and run the recognition, moduleOverCurrent error will disappear, everything is normal, I can see the PWM waveform, but when I connected the motor and ran the program, ModuleOverCurrent error occurs and the PWM waveform cannot be obtained with an oscilloscope.

  • Don't add the load to the motor for parameters identification. And follow the guide to set the right parameters according to the motor.

    #define USER_MOTOR1_RES_EST_CURRENT_A (1.5f)
    #define USER_MOTOR1_IND_EST_CURRENT_A (-1.0f)
    #define USER_MOTOR1_MAX_CURRENT_A (6.0f)
    #define USER_MOTOR1_FLUX_EXC_FREQ_Hz (40.0f)

    #define USER_MOTOR1_OVER_CURRENT_A         (6.5f)           // A

    Also change the below parameters for running the motor with build level 2.

    #define USER_MOTOR1_FREQ_LOW_Hz (5.0f) // Hz
    #define USER_MOTOR1_FREQ_HIGH_Hz (300.0f) // Hz
    #define USER_MOTOR1_VOLT_MIN_V (5.0f) // Volt
    #define USER_MOTOR1_VOLT_MAX_V (24.0f) // Volt

  • I built the level 2 program and ran the motor according to the test guide.,I have no load on my motor,My motor parameters are set as follows:

    When I set flagEnableRunAndIdentify to 1, the motor heard a click and I received the ModuleOverCurrent error. I traced the Cmpss register and found a COMPLLATCH event. But I set the overflow value as 15A, which is in line with the maximum value of DRV8323RS. The screenshot of the error is as follows:

    How can I solve this problem?

  • What motor are you using? Did you have the motor specification? And did you follow th lab guide to select the right algorithm for this motor?

    The below parameters must be tuned according to your motor, not use them directly for your motor.

    #define USER_MOTOR1_FREQ_LOW_Hz (5.0f) // Hz
    #define USER_MOTOR1_FREQ_HIGH_Hz (300.0f) // Hz
    #define USER_MOTOR1_VOLT_MIN_V (5.0f) // Volt
    #define USER_MOTOR1_VOLT_MAX_V (24.0f) // Volt

  • I only know the polar logarithm of the motor, and I hope to confirm the other parameters through motor identification. I can easily achieve this by using LAB2B, but that is based on 28027 chip. I would like to ask whether 280025C must provide the appropriate parameters of V/F curve to identify the motor. Can I skip this step? Can I proceed directly to DMC_LEVEL_3 and DMC_LEVEL_4? Except for the motor, all the hardware I use is based on ti evaluation board. I have not tried DMC_LEVEL_3, but I will immediately receive the ModuleOverCurrent error for DMC_LEVEL_4 and DMC_LEVEL_2. I have spent a week and the motor is still not running. I'm upset. Can you tell me what I did wrong?

  • Please follow the below steps to check the setting you did. 

    • Make sure that switches on TMDSCNCD280025C are set as described below.
      • For S1:A, position both switches up for using the on-Card XDS100v2 emulator
      • For S2, position the left switch up (1) to route GPIOs 28 and 29 to the BoosterPack connector, and position the right switch up (1) to rout GPIOs 16 and 17 to the virtual COM port.
      • For S3, position the left switch down to pull GPIO24 down to logic 0, and position the right switch up to pull GPIO32 up to logic 1 to put the F280025C into wait boot mode for reducing the risk of connectivity issues or a previous loaded code execution.
      • For S5, position the left switch down to route Q1 to J12 for the encoder interface on J12, and position the right switch down to route Q2 to J13 for the Hall sensor interface on J13.
    • Make sure that the following items are completed as described below, and then connect the BOOSTXL-DRV8323RS to J1/J3 and J4/J2 of the LAUNCHXL-F280025C as shown in .
      • Populate C9, C10, and C11 with a 47nF capacitor.
      • Bend J3-29 and J3-30 of the LAUNCHXL-F280025C  90 degrees so that they are not connected to the BOOSTXL-DRV8323RS.