×
单片机 > 单片机程序设计 > 详情

集成电机驱动方案(STM32+DRV8841)

发布时间:2020-05-29 发布时间:
|

以前的博客中介绍过一款分立元器件实现的H桥的博文,现在提供一个更简单的单芯片方案。

驱动电路主要由一款DRV8841芯片组成,它是一个集成的电机驱动解决方案,内置两个功率NMOS H桥,可通过PWM驱动两个直流电机,或者一个步进电机。它还集成了电流感知、调节电路与保护装置,支持过热、过电流与欠压保护,并且自带最大3.75us的死区。电机电压支持8.2V到45V,最大电流为2.5A。


主要的原理图如下

我使用的控制芯片是STM32F405RGT6,引脚连接关系如下


网络标号 引脚 功能 备注

MAP PC6 桥A输入1 MAOP的控制端,内部下拉,与单片机T8C1连接(Timer8的通道1)。

MAN PC7 桥A输入2 MAON的控制端,内部下拉,与单片机T8C2连接。

MBP PC8 桥B输入1 MBOP的控制端,内部下拉,与单片机T8C3连接。

MBN PC9 桥B输入2 MBON的控制端,内部下拉,与单片机T8C4连接。

DECAY PB6 衰减模式 过流时有用,默认为低电平慢速衰减。

nSLEEP PB8 休眠模式输入 高电平启用设备,低电平休眠模式,内部下拉。

nRESET PB9 复位输入 低电平复位,会初始化内部逻辑,关闭H桥输出,内部下拉

nFAULT PB7 错误输出 发生温度过高、电流过大时输出低电平。

MAOP 电机A 桥A输出1 接电机A一端

MAON 电机A 桥A输出2 接电机A另一端

MBOP 电机B 桥B输出1 接电机B一端

MBON 电机B 桥B输出2 接电机B另一端

VCC_MOTOR 电源 电机电源 电机驱动板配套24V

MGND 模拟地 电机接地 此地可能有干扰,要做处理

下两图说明了如何通过AIN1与AIN2引脚来控制电机的正反转。


因此,如果想让电机全速“正转”(姑且规定电流从AOUT1流入AOUT2时,电机为正转[面向安装孔,顺时针为正]),只需AIN2始终保持低电平,AIN1始终保持高电平;如果希望电机转速可调,则AIN1可以通过脉冲宽度调制,在一个很小的周期内,如果AIN1高电平持续的时间为60%,那么对于电机来说,它感受到的平均电压就是24*0.6=14.4V,转速相比24V当然会慢一些。

在H桥驱动电机的电路中,绝对不可以把同侧桥臂的上下半桥同时打开,否则可能会导致板子烧坏。实际上单片机引脚翻转速度极快,而MOS管与电机切换状态都存在延时,导致从程序命令某半桥关断,到实际关断,有一段时间的延迟。在延迟期间,如果上半桥正在关闭,则下半桥暂时还不能打开,直到上半桥完全关闭,下半桥才能打开。中间等待的这段时间,就是死区时间。死区时间与硬件密切相关,不同电机与不同MOS管的死区时间都不一样

一般情况下,STM32控制电机的项目会用到高级定时器Timer1或Timer8,输出嵌入死区的互补PWM,即定时器输出的PWM已经带有死区功能。但电机驱动板中,由于驱动芯片DRV8841自带了死区功能,所以不必再编写死区的代码。

根据手册,DRV8841带的死区时间(在手册中的说法其实叫做Blanking Time,应该叫做消失时间)为3.75us。实际也可以通过示波器测出,从单片机引脚电平下降,到实际电机P端电压下降,用时约2us。即3.75us的死区时间对于此系统是足够的。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈msp430f5529入门(2)----时钟配置.例程分析