在使用drv8301驱动BLDC时,自己做的PCB板出现蛮多问题,向大家求助。
1、24v供电,霍尔信号采用中断方式,stm32产生6步PWM 、H-PWM_L-ON模式,SPI寄存器默认配置,占空比百分20,pwm频率20K,没有接电机线时单片机输出 正 常的6步PWM信号,
当我接上100W的BLDC时,电机此时会转,但是fault信号一直被拉低又被拉高,如图1。ibb.co/hJP75A,蓝色是某一路霍尔信号,黄色是fault信号。
虽然电机会转,但是当我用手抓住电机轴时(给的转速不快),电机会突然停下,fault信号灯一直亮(用示波器看其实是快速的高低电平切换,只是低电平的时间很长),应该不是过流,因为刚捏住时电流最大也才0.2A,停下时电流就0.03A(drv8301关闭输出),寄存器默认的VDS=0.403A,MOS的导通电阻是10mΩ,也就是大概有40A电流才会过流报警。
fault被一直拉低时,我的SPI读回来的状态寄存器都是错的,都是0x000。然后我用顺着电机转动方向转动电机轴(霍尔换相,产生新的PWM信号),此时fault信号变回上图1的波形,电机又开始转了。
这个过程中我测试了单片机的输出,没接电机时下桥臂的信号是完整的高电平,当我接上电机线后,发现本来应该满占空比的信号,出现了一个低电平费解,难道是因为我没有做隔离吗?。如图2、ibb.co/ny3s5A。这个问题困扰了蛮久的,不知道哪里出问题了,有点怀疑是boost电容没充上电,但是不知道如何确定和测试。
2、然后我接上了另外一个电机,350W的带减速齿的轮毂电机,一上电就直接fault灯一直亮(快速的高低电平切换,高电平只有很小的一段时间),电机也不会转,程控电源输出的电流很小,总共加上单片机才0.03A,也就是无输出的状态。
3、电压的纹波很大,接上电机时PVDD最大时有1v的纹波,drv8301的开关电源输出3.3v,也有500-600mv的纹波。
4、附上我的原理图,https://ibb.co/i4r7oV。