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-DRV8323RS: Problem identifying using BOOSTXL-DRV8323RS board and the LaunchXL-F28027F

Part Number: BOOSTXL-DRV8323RS
Other Parts Discussed in Thread: MOTORWARE, DRV8323, , DRV8305, LAUNCHXL-F28027F

I am trying to identify a small 8 pole motor and the Ls estimation seems to be very low.

I am using the software provided in motorware for the DRV8323 and the only changes to the USER.H is I increase the PWM freq and the PWM ticks as below.

#define USER_PWM_FREQ_kHz (60.0)

#define USER_NUM_PWM_TICKS_PER_ISR_TICK (3)

I also soldered the 0.1uF capacitor onto location C9, C10, and C11 on the DRV8323 board.

Below are the estimated values and motor settings during identification.

#elif (USER_MOTOR == My_Motor)

#define USER_MOTOR_TYPE MOTOR_Type_Pm

#define USER_MOTOR_NUM_POLE_PAIRS (4)

#define USER_MOTOR_Rr (NULL)

#define USER_MOTOR_Rs (0.0433574989)

#define USER_MOTOR_Ls_d (4.10688497e-12)

#define USER_MOTOR_Ls_q (4.10688497e-12)

#define USER_MOTOR_RATED_FLUX (0.0112582613)

#define USER_MOTOR_MAGNETIZING_CURRENT (NULL)

#define USER_MOTOR_RES_EST_CURRENT (3.0)

#define USER_MOTOR_IND_EST_CURRENT (-1.5)

#define USER_MOTOR_MAX_CURRENT (20.0)

#define USER_MOTOR_FLUX_EST_FREQ_Hz (40.0)

 

I measure 140 uH at 1kHz with my LCR meter between two phases of my motor.

I measure 0.3 ohms between two phases with a ohm meter.

