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

内容概览

😶‍🌫️说在最前面

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

🕶 概述

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

对寄存器操作的基本数据格式:
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。

  • 20
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
這種1千瓦功率級參考設計實現了三相36V直流無刷電效率高達99%(BLDC)電機用於工業應用中使用10芯鋰離子電池供電的電動工具。該設計展示了最小的逆變器功率這個功率級的階段,實現基於傳感器梯形控制並支持25A RMS連續(60-A峰值為2秒,100-A峰值為400毫秒)繞組電流。 微控制器是使用超低功耗MSP430系列中的 MSP430F5232除了滿足省電的要求外更提供64KB記憶體容量讓使用者可任意的附加控制功能或其他指令程式,另採用的MOSFET CSD88599Q5DC功率模塊大幅降低寄生電感和電流控制柵極驅動器DRV8323R可設定驅動能力有助於提升MOSFET開關效能和降低EMI,這樣的組合實為Power tool 驅動器首選。 核心技术优势1.用于BLDC电机的1 KW驱动器,支持带传感器的梯形波控制方式 2.设计工作电压范围为8至42 V. 3.连续输出电流高达25-ARMS 3.峰值电流能力为60-A,持续2秒,100-A为400毫秒 4.小尺寸,50 mm×36 mm,采用60 V / 400-APEAK,1.7mΩRDS_ON,SON5x6封装半双NMOS 5.100%占空比时效率超过99% 6.36 V / 700 W,18 ARMS无散热器 7.通过监控MOSFET的VDS来检测电机电流达到过流保护功能,无需增加额外的电流侦测保护组件及回路 8.通过VDS检测实现逐周期过流和电机失速电流非锁存限制和短路锁存达到全方位的过流保护 9.半桥短路,欠电压,过热和转子堵死保护机制 10.单一PWM速度控制 方案规格MSP430 1.低工作电压范围:3.6 V至1.8 V 2.超低功耗 3.从待机模式唤醒时间3.5μs(典型值) 4.16位RISC架构,可扩展内存,高达25 MHz的工作频率 5.灵活的电源管理系统 MOSFET 1.MOSFET击穿电压(BVdss)= 60V 2.栅极额定电压(Vgs)= + 20V / -20V 3.内阻@ 10V = 1.7mΩ 4.最大RMS工作电流:40A DRV8323 1.6V至60V工作电压范围(最大65V) 2.600mA 0.8-60V可调节交换式降压稳压器 3.最大至1A栅极输出驱动能力和2A栅极输入下拉能力 4.6x,3x,1x和独立PWM控制模式 5.6x6 mm QFN封装,40引脚,0.5 mm引脚间距 6.低功耗睡眠模式 - 20uA 7.30mA 3.3V LDO 方案来源于大大通
### 回答1: DRV8825是一种高性能的步进电机驱动芯片,常用于控制步进电机的旋转和运动。STM32F407是一款强大的ARM微控制器芯片,可以通过控制信号来驱动和操控DRV8825。 在STM32F407的原理图中,首先需要连接微控制器芯片与DRV8825芯片。通过引脚连接,STM32F407的GPIO引脚与DRV8825芯片的脉冲、方向和使能引脚相连。 脉冲引脚用于控制步进电机的旋转。通过改变脉冲的频率和脉冲的个数,可以调整步进电机的转速和步进角度。 方向引脚则用于确定步进电机的旋转方向,通过改变引脚的高低电平信号,可以使步进电机顺时针或逆时针旋转。 使能引脚用于控制步进电机的使能状态。当使能引脚为高电平时,步进电机可以运动;当为低电平时,步进电机停止运动。 除了连接这些引脚,还需要连接电源。STM32F407和DRV8825都需要供电才能正常工作。通过连接电源引脚,可以提供足够的电压和电流给STM32F407和DRV8825。 综上所述,STM32F407的原理图中需要连接GPIO引脚与DRV8825的脉冲、方向和使能引脚,同时还需要连接电源引脚,以实现对DRV8825的步进电机驱动。通过控制STM32F407发送出来的脉冲信号、方向信号和使能信号,可以精确控制步进电机的旋转和运动。 ### 回答2: STM32F407是一款常用的ARM Cortex-M4微控制器,而DRV8825是一款常用的步进电机驱动芯片。要驱动DRV8825,需要根据drv8825的原理图进行连接和配置。 首先,在stm32f407板上找到与drv8825相关的引脚。通常,需要连接DRV8825的步进电机引脚,如步进脉冲(PUL)、方向(DIR)和使能(EN)引脚,并连接步进电机自供电(VMOT)和逻辑供电(VDD)引脚。 接下来,根据DRV8825的数据手册配置stm32f407的IO引脚。通过将相关引脚设置为输出模式,可以控制步进电机的运动。例如,将PUL引脚设置为高电平脉冲信号可以驱动步进电机以固定的步距运动。通过改变DIR引脚的电平,可以改变步进电机的运动方向。 此外,可以使用stm32f407的定时器功能来生成脉冲信号。定时器可以在一段时间内定期发送脉冲,控制步进电机的速度。可以根据需要配置定时器的频率和占空比,来控制步进电机的速度和加减速度。 最后,连接DRV8825的使能引脚可以通过控制步进电机的使能信号,来启用或禁用步进电机。通过控制使能引脚,可以在需要的时候启动或停止步进电机的运动。 综上所述,通过根据drv8825的原理图连接和配置stm32f407的引脚,可以实现对drv8825的控制。这样就可以使用stm32f407驱动步进电机,实现精确的运动控制。 ### 回答3: drv8825是一款用于步进电机的驱动芯片,可以实现快速、准确地控制电机转速和转动方向。stm32f407是一款强大的32位微控制器,具有丰富的外设以及强大的运算能力。 drv8825的原理图包括主要的三个部分:电源部分、信号处理部分和电机控制部分。电源部分提供给drv8825所需的工作电压,可以根据电机的工作电压选择合适的电源;信号处理部分接收stm32f407发送的脉冲信号,并经过处理后送入电机控制部分;电机控制部分根据信号处理部分提供的信号驱动步进电机。 drv8825的原理图中,电源部分一般包括限流电阻、电源滤波电容和电源管理芯片等,用于提供稳定的工作电压;信号处理部分一般包括光电隔离器、信号整形芯片等,用于接收stm32f407发送的脉冲信号并进行处理;电机控制部分一般包括驱动器、功率电路等,通过控制驱动器输出的电流和方向来驱动步进电机。 stm32f407作为主控芯片,通过GPIO口或者SPI接口等方式,将控制信号发送到drv8825的信号处理部分。drv8825接收到信号后,根据逻辑电平的高低来控制步进电机的转向和转速。通过调整发送的脉冲频率和脉冲宽度,stm32f407可以实现电机的匀速、加速和减速等运动。 综上所述,stm32f407驱动drv8825的原理图涉及到电源部分、信号处理部分和电机控制部分。通过合理的电路设计和使用适配的驱动程序,可以实现对步进电机的准确控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值