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.

TMS320F28069M: Connected EPWM1 signals wrong, defined by InstaSpin

Part Number: TMS320F28069M

Hi TI,

I am using Instaspin on the TMS320F28069M and I use the labs of the high voltage kit.
I made a mistake and connected the PWM GPIO-00 to EPWM1B, and GPIO-01 to EPWM1A. The rest I connected correctly.

In hal.c I added these lines to compensate for my mistake. (the action should go the other way around now?)

  PWM_setActionQual_CntUp_CmpA_PwmA(obj->pwmHandle[0],PWM_ActionQual_Clear);
  PWM_setActionQual_CntDown_CmpA_PwmA(obj->pwmHandle[0],PWM_ActionQual_Set);

After this change proj_lab01c runs fine.
After this I wanted to run proj_lab02a which will run the identification, but here problems arise. The ramp up stage of the identification in Instaspin does not seem to go smoothly. As this is openloop I'm quessing I maybe have to change more code. Or should I fix my problem in hardware and is this connection required? Or could the problem be somewhere else?

Thank you

  • No more code needs to be changed from the algorithm side. The problem should be from the current/voltage sampling signals on the hardware board, please check the sensing signals using lab01c, ensure the signals are good for the identification and running, and check if the current/voltage scaling values are set correctly according to the hardware board.

    Lab01c just tested the current signal chain on board, you may use PWMDAC or DATALOG to verify the voltage also if possible.

  • The current and voltage signals actually look quite similar, maybe even better then the eval kit. Also the scaling should be correct.

    A lot of current is drawn when the motor is ramping up in the identification. Is this normal? Can I somehow limit this?

  • That means it's ok if the lab01c worked well when you change the reference current and the motor current will change accordingly. 

    You should set the identification parameters as below in user.h based on the specification of the motor.

    #define USER_MOTOR_RES_EST_CURRENT (1.0)
    #define USER_MOTOR_IND_EST_CURRENT (-1.0)
    #define USER_MOTOR_MAX_CURRENT (5.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (20.0)