最近我们遇到一批DRV8353SR大量损坏的情况。具体读出寄存器Fault Status 1的值是0x400, VGS Status 2的值是0x40(GDUV)。且我测量5脚VCP对地阻值明显偏低了。
想请ti的工程师协助看下我们的电路图是否有问题,并给出修改建议如何避免该问题继续发生
其中VCC DRV为18v,VCC_PWR_IN和MOS电压一样,是64v。
开关频率为20kHz,实际使用的MOSFET型号为:AGM18N10AP
我们的SPI配置为:
drv_write_DCR(0x0, DIS_GDF_DIS, 0x0, PWM_MODE_3X, 0x0, 0x0, 0x0, 0x0, 0x1);
HAL_Delay(1);
drv_write_CSACR(0x0, 0x1, 0x0, CSA_GAIN_5, 0x0, 0x0, 0x0, 0x0, SEN_LVL_1_0);
HAL_Delay(1);
drv_write_OCPCR(TRETRY_4MS, DEADTIME_200NS, OCP_RETRY, OCP_DEG_8US, VDS_LVL_1_88);
// Write Driver Control Register
void drv_write_DCR(int DIS_CPUV, int DIS_GDF, int OTW_REP, int PWM_MODE, int PWM_COM, int PWM_DIR, int COAST, int BRAKE, int CLR_FLT)
{
uint16_t val = (DIS_CPUV<<9) | (DIS_GDF<<8) | (OTW_REP<<7) | (PWM_MODE<<5) | (PWM_COM<<4) | (PWM_DIR<<3) | (COAST<<2) | (BRAKE<<1) | CLR_FLT;
drv_write_register(DCR, val);
}
// Write CSA Control Register
void drv_write_CSACR(int CSA_FET, int VREF_DIV, int LS_REF, int CSA_GAIN, int DIS_SEN, int CSA_CAL_A, int CSA_CAL_B, int CSA_CAL_C, int SEN_LVL)
{
uint16_t val = (CSA_FET<<10) | (VREF_DIV<<9) | (LS_REF<<8) | (CSA_GAIN<<6) | (DIS_SEN<<5) | (CSA_CAL_A<<4) | (CSA_CAL_B<<3) | (CSA_CAL_C<<2) | SEN_LVL;
drv_write_register(CSACR, val);
}
// Write OCP Control Register
void drv_write_OCPCR(int TRETRY, int DEAD_TIME, int OCP_MODE, int OCP_DEG, int VDS_LVL)
{
uint16_t val = (TRETRY<<10) | (DEAD_TIME<<8) | (OCP_MODE<<6) | (OCP_DEG<<4) | VDS_LVL;
drv_write_register(OCPCR, val);
}其他寄存器没有配置,使用的默认参数。
此外,还有一些额外的信息:我们的产品是关节电机,经常需要多个串联在一起使用,有一次一台电机上因为异物短路了,驱动板上的MLCC电容炸了,但是和他串联的另外两台电机就报错这个GDUV了,是不是短路瞬间电压波动导致DRV损坏?