DRV8834控制步进电机,电机90度以上
步进电机在运行中很热,单片机复位后不运行的话,电机接进来也热,只有让EN脚Disable,电机才会冷却下来。
想问的问题是:原来我用lm293和lm298那种方式控制这个电机,频率一样,都是500~1000Hz,但是那两种方式电机并不明显发热,请问这是为什么?谢谢
ps.我用的是Indexer Mode
木有人么。。。
驱动器控制步进电机是按照恒流控制的方式运行的,步进电机停止,电流还是会存在,同时给予步进电机很高的保持力矩。
如果在步进电机停止后不需要很大的保持力矩,你可以控制DRV8834的enable 引脚,或者nSleep引脚,或者Vref引脚来关断电机的电流。用Vref引脚控制电压的话还可以实现低电流保持的功能。
DRV8834 和 L298比的话,芯片本身肯定是具有更低的功耗和更高的效率,毕竟不是一个年代的东西,L298的饱和电压降单边就有1.3V之大。
当然DRV8834由于封装小,大电流使用时也要注意接好芯片的热焊盘到大面积覆铜上以利散热。
步进电机的发热完全取决于对电机电流的控制,在同样的电流控制条件下(幅值和通电时间),不管用什么方案,电机的发热量都应该是差不多的。
如上图配置的电路,我用nENBL脚控制电机的停止,STEP一直给脉冲,现在可以通过控制nENBL脚来控制电机的运转和停止,但是停止后,电机还持续升温,难道是因为我电机是5V,而nENBL是拉高到3.3V的原因?
而且,我发现,我的这三个引脚都不初始化,只通电,电机都热,这不科学啊,没有方向,没有脉冲,没有使能,竟然有输出?
现在我把nSleep飞线出来,发现拉低这个脚,输出可以关掉,而仅拉高enable脚是不行的,还有持续电流,可是手册上说的应该是可以关断的呀?
Sam, 你好!
请问当芯片enable管脚被拉高时,sleep未使能时候,线圈电流维持在什么水平?是否用示波器看过此时的电流波形?
Axel,您好!
现在的核心问题是我的系统如果上电不初始化,所有芯片管脚应该是高阻态的,对于DRV8834来说,就跟断开差不多,而这个时候,已经有输出了,电机持续发热的情况和只拉高enable脚一模一样。这样对于整个系统来说,存在很大的安全隐患,一通电,还未驱动DRV8834,电机已经供电
Indexer Mode下一般是要使用电流反馈控制的,但是你的电路没有使用电流控制
Sam, 你好!
由于最近出差,回复较晚,深表歉意!
请看一下DRV8834 datasheet的第三页,有很多芯片引脚是内部下拉的,其中nENBL/AENBL,STEP/BENBL,DIR/BPHASE,M0/APHASE,M1,CONFIG都是由内部下拉电阻下拉的。
根据您提供的电路图,看到CONFIG管脚是被VINT上拉的,因而在初始上电时刻会进入indexer mode,然后由于nENBL/AENBL管脚被下拉,从而芯片被使能,有电流输出,从而导致电机发热。
建议您修改下CONFIG引脚的连接,就可以解决这个问题。
谢谢!
Axel
Sam,
补充一下,DRV8834的nSleep管脚有内部500K的下拉(可以从datasheet里面看到),被您电路图里面的上拉电阻上拉之后,因而上电时也不会进入sleep模式,驱动芯片直接被使能,从而导致电机发热。
Axel,
首先感谢您专业的回答,让我受益匪浅,非常感谢!
我现在的nSleep脚连单片机,上电后管脚高阻态,那么应该进入休眠而不用管enable脚如何,但是初始化后,电机还是发热,只有拉低sleep脚才可以
还有,即便上电后进入indexer模式,但是很快我就拉高enable,可电机也还继续更热热呢?谢谢
Sam,
我有用DRV8834EVM板做过实验,nEnable和nSleep均可以打开和关断线圈电流,并没有复现您所描述的问题。
希望您可以帮我确认两个事情:
1. 用示波器抓出初始化时及以后nSleep管脚的波形
2.用示波器抓成nEnable管脚被MCU拉高的波形
若这两个波形均正常的情况下,看下sepper线圈两端是否有输出,这样我这边可以再做进一步的试验和分析。
谢谢!
Axel
Indexer mode,Phase/enable mode,怎么控制的?