FOC系列(二)----继续学习DRV8301芯片

news2024/11/17 22:34:06

一、 程序框图

   跟随上篇博客咱们继续往下看,下面是芯片内部的程序框图:

1.1 BUCK电路在这里插入图片描述

1.2 内部各电源

在这里插入图片描述

1.3 SPI通信、栅极驱动器和时序控制器

在这里插入图片描述

1.4 MOSFET驱动电路

在这里插入图片描述

1.5 电流采样放大电路

在这里插入图片描述

   数据手册只是给出了这一部分框图,但是没有更加详细的介绍,不过没关系,咱继续往下看,会逐渐补齐该部分的功能。

二、 功能描述

2.1 三相栅极驱动器

   每个半桥被配置为驱动两个n沟道MOSFET,一个用于高侧,一个用于低侧。半桥驱动器可以组合使用来驱动三相电机,也可以单独使用来驱动各种其他负载。
  峰值栅极驱动电流和内部死区时间可调,以适应各种外部MOSFET和应用。 峰值栅极驱动电流通过寄存器设置设置,死区时间通过DTC引脚上的外部电阻调整。将DTC引脚短接到地将提供最小死区时间(50ns)。在开关转换期间,高侧和低侧mosfet之间存在内部手抖,以防止电流穿过。
三相栅极驱动器可以提供高达30mA的平均栅极驱动电流。
  每个MOSFET栅极驱动器都有一个VDS感测电路,用于过流保护。当使能MOSFET时,感测电路测量从漏极(D)到外部MOSFET源极(S)的电压 V D S V_{DS} VDS。将 V D S V_{DS} VDS与程序设定的跳闸点进行比较,以确定是否发生过流事件。高侧感测位于PVDD1和SH_X引脚之间。低侧感测位于SH_X和SL_X引脚之间。
   DRV8301允许通过 寄存器设置进行6-PWM和3-PWM控制:
在这里插入图片描述
   下面是官方给出的外部MOSFET山及驱动电路各元器件的推荐值:
在这里插入图片描述

2.2 电流放大器

   DRV8301的电流放大器有四个可编程的增益设置通过SPI寄存器。这是10,20,40,80V/V。偏置设置为参考引脚(REF)上电压的一半。为了最小化直流偏置和漂移过温,通过DC_CAL引脚或SPI寄存器提供了一种校准方法。
   电流并联放大器的输出可计算为: V O = V R E F 2 − G × ( S N X − S P X ) V_O=\frac{V_{REF}}{2}-G×(SN_X-SP_X) VO=2VREFG×(SNXSPX)
   • V R E F V_{REF} VREF是参考电压(REF引脚)
   •G是放大器的增益(10,20,40或80V/V)
   • S N X SN_X SNX S P X SP_X SPX是通道x的输入,SPX应连接到检测电阻的接地侧,以获得最佳的共模抑制。
   在此处请注意哈(这个地方我对数据手册出现了一个疑惑),一般来说,N表示 N e g a t i v e Negative Negative,P表示 P o s i t i v e Positive Positive,所以感觉上面的公式应该是 V O = V R E F 2 − G × ( S P X − S N X ) V_O=\frac{V_{REF}}{2}-G×(SP_X-SN_X) VO=2VREFG×(SPXSNX),但是看完数据手册发现,人家就是这样定义的,咱们把N当成正就好,当然这个问题不大:
在这里插入图片描述
在这里插入图片描述

2.3 保护功能

   这一部分主要是介绍一下过流、过压保护之累的功能,我们只看一些比较关键的点即可:
   当电压超过电压阈值时触发过流保护功能。电压阈值通过SPI寄存器编程: V D S = I D S × R D S ( o n ) V_{DS} = I_{DS} × R_{DS(on)} VDS=IDS×RDS(on)
   这里需要配合寄存器那边来看:
