【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置

您所在的位置:网站首页 csa中文意思 【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置

【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置

#【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置| 来源: 网络整理| 查看: 265

内容概览 😶‍🌫️说在最前面🕶 概述🕶 (address = 0x02) Driver Control Register 驱动控制寄存器 8.6.2.1🌌 Add02 - Bit10 - Reserved🌌 Add02 - Bit9 - DIS_CPUV🌌 Add02 - Bit8 - DIS_GDF🌌 Add02 - Bit7 - OTW_REP🌌 Add02 - Bit6+Bit5 - PWM_MODE🌌 Add02 - Bit4 - 1PWM_COM🌌 Add02 - Bit3 - 1PWM_DIR🌌 Add02 - Bit2 - COAST🌌 Add02 - Bit1 - BRAKE🌌 Add02 - Bit0 - CLR_FLT 🕶 (address = 0x03) Gate Drive HS Register 高桥臂栅极控制寄存器 8.6.2.2🌌 Add03 - Bit10+Bit9+Bit8 - LOCK🌌 Add03 - Bit7+Bit6+Bit5+Bit4 - IDRIVEP_HS (I~DRIVE-P-HS~)🌌 Add03 - Bit3+Bit2+Bit1+Bit0 - IDRIVEN_HS (I~DRIVE-N-HS~) 🕶 (address = 0x04) Gate Drive LS Register 低桥臂栅极控制寄存器8.6.2.3🌌 Add04 - Bit10 - CBC🌌 Add04 - Bit9+Bit8 - TDRIVE (Gate Driver Fault, GDF)🌌 Add04 - Bit7+Bit6+Bit5+Bit4 - IDRIVEP_LS (I~DRIVE-P-LS~)🌌 Add04 - Bit3+Bit2+Bit1+Bit0 - IDRIVEN_LS (I~DRIVE-N-LS~) 🕶 (address = 0x05) OCP Control Register 过流保护控制寄存器 8.6.2.4🌌 Add05 - Bit10 - TRETRY🌌 Add05 - Bit9+Bit8 - DEAD_TIME🌌 Add05 - Bit7+Bit6 - OCP_MODE🌌 Add05 - Bit5+Bit4 - OCP_DEG🌌 Add05 - Bit3+Bit2+Bit1+Bit0 - VDS_LVL (V~VDS_OCP~) 🕶 (address = 0x06) CSA Control Register 电流检测放大器控制寄存器8.6.2.5🌌 Add06 - Bit10 - CSA_FET (Current Sense Amplifier)🌌 Add06 - Bit9 - VREF_DIV🌌 Add06 - Bit8 - LS_REF🌌 Add06 - Bit7+Bit6 - CSA_GAIN🌌 Add06 - Bit5 - DIS_SEN🌌 Add06 - Bit4 - CSA_CAL_A (Current Sense Amplifier A_Calibration)🌌 Add06 - Bit3 - CSA_CAL_B (Current Sense Amplifier B_Calibration)🌌 Add06 - Bit2 - CSA_CAL_C (Current Sense Amplifier C_Calibration)🌌 Add06 - Bit1+Bit0 - SEN_LVL

😶‍🌫️说在最前面

笔者计划使用一块使用到STM32F407控制芯片与DRV8323s驱动芯片的板子,驱动BLDC。了解到需要使用SPI通信来配置DRV8323s驱动芯片,配置过程中涉及DRV8323数据手册中提及的几个寄存器,故写此文做个记录。 另外,DRV8323芯片和DRV8302、DRV8303、DRV8353都有极大的相似之处,可以相互参考借鉴。 研究学习过程中,感觉能找到的资料不多,这里首先感谢一位大佬的帖👉CSDN文章:STM32G4系列通过SPI配置DRV8353S驱动芯片,给了我很大帮助!

🕶 概述

