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

    xiaoxiao2024-12-11  66

    以前的博客中介绍过一款分立元器件实现的H桥的博文,现在提供一个更简单的单芯片方案。 驱动电路主要由一款DRV8841芯片组成,它是一个集成的电机驱动解决方案,内置两个功率NMOS H桥,可通过PWM驱动两个直流电机,或者一个步进电机。它还集成了电流感知、调节电路与保护装置,支持过热、过电流与欠压保护,并且自带最大3.75us的死区。电机电压支持8.2V到45V,最大电流为2.5A。 主要的原理图如下 我使用的控制芯片是STM32F405RGT6,引脚连接关系如下

    网络标号引脚功能备注MAPPC6桥A输入1MAOP的控制端,内部下拉,与单片机T8C1连接(Timer8的通道1)。MANPC7桥A输入2MAON的控制端,内部下拉,与单片机T8C2连接。MBPPC8桥B输入1MBOP的控制端,内部下拉,与单片机T8C3连接。MBNPC9桥B输入2MBON的控制端,内部下拉,与单片机T8C4连接。DECAYPB6衰减模式过流时有用,默认为低电平慢速衰减。nSLEEPPB8休眠模式输入高电平启用设备,低电平休眠模式,内部下拉。nRESETPB9复位输入低电平复位,会初始化内部逻辑,关闭H桥输出,内部下拉nFAULTPB7错误输出发生温度过高、电流过大时输出低电平。MAOP电机A桥A输出1接电机A一端MAON电机A桥A输出2接电机A另一端MBOP电机B桥B输出1接电机B一端MBON电机B桥B输出2接电机B另一端VCC_MOTOR电源电机电源电机驱动板配套24VMGND模拟地电机接地此地可能有干扰,要做处理

    下两图说明了如何通过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的死区时间对于此系统是足够的。

    yummy说电子 认证博客专家 单片机 arm开发 驱动开发 我开通公众号了,yummy说电子,以后多数的创作会在公众号更新,写的会更加随意逗比一点,看看能不能靠流量挣个奶茶钱,欢迎关注,ღ( ´・ᴗ・` )比心
    最新回复(0)