在这里插入图片描述
   如果你把控制寄存器2的OC_ADJ_SET 6到10位通过SPI设置为12,根据表可以看出 V d s ( V ) = 0.250 V_{ds(V)}=0.250 Vds(V)=0.250,这时再看你选择的MOSFET的 R D S ( o n ) R_{DS(on)} RDS(on)(即导通电阻,一般很小),假设为0.25Ω,那么根据 V D S = I D S × R D S ( o n ) V_{DS} = I_{DS} × R_{DS(on)} VDS=IDS×RDS(on)式,得出 I D S = 1 A I_{DS}=1A IDS=1A
   通过SPI寄存器可以设置四种不同的过流模式(OC_MODE):
     1. 电流限制模式在电流限制模式下, 设备在过流事件期间使用电流限制而不是设备关闭。在这种模式下,设备通过nOCTW引脚报告过流事件。nOCTW引脚将保持低电平。
   在电流限制模式下有两个电流控制设置。这些是由SPI寄存器中的一位设置的。默认模式为CBC (cycle by cycle)。
      ①CBC (Cycle by Cycle)模式:在CBC模式下, 检测到过电流的MOSFET将关闭,直到下一个PWM周期。
     ②Off-Time控制模式:在Off-Time模式下,检测到过流的MOSFET将在64µs的时间内关闭(由内部定时器设置)。如果在另一个MOSFET中检测到过流,计时器将复位另一个64µs周期,两个MOSFET将在持续时间内禁用。在此期间,可以通过相应的PWM周期恢复特定MOSFET的正常工作。
    2.OC闩锁关闭模式,当过流事件发生时,高侧和低侧mosfet将在相应的半桥中禁用。nFAULT引脚和nFAULT状态位将与检测到过电流的MOSFET的相关状态位一起断言。OC状态位将锁存,直到下一个SPI读取命令。nFAULT引脚和nFAULT状态位将锁存,直到通过GATE_RESET位或快速EN_GATE复位脉冲接收到复位。
      3和4模式分别为仅报告和禁用 ,这两个比较好理解,个人推荐限流模式的CRC模式。
   剩余的就是一些过压保护之类的,这里不再详细介绍了。

2.4 上电和关闭顺序

   在上电期间,所有栅极驱动输出都保持低电平 。栅极驱动器和电流放大器的正常工作可以通过将EN_GATE从低状态切换到高状态来启动。如果没有错误,DRV8301准备接受PWM输入。只要PVDD在功能区内,即使在栅极禁用模式下,栅极驱动器也始终具有对功率场效应管的控制。
   从SDO到VDD_SPI有一个内部二极管,所以VDD_SPI需要一直被供电到与其他SPI设备相同的功率水平(如果有来自其他设备的SDO信号)。在SDO引脚上出现任何信号之前,VDD_SPI电源应首先上电,并在SDO引脚上完成所有通信后关闭电源。
   该部分还是比较重要的,本人的芯片就是目前出现了一点问题,我怀疑和这个上电顺序可能有关,或者是出现了什么错误之类的。

三、设备功能模式

3.1 EN_GATE

   EN_GATE 低电平将使栅极驱动器、电荷泵、电流分流放大器和内部稳压块置于低功耗模式,以节省能源。在此状态期间不支持SPI通信,SPI寄存器将在完全EN_GATE重置后恢复到其默认设置。只要PVDD仍然存在,该器件将把MOSFET输出级置于高阻抗模式。
   当EN_GATE引脚从低到高时,它将经历一个上电序列,使能栅极驱动器、电流放大器、电荷泵、内部调节器等,并复位与栅极驱动器块相关的所有锁存故障。EN_GATE也将重置SPI表中的状态寄存器。当错误事件发生后EN_GATE被切换时,所有锁定的错误都可以被重置,除非错误仍然存在。
   当EN_GATE由高转低时,立即关断栅极驱动模块,因此栅极输出可以使外部场效应管处于高阻抗模式。然后,它将等待10µs,然后完全关闭其余块。通过切换EN_GATE引脚非常短的时间(小于10µs),可以实现快速故障复位模式。这将防止设备关闭其他功能块,如电荷泵和内部调节器,并带来更快和简单的故障恢复。
   EN_GATE引脚复位脉冲(高→低→高)不能只维持10到20µs。DRV8301具有从快速复位模式到完全复位模式的过渡区域,可以导致设备对外部输入无响应,直到满功率循环。如果期望在EN_GATE引脚上出现此周期的复位脉冲,则可以在引脚外部添加RC滤波器。
   重置所有故障的另一种方法是使用SPI命令(RESET_GATE),它只会重置门驱动程序块和所有SPI状态寄存器,而不会关闭其他功能块。

3.2 DTC

   死区时间可通过DTC引脚编程。从DTC到地应接一个电阻来控制死区时间。死区时间控制范围为50ns ~ 500ns。短的DTC引脚接地将提供最小的死区时间(50ns)。电阻范围为0至150 kΩ。死区时间在此电阻范围内线性设置。

3.3 VDD_SPI

   VDD_SPI是为SDO引脚供电的电源。它必须连接到MCU用于其SPI操作的相同电源(3.3 V或5 V)。
   在上电或下电瞬态过程中,VDD_SPI引脚可能在短时间内为零电压。在此期间,来自系统中任何其他设备的SDO引脚不应出现SDO信号 ,因为它会导致DRV8301中的寄生二极管从SDO传导到VDD_SPI引脚作为短路。在系统电源顺序设计中应考虑并避免这一问题。

四、SPI通信

