集成电机驱动方案(STM32+DRV8841)
以前的博客中介绍过一款分立元器件实现的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的死区时间对于此系统是足够的。
集成电机驱动方案(STM32+DRV8841)相关推荐
- Springboot集成datax方案小记
Springboot集成datax方案小记 datax源码下载与编译 datax job config Springboot工程 pom.xml 主运行程序 遇到的个掰倒霉问题 另 datax源码下载 ...
- 金蝶云星空与盘古MES系统数据集成对接方案
集成方式 轻松点击鼠标就可以完成各类系统的接口调用.开箱即用的透明盒子,可视化拖.拉.拽实现接口服务编排与聚合. 通过轻易云系统集成平台分别调用两套系统接口,实现ERP与MES系统数据集成对接方案. ...
- pccad无法找到所需的动态链接库_PCCAD与PDMERP集成开发方案
PCCAD与PDMERP集成开发方案 PCCAD与PDM-ERP集成方案 一. PCCAD内部为与PDM-ERP集成需要开发内容 1. 在明细表.标题栏定义界面中增加"允许编辑"属 ...
- 高压FOC电机驱动方案,精准控制实现超静音
在国家不断加强节能减排的政策背景下,高效.静音.智能化成为工业或家用电子产品的主要发展趋势之一.为此,Fortior Tech推出的FU68系列单片机(包括:FU6811,FU6812,FU6813, ...
- 可落地微服务on k8s的持续集成/部署方案
我们隔一流的软件生产工艺还有多远?在距离15000公里外,Amazon一年可以进行5000万次部署,在这一边某电商平台的研发部门里,让他们引以为傲的是他们正在进行"敏捷"开发模式, ...
- 【开发心得】electron iohook集成使用方案
前言: 最近在研究门锁刷卡,用electron写了个客户端,需要读取全局的键盘输入.百度搜到的帖子都不是很完全,或者只言片语,这里稍微完整的写一下. 集成示例gitee: electron-iohoo ...
- 数据治理-1. 数据集成-总体方案
文章目录 1.总体方案 2.概述 1.总体方案 2.概述 数据集成是广义上数据治理的第一步,只有成功的接入数据,才能谈下一步的治理,资产,应用,共享等. 后面会针对集成的各种方式做实际操作的展开,一边 ...
- 私有化轻量级持续集成部署方案--05-持续部署服务-Drone(上)
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 用友YonSuite与旺店通数据集成对接方案
方案简介 聚水潭线下使用的是用YonSuite系统进行财务和业务的核算系统,全部业务数据将汇集到用友YonSuite系统,现在需要将两套系统的相关数据进行对接打通,实现所有业务的数据可以打通,并且保证 ...
最新文章
- Java项目:医院管理系统(java+Springboot+Maven+Mybatis+Vue+Mysql)
- 前端思想实现:面向UI编程_____前端框架设计开发
- 计算机安全OSI安全框架
- 在linux下创建自定义service服务
- maven jersey mysql_jersey+maven构建restful服务
- windows ssh远程登录阿里云遇到permissions are too open的错误
- [转]numpy中的np.max 与 np.maximum区别
- 无法从“cstring”转换为“lpcstr”_U盘重装系统后,无法使用?
- OpenMV(二)--IDE安装与固件下载
- 万网域名注册查询接口(API)的说明
- [one day one question] GIF动画为什么只动一次不能循环
- 字符串怎样实例化成对象
- C语言练手题(52个小练习)
- ADMM随堂笔记(3):一致和协同
- 【图像去噪】基于matlab自适应布谷鸟算法优化维纳滤波器图像去噪【含Matlab源码 1892期】
- 【图神经网络】图神经网络(GNN)学习笔记:GraphSAGE
- 旧文重发:从第三方服务角度看各公司技术部门如何正确计算投入产出比~
- qpython3h手机版怎么发短信_阿里云短信 python3代码发送短信
- v4l2_async_subdev_notifier_register 分析
- java实战——个人日常事务管理系统
热门文章
- 水仙花数的判断(JAVA)
- 机械键盘 单个按键不灵 修理
- shell_一键部署脚本合集 .
- SAP:常用的T-code 收藏
- ai文件怎么打开,ai格式文件用什么软件打开
- [LeetCode]91.Decode Ways
- Found duplicate column(s) when inserting into hdfs://nameservice1/origin_data/events_7/data: `dt`;
- 046 非常特别的一天
- JSON入门学习总结
- 说一说 Backscatter communication