本文主要记录分析各个寄存器 各Bit 的功能含义。 关于寄存器的配置,详见数据手册英文版👉P58 –【8.6.2 Control Registers】👈(中文版PDF位置基本相同)。本文关于寄存器的表格截图均来源于此。 附TI官网数据手册下载链接: drv832x-Eng、drv832x-中文版。

对寄存器操作的基本数据格式: SPI 输入数据 (SDI) 字有 16-bit,其中 5-bit 命令和 11-bit 数据。 命令位中:读操作(B15) W0 = 1,写操作(B15) W0 = 0;(B14~B11) A3~A0是地址位。 SPI 输出数据 (SDO) 字有 16-bit,其中前 5-bit 是无关位,后 11-bit 是寄存器数据。 001 地址0x00和0x01为只读寄存器,指示故障状态,此处略。对照表格看即可。 接下来对照表格,梳理一下从地址0x02到0x06寄存器的情况。

002

🕶 (address = 0x02) Driver Control Register 驱动控制寄存器 8.6.2.1

寄存器类型:R/W,读或写。 Driver Control Register - 1 Driver Control Register - 2

🌌 Add02 - Bit10 - Reserved

保留位,必须按要求来。 Bit10 - Reserved = 0b。

🌌 Add02 - Bit9 - DIS_CPUV

设置充电荷泵UVLO故障是否开启。 这里选择默认值Bit9 - DIS_CPUV = 0b,开启。

🌌 Add02 - Bit8 - DIS_GDF

设置栅极驱动故障是否开启。 这里选择默认值Bit8 - DIS_GDF = 0b,开启。

🌌 Add02 - Bit7 - OTW_REP

设置nFAULT或FAULT位上是否报告OTW热警告。 这里选择默认值Bit7 - OTW_REP = 0b,不报告。

🌌 Add02 - Bit6+Bit5 - PWM_MODE

设置PWM控制模式。详见👉P30 -【8.3.1.1 PWM Control Modes】👈。 6x PWM模式 这里选择默认值Bit6+Bit5 - PWM_MODE = 00b,采用6x PWM Mode。

🌌 Add02 - Bit4 - 1PWM_COM

选择1x PWM模式时是同步整流还是异步整流。 因为没选1x PWM mode,所以就先保留默认值Bit4 - 1PWM_COM = 0b。

🌌 Add02 - Bit3 - 1PWM_DIR

在1x PWM模式下,此位与INHC(DIR)输入进行“或”运算。 因为没选1x PWM mode,所以就先保留默认值Bit3 - 1PWM_DIR = 0b。

🌌 Add02 - Bit2 - COAST

向该位写入1,使所有MOSFET处于Hi-Z状态(high-impedance,高阻抗状态)。 选择默认值Bit2 - COAST = 0b,不进入高阻抗状态。

🌌 Add02 - Bit1 - BRAKE

以在1x PWM模式下,将1写入该位,导通所有三个低侧MOSFET。该位与INLC(BRAKE)输入进行“或”运算。 选择默认值Bit1 - BRAKE = 0b。

🌌 Add02 - Bit0 - CLR_FLT

将1写入该位以清除锁存的故障位。此位在写入后自动复位。 要用到时再写1清除吧,初始时Bit0 - CLR_FLT = 0b。

🕶 (address = 0x03) Gate Drive HS Register 高桥臂栅极控制寄存器 8.6.2.2

寄存器类型:R/W,读或写。 Gate Drive HS Register - 1 Gate Drive HS Register - 2

🌌 Add03 - Bit10+Bit9+Bit8 - LOCK

写入110b以通过忽略除0x02地址Bit0-2之外的后续寄存器写入来锁定设置。写入110b以外的任何序列在解锁时都没有效果。 将011b写入该寄存器以解锁所有寄存器。写入011b以外的任何序列在锁定时都没有效果。 选择默认值Bit10+Bit9+Bit8 - LOCK = 011b,解锁所有寄存器,因为可能我们还是想在后续寄存器中进行默认以外的配置(我的理解)。

