介绍几个电机驱动芯片(TB6612、DRV8833)
我们以电机A为例,AO1和AO2分别接到电机的两端,让两端有电压差,那么电机转动,而控制AO1和AO2的是AIN1和AIN2,所以我们只需要让AIN1和AIN2一个高电平一个低电平就行,具体谁高谁低这就会决定电机是正转还是反转了。如果我们就直接给电机两端供电,那么电机就会以固定的速度旋转,但如果我们供电一下再断开,供电一下再断开,电机就会断断续续地旋转,如果我们供电断开的速度够快,那么就可以达到控
今天介绍几个有刷直流电机驱动芯片。
有刷直流电机简单来说就是接出俩正负极,给它正向供电就正转,反向供电就反转的那种。玩具里那种小马达就是了。
由于芯片的GPIO口能承受的电流大小都不高,所以基本无法直接驱动电机。
我们要么自己搭一个驱动电路要么就是直接使用电机驱动芯片。
今天介绍俩(原本是仨的,写完俩发现内容还挺多就不加了),第一个TB6612大家应该不太陌生,江科大的STM32教程里用的就是它,某宝一搜电机驱动模块就会出来一堆的TB6612模块。(所以可以给芯片厂商提个醒,可以投广告到教学视频里啊,万一视频火了,以后人家买的都是你的芯片)
然后和TB6612一起卖的还有DRV8833,说是平替,可以直接替换,所以今天也讲讲DRV8833,看看有哪些区别。
从价格上看,TB6612一个芯片差不多得两块多(模块加了仨电容就卖五六块以上,我甚至看到卖十多块的)。
DRV8833一个芯片的价格就可以压到一块钱左右了,和TB6612相比价格直接腰斩。
所以同志们呐,如果是比赛或者是项目要用到电机驱动芯片,咱还是买芯片回来自己画外围电路吧,在某宝商家眼里我们都是嗷嗷待宰的羔羊呐。
芯片加几个电容电阻就是模块,然后价格就可以翻一翻,甚至排针还不给你焊,焊排针的话还
(顺带一提,我超喜欢周一围)
你说你不会画,还是老老实实加钱买模块省事?我这不就开始教你了嘛!
第一个TB6612。
我们普通使用就关注两个参数,最高给电机供电是15V,电流峰值是3.2A,平均电流是1.2A。
小电机基本都能带动。
接着看看它的引脚,一共是24个。
我们依次来看。
AO1和AO2这俩是接到电机的两极上的。
我们可以看到AO1占了两个引脚,这是因为单一一个引脚可能承受不了大电流,所以我们在走线的时候要把这俩引脚走线在一起,并且尽可能大的加粗走线的宽度。
AO2,BO1,BO2也是一样的。
有AO和BO,就表示TB6612是可以同时控制两个电机的。
PWMA/B就是分别控制A电机和B电机的,PWM的占空比越大,电机转的也就越快。
一起控制电机转动的还有AIN1/2、BIN1/2。
关于如何控制电机,我们后面再说。
STBY这个可以看成是使能引脚,给它高电平芯片才会工作,给低电平就不工作。
VM是电源正极,不过是给电机供电的,刚刚看了,最高是可以供15V的,但是最好不要这么极端。
VCC就和我们主控芯片的电源一样,因为AIN、BIN、PWMA/B是要接到主控芯片上的,所以VCC是逻辑电源,VCC最高是6V(最好也不要)。
具体参数参考下表。
然后关于如何控制电机,我们参考下表和示意图,我就讲一遍哈,因为电机驱动芯片都差不多一样的原理,所以以后介绍其他芯片的时候我就不讲如何使用了,就单单介绍一下参数和外围电路。
我们以电机A为例,AO1和AO2分别接到电机的两端,让两端有电压差,那么电机转动,而控制AO1和AO2的是AIN1和AIN2,所以我们只需要让AIN1和AIN2一个高电平一个低电平就行,具体谁高谁低这就会决定电机是正转还是反转了。
那么PWMA是做什么用的呢?
如果我们就直接给电机两端供电,那么电机就会以固定的速度旋转,但如果我们供电一下再断开,供电一下再断开,电机就会断断续续地旋转,如果我们供电断开的速度够快,那么就可以达到控制电机转速的效果了,这和PWM呼吸灯是一样的原理。
PWMA的占空比越大,电机A的转速也就越大,如果我们就是像让它以最高转速工作,那么我们直接给高电平即可。
知道怎么玩这个芯片之后我们再看看外围电路。
外围电路相当简单,电机电源和逻辑电源处各加俩电容,100nf和10uf的。
加完之后就是模块了,你就可以把物料成本翻个两三番去卖了。
甚至我们一般买到的模块只有三个电容,它们把VCC的10uf电容省掉了。
虽然影响不大吧,但就是很不爽。
接下来是DRV8833,作为TB6612的平替,我们来看看它的实力如何。
和TB6612相比,DRV8833的引脚少了8个。
少在了GND和AO上,TB6612的GND有很多个,并且每个AO都有两个引脚,但DRV8833却没这么做。
这样的后果就是DRV8833过电流的能力会减弱,我们等等来看看它的参数。
再比较一下它的引脚,发现有一些引脚和TB6612不一样,不是说好平替的吗,我们来看看这些不一样的引脚。
nSLEEP,这个和使能引脚差不多,给低电平就进入睡眠模式,高电平就是正常工作模式。
nFAULT,这个是故障输出引脚,也就是说DRV8833有啥问题了,比如说过热过流之类的,它就会输出低电平,不需要的话我们不用它就行。
VCP这个是什么电源泵引脚,我们直接通过一个10nf的电容接到VM就行。
VINT通过2.2uf的电容接地。
AISEN和BISEN是TB6612没有的,同时DRV8833也没有PWMA/B。
AISEN和BISEN是电流控制,公式如下:
不需要的话直接接地。
那DRV8833没有PWM,如何控制电机转速呢?
答案就是固定一个IN端,给另一个IN端PWM,这样也可以达到一样的效果。
然后看看参数。
VM范围是2.7~10.8V,电流峰值是2A,一般是1.5A。
并且我们能够发现DRV8833是没有VCC逻辑电压的,这也就意味着VM同时也给逻辑供电。
因此DRV8833和TB6612相比,它的VM最高电压以及过电流能力会弱一些,并且只适合小电机。
所以到底DRV8833能不能完美代替TB6612,还是得看各位具体的项目情况了,一般情况下小功率电机是可以直接替换的。
最后看看它的电路图。
外围电路也就几个电容,也是很简单的。
同名公众号“折途想要敲代码”私信回复关键词"电机驱动"即可免费下载所有芯片手册。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)