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.

Motor Identification problem

Other Parts Discussed in Thread: MOTORWARE

Hi,

I have the DRV8301 Drive and Piccolo F28069MISO ControlCard. After setting the whole thing up, I opened InstaSPIN Motion F2806xM and tried to let it identify my motor. With Automatic ID identification method, the progress would only go as far as 45 or 46% where it abruptly stops, giving an "EST_State_Error" status. I have also went through the whole ordeal with recompiling the user.h file and renaming projects' *.out file as appProgram, and placing them in the appropriate folder, but then InstaSPIN Motion could not even identify the Hardware (the green light appears next to the HV Kit 1.1 instead of the DRV8301...)!

I then tried doing this in InstaSPIN F2806xM Universal, and it shines a green light indicating an 'Identified Motor' if I have the "user.h settings" selected, but my motor does not spin at all, and it gives me "CTRL_State_OffLine" and "EST_State_Idle" statuses the whole time. All my parameters in my "user.h" file do show up correctly in the interface though. If I have the "user.h settings" disabled and attempt running it, the Motor Identification has a red light instead, indicating a failure.

There is one thing that bugs me; the LD2 LED on the ControlCard continues to blink if I open InstaSPIN F2806xM Universal, but this doesn't happen at all if I just use InstaSPIN F2806xM Motion. Does the blinking LED mean an error with the connection or hardware setup? Even in CCS v5, when I try to debug a project, it keeps giving me (Error 151 @ 0x0) with a message about problem with connection. I'm not sure if this is the right place to ask this question, but I would really appreciate any sort of help and guidance!

My user.h file:

-----------------------------------------------------------------------------------------------------------------------------------------------------------

#ifndef QEP
#define USER_IQ_FULL_SCALE_FREQ_Hz        (1000.0)  
#else
#define USER_IQ_FULL_SCALE_FREQ_Hz      
#endif

#define USER_IQ_FULL_SCALE_VOLTAGE_V      (30.0)

#define USER_ADC_FULL_SCALE_VOLTAGE_V       (66.32)

#define USER_VOLTAGE_SF               ((float_t)((USER_ADC_FULL_SCALE_VOLTAGE_V)/(USER_IQ_FULL_SCALE_VOLTAGE_V)))

#define USER_IQ_FULL_SCALE_CURRENT_A          (41.25)

#define USER_ADC_FULL_SCALE_CURRENT_A        (82.5)

#define USER_CURRENT_SF       ((float_t)((USER_ADC_FULL_SCALE_CURRENT_A)/(USER_IQ_FULL_SCALE_CURRENT_A)))

#define USER_NUM_CURRENT_SENSORS       (3)

#define USER_NUM_CURRENT_SENSORS            (3)

#define USER_NUM_VOLTAGE_SENSORS            (3)

#define   I_A_offset    (0.9924157262)
#define   I_B_offset    (0.9899309278)
#define   I_C_offset    (0.9949821234)

#define   V_A_offset    (0.1230393052)
#define   V_B_offset    (0.1227955222)
#define   V_C_offset    (0.1228467822)

#define USER_SYSTEM_FREQ_MHz             (90.0)

#define USER_PWM_FREQ_kHz                (45.0)

#define USER_MAX_VS_MAG_PU        (1.0)

#define USER_PWM_PERIOD_usec       (1000.0/USER_PWM_FREQ_kHz)

#define USER_ISR_FREQ_Hz           ((float_t)USER_PWM_FREQ_kHz * 1000.0 / (float_t)USER_NUM_PWM_TICKS_PER_ISR_TICK)

#define USER_ISR_PERIOD_usec       (USER_PWM_PERIOD_usec * (float_t)USER_NUM_PWM_TICKS_PER_ISR_TICK)

#define Estun_EMJ_04APB22           101
#define Anaheim_BLY172S             102
#define Teknic_M2310PLN04K          103
#define T_MOTOR_MN3110_15_780         105

//#define USER_MOTOR Estun_EMJ_04APB22
//#define USER_MOTOR Anaheim_BLY172S
//#define USER_MOTOR Teknic_M2310PLN04K
//#define USER_MOTOR Belt_Drive_Washer_IPM
//#define USER_MOTOR Marathon_5K33GN2A
#define USER_MOTOR T_MOTOR_MN3110_15_780

.

.

.

#elif (USER_MOTOR == T_MOTOR_MN3110_15_780)          
#define USER_MOTOR_TYPE                 MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS       (6)          
#define USER_MOTOR_Rr                   (NULL)      
#define USER_MOTOR_Rs                   (0.0604275)  
#define USER_MOTOR_Ls_d                 (0.008464367)
#define USER_MOTOR_Ls_q                 (0.008464367) 
#define USER_MOTOR_RATED_FLUX           (0.068571)   
#define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)     
#define USER_MOTOR_RES_EST_CURRENT      (1.0)        
#define USER_MOTOR_IND_EST_CURRENT      (-1.0)       
#define USER_MOTOR_MAX_CURRENT          (10)          
#define USER_MOTOR_FLUX_EST_FREQ_Hz     (100.0)      
#define USER_MOTOR_ENCODER_LINES        (2500.0)      
#define USER_MOTOR_MAX_SPEED_KRPM       (9.0)        
#define USER_SYSTEM_INERTIA             (0.02)       
#define USER_SYSTEM_FRICTION            (0.01)       
#else
#error No motor type specified
#endif

.

.

.


Thank you
.

Regards,

Yau

  • Hi Yau,

    I have moved your post to the InstaSPIN forum. They can better answer your question.

  • You have another thread going over here that I already answered on, but I will comment that from your user.h (which you only posted a portion of, in the future use the Options tab and add the whole file) I can tell you are using the user.h from the instaspin_motion path.

    You need to start with the instaspin_foc labs and work through motor ID first

    follow the Labs UG at:

    C:\ti\motorware\motorware_1_01_00_13\docs\labs

  • hi,
    i see one thing in your code that might relate to your problem or not but,

    i read some pdf in using the ti products and i understand that in assigning the params, two parameter is related to each other,
    USER_IQ_FULL_SCALE_VOLTAGE_V, USER_ADC_FULL_SCALE_VOLTAGE_V.
    you assign them 30 and 66.32 but there is a relation that said:

    USER_ADC_FULL_SCALE_VOLTAGE_V > 2* USER_IQ_FULL_SCALE_VOLTAGE_V
    and you do not do that.