第一次使用TI的无霍尔电机控制IC,现在有一个问题,电机进入闭环后速度并不是我设置的速度(SpeedCtrl1:SpeedCtrl2),反馈速度(MotorSpeed1:MotorSpeed2)显示0x0230,我设置了几个不同的速度,但反馈速度都是0x0230,实际电机速度和反馈一致。我感觉应该是配置问题,但一直找不到错误。
IICwrite10975(0x52,reg_MotorParam1,0x7f);IICwrite10975(0x52,reg_MotorParam2,0x5b);
IICwrite10975(0x52,reg_MotorParam3,0x3a);//0x3a 200us
IICwrite10975(0x52,reg_SysOpt1,0x00);
IICwrite10975(0x52,reg_SysOpt2,0x58);
IICwrite10975(0x52,reg_SysOpt3,0xff);
//////IICwrite10975(0x52,reg_SysOpt4,0xff);
IICwrite10975(0x52,reg_SysOpt4,0x7f);
IICwrite10975(0x52,reg_SysOpt5,0xbc);
IICwrite10975(0x52,reg_SysOpt6,0x07);
IICwrite10975(0x52,reg_SysOpt7,0xf8);
IICwrite10975(0x52,reg_SysOpt8,0x0d);
IICwrite10975(0x52,reg_SysOpt9,0x0e);
这是我的配置,请问哪个设置有问题,谢谢。
shuangjie feng:
回复 Alvin Zheng:
我想说明的是在SpeedCtrl中设置不同的值,但MotorSpeed中测出的速度是一样的,即电机的速度不变,按理说应该是在SpeedCtrl中设置不同的值,电机的速度会随着变化,我把开环、闭环加速度都设到最低,电机的最终速度还是不变,只是加速时间变长了。
shuangjie feng:
回复 shuangjie feng:
经测试,发现了初步原因,在SpeedCtrl中设置不同的值,在SpeedCmd中显示的比例是不同的,但在spdCmdBuffer中显示的都是0xFF,看资料只有一句加速电流限制和AVS使能会使2个值不匹配,失能了AVS,spdCmdBuffer值变了,在SpeedCtrl中设置不同值,高速正常,低速有问题,低速时看spdCmdBuffer值,先增大,过一会减小,然后报错,Kt值不正常,我觉得Kt值是个常量,既然高速可用,低速应该也可以,不知道为什么会报错,有时还会报速度不正常的错。
Alvin Zheng:
回复 shuangjie feng:
问题描述得太乱了。先把寄存器放一边,你现在设置SpeedCtrl不同值以后,实际上电机转速到底有没有变?
PS: KT报错是lock detection中的一个触发条件。你理解错了。KT是常数。你看到的是个堵转报错。
shuangjie feng:
回复 Alvin Zheng:
SpeedCtrl设置0x1FF时,电机正常,最高速;设置0xFF时,电机正常,中等速度;设置0x38时,电机加速到一个比较高的速度然后减慢,快到目标速度时,报错,电机停止。
shuangjie feng:
回复 Alvin Zheng:
还有一个事情想咨询一下,DRV10975有个加速时间,直观体现就是我驱动电机时感觉有个0.5-1s的延时,电机不动,然后加速,我现在的项目要求控制时马上就能到设定的速度,不知TI有相应的芯片吗?要求12V,直流无刷无霍尔,启动时间尽可能短,谢谢!
Alvin Zheng:
回复 shuangjie feng:
这样,我们先来尝试解决报错停转的问题。首先你可以确认你所测量的电机Kt和Rphase值是正确的哦?
你能看一下报错时候,0x1E fault code里面的值吗?
或者直接先Disable Lock1-5,只保留Lock0,是不是就没问题了?
shuangjie feng:
因为尺寸的问题,现在用的是直径12mm的电机,最大能用16mm,再大可能就装不下了,这种尺寸装霍尔比较困难,目前没找到这么大带霍尔的电机。我想问一下,是不是不带霍尔的电机都有启动时间过长的问题,都有一个加速的过程?还有我失能IPD功能,但感觉IPD所占用的时间还存在,导致电机转动前的延时时间过长
另外,昨天我试过把报警使能都关闭,结果status寄存器不报错,FaultCode显示错误,电机停转,查寄存器还是Kt错误和速度不正常,闭环卡死(lock5)。
shuangjie feng:
回复 shuangjie feng:
还有一个问题,这个芯片电压最高18v,可写E2prom时Vcc要22v,这是怎么回事?