🌌 Add03 - Bit7+Bit6+Bit5+Bit4 - IDRIVEP_HS (IDRIVE-P-HS)

栅极驱动电流IDRIVE-P的选值是基于外部MOSFET的栅极到漏极电荷以及输出端的目标上升和下降时间来选择的。需要结合自己板子上MOSFET管的数据手册中的参数,计算决定。详见👉P65 -【9.2.1.2.2 IDRIVE Configuration】👈。 P对应rise time,N对应fall time。HS对应高侧,LS对应低侧。 栅极驱动电流求法 结合求解,这里选择默认值Bit7+Bit6+Bit5+Bit4 - IDRIVEP_HS = 1111b,IDRIVE-P-HS = 1000 mA。

🌌 Add03 - Bit3+Bit2+Bit1+Bit0 - IDRIVEN_HS (IDRIVE-N-HS)

同前,详见👉P65 -【9.2.1.2.2 IDRIVE Configuration】👈。 P对应rise time,N对应fall time。HS对应高侧,LS对应低侧。 结合求解,这里选择默认值Bit3+Bit2+Bit1+Bit0 - IDRIVEN_HS = 1111b,IDRIVE-N-HS = 2000 mA。

🕶 (address = 0x04) Gate Drive LS Register 低桥臂栅极控制寄存器8.6.2.3

寄存器类型:R/W,读或写。 Gate Drive LS Register - 1 Gate Drive LS Register - 2

🌌 Add04 - Bit10 - CBC

逐周期运行。在重试OCP_MODE中,对于VDS_OCP和SEN_OCP,当给出PWM输入时,故障会自动清除。 参考默认值,Bit10 - CBC = 1b。

🌌 Add04 - Bit9+Bit8 - TDRIVE (Gate Driver Fault, GDF)

详见👉P49 -【8.3.6.5 Gate Diver Fault (GDF)】👈。 如果tDRIVE 时间后外部MOSFET栅极上的电压没有进行相应的增减变化,则会视为栅极驱动器故障。(个人推测这个没有变化的意思可能是和控制信号结合起来来看的,否则单纯的tDRIVE 时间内不变就故障对PWM的频率要求得太高了点。) 参考默认值,Bit9+Bit8 - TDRIVE = 11b,tDRIVE = 4000ns。

🌌 Add04 - Bit7+Bit6+Bit5+Bit4 - IDRIVEP_LS (IDRIVE-P-LS)

同前一地址寄存器Gate Drive HS说明,详见👉P65 -【9.2.1.2.2 IDRIVE Configuration】👈。 P对应rise time,N对应fall time。HS对应高侧,LS对应低侧。

结合求解,这里选择默认值Bit7+Bit6+Bit5+Bit4 - IDRIVEP_LS = 1111b,IDRIVE-P-LS = 1000 mA。

🌌 Add04 - Bit3+Bit2+Bit1+Bit0 - IDRIVEN_LS (IDRIVE-N-LS)

同前,详见👉P65 -【9.2.1.2.2 IDRIVE Configuration】👈。 P对应rise time,N对应fall time。HS对应高侧,LS对应低侧。 结合求解,这里选择默认值Bit3+Bit2+Bit1+Bit0 - IDRIVEN_LS = 1111b,IDRIVE-N-HS = 2000 mA。

🕶 (address = 0x05) OCP Control Register 过流保护控制寄存器 8.6.2.4

寄存器类型:R/W,读或写。有关于MOS管VDS 过流保护的功能。👉对应数据手册:P48 -【8.3.6.3 MOSFET V_DS Overcurrent Protection (VDS_OCP)】👈。

OCP Control Register - 1 OCP Control Register - 2

🌌 Add05 - Bit10 - TRETRY

