DRV8301: Overcurrent issues when motor has load

Part Number: DRV8301

Hello team,

My customer is using the DRV8301-69M-KIT to evaluate and characterize the motors using the instaspin labs.  The motor works fine with no load, but once the load (propeller) is attached there is an overcurrent issue.  Is there a setting that needs to be changed? or is there other labs that the customer needs to implement to fix this issue?

One other question the customer has is the DRV8353 or DRV8301, capable of driving a motor to 40,000RPMs? and can it be implemented with the current CCS instaspin software?

Thanks!

Errol

Field Applications Engineer

7 Replies

  • Thanks, Errol. Please find attached modified user.h file and the proj_lab05b.c - it would be surprising that we'd have issues spinning up with load levels above 5V on this board. Could really use your support in debugging.

    proj_lab05b_modified.c

    3513.user.h

  • In reply to Adnan Esmail:

    Hi Errol, Adnan,

    The over-current is likely caused by the driver reacting to the high current when loaded. You may need to increase the threshold through the driver tab. 

  • In reply to Anuj Narain:

    Attached is the drv8301.c file. I'm not sure what level it is currently configured to, what it needs to be adjusted to, and which variable to update.

    As far as I know, this setting hasn't been modified from the default settings within the DRV8301-HC-C2-KIT and associated project files. I'm barely able to get it to support current levels above 3A. This doesn't make sense, since the kit was designed for 60A operation. Maybe we're missing something...

    drv8301.c

  • In reply to Adnan Esmail:

    Hi Errol, we understand now that this is not an overcurrent issue on the driver . I will move this thread to C2000 team.
  • In reply to Anuj Narain:

    Did you have any waveforms of motor phase current measured by an oscilloscope during the overcurrent issue, and did you see if there is a low-level output on nFault or nOCTW pins when an overcurrent fault reported.

    You might add "gDrvSpi8301Vars.Ctrl_Reg_1.OC_ADJ_SET" to expression watch window to check the current level configuration. And you could change the current limitation by using below codes.

    // Imax=Vds/RdsOn=0.576V/3.9mOHM=147A(peak)
    gDrvSpi8301Vars.Ctrl_Reg_1.OC_ADJ_SET = DRV8301_VdsLevel_0p576_V;
    gDrvSpi8301Vars.SndCmd = true;
    HAL_writeDrvData(halHandle,&gDrvSpi8301Vars);
  • In reply to Yanming Luo:

    Hi Yanming,

    From our call today I am going to have this continue on the other e2e thread linked below. From our discussion, this does not seem to be a overcurrent issue or hardware issue, but possibly having to do with the main ISR function for the ecap. I am testing it out today as well as the recommendation with the variable values in the user.h file with USER_IQ_FULL_SCALE_CURRENT_A, USER_ADC_FULL_SCALE_CURRENT_A and USER_MOTOR_MAX_CURRENT to achieve 40A.

    e2e.ti.com/.../760828

    Best,
    Errol Leon
    Texas Instruments
    Field Application Engineer
  • In reply to Errol Leon6:

    Yes, you might check how many CPU cycles will be taken by eCAP ISR, and if there is an overflow from the main ISR. It shouldn't have an overcurrent since you just set USER_MOTOR_MAX_CURRENT to 10A before. You shouldn't change USER_ADC_FULL_SCALE_CURRENT_A, and could set USER_IQ_FULL_SCALE_CURRENT_A to the value of USER_ADC_FULL_SCALE_CURRENT_A, just change USER_MOTOR_MAX_CURRENT to the target torque current you want. It's better to capture some current waveforms by oscilloscope that could help to solve the problem.