Just wondering if the BOOSTXL-DRV8323RS needs any other changes to work in my application or if anyone else has had issues with this board.

  • I also used the proj_lab02C for the estimation. This is the one provided for the DRV8323 board.
  • Hi Gary,

    Our experts ahve been contacted. Reply may be delayed due the the holidays.
  • These parameters in user.h seems good. It's better to set USER_PWM_FREQ_kHz = 45kHz, and USER_NUM_PWM_TICKS_PER_ISR_TICK = 3 since the CPU frequency of F28027F is 60MHz. Make sure that the motor spin smoothly and the current waveform is near sinusoidal during the identified process. If not , change the USER_MOTOR_RES_EST_CURRENT, USER_MOTOR_IND_EST_CURRENT and USER_MOTOR_FLUX_EST_FREQ_Hz.
  • I was able to get the motor to identify. I just reloaded the User.h file from scratch and made the changes and it started working. I must have accidently change something in the file. The motor still runs a little rough and it is hard to find the correct PID gains to get it to run smoothly from start to 3000 rpms. I may need some dynamic PID settings that change with RPMs. I will check the things you mentioned and se where it leads me.

    Thanks for the Help and Merry Christmas:)

  • I am still struggling with the BOOSTXL-DRV8323RS board to identify and run a motor. I have tried several motors and several DRV8323 boards. I have tried all kinds of settings in the USER.H file.

    I then switched to the BOOST DRV8305 board and have had no problems identifying or running the same motors. I am wondering if the current feedback amps in the DRV8323 are not set up as good as the ones on the DRV8305 board. I was planning on using the DRV8323 on my next design, but may stick with the DRV8305 unless I can figure out what the difference is. I will start looking at current feedback signals and trying to troubleshoot the difference, but Thought I would post here to see if there are any others who have had the same problems or if there are any suggestions of what the problem could be.

    I will provide more details as I discover them.

  • So far, the only major difference in the setup of the DRV8323 from the DRV8305 is that the gain is higher on the DRV8323. So I reduced the gain down to 10 and changed to the below ADC full scale current.

    #define USER_ADC_FULL_SCALE_CURRENT_A (47.14) // BOOSTXL-DRV8323EVM = 47.14 A as it uses 10V/V

    This matches the same as the DRV8305. However, The DRV8323 still struggles to run the same motors with the same settings. I have tried three DRV8323 boards and I am using the same LAUNCHXL-F28027F board to drive each. I did add the 0.1uF capacitors to all my DRV8323 boards for C9, C10, and C11 as instructed for the DRV8323 labs.
  • Could you please refer to below post link which has some reference projects for DRV8323RS Boostxl board+F28027F/F28069F Launchpad?
    e2e.ti.com/.../635499

    Make sure the registers configuration of DRV8323 is correct, such as Gain, PWM mode, add 0.1uF capacitor for phase & dc bus voltage sensing, set correct parameters in user.h according to DRV8323RS boostxl board.
  • Hi Gary,
    Concerning the hardware side, I do find it strange the you see significant differences between the 8305 and 8323 boards. Spec wise the amplifiers are fairly similar.

    To summarize, you are able to identify the motor, but have dynamic performance trouble on the 8323 board? Or is it still hit or miss on identification? As you mentioned, doing a 1to1 on the voltage and current feedback signals would be good to double check to see if something strange is happening.

    Brainstorming here....another thing to possibly check is if ringing from the switch node is affecting the 8323 measurements. By default the DRV8305 gate current (50mA/60mA) is much lower than the DRV8323 (1A/2A). You should be able to configure this through the same default SPI gDrvSpi8323Vars.

    Hardware wise, the capacitors should be the only modifications to make to the board for the InstaSPIN projects.

    typedef struct _DRV_SPI_8323_Ctrl03_t_
    {
    DRV8323_CTRL03_PeakSinkCurHS_e IDRIVEN_HS; // Bits 3-0
    DRV8323_CTRL03_PeakSourCurHS_e IDRIVEP_HS; // Bits 7-4
    DRV8323_CTRL03_Lock_e LOCK; // Bits 10-8
    }DRV_SPI_8323_Ctrl03_t_;


    //! \brief Object for the DRV8323 CTRL04 register
    //!
    typedef struct _DRV_SPI_8323_Ctrl04_t_
    {
    DRV8323_CTRL04_PeakSinkCurLS_e IDRIVEN_LS; // Bits 3-0
    DRV8323_CTRL04_PeakSourCurLS_e IDRIVEP_LS; // Bits 7-4
    DRV8323_CTRL04_PeakTime_e TDRIVE; // Bits 9-8
    bool CBC; // Bits 10
    }DRV_SPI_8323_Ctrl04_t_;
  • Thanks for the help

    I tried different IDRIVEN settings with the DRV8323. I added the below IDRIVEN commands to the DRV8323 software. This did not seems to help.

    _______________________________________________________________________________

    #ifdef DRV8323_SPI
    // turn on the DRV8323 if present
    HAL_enableDrv(halHandle);
    // initialize the DRV8323 interface
    HAL_setupDrvSpi(halHandle,&gDrvSpi8323Vars);
    gDrvSpi8323Vars.Ctrl_Reg_06.CSA_GAIN = Gain_10VpV;
    gDrvSpi8323Vars.Ctrl_Reg_06.VREF_DIV = 1;
    gDrvSpi8323Vars.WriteCmd = true;

    gDrvSpi8323Vars.Ctrl_Reg_03.IDRIVEN_HS = ISink_HS_0p060_A;

    gDrvSpi8323Vars.Ctrl_Reg_03.IDRIVEP_HS = ISour_HS_0p060_A;

    gDrvSpi8323Vars.Ctrl_Reg_04.IDRIVEN_LS = ISink_LS_0p060_A;

    gDrvSpi8323Vars.Ctrl_Reg_04.IDRIVEP_LS = ISour_LS_0p060_A;

    HAL_writeDrvData(halHandle,&gDrvSpi8323Vars);
    gDrvSpi8323Vars.ReadCmd = true;
    HAL_readDrvData(halHandle,&gDrvSpi8323Vars);

    #endif

    // enable DC bus compensation
    CTRL_setFlag_enableDcBusComp(ctrlHandle, true); 

    for(;;)

    {

    // Waiting for enable system flag to be set

    while(!(gMotorVars.Flag_enableSys));

    _______________________________________________________________________

    The motor I am trying to identify measures 0.14mH between two phases in series with my inductance meter set to 1kHz.

    I switched to a bigger motor with 0.48mH between two phases in series and the DRV8323 board seemed to identify and run better.

    The DRV8305 board seems to work on both motors and seems to identify resistance and inductance closer to my measured values than the DRV8323.

    I will start connecting a scope to the current feedback lines and see if I can see a difference. It may take me a few days to get to it, but if you guys have any other ideas, let me know.

  • Hi Gary,

    Thanks for the feedback. Keep us posted and we will see how best we can resolve. As mentioned, spec wise the amplifiers are fairly similar so perhaps we are dealing with a subtle setup issue.

    Some other brainstorming, the voltage divider scaling is about 30% higher on the DRV8323 EVM due to the extended voltage range of the device. For low inductance motors the back-emf will contribute significantly to the observer error. It may be ideal to match the divider ratio or even adjust it to be more suited for your 24V operation range.

    -Nick

  • 4760.user.hHi Gary,

    Did you download the reference code as below link to run the lab02c for motor identification?

    https://e2e.ti.com/support/microcontrollers/c2000/f/902/t/635499

    I tested a hobby motor on boostxl-drv8323RS board with F28027F launchPad, the motor is low resistance and low inductance, the input voltage of dc bus is 12V. Used lab02c to identify the motor parameters properly, and used lab10a to run the motor with 8000rpm. Attached the use.h for your reference.

    #define USER_MOTOR_Rr                   (NULL)
    #define USER_MOTOR_Rs                   (0.1002901)
    #define USER_MOTOR_Ls_d                 (1.410408e-05)
    #define USER_MOTOR_Ls_q                 (1.410408e-05)
    #define USER_MOTOR_RATED_FLUX           (0.006071886)
    #define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
    #define USER_MOTOR_RES_EST_CURRENT      (4.0)
    #define USER_MOTOR_IND_EST_CURRENT      (-3.5)
    #define USER_MOTOR_MAX_CURRENT          (15.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (100.0)

  • 7242.user.hHi Gary,

    I tested a hobby motor on boostxl-drv8323RS board with F28027F launchPad using the reference code as below link

    The motor is low resistance and low inductance, the input voltage of boostxl board is 12V. It seems the lab02c identified the motor parameters properly, and lab10a ran the motor with 8000rpm well. Attached the use.h for your reference.

  • Thanks Yamming,

    It is good to know that the same setup is working for you. This could point to a problem with something I am doing. I am out of office for a few days, but now I suspect maybe my 24 volt power supply could be inducing some noise or I have something else going on. I expect that you added the 0.1uF capacitors to your DRV8323 board for C9, C10, and C11?

    I will try a different power supply and start looking at the signals with a scope as well on Monday and let you guys know what I find.

  • Gary,

    Right. Added 0.1uF for phase voltage sensing (C9,C10,C11).
  • Thanks for all the help. I finally figured out my problem. The capacitor kit I was using to get my 0.1uF capacitors must have had the wrong value in the 0.1uF compartment. I replaced all my capacitors on the boards from a new untouched capacitor kit and all is working great now. The tuning values I am getting are the same as the 8305 board and my motors are able to run great as they did on the 8305 board. I had pleasure throwing the capacitor kit in the garbage:)