1  序言

  相信对云台有兴趣的小伙伴对STorM32 BGC这块云台控制板并不陌生,虽说这块控制板的软件已经不再开源,但是在GitHub上依旧可以找到两三个版本的代码,而硬件呢我们也可以从Olliw(BGC的作者)的个人网站上找到,我手头上目前由于两个版本的电路图。而这两个电路中的电机驱动电路所使用的控制芯片的型号均为TC4452DF N08,对于我们所购买到的驱动板,其上面所使用的控制芯片为DRV8313。Olliw的电路使用了9块芯片,而使用DRV8313则只需要三片即可。如果想要自己设计主板的话要使用DRV8313就是一件比较麻烦的事情,因为没有参考电路是无从下手的,并且网上也找不到任何相关的资料和教程。我在研究驱动电路期间也是历经一番波折,终于是弄明白了这块电路。

  2  DRV8313芯片介绍

  在介绍外围电路之前,先说明一下DRV8313这块芯片,这款芯片的生产厂家是TI(Texas Instruments),TI的芯片有一个很突出的特点,那就是网上的资料少。

  拿到一块芯片想要知道它怎么使用,最好的办法就是去官网找到它的芯片手册。 -> DRV8313官方手册

  在这里我将其翻译成中文,有需要的小伙伴可以去我自己搭建的论坛下载,下载前需要注册一个论坛账号,注册完登陆即可下载。 -> DRV8313中文参考手册

  在参考手册里可以获取更详细的信息,在此我就不再抄一遍了。

  2.1  DRV8313外围电路设计思路探究

  我相信这一小节也是各位小伙伴最关心的一点了,到底外围电路怎么设计才能有效的驱动电机旋转?我们从官方手册中找到推荐电路,如图2.1-1所示。

Fig. 2.1-1 DRV8313参考外围电路

  拿到这个电路之后,有些关键的电路该图也已经给出,其内部包含了三个半桥驱动电路,半桥里面有一个OCP,它是什么意思呢?它是指自动输入补偿的过流保护电路(我也是百度的),说白了就是防止过流用的。一个桥臂由两个MOS管组成,上桥臂接VM(VM是12V),下桥臂接地(注意:这里一定要接地),重点是左边这个小白框(上面标记Predriver)里面的电路,可惜,该图并没有将它绘制出来。这块逻辑电路的上边有一个Charge Pump,这个叫做电荷泵,类似于一个微型变压器,用来调压用的(主要是降压),紧接着看左边电路,有一个箭头指向这个方框,上面标记VM,然后一个箭头指出去,上面标记V3P3OUT,这是什么意思呢?其实也可以把这块电路理解成一个降压器,VM(12V)电压输入,输出3.3V电压。没错,芯片自带3.3V电压输出,也就是说这款芯片只需要一个12V的直流电源输出即可,它自身可以输出3.3V电压,无需外界在输入电压。那么这个3.3V电压是做什么用的呢?我们接着往下看,下面有一个很长的长方形,这是低压端(单片机所控制的)的控制逻辑电路,有三个低压信号输入端子,三个信号使能端子(高电平使能输入,即该引脚为高电平时,对应的输入端有效),下面有一个RESET和SLEEP端子,分别是TI设计的重置和休眠引脚端口。低电平进入休眠模式,低电平复位输入,即要使芯片正常工作,必须使这两个引脚处于高电平状态,这样我们就回答了上面那个问题。3.3V电压输出可以接到这些引脚上,从而让芯片能够正常工作。

  2.2  DRV8313外围电路设计

  弄清楚电路的设计思路之后,我们进入电路设计环节,逼逼这么多,这才是各位小伙伴最最关心的问题。首先,我们要知道的是这款芯片有三种封装,下面我就HTSOP | 28(封装名称 | 引脚数目)封装来说明这个电路设计。芯片端口标号如图2.2-1所示。