4.1 DRV8301的SPI

   DRV8301 SPI作为 S l a v e Slave Slave工作。SPI输入(SDI)数据格式由一个16位的字、1个读写位、4个地址位和11个数据位组成。SPI输出(SDO)数据格式由一个1个帧故障位、4个地址位和11个数据位组成。当帧无效时,帧故障位设为1,剩余位移出为0。
   一个有效的帧必须满足以下条件:
    •当nSCS变低时,时钟必须为低。
    •应该有16个完整时钟周期。
    •当nSCS高时,时钟必须低

4.2 数据格式

   咱们废话少说,直接看数据格式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
   “对于发送给SDI的READ命令(第n个周期),SDO将在下一个周期中使用指定地址的数据进行响应。(N+1)对于发送给SDI的WRITE命令(第N个周期),SDO将在下一个周期(N+1)中响应状态寄存器1 (0x00)中的数据。”
   上面的话通俗来说,你这时候给寄存器写一个值,他会在下个周期把这个寄存器的值返回给你。
   SDI输入字(W0)的MSB位是一个读写位。当W0 = 0时,输入字为写命令。当W0 = 1时,输入字为读命令。

4.3 寄存器

   下图为四个寄存器的地址:
在这里插入图片描述

4.3.1 状态寄存器

在这里插入图片描述

4.3.2 控制寄存器

在这里插入图片描述
   注:数字上(1)的都是默认值。
在这里插入图片描述
   过流保护的阈值设置前面已经详细介绍过了,下面是寄存器设置的值:
在这里插入图片描述
   如果IC预期在6-V至8-V范围内工作,请勿使用设置28、29、30、31。

五、典型应用电路

在这里插入图片描述
在这里插入图片描述

六、往期回顾

FOC系列(一)----DRV8301芯片的学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1142382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解锁高效检索技能:掌握MySQL索引数据结构的精髓

文章目录 磁盘存储假设每条sql信息为1kb,主键ID为bigint型,一颗高度为2,3,4高度的B树分别可以存储多少行数据?为什么选用B树做索引而不选用二叉树或者B树?1.减少IO次数2.稳定查询3.存储效率高 为什么用 B 树做索引而不用哈希表做…

99. 激光炸弹(二维前缀和)

题目&#xff1a; 99. 激光炸弹 - AcWing题库 思路&#xff1a; 1.矩形/正方形求最值--->二维前缀和 2.注意&#xff1a;此题不可开两个数组&#xff0c;空间会爆&#xff0c;前缀和数组与原数据数组共用一个数组。 代码&#xff1a; #include <cstring> #inc…

如何保护您的个人信息数据库安全?

保护个人信息数据库安全是一项至关重要的任务&#xff0c;因为我们的个人信息可能包含许多敏感数据&#xff0c;如果泄露可能会导致各种问题&#xff0c;例如身份盗窃、网络诈骗等。以下是一些建议&#xff0c;可以帮助您保护您的个人信息数据库安全&#xff1a; 加密数据&…

Redis进军磁盘存储

目录 1、对抗价格优势&#xff1a;纳入磁盘&#xff0c;降低成本&#xff1f; 2、Redis的野心&#xff1a;无敌是多么寂寞&#xff0c;所以我们要开新地图 3、开发者异议&#xff1a;他们正在偏离我们选择Redis的初衷 4、结语&#xff1a;性能为王&#xff0c;但绝不甘于只…

公网远程访问macOS本地web服务器

# 公网访问macOS本地web服务器【内网穿透】 文章目录 1. 启动Apache服务器2. 公网访问本地web服务2.1 本地安装配置cpolar2.2 创建隧道2.3 测试访问公网地址3. 配置固定二级子域名3.1 保留一个二级子域名3.2 配置二级子域名4. 测试访问公网固定二级子域名 以macOS自带的Apache…

mac 查看GPU使用

首先搜索活动监视器 然后 点击窗口->gpu历史记录 记住不是立马出结果&#xff0c;而是 需要等半分钟左右的

Project Costs