设置overcurrent retry time过流保护重试时间,经过tRETRY 时间后自动重试。👉对应数据手册:P48 -【8.3.6.3.2 V_DS Automatic Retry】& P49 -【8.3.6.4.2 V_SENSE Automatic Retry】👈。 具体是VDS还是VSENSE模式,取决了下一part地址0x06的CSA控制寄存器中,Bit 10-CSA_FET和8-LS_REF的设置。

这里参考默认值,Bit10 - TRETRY = 0b,使 tRETRY = 4 ms。

🌌 Add05 - Bit9+Bit8 - DEAD_TIME

详见👉 P36 -【8.3.1.4.2】👈。死区时间是外部高侧MOSFET和低侧MOSFET切换之间的一段时间,以确保它们不会交叉导通并导致击穿。 需要结合自己板子上选用的MOSFET管开通和关断的 tdelay-on、tdelay-off、trise、tfall 具体值来选定。 我这里选择 Bit9+Bit8 - DEAD_TIME = 10b,使 tdead = 200 ns。

🌌 Add05 - Bit7+Bit6 - OCP_MODE

详见👉 P48 -【8.3.6.3 MOSFET VDS Overcurrent Protection】 & P49 -【8.3.6.4 VSENSE Overcurrent Protection】👈。选择VSENSE过流保护的几种工作模式。OCP_MODE位可以在四种不同模式下操作:VDS锁存关闭、VDS自动重试、仅VDS报告和VDS禁用。 这里选择默认值,Bit7+Bit6 - OCP_MODE = 01b,自动重试的模式。

🌌 Add05 - Bit5+Bit4 - OCP_DEG

详见👉P48 -【8.3.6.3 MOSFET VDS Overcurrent Protection】 & P49 -【8.3.6.4 VSENSE Overcurrent Protection】👈。设定VDS或VSENSE过流保护的deglitch time 去阈值时间 tOCP_DEG。 栅极驱动器实现可调VDS电压监测器,以检测外部功率MOSFET上的过电流或短路情况。当监测到的电压大于VDS跳闸点(VVDS_OCP)的时间超过去阈值时间(tOCP)时,检测到过电流情况,并根据设备VDS故障模式采取行动。 这里选择默认值,Bit5+Bit4 - OCP_DEG = 01b, tOCP_DEG = 4us。

🌌 Add05 - Bit3+Bit2+Bit1+Bit0 - VDS_LVL (VVDS_OCP)

内容与下一小节,Bit1+Bit0 - SEN_LVL 的设定类似。详见👉P48 -【8.3.6.3 MOSFET VDS Overcurrent Protection】👈和👉P16 - 表格中的VDS overcurrent trip voltage (VDS 过流跳闸电压) 项👈。在SPI设备上,通过VDS_LVL设置VDS过流保护触发电压阈值VDS_OCP。 如果启用的MOSFET两端的电压超过VVDS_OCP阈值的时间长于tOCP_DEG去阈值时间,则识别VDS_OCP事件,并根据OCP_MODE位执行操作。 这里选择默认值,Bit3+Bit2+Bit1+Bit0 - VDS_LVL = 1001b, VVDS_OCP = 0.75V。

🕶 (address = 0x06) CSA Control Register 电流检测放大器控制寄存器8.6.2.5

CSA Control Register - 1 CSA Control Register - 2 有关于低侧MOSFET管处电流检测放大器的功能与设置。详见👉P41 -【8.3.4 Low-Side Current Sense Amplifiers】👈。(此处暂留个小小的疑问:为什么是在低侧桥臂测,而不是高侧处?)

🌌 Add06 - Bit10 - CSA_FET (Current Sense Amplifier)

CSA电流检测放大器的模式设置,测流经电阻RSENSE的电流,或测VDS的电流。详见👉P44 -【8.3.4.4 MOSFET VDS Sense Mode】👈。这里截图中对于此Bit 的说明和中文版略有区别,但应该表达意思不变。Bit10 与 Bit8关联。 CSA_FET = 1b,LS = 1b,采用VDS测量模式,如右图所示。 CSA_FET = 0b,LS = 0b,采用RSENSE测量模式,如左图所示。 两种电流检测模式对比图 这里我选择Bit10 - CSA_FET = 0b,Bit8 - LS = 0b,采用RSENSE测量模式。

