DRV8711是一款有微步功能的步进电机控制器,芯片内部集成了微步分度器,通过配置最高可以支持1/256微步,极大的降低了MCU端的设计难度。为了降低电流波形失真,得到更平滑的电机运动效果,芯片除了支持快衰减模式和慢衰减模式以外,还支持自动混合衰减模式和自适应消隐时间功能。同时芯片内部有丰富的保护机制,如过流保护、短路保护、欠压锁定保护、过温保护和预驱动错误保护,并且有一个FAULTn引脚来表明故障情况。但是当母线电压较高和layout做的不好时,会导致PDF(pre-driver)误报错,使得芯片锁定。本文根据预驱动错误的产生原理,对驱动等效电路进行分析,给出了预驱动错误保护误触发的解决方案。

图一

图一为DRV8711电路的原理图,芯片内部会进行预驱动错误判断,即当下管关闭期间,芯片会进行2.2us计时,当计时结束,监测下管栅源级电压如果超过1v则报错。

要分析使得芯片端监测Cgs电压偏高的原因,首先要理解mosfet的模型(如图二所示)。当上管进行开关动作时,比如上管由关断到开通,下管的漏极电压会迅速上升,漏极就会通过Cgd电容产生一个电流Ic给Cgs充电(如图三),此过程中Vgs和Vgd相比不会有大的变化,可以确定注入电流Ic的大小,注入的电流同时又会通过寄生电感注入电流到芯片端,寄生电感和电容的振荡使芯片端产生预驱动误触发的现象。

图二 mosfet的等效模型

(a) Ic 产生原理

(b)Ic作用回路

图三 Ic作用过程

通过以上分析,我们可以归纳出四个改善方法:

  1. 优化PCB layout,使得芯片驱动回路尽量短减小寄生电感Lleak的大小。
  2. 减小芯片Ic的值。因为Cgd无法改变,可以通过改变上管的source电流降低dv/dt来实现Ic的减小,具体通过修改寄存器0x6h来实现。

  1. 加电阻Rdriver 来抑制Lleak造成的振荡,从而降低芯片端的监测电压。

图四 加入Rdriver的等效模型

  1. 加大Cgs来改善,Cgs变大以后,同样的电流Ic产生的Vgs电压变化变小。

以上给出了四种方法,一般情况下使用方法2和方法3就可以解决问题。由于方法3,4都会减低原电路的开关速度,从而产生直通现象,因此使用以上方法的同时,需要修改0x0h寄存器Dtime将死区时间修改为850ns。