Fig. 2.2-1  DRV8313 HTSOP | 28封装端口标号示意图

  经过多次测试,我最终得到的电路设计图。

  那么这个电路设计的对不对了?邓爷爷说:“实践是检验真理的唯一标准”,做一块板子测一下就知道对不对。于是乎我继续瞎折腾,按照我设计的电路自己绘制了一块板子,如图2.2-2所示。

Fig. 2.2-2  Altium Desiner设计电路图

  趁着这几天嘉里创做活动赶紧送去打样,拿到板子后有迫不及待地拿起电烙铁把元器件焊接上去测试。

Fig. 2.2-3  驱动电路实物实物图

  拿起我的最小系统,编写了一段小测试程序,烧写入开发板系统。

Fig. 2.2-4  实物连接图

  3  测试结果

  拿起示波器,监测输入输出端口的电平信号,先监测IN1(信号输入引脚1)和OUT1(信号输出引脚1)的信号如图3.1-1所示。

  

Fig. 3.1-1 端口输入输出波形图

  可以明显看出OUT1信号是跟随IN1信号,有所区别的是OUT2信号(黄色曲线信号)的峰峰值大约为24V,而IN1信号(蓝色曲线信号)大约为4V。这说明输出端信号有效放大了输入端引脚的信号,这样我们在用单片机控制信号输出实际上就是用这个驱动芯片做一个电压的放大。我们操作低压端子就相当于在操作电机。然而实际上,我们将信号频率阈值调小,其实这两种信号是有时延的,我的示波器可以非常方便的做到这一点。

Fig. 3.1-2  输入输出时延数测量

  可以大致算出输入输出延时为0.315us,黄色曲线表示高压输出端口信号,蓝色曲线表示低压输入端口信号。

  4  总结

  1、基于DRV8313芯片设计的无刷电机控制电路实际上可以理解为一个电压放大电路,很好理解,我们不可能用单片机的引脚直接去驱动电机,电机启动所需要的电流是非常大了,而单片机的引脚是无法提供的。

  2、DRV8313的功能非常齐全,它只需要一个12V直流电源即可工作,内部包含电荷泵,能够输出3.3V电源,供给它的其他引脚使用,非常方便,也就是它无需外接3.3V电源供电。

  3、内部包含三个半桥电路,上桥臂接VM(12V电源),下桥臂接GND,下桥臂可接下拉电阻(注意:这里一定要接地,我的第一次制板失败原因就是这里没有接地),所以说把芯片手册看懂是多么重要,至少可以说看懂芯片手册能帮你省下好多钱呢!!!

  4、无刷电机的控制还有很多很多的内容,这仅仅是万里长征第一步。

  最后,如果觉得我的文章对你有帮助,别忘了左下角的推荐点一下哟,谢谢!

  2019.12.17  周二   于厦门

