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. centos 安装gitlab

    1.开始安装依赖软件:yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启动,po ...

  2. django5-书籍与出版社关联外键

    1.外键相关 一对多的概念 ,这里是一个出版社对应本书籍 ! 设计表使用model models.ForeignKey('关联一', on_delete=models.CASCADE) #给多设置外键 ...

  3. django9-ajax

    1.ajax 局部刷新 ,不可能每次提交请求刷新整个页面 2.ajax实例 在不刷新整个的情况下完成计算器 ,ajax的post需要添加csrftoken 1)设置一个组件ajaxcsrf.html ...

  4. 用canvas画一个时钟

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 模板引擎Jinja2的基本用法

    Flask提供的模板引擎为Jinja2,易于使用,功能强大.模板仅仅是文本文件,它可以生成任何基于文本的格式(HTML.XML.CSV.LaTex 等等). 它并没有特定的扩展名, .html 或 . ...

  6. jQuery—自定义HTTP请求

    Ajax设置自定义请求头的两种方法 $.ajax({ url: 'http://www.baidu.com', type: 'get', data: JSON.stringify({"nam ...

  7. Centos7下安装配置keepalived

    这里用的是两台设备做高可用 master服务器ip地址:192.168.12.78 slave服务器ip地址:192.168.12.79 虚拟ip(VIP,一个尚未占用的内网ip即可)地址:192.1 ...

  8. Linux-TCP之深入浅出send和recv【转】

    转自:https://www.cnblogs.com/JohnABC/p/7238417.html 内容摘自:TCP之深入浅出send和recv.再次深入理解TCP网络编程中的send和recv 建议 ...

  9. vue调用高德地图:vue-amap

    前言:之前没有接触过页面调用地图的项目,某次面试,老板要求我用vue-amap调用高德地图,回家以后,我去网上查了一些案例和教程,看似很简单的引入调用,我却整整弄了一宿,还没弄出来!!!百般无奈之下, ...

  10. 201871010111-刘佳华《面向对象程序设计(java)》第十二周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第十二周学习总结 实验十   集合与GUI初步 实验时间 2019-11-14 第一部分:基础知识总结 第九章知识总结 1. ...