FOC系列(二)----继续学习DRV8301芯片
一、 程序框图
跟随上篇博客咱们继续往下看,下面是芯片内部的程序框图:
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=2VREF−G×(SNX−SPX)
•
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=2VREF−G×(SPX−SNX),但是看完数据手册发现,人家就是这样定义的,咱们把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芯片的学习