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.

DRV8305-Q1EVM: Same hardware / same software different motor half the rpm and electric frequency ?!

Part Number: DRV8305-Q1EVM
Other Parts Discussed in Thread: DRV8305, MOTORWARE

We have two pairs of LAUNCH XL  28027 + BOOSTXL DRV8305 + Motorware lab 05 speed_control  and two identical motors.

Both kits running the same software.

But with one motor both kits run the motor at half speed compared  to  the other motor.

If we swap the motors the problem follows the motor to the other kit.

We can hear that the motor is running at half the speed, we cannot measure it mechanically because of inaccessibility to the motor axis,

But we have HALs on the motor (not using them for speed control because we are running FOC) and we have connected oscilloscope

via a  low pass filter to one of the phases so we can observe the waveforms going to the motor.

Both the HAL signal and the phase waveform confirm that electrically the motor

is running at DIFFERENT speed, depending on the motor.

When we command 1000 rpm on lab_05 the electrical commutation frequency is either 333 Hz or 166 Hz depending on the motor!

How is that possible?? 

How can the software 'know' that it is running a different motor and alter its behaviour?

Even if the motors were somehow defective or of different type by some strange assembly error, how could this be?

I get it that if the the two motors had different number of poles (it is a two pole motor) then the physical rpm would be different,

but we are observing both the electrical phases and the HAL signals which tell the same story, the other motor runs at half speed...?!?!

  • Are these two motors different parameters? If yes, you should run the motor with its accurate parameters, can't use the same software to run these two different motor. The instaSPIN software can know which motor is connected to the kit if the Rs of both motors are very similar.

  • The motors are identical (well obviously not 100% identical then they would run the same!) and the hardware and software including user.h are identical and when we swap motors between the two evaka kits the strange behaviour follows the motor.

    And that is the mystery, how can that be?

    How can it be that instaspin changes the electrical commutation frequency depending on which motor is connected?

    Instapsin always reports the speed as 10000 rpm but outputs either 166 or 333 Hz as if the number of poles in SOFTWARE would change depending on which motor is connected!!??

  • Things have moved on, here is the update:

    As it was evident that there was some difference in the motors that were supposed to be identical we measured them and the other one had three times the coil resistance of the other.

    The motor manufacture is adamant that such a motor could not leave their factory.

    The we had an other incident where we actually destroyed a motor with instaspin lab_02 when we were trying to ID a third identical motor.

    So this got us thinking that perhaps we had damaged the first motor when we ID'ed that! That would explain a lot.

    This still does not answer my original question how instaspin can spin the motor at the wrong speed?

    Buit it also raises an even more important abd urgent questions, how do we prevent the lab_02 from killing more motors, what parameters do we need to change?

    I'm not trying to blame TI or instapspin, our fault that we destroyed those motors but I need understand how to prevent that in the future.

  • As mentioned above, the motor could be spun with incorrect speed if the motor parameters are not correct or the configuration parameters of the board are not correct.

    Please set the right identification parameters in user.h based on the spec. of the motor and don't identify the motor with any loading.  

    #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     (20.0)                           // Hz - 10~30% rated frequency of the motor

    And please configure the VDS comparator threshold of the DRV8305 for over current protection as the code below.

    // turn on the DRV8305 if present
    HAL_enableDrv(halHandle);
    // initialize the DRV8305 interface
    HAL_setupDrvSpi(halHandle,&gDrvSpi8305Vars);

    gDrvSpi8305Vars.Ctrl_Reg_0C.VDS_MODE = Latched_Shutdown;
    gDrvSpi8305Vars.Ctrl_Reg_0C.VDS_LEVEL = VDS_Level_0p317_V;
    gDrvSpi8305Vars.WriteCmd = true;
    HAL_writeDrvData(halHandle,&gDrvSpi8305Vars);