微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > DRV8711过流

DRV8711过流

时间:10-02 整理:3721RD 点击:

各位好:

     我采用的原理图和slvc594.zip中介绍的相同,现在板子读写DRV8711的寄存器一切正常。检流电阻为0.25欧,设计每相电流最大2.2A。

现在的问题是只要DRV8711退出复位(根本没接电机),电机使能(仅仅CTRL.ENBL=1,其他寄存器和CTRL的其它位都是复位值),

FAULT指示灯就亮。前几天STATUS的值一直为0x06,即出现AOCP和BOCP错误。今天上班后把BIN1和BIN2都接高(+3.3V)后(原来BIN1 BIN2悬空),

 STATUS的值变为0x02,即只有AOCP错误,FAULT指示灯仍然亮。后又把BIN1 BIN2悬空,STATUS的值仍为0x02。

     很奇怪的问题,希望TI工程师指点下。

 寄存器的值最好都配置一下,电源电压是多少,MOS用的是什么的

BINx在index模式下是接地的。

上电后看到UVLO错误是正常的,但是在没有电机的情况下不应该看到xOCP错误,也没有在别的客户看见过类似的问题,建议先仔细检查硬件,在做完整的寄存器配置,看看是否还有问题

电源电压 = 24V

MOS  =  CSD18531

刚刚又试了下把BIN1 BIN2都接地(看到DATASHEET上芯片内部有下拉的,故原理图中悬空了),

在没有电机的情况下仍然有xOCP错误(这次是BOCP,STATUS值为0X04),感觉AOCP BOCP是随机的。

寄存器配置如下:

ResetDrv1();//复位2个电机驱动器
Delayms(3);
ResetReleaseDrv1();
Delayms(3);

Drv8711_SPI_Init();

i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegCTRL);

i &= 0x0fff;
i |= 0x01;
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegCTRL, i);

//此时FAULT灯开始亮

i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegSTATUS);


//配置寄存器值
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegCTRL, 0x0C00); //ISGAIN=5
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegTORQUE,0x01ff);
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegOFF, 0x028);
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegBLANK, 0x096);
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegDECAY, 0x0514);
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegSTALL, 0x0840);
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegDRIVE, 0x0f7);
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegSTATUS,0x0);
Drv8711_SPI_WriteReg(Rotation_Drv8711,Drv8711_RegCTRL, 0x0C01); //ISGAIN=5

//读取寄存器值,
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegCTRL);
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegTORQUE);
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegOFF);
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegBLANK);
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegDECAY);
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegSTALL);
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegDRIVE);
i = Drv8711_SPI_RdReg(Rotation_Drv8711,Drv8711_RegSTATUS);

    寄存器赋值有无错误?采用内部INDEXER方式,控制2相42步进电机。

今天上午查了下DRV8711EVM的PCB和自己板子PCB中DERV8711每个脚的连接,没有发现问题。2块板子都有此问题。

我的板子上有2个DRV8711,现在调试,已经把一个DRV8711去掉了。

原理图请看附件

配参数时,关于预驱动电流和OCP保护请按照如下配置红色部分,其他请参考

DTIME 400ns

ISGAIN 00 (5)

1/64

Torque to 2.8A

TOFF 14 (7us)

TBLANK 50

ABT 0

TDECAY 6 (3us)

DECMOD 3

OCPTH 2

OCPDEG 3

TDRIVEN 1

TDRIVEP 1

IDRIVEN 0

IDRIVEP 0

如上配置参数后错误依旧(这次是2相皆过流,STATUS:0x06),寄存器值如下:

CTRL: 0x031

TORQUE: 0x03FF

OFF: 0x0E

BLANK: 0x032

DECAY: 0x0306

STALL: 0x040

DRIVE: 0x05E

 

想知道:外部MOS出现什么情况,导致DRV8711检测到电机某相过流?

芯片检测导通后的Vds电压判断过流保护

给出的参数在EVM或者Boostpack或者很多客户的板子上不同的MOS情况下都可以正常运行,建议还是检查硬件,DRV8711 VCP电压,VCP,CPx电容值,5V,1.8V电压值等是否正常

可以申请一套TI的Boostpack套件做做实验看看

VCP=+33.7V   V5 = 4.95V   VDIG = 1.792V  VCP电容值 = 1.09uF

CP1、CP2之间电容值 = 101nF 

A1HS,A2HS,B1HS,B2HS都是0.65V

A1LS,A2LS,B1LS,B2LS都是0V

       不知道有无异常?

AOUT1,AOUT2,BOUT1,BOUT2的电压都是0.65V

AISENN,BISENN在EVM板上通过一个0欧电阻接地,而且此电阻放在检流电阻的GND端,这有什么特殊考虑吗?

我的PCB的地是一个整个的内电层,AISENN,BISENN通过0欧电阻就近接地了,这会有问题吗?

非常感谢Wilson Zuo的热心帮助,问题已找到。是8个MOS管的漏极和电路板没焊接好(没加锡)。

你好,刚使用DRV8711,spi设置寄存器没有反应,可以发下你SPI的发送的配置吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top