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.

TMS320F28027-Q1: TMS320F28027-Q1: TMS32f28027 motor application, porting to their own board, debugging failure problem

Part Number: TMS320F28027-Q1
Other Parts Discussed in Thread: MOTORWARE

TMS32f28027 motor application, porting to their own board, debugging failure problem.

It ran on the high voltage kit, but ported to its own design board, and there were problems.

One of them runs for a while, and then it blows up.
Another piece, can not be online simulation debugging.

My question is, how do you troubleshoot a board problem that can't be simulated online

  • Hi,

    Which project and labs in Motorware are you evaluating and porting? Starting with open loop control to verify your hardware / sensing could be a good step to take first before transitioning to closed loop control.

    Best,

    Kevin

  • This is the project  we used. ——D:\Ti\motorware_1_01_00_18\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\hvkit_rev1p1\f28x\f2802xF\projects\ccs\proj_lab02b .  On the high voltage kit, we also only carry out calibration of voltage and current bias values。Now we are in urgent need of technical support who are very familiar with FAST algorithm to help us troubleshoot the problems in the cooperation between our hardware board and software.

  • Hi Winni,

    If the software solution is working on the high voltage kit, but not on the custom board then there may be some hardware differences that haven't been considered. Have you already referenced and used the 'motorware_selecting_user_variables.xlsx' file in the directory below for making appropriate changes to the HW & SW for your hardware & motor?

    C:\ti\motorware\motorware_1_01_00_18\docs\labs

    The phase current and voltage sensing will need to be verified on your hardware, this is why open-loop testing would be helpful.

    Best,

    Kevin

  • I know this document, but I don't know how to use it.

  • You may take a look at the guide below as well, and try to change the device configuration according to your own board.

    1. Please refer to the guide, motorware_hal_tutorial.pdf below, to change the peripherals configuration like PWM and ADC in hal.c and hal.h according to your hardware board.

    C:\ti\motorware\motorware_1_01_00_18\docs\tutorials

     

    2. Set correct parameters based on the hardware board in user.h. You can refer to the Chapter 5 Managing Motor Signals of  InstaSPIN-FOC and InstaSPIN-MOTION User's Guide to calculate and define the value of these variables.

    #define USER_IQ_FULL_SCALE_VOLTAGE_V           (xx)

    #define USER_VOLTAGE_FILTER_POLE_Hz               (xx)

    #define USER_ADC_FULL_SCALE_VOLTAGE_V       (xx)

    #define USER_IQ_FULL_SCALE_CURRENT_A           (xx)

    #define USER_ADC_FULL_SCALE_CURRENT_A       (xx)

     

    3. Make sure that the sign of the current coefficient in HAL_readAdcData() in hal.h matches the current sensing circuit. Refer to chapter 5.2.2 Current Feedback Polarity in InstaSPIN user's guide (SPRUHJ1, https://www.ti.com/lit/spruhj1) to set the sign of the current scale factor.

     

    static inline void HAL_readAdcData(HAL_Handle handle,HAL_AdcData_t *pAdcData)

    {

       _iq current_sf = (+/-)HAL_getCurrentScaleFactor(handle);

    }

     

    4. Follow the instaSPIN lab guide to use lab01b and lab01c to verify your own hardware since you are not using the TI EVM kits and then run the subsequent labs.

     

     

    5. Using the lab02b or lab02c and tuning the identification variables parameter below to identify the motor parameters, and use the identified parameters to run the motor if the current and voltage sensing signals are verified and good.

    #define USER_MOTOR_RES_EST_CURRENT      (1.0)                               // A -  10-30% of rated current of the motor

    #define USER_MOTOR_IND_EST_CURRENT      (-1.0)                             // A -  10-30% of rated current of the motor,  just enough to enable rotation

    #define USER_MOTOR_MAX_CURRENT            (5.0)                               // A -  30~150%  of rated current of the motor

    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (40.0)                            // Hz - 10~30% rated frequency of the motor