Other Parts Discussed in Thread: DRV8323, CSD88599Q5DC
Tool/software:
Hi, I recently used the BOOSTXL-DRV8323RS to prototype some BLDC motor controller. Then I basically copied the BOOSTXL Board but changed the MOSFETs to higher power MOSFETs. This is the part number: NTMFSC0D9N04CL. I am trying to run Lab02b just to test my custom PCB but the motor draws a lot of current during calibration and calculated the Rs value as basically infinity. I added 4.7 ohm gate resistors but nothing changed. I also tried to change these values:
//! \brief Defines the PWM deadband falling edge delay count (system clocks)
//!
#define HAL_PWM_DBFED_CNT 54
//! \brief Defines the PWM deadband rising edge delay count (system clocks)
//!
#define HAL_PWM_DBRED_CNT 54.
It seemed like changing these did not do anything. I tried setting them to 9999 and it still exhibited the same behavior and nothing changed. Is there somewhere else I am supposed to change the deadtime? I also tried adding this to main:
#ifdef DRV8323_SPI
// Watch window interface to the 8323 SPI
DRV_SPI_8323_Vars_t gDrvSpi8323Vars;
#endif
#ifdef DRV8323_SPI
// turn on the DRV8323 if present
HAL_enableDrv(halHandle);
// initialize the DRV8323 interface
HAL_setupDrvSpi(halHandle,&gDrvSpi8323Vars);
// Set current sense amplifier gain and VREF_DIV, as in original code
gDrvSpi8323Vars.Ctrl_Reg_06.CSA_GAIN = Gain_20VpV;
gDrvSpi8323Vars.Ctrl_Reg_06.VREF_DIV = 1;
// Set the dead time to 400 ns
gDrvSpi8323Vars.Ctrl_Reg_05.DEAD_TIME = DeadTime_400_ns;
// Set the high-side gate drive peak source current
gDrvSpi8323Vars.Ctrl_Reg_03.IDRIVEP_HS = ISour_HS_1p000_A;
// Set the high-side gate drive peak sink current
gDrvSpi8323Vars.Ctrl_Reg_03.IDRIVEN_HS = ISink_HS_1p250_A;
// Set the low-side gate drive peak source current
gDrvSpi8323Vars.Ctrl_Reg_04.IDRIVEP_LS = ISour_LS_1p000_A;
// Set the low-side gate drive peak sink current
gDrvSpi8323Vars.Ctrl_Reg_04.IDRIVEN_LS = ISink_LS_1p250_A;
// Write the new values to the DRV8323
gDrvSpi8323Vars.WriteCmd = true;
HAL_writeDrvData(halHandle,&gDrvSpi8323Vars);
// Read the values back for verification
gDrvSpi8323Vars.ReadCmd = true;
HAL_readDrvData(halHandle,&gDrvSpi8323Vars);
#endif
I tried setting the currents to lower values than what is shown and still no luck, nothing has changed. Any suggestions would be greatly appreciated. Thanks!