DRV8301/DRV8303芯片学习手册
记录一下自己在学习FOC的笔记。个人拙见仅供各位参考,如有不同看法或发现错漏,欢迎随时交流指正!
DRV8301/DRV8303
在这里不使用BUCK电路,DRV8303与DRV8301的区别是少了一个BUCK电路,所以本章内容适用与DRV8301和DRV8303 。芯片手册DRV8301。
DRV8301芯片外部电路图:
1. BUCK降压电路
Pin1:RT_CLK,input,降压稳定器的Resistor timing(定时电阻、振荡电阻)和外部时钟,为了消除噪声可能造成的潜在时钟抖动电阻应该经很短的轨迹接地。
Pin2:COMP, output,降压误差放大器的输出和输出开关电流比较器的输入。
Pin3:VSENSE,input,降压输出电压的反馈检测引脚。
Pin4:PWRGD,output,开漏输出,需要外部上拉电阻,如果降压输出电压因过热关断、掉电、过压或 EN_BUCK 关断而变低,则赋值为低电平。
Pin53.54:PVDD2,power,为buck转换器提供能量,PVDD2电容应该接地。
Pin50.51:PH,output,接到buck转换器内部的高侧MOSFET上,外面需要电感、二极管电路来构成完整的buck电路。
Pin52:BST_BK,power,buck转换器的自举电容。
Pin55:EN_BUCK,input,使能buck转换器。内部上拉电流源,拉至 1.2 V 以下禁用。通过两个电阻调整输入欠压锁定。
Pin56:SS_TR,input,Buck软启动和跟踪。连接到此引脚的外部电容设置输出上升时间。因为这个引脚上的电压覆盖内部参考,它可以用于跟踪和排序。通过电容接地。
2. 故障警告
Pin5:nOCTW,output,过流、过温报警指示。开漏输出,需要外部上拉电阻。可通过SPI修改寄存器来配置输出模式
Pin6:nFAULT,output,故障指示。开漏输出,需要外部上拉电阻
3. 死区时间
Pin7:DTC,input,外接一个接地的电阻来调整死区时间
最小死区时间为50ns,通过将DTC口接地;最大死区时间为500ns,通过接150k欧电阻。
4. SPI
Pin8:nSCS,input,SPI芯片选择。
Pin9:SDI,input,SPI的输入。
Pin10:SDO,output,SPI输出。
Pin11:SCLK,input,SPI CLK信号输入。
Pin49:VDD_SPI,input,SPI供电,可提供3.3V或5V。与MCU用于SPI的电源相连接。
DRV8301 SPI 作为从设备运行。
SPI 输入 (SDI) 数据格式由一个 16 位字组成,包含 1 个读写位、4 个地址位和 11 个数据位。
SPI 输出 (SDO) 数据格式由一个 16 位字组成,包含 1 个帧故障位、4 个地址位和 11 个数据位。
当一个帧无效时,帧故障位将置 1,其余位移出为 0。
SDI有16个字节:
• 1 read/write bit W [15],0表示写,1表示读。
• 4 address bits A [14:11]
• 11 data bits D [10:0]
SDO也有16个字节
• 1 fault frame bit F [15]
• 4 address bits A [14:11]
• 11 data bits D [10:0]
SDO 输出字(第 N 个周期)是对上一个 SDI 输入字(第 N-1 个周期)的响应。 因此,每个 SPI 查询/响应对需要两个完整的 16 位移位周期才能完成。
4.1 寄存器地址
4.2 状态寄存器
OTW:过压过温检测。
DETHA:三相电流状态。
GVDD:检测设备是否过压。
Device ID:设备ID。
4.3 控制寄存器
比如在这里可以设置6PWM模式或者3PWM模式。
5. 分流放大器
Pin12:DC_CAL,input,当DC_CAL拉高时,DRV8301短路采样电流放大器的输入并断开负载。直流偏置校正可通过外部单片机实现。(在发生偏移时,拉高DC_CAL,进行复位操作)
Pin25:SO1,output,电流放大器1的输出。
Pin26:SO2,output,电流放大器2的输出。
Pin33:SN1,input,电流放大器 1 的输入端(连接至放大器的负输入端)。
Pin32:SP1,input,电流放大器 1 的输入端(连接至放大器的正输入端)。建议连接至感应电阻器的接地端,以获得最佳的共模抑制效果。
Pin31:SN2,input,电流放大器 2 的输入端(连接至放大器的负输入端)。
Pin30:SP2,input:电流放大器 2 的输入端(连接至放大器的正输入端)。建议连接至感应电阻器的接地端,以获得最佳的共模抑制效果。
分流放大器内部:
当芯片运行时间长了之后,运算放大器输出的值可能会不准确。那么拉高DC_CAL引脚,就可以使MOS管打开,运算放大器两边接地,来复位。
分流放大器输出为:
其中G为电压放大倍数,可通过SPI设置,可设置有10,20,40,80V/V。
Pin24:REF,input,设置采样电流放大器的偏置电压,该偏置电压值等于本引脚上电压的一半。连接到MCU的ADC参考电压上(VREF)。
6. GVDD,PVDD功能
Pin13:GVDD,power,内部栅极驱动器电压调节器,连接电容接地。(不要外部接用)
Pin29:PVDD1,power,为栅极驱动、采样电流放大器和SPI通信提供能量。PVDD1与PVDD2相独立。PVDD1通过电容接地。
Pin14:CP1,power,充电泵的引脚1,与引脚2之间连接陶瓷电容。
Pin15:CP2,power,充电泵的引脚1,与引脚1之间连接陶瓷电容。
实际上PVDD1,和PVDD2是来自于同一个电源,输入给芯片中两个不同的模块。
7. 欠压保护
PVDD最小电压为6V,GVDD最小电压为8V。
不管是PVDD或是GVDD低于最小电压,DRV8301都会拉低(GH_X,GL_X),启动欠压保护。使MOS管处于高阻态。
当设备处于欠压保护时,不会对SPI命令进行响应。并且会对把SPI寄存器复位到默认状态。
8. 过压保护
如果GVDD大于16V,DRV8301会关闭栅极驱动(ABC三相MOS管)和电荷泵。这种错误会锁定芯片,需要重置EN_GATE。
Pin16:EN_GATE,input,使能栅极驱动和采样电流放大器,控制buck需要通过EN_BUCK端口。
9. PWM输入
Pin17:INH_A,input,半桥A的高侧PWM输入。
Pin18:INL_A,input,半桥A的低侧PWM输入。
Pin19:INH_B,input,半桥B的高侧PWM输入。
Pin20:INL_B,input,半桥B的低侧PWM输入。
Pin21:INH_C,input,半桥C的高侧PWM输入。
Pin22:INL_C,input,半桥C的低侧PWM输入。
PWM模式可根据SPI调整。在6PWM模式中可以通过单片机PWM输出中设置死区时间,在3PWM模式中只能通过电阻的大小设置死区时间。
STM32高级定时器中PWM带死区插入的互补输出。
通过TIMx_BDTR寄存器中的DTG[7:0]位用于控制所有通道的死区生成。
按照上表,6PWM通过设置延迟的时间就可以控制输出的死区时间。
10. DVDD和AVDD
Pin23:DVDD,power,内部3.3V供电。DVDD 电容应连接至 AGND,此时是一个输出端,但不用于驱动外部电路。
Pin27:AVDD,power,内部6V的供电电压,AVDD 电容应连接至 AGND,此时是一个输出端,但不用于驱动外部电路。(给分流放大器做电源)
Pin28:AGND,power,模拟地,连接到地。
Pin57:GND。
11.0 栅极驱动电路
栅极驱动电路:
Pin48:BST_A,power,半桥A的自举电容。
Pin47:GH_A,output,半桥A高侧MOS的栅极输出。
Pin45:GL_A,output,半桥A低侧MOS的栅极输出。
Pin46:SH_A,input,半桥A高侧MOS的源极。在这个引脚和PVDD1引脚可以测高侧的Vds。
Pin44:SL_A,input,半桥A低侧MOS的源极。在这个引脚和SH_A引脚可以测低侧的Vds。
Pin43:BST_B,power,半桥B的自举电容。
Pin42:GH_B,output,半桥B高侧MOS的栅极输出。
Pin40:GL_B,output,半桥B低侧MOS的栅极输出。
Pin41:SH_B,input,半桥B高侧MOS的源极。在这个引脚和PVDD1引脚可以测高侧的Vds。
Pin39:SL_B,input,半桥B低侧MOS的源极。在这个引脚和SH_B引脚可以测低侧的Vds。
Pin38:BST_C,power,半桥C的自举电容。
Pin37:GH_C,output,半桥C高侧MOS的栅极输出。
Pin35:GL_C,output,半桥C低侧MOS的栅极输出。
Pin36:SH_C,input,半桥C高侧MOS的源极。在这个引脚和PVDD1引脚可以测高侧的Vds。
Pin34:SL_C,input,半桥C低侧MOS的源极。在这个引脚和SH_C引脚可以测低侧的Vds。
本文章结束,记录一下学习DRV80301芯片的过程,后续会发布DRV8301关于SPI通信的代码,并且运用这些知识组建一个FOC。
芯片手册:DRV8301
参考视频:FOC驱动芯片DRV8301/8303功能详细说明