🌌 Add06 - Bit9 - VREF_DIV

关于是否加入偏执电压VREF / 2的选择。即是说,选择对于Bit10里的RSENSE测量模式,是进行双向电流检测操作,还是进行单向电流检测操作,具体详见👉P41 -【8.3.4.1 Bidirectional Current Sense Operation】&【8.3.4.2 Unidirectional Current Sense Operation】👈。两者区别在电路图左下角。 VREF_DIV = 1b,采用双向电流检测模式。可以测量反向电流。 双向电流检测 - Bidirectional Current Sense Operation VREF_DIV = 0b,采用单向电流检测模式。只能测量正向电流。 单向电流检测 - Unidirectional Current Sense Operation 这里我选择Bit9 - VREF_DIV = 1b,采用双向电流检测模式。

🌌 Add06 - Bit8 - LS_REF

分析同前Bit10 处。

🌌 Add06 - Bit7+Bit6 - CSA_GAIN

选择current sense amplifier gain电流检测放大器增益。前述👉P41 -【8.3.4.1 Bidirectional Current Sense Operation】&【8.3.4.2 Unidirectional Current Sense Operation】👈中,公式里的GCSA的设定。 这里选择默认值Bit7+Bit6 - CSA_GAIN = 10b。

🌌 Add06 - Bit5 - DIS_SEN

感应电流故障是否启用。 这里选择默认值Bit5 - DIS_SEN = 0b,启用感应电流故障。

🌌 Add06 - Bit4 - CSA_CAL_A (Current Sense Amplifier A_Calibration)

选择是否开启自动偏移校准功能,详见👉P44 -【8.3.4.3 Auto Offset Calibration】👈。 为了最大限度地减少DC偏移,DRV8323和DRV8323R设备可以通过SPI寄存器(CSA_CAL_X)或CAL引脚执行自动偏移校准。启用校准后,放大器的输入短路,负载断开,放大器的增益(GCSA)更改为40 V/V设置。然后,放大器执行自动微调程序,以使输入偏移最小化。 启用校准后,自动微调程序需要100µs才能完成。 在此时间之后,如果需要由外部控制器进行进一步的偏移校准,则放大器的输入保持短路,负载保持断开,并且增益保持在40V/V。要完成偏移校准,应将CSA_CAL_X寄存器或CAL引脚调回到低位。 根据描述,想要在程序一开始完成A、B、C引脚的校准,因此先设为1b,至少等100µs校准结束后,再设0b。这里手册里似乎没有明说能不能三个脚同时校准,保险起见可以先后来一波100b、010b、001b、000b来完成,讲道理三个放大器独立,应该可以直接111b、000b一起校准。 如果不用校准,直接选择默认值Bit4 - CSA_CAL_A = 0b,不开自动偏移校准即可。

🌌 Add06 - Bit3 - CSA_CAL_B (Current Sense Amplifier B_Calibration)

同上。如果不用校准,直接选择默认值Bit3 - CSA_CAL_B = 0b。

🌌 Add06 - Bit2 - CSA_CAL_C (Current Sense Amplifier C_Calibration)

同上。如果不用校准,直接选择默认值Bit2 - CSA_CAL_C = 0b。

🌌 Add06 - Bit1+Bit0 - SEN_LVL

在SPI设备上,通过SEN_LVL设置VSENSE过流保护触发电压阈值VSEN_OCP,具体如表所示。VSENSE过流保护详见👉P49 -【8.3.6.4 VSENSE Overcurrent Protection】👈。 SEN_LVL设置对应过流保护触发电压 这里选择默认值Bit1+Bit0 - SEN_LVL = 11b,VSEN_OCP = 1V。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3