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: The actual current is much less than Id_ ref

Genius 3095 points
Part Number: BOOSTXL-DRV8301

Dear Yanming:

My clients refer to the board designed by boost xl-drv8301 to sample three-phase output voltage and output current. The current sampling is the lower bridge arm resistance sampling of three-phase current. The current sampling resistance is 20mohm, and the current sampling amplifier is 8.45 times. The software is based on proj_ lab13b.

It adopts 48V PMSM motor; the rated current is 8.2A; the rated speed is 3000rpm; the rated torque is 1.27nm; the pole pairs are 4;

The positive and negative rotation of the motor is OK. Here are some of my hardware and software settings:

USER_IQ_FULL_SCALE_VOLTAGE_V      (48.0)

USER_IQ_FULL_SCALE_CURRENT_A         (21.0) 

USER_ADC_FULL_SCALE_CURRENT_A        (39.0)

#define USER_NUM_CURRENT_SENSORS            (3)

The parameters of the motor are set as follows:

USER_MOTOR_MAX_CURRENT          (11.6)      // 8.2*1.414= 11.6A;

USER_MOTOR_VOLT_MAX             (48.0) 

Questions are below:

When the motor is under partial load, at a certain speed, such as about 1800rpm, it can be seen through CCS debugging window that Id_ref has reached 9.8A and motor torque has reached 0.73nm; but at this time, the ammeter connected in series in the DC bus circuit shows that the actual current is only 3.5A.

Why is the difference between control current and actual current so great?

Best regards

  • You may refer to chapter 5.2 (Hardware Prerequisites) of InstaSPIN-FOC and InstaSPIN-MOTION User's Guide (Rev. H) (http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf) to have a detailed description of this.

     

    1. Set correct parameters based on the hardware board in user.h

    #define USER_IQ_FULL_SCALE_VOLTAGE_V           (xx)

    #define USER_VOLTAGE_FILTER_POLE_Hz               (xx)

    #define USER_ADC_FULL_SCALE_VOLTAGE_V       (xx)

    #define USER_IQ_FULL_SCALE_CURRENT_A           (xx)

    #define USER_ADC_FULL_SCALE_CURRENT_A       (xx)

    2. Change the sign of the current coefficient in HAL_readAdcData() in hal.h,

    static inline void HAL_readAdcData(HAL_Handle handle,HAL_AdcData_t *pAdcData)

    {

       _iq current_sf = HAL_getCurrentScaleFactor(handle);

    }

    3. And you can follow the instaSPIN lab guide to use lab01b and lab01c to verify your hardware, and then use lab02b or lab02c to identify and check if the identification parameters are right as TI EVM board.

    Btw, what do you mean Id_ref? The DC bus current is not equal to the Id or Iq.