/*** 初始化象棋的棋子&#xff0c;正常情况加载双方所有棋子&#xff0c;残局演示加载剩余棋子&#xff0c;按坐标位置摆放* * 【费用】* 因甲方要求产生工作量计算费用&#xff1b;新增、修改、删除需求* 因乙方生产缺陷工作量不计费用&#xff1b;缺陷、延误* * 来说个一个栗…

Istio 运行错误 failed to update resource with server-side apply for obj 问题解决

Istio 环境 kubernetes version: v1.18.2 istio version: v1.10.0运行之后 istio-operator 的日志就抛出下面错误&#xff0c;而且会一直重启 # kubectl get iop -A NAMESPACE NAME REVISION STATUS AGE istio-system iop-pro-cluster…

Helplook VS Document360:哪个更适合知识库管理?

在当今快速发展的业务环境中&#xff0c;高效的知识库管理对于组织有效地组织和监督其在线文档至关重要。Document360和HelpLook是两个强大的软件解决方案&#xff0c;在这一领域表现出色。在这篇博文中&#xff0c;我们将比较 Document360 和 HelpLook&#xff0c;对它们的特性…

操作系统缓冲区管理(单缓冲,双缓冲,循环缓冲,缓冲池)

目录 1.什么是缓冲区1.有什么作用 2.单缓冲1.常考题型:计算每处理一块数据平均需要多久1.假设输入时间T大于处理时间C2.假设输入时间T小于处理时间C 2.单缓冲通信 3.双缓冲1.计算数据处理的时间1. 假设T>CM2.假设T<CM 2.双缓冲通信 4.循环缓冲5.缓冲池1.共用缓冲区2.工作…

java版直播商城平台规划及常见的营销模式 电商源码/小程序/三级分销+商城免费搭建

涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

第十三章---枚举类型与泛型

一&#xff0c;枚举类型 1.使用枚举类型设置常量 设置常量时&#xff0c;我们通常将常量放置在接口中&#xff0c;这样在程序中就可以直接使用。该常量稚因为在接口中定义常量时&#xff0c;该常量的修饰符为 final 与 static。 public interface Constants ( public static …

C#两个表多条件关联写法

文章目录 C#两个表多条件关联写法两个表实体类准备实体类数据初始化第一种 sql的左关联第二种相当于sql的 INNER JOIN写法一&#xff1a;FROM a FROM b where 多条件关联写法二&#xff1a; FROM JOIN INTO写法三&#xff1a; FROM JOIN 省略into C#两个表多条件关联写法 两个…

order by数据过多引起的cpu飙升

测试环境 1.目前数据库类型为pg数据库2.目前数据库业务为共享数据库,为减少其他业务对本次测试的影响,故选在业务空闲时间执行3.服务器性能为8C 32GB 500GB硬盘 原程序测试结果 优化后程序结果 出现原因 当数据量大时&#xff0c;order by排序操作会消耗大量的CPU资源&#…

Android登录注册页面(第三次作业)

第三次作业 - 登录注册页面 题目要求 嵌套布局。使用线性布局的嵌套结构&#xff0c;实现登录注册的页面。&#xff08;例4-3&#xff09; 创建空的Activity 项目结构树如下图所示&#xff1a; 注意&#xff1a;MainActivity.java文件并为有任何操作&#xff0c;主要功能集中…

Python---continue关键字对while...else结构的影响(只是跳过某次,之后继续正常结束,执行else)

回顾&#xff1a; 在Python循环中&#xff0c;经常会遇到两个常见的关键词&#xff1a;break 与 continue break&#xff1a;代表终止整个循环结构 continue&#xff1a;代表中止当前本次循环&#xff0c;继续下一次循环 break&#xff1a; 英 /breɪk/ v. 打破&#xff…

供应 JOSEF约瑟 电源监视继电器 HJZZ-92/2A HJZZ-91 DC220V

品牌&#xff1a;JOSEF约瑟名称:监视综合继电器型号:HJZZ-91、HJZZ-92/2A额定电压:48,110,220VDC/110,220,380VAC功率消耗:≤10W触点容量:250V5A 系列型号&#xff1a; HJZZ-91分闸、合闸、电源监视综合装置&#xff1b; HJZZ-92/1分闸、合闸、电源监视综合装置&#xff1b;…

SpringCore 完整学习教程1,入门级别

1. SpringApplication SpringApplication类提供了一种方便的方式来引导从main()方法启动的Spring应用程序。在很多情况下&#xff0c;你可以委托给静态的SpringApplication.run方法&#xff0c;如下面的例子所示: import org.springframework.boot.SpringApplication; import…

PgSQL-执行器机制-Unique算子

PgSQL-执行器机制-Unique算子 PgSQL中输出去重的元组有多种方法&#xff0c;比如通过HashAgg或者GroupAgg。这里我们介绍第三种方法&#xff0c;通过Unique算子来完成这个功能。当然语句上可以是&#xff1a;select distinct(id1) from t; 1、ExecUnique 执行器执行算子的函数都…

3.加载天地图

愿你出走半生,归来仍是少年&#xff01; 上一篇文章构建出来基础的白球&#xff0c;现在需要给它添加底图啦。先上最常用的天地图。 1.天地图 天地图做过Gis开发的应该都知道&#xff0c;需要先申请key然后才能使用。然后天地图是基于XYZ的标准进行切片的&#xff0c;所以直接…