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.

BOOSTXL-DRV8301: + LAUNCHXL-F28027F - Building a BLDC ESC

Part Number: BOOSTXL-DRV8301
Other Parts Discussed in Thread: DRV8301, LAUNCHXL-F28027F,

hi guys,

I would like to build my own ESC, using a Fast enabled TI MCU with a DRV8301 driver for an RC car.

Before starting to design my own board, I use a LAUNCHXL-F28027F evaluation kit with the BOOSTXL-DRV8301 booster pack.

The motor I use is the following: Turnigy XK2845-3650KV (4 poles, 3650kv, 48A max) -> hobbyking.com/.../turnigy-xk2845-3650kv-brushless-inrunner.html

When I start with the lab02b to identify my motor characteristic, I observe that my laboratory power supply deliver at least 10A (max current that they can deliver) and the booster pack heat a lot (the driver and power capacitor).

I think the booster pack is not design to drive such a motor. If I want to design my own, what do you think should be changed to design my ESC?

In advance, thank you.

Best regards,

  • You might use lab02c to identify the motor, and set the PWM frequency to a higher value, like 45kHz since the motor is a low inductance motor.

  • Hello,

    Sorry, I actually use the lab02c to identify the motor.

    I'll try to change the PWM frequency, I'll come back when I tried that.

    Regards.

  • Hi,

    I've tried to change the PWM frequency and 60kHz should be an acceptable value. I think more than 60kHz would be great. Does some hardware change are needed to use the ePWM hardware module? Indeed, the user.h file specifies that the use of ePWM module are needed if this value is greater than 60.

    I also set the value "USER_MOTOR_FLUX_EST_FREQ_Hz" to 100Hz. However, I haveobserved an inconsistent motor drive on low speed (100 to 500 RPM). Is this due to the poles' number of the motor (4)?

    Best regards

  • USER_PWM_FREQ_kHz=45, and USER_NUM_PWM_TICKS_PER_ISR_TICK=3 should be good for your motor. And you may try to tune the identification variables in the file of the user.h according to the spec. of the motor.

    #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