STorM32 BGC三轴云台控制板电机驱动电路设计(驱动芯片DRV8313)的更多相关文章

  1. STorM32 BGC三轴增稳云台驱动下载

    STorM32 BGC是一种硬件开源.软件闭源的三轴稳定云台控制项目.云台在我们生活中是越来越常见,我们手机拍照用的手持云台,无人机上挂载摄像机的机载隔振云台.我们在电影<流浪地球>里面那 ...

  2. 开源三轴云台EVVGC(simple BGC)分析

    一. 主程序分析 主程序结构清晰,流程如图所示,下面将对每个部分做详细分析 二. 系统初始化 系统初始化部分的流程如上图所示,下面对每部分做具体分析 1. 时钟初始化 该部分主要是使能DWT,用DWT ...

  3. [算法][三轴、六轴、九轴传感器算法分析] 1、分享一个三轴加速计matlab动态可视化脚本

    一.有啥用 这里用的是LIS3DH三轴加速计,输出为X.Y.Z轴的加速度,通过串口连接电脑,电脑里运行matlab脚本通过串口实时获取数据并做可视化显示. 这里虽然是针对LIS3DH的,其实稍作修改即 ...

  4. Arduino I2C + 三轴加速度计LIS3DH

    LIS3DH是ST公司生产的MEMS三轴加速度计芯片,实现运动传感的功能.主要特性有: 宽工作电压范围:1.71 ~ 3.6V 功耗:低功耗模式2μA:正常工作模式.ODR = 50Hz时功耗11μA ...

  5. 单片机实验: 三轴磁场模块 GY-271

    最近买了一块三轴磁场模块进行实验 名称:HMC5883L模块(三轴磁场模块) 型号:GY-271 使用芯片:HMC5883L 供电电源:3-5v 通信方式:IIC通信协议 测量范围:±1.3-8 高斯 ...

  6. 利用Matlab生成一个网格化的三维三轴椭球面(生成直角坐标)

    代码很简单,a,b,c分别为椭球的三轴轴长,a=b=c时得到的是三维球面,a=b!=c时得到的是三维椭球面,a!=b且a!=c且b!=c时得到的是三维旋转椭球面 %生成一个笛卡尔坐标系下三轴椭球表面的 ...

  7. 玩转X-CTR100 l STM32F4 l HMC5983/HMC5883L三轴磁力计传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 扩展HMC ...

  8. Arduino I2C + 三轴加速度计ADXL345

    ADXL345是ADI公司生产的三轴数字加速度计芯片,与ST的LIS3DH功能接近.主要特性有: 工作电压:2.0 ~ 3.6V 功耗:待机功耗0.1μA:工作时与数据输出频率(ODR)有关,如ODR ...

  9. 【传感器】BMA253 数字,三轴加速度传感器

    参考文档:BMA253E DataSheet 参考文档链接 密码:9new BMA253 数字,三轴加速度传感器 关键特性: 关键特性   封装方式 LGA封装(12pins),长*宽(2mm*2mm ...

随机推荐

  1. XAF中多对多关系 (XPO)

    In this lesson, you will learn how to set relationships between business objects. For this purpose, ...

  2. export default和export的使用

    export default和export都是用来向外暴露成员 export default 向外暴露的成员可以使用任意的变量来接收,在一个模块中,export default只允许向外暴露一次,可以 ...

  3. 浅谈Vue下的components模板

    浅谈Vue下的components模板在我们越来越深入Vue时,我们会发现我们对HTML代码的工程量会越来越少,今天我们来谈谈Vue下的 components模板的 初步使用方法与 应用 我们先来简单 ...

  4. REST API的使用

    需求描述 GET: http://localhost:8080/MyWebsite/user/ Header: Content-Type = application/json Body: 空 Resp ...

  5. 如何在VIM中保存编辑的只读文件

    我们经常碰到这样的情景:在VIM中编辑了一个系统配置文件,当需要保存时才发现当前的用户对该文件没有写入的权限, 这时候怎么办呢? 当需要保存时,输入以下的命令: :w !sudo tee %

  6. JAVA学习方法之——费曼学习法

    理查德·费曼 费曼简介 理查德·菲利普斯·费曼(Richard Phillips Feynman),出生于1918年5月11日,是美籍犹太裔物理学家,曾在1965年获得诺贝尔物理学奖,也被认为是继爱因 ...

  7. 自定义vue的loading插件

    在一般的vue项目中,都会用到Loading或者Alert之类的弹窗浮层,而他们是一种比较高频率出现的组件. 一般情况下,我们都会去直接import该组件,然后直接以标签的形式引用进去当前页面组件中, ...

  8. [C4W1] Convolutional Neural Networks - Foundations of Convolutional Neural Networks

    第一周 卷积神经网络(Foundations of Convolutional Neural Networks) 计算机视觉(Computer vision) 计算机视觉是一个飞速发展的一个领域,这多 ...

  9. 接口自动化与UI自动化两者的可行性

    1.首先接口测试是跳过前端界面对服务端的测试,UI测试是对前端界面的测试,从分层测试的角度考虑,两者不应该是可以互相取代的关系.   2.从公司开展自动化的的角度考虑,可以重点关注这个项目开展接口自动 ...

  10. SpringMVC详细流程(一)

    Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模 ...