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.

DRV8301-69M-KIT: Cannot be driven above 44V( motorware lab 05b)

Part Number: DRV8301-69M-KIT
Other Parts Discussed in Thread: MOTORWARE, DRV8301


I am trying to drive a motor at 48V using the DRV8301-69M-KIT.(No load 100 rpm)

Software is motorware Lab05b.

If Vdc is set to 44V or higher, the motor cannot be driven. PWM pulse is broken.

* 43.75V is OK. 44V or higher is NG.

I tried some motors, but All the same(can't be drive over 44Vdc.)

USER_PWM_FREQ_kHz is 45kHz
ADC can recognize even ~50V at debugger.

Motor specs and constants are entered correctly.( USER_MOTOR_TYPE~~ )

Need any other modifications?

  • I don't think you need to change anything on the board to run a 48V motor. And don't need to set the USER_IQ_FULL_SCALE_VOLTAGE_V is greater than USER_ADC_FULL_SCALE_VOLTAGE_V, you may just set USER_IQ_FULL_SCALE_VOLTAGE_V to 48V.

    Please check if the gMotorVars.VdcBus_kV is right if you add a 48V voltage to the DC input, and make sure that the power voltage is less than 60V.

  • Thank you for your reply.

    I have confirmed that gMotorVars.VdcBus_kV correctly recognizes up to 56V.
    However, motor cannot  drive at 44V or higher.
    * VdcBus_kV is correct even if the motor operation is abnormal.

    The inductance of the motor is relatively small, but is it related? (about 50uH)

  • It seems that the motor cannot be driven when the carrier frequency is 38kHz or higher.
    If it was 36kHz, it was OK up to 50Vdc.

    I want to set the carrier frequency to over 45kHz .

    I tried changing USER_NUM_PWM_TICKS_PER_ISR_TICK and USER_NUM_CTRL_TICKS_PER_SPEED_TICK ,but it didn't improve.

    Is there anything else I should look for?

  • 1.  Set the correct USER_NUM_PWM_TICKS_PER_ISR_TICK and USER_PWM_FREQ_kHz to set the USER_CTRL_FREQ_Hz and USER_EST_FREQ_Hz is lower than 16kHz if you don't add too much code in ISR. Otherwise, you have to use a lower control frequency.

     2. Use lab02c to identify the motor parameters for other subsequent labs.

    3. You might configure the DRV8301 register for supporting a higher current.

  • I haven't added any code in the ISR. I changed the USER_IQ_FULL_SCALE_VOLTAGE_V = 48V only.
    I'm trying with the minimum modifications based on the default.

    USER_PWM_FREQ_kHz = 45
    *Other values are being tested with the lab05 defaults.

    I also tried lab02c. At 45kHz it works at 43V but not at 44V.
    This also works at 48V if the USER_PWM_FREQ_kHz  is 20kHz.

    *Current is under 5A, so I think don't have to change the DRV8301 register.

  • What error was the program reported when the dc bus voltage is higher than 43V? Did you capture any current and voltage waveforms?

  • I investigated.
    Then it turned out that the OCTWn signal was Low (On).
    The Instaspin operation was fine and seems to have stopped due to the OCTWn signal.
    When I disabled PWM_enableTripZoneSrc as a trial, the motor could be driven without any problem even at 50V. (Of course OCTWn is sometimes ON)

    I don't know the reason, but it doesn't react up to 43V, but it reacts above 44V.

    Of course, the current is about 2A or less including ripple, so it is not an overcurrent.

    Is it necessary to adjust the threshold voltage of Vds protection of DRV8301?
    For example, DRV8301_PeakCurrent and DRV8301_VdsLevel in drv8301.h.

  • Yes, as mentioned above, you might try to change the configuration of DRV8301 registers, and set the right protection values for DRV8301.