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.

CCS/TMS320F28027: Motor not running when driver is put to sleep and then started up again

Part Number: TMS320F28027
Other Parts Discussed in Thread: DRV8305

Tool/software: Code Composer Studio

Hi Folks,

I am having issues in running a motor after the driver (drv8305) is put to sleep and walking it up again, when the input voltage is close to 9v. This problem doesn't exist when the input voltage is 12+ or if we don't put the driver to sleep. Our board closely follows the reference system design, similar to Launchpad XL with TMS320F28027F & DRV8305. We use HAL libraries + InstaSPIN for our development.

To put the device + driver into LPM, I follow these steps (in semi-pseudo code),

// Turn off motor, this causes HAL_disablePwm() to be called in the main loop
gMotorVars.Flag_enableSys = false;
gMotorVars.Flag_Run_Identify = false;

// Put drv8305 to sleep
GPIO_setLow(drv8305 EN_GATE_PIN);
GPIO_setLow(drv8305 WAKE_PIN);
gDrvSpi8305Vars.WriteCmd = true;
gDrvSpi8305Vars.Ctrl_Reg_09.SLEEP = true;
HAL_writeDrvData(halHandle, &gDrvSpi8305Vars);
gDrvSpi8305Vars.Ctrl_Reg_09.SLEEP = false;

// Goto halt or sleep LPM, previously configured using PWR_setLowPowerMode()
IDLE;

// Wake up from halt/sleep, previously configured to be caused by a GPIO button press
GPIO_setHigh(drv8305 WAKE);
HAL_enableDrv(halHandle);

// Turn on the motor

At these point (when using ~9v input) the motor  produces relatively high pitched noise and slowly rotates at rpm well below the set value. Additionally, the rs value also drops significantly from ~1.8 (correct) to ~0.4, mesearued by enabling rs calibration.

I would truly appriciate if you guys can shade some light as to what I can do to fix this. Thanks a lot in advanced.

Abir

  • What's the rated voltage of the motor? Also, InstaSPIN depends on correct Vbus information to scale the pu voltages in the estimator. Can you check if the value is correct for Vbus_kV in the watch window during the time that Rs Recalc is giving incorrect info?

    Sean
  • Hi Sean,

    The motor is rated for 12V dc. VdcBus_kV shows the proper input voltage (~9.2V dc).
    The motor starts normally at 9V when sleep mode is not used. Only when it wakes up from sleep mode, Rs calculation is incorrect and the a high pitched noise occurs with the motor rotating at 200 - 300RPM, when it actually should be running at 1000RPM.

    Any idea how to correct the operation?


    Thanks,
    Rezwan
  • Have you run labs 01b and 01c to make sure you've correctly designed the feedback for current/voltage and check the SVGEN modules?

    Sean
  • Hi Sean,

    The feedback seems to be correct. Custom board design is identical to the reference design on Launchpad XL.
    In case the feedback was incorrect, wouldn't the issue repeat when the micro doesn't have low power mode activated?
    It seems like at 9V, the system considers the motor under saturation when low power mode is activated on the micro. How is the system behaving differently when low power mode is activated?
  • The feedback question was regarding running Rs Recalc, but if it yields a similar result to the value identified in lab02b before the DRV device goes into LPM, then it shouldn't be an effect of the feedback circuitry

    I'll need to have someone from the DRV team comment on this, they'll know more about what's happening in the device during LPM

    Sean
  • Hi Rezwan,

    I have a few questions from the hardware point of view.

    For the 9V question, have you looked at PVDD when starting the motor? Is PVDD drooping below the UVLO warning voltage and asserting a fault? What does the code do if a fault is asserted?

    For the sleep to wake question, how long are you waiting prior to driving the motor after exiting sleep mode? Have you confirmed the AVDD, DVDD, and VCP regulators are operating?
  • Hi Rick,

    At 9v (PVDD=9.27V), there is no PVDD undervoltage flag warning. Although there is a Charge pump undervoltage flag warning (VCHP_UVFL).

    I've measured the voltages across all the regulators to confirm their operation.
    VAVDD = 5.02V (Do you know why this is lower than PVDD? The datasheet mentions that VAVDD is typically similar to VPVDD)
    VDVDD = 3.26V (Typically 3.3V)
    VVCPL = 10.15V, VVCPH = 10.33V

    can give us a better idea regarding the delay prior to driving the motor after exiting sleep mode.
  • Hi Rezwan,

    Although the high side charge pump did not fault, it was below the expected voltage. This could be part of the problem.

    Please try raising the PVDD voltage in 0.5V increments until the startup is consistent. Then please compare the signals around the device with the inconsistent startup. You may need to zoom in to carefully monitor the first few PWM cycles.

    Was Abir able to determine the delay between exiting sleep and driving the motor?
  • Hi Rezwan,

    I’m assuming you were able to resolve your issue. If not, just post a reply below (or create a new thread if the thread has locked due to time-out)