【STM32】BLDC驱动&控制开发笔记 | 10_基于STM32F407+DRV8323的ADC电流采集

这篇具有很好参考价值的文章主要介绍了【STM32】BLDC驱动&控制开发笔记 | 10_基于STM32F407+DRV8323的ADC电流采集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

😶‍🌫️ 0 说在最前面 + 实现功能

在上一篇文章的基础上继续努力!👇
🧀【STM32】BLDC驱动&控制开发笔记 | 09_基于STM32F407的ADC电压采集,多通道ADC+DMA+USART_CSDN博客@F菌的进阶之路

在实现电机闭环控制的实验程序中,通过ADC功能来实现电压或电流的采集十分重要。一般来说,为了获得更高的精度,会在直接通过ADC口采集的基础上,使用的STM32板子自带的内部放大电路或者外接的自己画的放大电路。✨我这里使用的是DRV8323驱动芯片内自带的放大器。

配置过程也同步阅读DRV8323的技术手册。
🧀超链接跳转:DRV8323英文版手册
🧀超链接跳转:DRV8323中文版手册

本文实验目的:为电机控制实验做ADC功能的单独测试。
在之前调好的六步方波开环程序基础上,加入ADC采样,测量定转速开环运行时的iA、iB、iC三相电流。(因为心里不踏实,调好了才敢往电流环里用嘛hhh)ADC采样频率与PWM输出频率一致,在PWM方波中间部分进行ADC采样。

👀 1 DRV8323技术手册CH8梳理

我这里的电路是参考了手册里TI给出的推荐方案,详见中文版手册P62。采样电阻三相各1个,共3个。电流采样主要有三种方式:低侧电流采样、高侧电流采样和内置电流采样,更多一点的理论学习 可以参考这个博客:SimpleFOC移植STM32(五)—— 电流采样及其变换_CSDN博客@loop222✨。这里选择低侧电流采样,采样电阻RSENSE放置位置如下图。
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu

图源:DRV8323中文版手册 P62

这里使用到DRV8323和DRV8323R特有的 低侧电流检测放大器 (Low-Side Current Sense Amplifiers)。这个低侧就是指半桥的下桥臂靠近地侧。

以下的原文摘录来源:【DRV8323中文版手册】 CH8 Detailed Description P21~P60。

  • 8.1 概览/总述 - Overview

  • 8.2 功能框图 - Functional Block Diagram

  • 8.3 功能描述 - Feature Description

    • 8.3.1 ✨三相智能栅极驱动器 - Three Phase Smart Gate Drivers(⭕DRV832x 系列都有)
      • 8.3.1.1 PWM 控制模式 - PWM Control Modes(6x、3x、1x 或 独立模式)
      • 8.3.1.2 设备接口模式 - Device Interface Modes(SPI 或 硬件接口 2选1)
      • 8.3.1.3 栅极驱动器电压电源 - Gate Driver Voltage Supplies
      • 8.3.1.4 智能栅极驱动架构 - Smart Gate Drive Architecture
    • 8.3.2 DVDD线性稳压器 - DVDD Linear Voltage Regulator(⭕DRV832x 系列都有)
    • 8.3.3 引脚图 - Pin Diagrams
    • 8.3.4 ✨低侧电流检测放大器 - Low-Side Current Sense Amplifiers(❗DRV8323 和 DRV8323R特有)
      • 8.3.4.1 双向电流检测操作 - Bidirectional Current Sense Operation
      • 8.3.4.2 单向电流检测操作 - Unidirectional Current Sense Operation (SPI only)
      • 8.3.4.3 自动偏置校准 - Auto Offset Calibration
      • 8.3.4.4 测量MOSFET VDS两端电压模式 - MOSFET VDS Sense Mode (SPI only)
    • 8.3.5 降压稳压器 - Step-Down Buck Regulator(❗DRV8320R和DRV8323R特有)
    • 8.3.6 栅极驱动器保护电路 - Gate Driver Protective Circuits(⭕DRV832x 系列都有)
      • 8.3.6.1 VM 电源欠压锁定 - VM Supply Undervoltage Lockout (UVLO)
      • 8.3.6.2 VCP 电荷泵欠压锁定 - VCP Charge Pump Undervoltage Lockout (CPUV)
      • 8.3.6.3 MOSFET VDS 过流保护 - MOSFET VDS Overcurrent Protection (VDS_OCP)
      • 8.3.6.4 VSENSE 过流保护 - VSENSE Overcurrent Protection (SEN_OCP)
      • 8.3.6.5 栅极驱动器故障 - Gate Driver Fault (GDF)
      • 8.3.6.6 热警告 - Thermal Warning (OTW)
      • 8.3.6.7 热关断 - Thermal Shutdown (OTSD)
  • 8.4 设备功能模式 - Device Functional Modes

    • 8.4.1 栅极驱动器功能模式 - Gate Driver Functional Modes(⭕DRV832x 系列都有)
      • 8.4.1.1 睡眠模式 - Sleep Mode
      • 8.4.1.2 工作模式 - Operating Mode
      • 8.4.1.3 故障复位(CLR_FLT 或 ENABLE 复位脉冲) - Fault Reset (CLR_FLT or ENABLE Reset Pulse)
    • 8.4.2 降压稳压器功能模式 - Buck Regulator Functional Modes(❗DRV8320R和DRV8323R特有)
      • 8.4.2.1 连续导通模式(CCM) - Continuous Conduction Mode (CCM)
      • 8.4.2.2 Eco-mode™ 控制方案 - Eco-mode™ Control Scheme
  • 8.5 ✨编程 - Programming

    • 8.5.1 SPI通信 - SPI Communication
  • 8.6 ✨寄存器映射图 - Register Maps

    • 8.6.1 状态寄存器 - Status Registers
    • 8.6.2 控制寄存器 - Control Registers

有关8.5和8.6的内容,详见我的 SPI 这篇博客:【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置_CSDN博客@F菌的进阶之路。

8 细节说明
8.1 概览/总述
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
DRV832x 系列器件是一款集成的 6 至 60V 栅极驱动器,适用于三相电机驱动应用。
这些器件通过集成三个独立的半桥栅极驱动器、电荷泵以及用于高侧和低侧栅极驱动器电源电压的线性稳压器,减少了系统组件数量、成本和复杂性。该器件还集成了可选的三重电流分流器(或电流检测)放大器和可选的 600mA 降压稳压器。标准串行外设接口 (SPI) 提供了一种简单的方法来配置各种设备设置并通过外部控制器读取故障诊断信息。或者,硬件接口 (H/W) 选项允许通过固定外部电阻配置最常见的设置。
.
栅极驱动器支持外部 N 沟道高侧和低侧功率 MOSFET,可驱动高达 1A 拉电流、2A 灌峰值电流以及 25mA 平均输出电流。双倍电荷泵生成高侧栅极驱动器的电源电压。该电荷泵架构将 VCP 输出调节至 VVM + 11V。低侧栅极驱动器的电源电压是使用 VM 电源的线性稳压器生成的,该电源可调节至 11V。智能栅极驱动架构能够动态调整栅极驱动输出电流的强度,使栅极驱动器能够控制功率 MOSFET 的 VDS 开关速度。此功能使用户可以移除外部栅极驱动电阻器和二极管,从而减少物料清单 (BOM) 中的元件数量、成本和印刷电路板 (PCB) 面积。该架构还使用内部状态机来防止栅极驱动器中的短路事件,控制半桥死区时间,并防止外部功率 MOSFET 的 dV/dt 寄生导通。

bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
DRV8323 和 DRV8323R 器件集成了三个双向电流检测放大器,用于使用低侧分流电阻器监控通过每个外部半桥的电流水平。电流检测放大器的增益设置可以通过SPI或硬件接口进行调整。 SPI 方法为调整输出偏置点提供了额外的灵活性。
DRV8320R 和 DRV8323R 器件集成了 600mA 降压稳压器,可用于为外部控制器或其他逻辑电路供电。降压调节器作为单独的内部芯片实现,可以使用与栅极驱动器相同或不同的电源。
除了高水平的器件集成之外,DRV832x 系列器件还提供广泛的集成保护功能。这些功能包括电源欠压锁定 (UVLO)、电荷泵欠压锁定 (CPUV)、VDS 过流监控 (OCP)、栅极驱动器短路检测 (GDF) 和过热关断(OTW 和 OTSD)。故障事件由 nFAULT 引脚指示,详细信息可在 SPI 器件版本的 SPI 寄存器中找到。
DRV832x 系列器件采用 0.5 毫米引脚间距、QFN 表面贴装封装。 32 引脚封装的 QFN 尺寸为 5 × 5 mm,40 引脚封装的 QFN 尺寸为 6 × 6 mm,48 引脚封装的 QFN 尺寸为 7 × 7 mm。

8.2 功能框图 - Functional Block Diagram
…略…

8.3 功能描述 - Feature Description
8.3.1 三相智能栅极驱动器 - Three Phase Smart Gate Drivers
DRV832x 系列全都有的。
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu

8.3.1.1 PWM 控制模式 - PWM Control Modes
8.3.1.1.1 6x PWM Mode (PWM_MODE = 00b or MODE Pin Tied to AGND) ✨✅
在 6x PWM 模式下,每个半桥支持三种输出状态:低、高或高阻抗 (Hi-Z)。这种模式对应到BLDC的六步方波驱动,使用这种模式! 6 路 INHx 和 INLx 的高低电平状态,就是对应着我们期望的上下桥臂的导通与关断状态,来自STM32控制芯片输出的 6 路信号。
.
8.3.1.1.2 3x PWM Mode (PWM_MODE = 01b or MODE Pin = 47 kΩ to AGND)
在 3x PWM 模式下,INHx 引脚控制每个半桥并支持两种输出状态:低电平或高电平。 INLx 引脚用于将半桥置于高阻抗状态。如果不需要 Hi-Z 状态,请将所有 INLx 引脚连接至逻辑高电平。
.
8.3.1.1.3 1x PWM Mode (PWM_MODE = 10b or MODE Pin = Hi-Z)
在 1x PWM 模式下,DRV832x 系列器件使用内部存储的 六步块换向表。在这个模式下,只需要从INHA输入 1 路 PWM 信号,从INLA、INHB、INLB输入 3 路 Hall 信号(INLA = HALL_A、INHB = HALL_B、INLB = HALL_C),然后INHC和INLC输入2路MCU_GPIO输出。会有点小特别,和普通理解不太一样,按照表格和图片的规则来。有同步整流(低侧 MOSFET 再循环)和异步整流(MOSFET 体二极管续流)两种。
.
8.3.1.1.4 Independent PWM Mode (PWM_MODE = 11b or MODE Pin Tied to DVDD)
在独立 PWM 模式下,相应的输入引脚独立控制每个高侧和低侧栅极驱动器。
高侧和低侧的MOSFET有同时导通,被击穿的风险。

8.3.1.2 设备接口模式 - Device Interface Modes
8.3.1.2.1 串行外设接口 - Serial Peripheral Interface (SPI) ✨✅
详见我的 SPI 这篇博客:【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置_CSDN博客@F菌的进阶之路
8.3.1.2.2 硬件接口 - Hardware Interface

8.3.1.3 栅极驱动器电压电源 - Gate Driver Voltage Supplies

8.3.1.4 智能栅极驱动架构 - Smart Gate Drive Architecture
8.3.1.4.1 IDRIVE:MOSFET 转换速率控制 - IDRIVE: MOSFET Slew-Rate Control
8.3.1.4.2 TDRIVE:MOSFET 栅极驱动控制 - TDRIVE: MOSFET Gate Drive Control
8.3.1.4.3 传播延迟 - Propagation Delay
8.3.1.4.4 MOSFET VDS 监视器 - MOSFET VDS Monitors
8.3.1.4.5 VDRAIN 检测引脚 - VDRAIN Sense Pin

8.3.2 DVDD线性稳压器 - DVDD Linear Voltage Regulator
…略…
8.3.3 引脚图 - Pin Diagrams
…略…

8.3.4 低侧电流检测放大器(DRV8323 和 DRV8323R特有)
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
DRV8323 和 DRV8323R 集成了 三个高性能低侧电流检测放大器 ,用于使用外部半桥中的低侧分流电阻器进行电流测量。低侧电流测量通常用于通过外部控制器实现过流保护、外部扭矩控制或无刷直流换向。所有三个放大器均可用于感测每个半桥臂中的电流,或者一个放大器可用于感测半桥臂的总和。
电流检测放大器包括可编程增益、偏移校准、单向和双向支持以及电压基准引脚 (VREF) 等功能。如果三个电流检测放大器中的任何一个未使用,则可以通过将 SNx 引脚与 SPx 引脚短路并保持 SOx 引脚悬空来将它们连接起来。请记住将 SPx 或 SNx 引脚连接到低侧 FET 源极,以便过流 VDS 监视器仍能正常工作。

8.3.4.1 双向电流检测操作
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
DRV8323 和 DRV8323R 上的 SOx 引脚输出的模拟电压等于 SPx 和 SNx 引脚上的电压乘以增益设置 (GCSA)。增益设置可在四个不同级别(5 V/V、10 V/V、20 V/V 和 40 V/V)之间调节。使用公式 (3) 计算流经分流电阻器的电流。
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
公式(3)计算的 I 就是流经 R~SENSE~ 的电流值。

8.3.4.2 单向电流检测操作 (与8.3.4.1相对,二选一)
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
在 DRV8323 和 DRV8323R SPI 器件上,使用 VREF_DIV 位删除 VREF 分频器。在这种情况下,电流检测放大器单向工作,SOx 引脚输出的模拟电压等于 SPx 和 SNx 引脚两端的电压乘以增益设置 (GCSA)。使用公式 4 计算流经分流电阻器的电流。
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
图35和图38的区别在于左下角,是否带来1/2VVREF偏置的关系。

对比下图的两种模式,结合自己电路及驱动原理的分析,应该用双向电流检测的模式

bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcubldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu

8.3.4.3 自动偏移校准
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
为了最大限度地减少直流偏移,DRV8323 和 DRV8323R 器件可以通过 SPI 寄存器 (CSA_CAL_X) 或 CAL 引脚执行自动偏移校准。当启用校准后,放大器的输入会短路,负载会断开,并且放大器的增益 (GCSA) 会更改为 40 V/V 设置。然后放大器执行自动调整程序以最小化输入偏移。启用校准后,自动调整例程需要 100 µs 才能完成。此后,如果外部控制器需要进一步进行失调校准,放大器的输入将保持短路状态,负载将保持断开状态,并且增益将保持在 40 V/V。
要完成偏移校准,CSA_CAL_X 寄存器或 CAL 引脚应拉回低电平。设备完成校准后,增益将返回到原始增益设置。为了获得最佳结果,请在外部 MOSFET 不切换时执行失调校准,以减少对放大器的潜在噪声影响。当电流检测放大器进入校准模式时,如果器件配置为单向模式,VREF 引脚会被设置为双向模式。即使未为所有通道设置 CSA_CAL_X 寄存器,VREF 引脚的设置也会影响所有三个电流检测放大器的通道。

8.3.4.4 测量MOSFET VDS两端电压模式
bldc驱动电流采集时刻,# STM32电机驱动,STM32 HAL库(CubeMX),stm32,笔记,嵌入式硬件,单片机,mcu
简而言之:有R~sense~时,用前面的模式,测得的电阻流过电流就是半桥电流;无R~sense~电阻时,用这个模式,V~DS~流过电流视作为半桥电流。

我这里有Rsense了,所以就不用8.3.4.4这个模式了。

👀 2 寄存器配置

结合数据手册CH 8.5章,配合【DRV8323】电机驱动芯片寄存器配置指南,通过STM32F407的SPI通信配置_CSDN博客@F菌的进阶之路。一文对各寄存器的梳理,计划这么配置各寄存器:

  • Address 0x02 : 0x1000
  • Address 0x03 : 0x1BFF
  • Address 0x04 : 0x27FF
  • Address 0x05 : 0x2A59
  • Address 0x06 : 0x329F(校准),0x3283(校准结束)

设置为双向电流检测,电流检测放大器增益 GCSA = 20 V/V,执行自动校准偏置。文章来源地址https://www.toymoban.com/news/detail-854729.html

到了这里,关于【STM32】BLDC驱动&控制开发笔记 | 10_基于STM32F407+DRV8323的ADC电流采集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32f407探索者开发板(二)——新建工程(基于固件库)

    说实话,我非常不想这篇文章,因为太长太长了,我看视频写都写了一个下午(虽然我下午一直在摸鱼,啊啊啊啊啊)害,不管了,赶紧开始写吧,不然今晚是写不完了,呜呜呜…… 把这个里面的文件放先给下好,我这里是没有光盘的,所以需要从百度网盘上下载好,这里面

    2023年04月08日
    浏览(57)
  • 10、江科大stm32视频学习笔记——PWM驱动led呼吸灯、驱动舵机、驱动直流机

    目录 一、PWM驱动LED呼吸灯(灯接在PA0) 1、PWM波和GPIO的对应关系参考引脚定义表 2、计数器的计算 3、TIM输出PWM波使用步骤​编辑 4、代码 (1)输出化比较单元 (2) PWM.c (3)main.c 5、重映射更换成PA15亮灯 二、PWM驱动舵机(舵机接在PA1、按键在PB1)  1、电路图 2、参数计算

    2024年02月14日
    浏览(18)
  • stm32f407驱动20KG 270度舵机

    在学习的过程中发现,及时复习是一个好的学习习惯,本文记录使用STM32F407ZGT6控制20KG 270度舵机的学习过程,以便日后复习。 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。广

    2024年02月14日
    浏览(16)
  • 驱动开发,stm32mp157a开发板的led灯控制实验

            编写LED灯的驱动,在应用程序中编写控制LED灯亮灭的代码逻辑实现LED灯功能的控制; LED1-PE10 LED1亮灭: RCC寄存器[4]-1 0X50000A28 GPIOE_MODER[21:20]-01 (输出) 0X50006000 GPIOE_ODR[10]-1(输出高电平) 0(输出低电平)0X50006014 LED2-PF10 LED2亮灭: RCC寄存器[5]-1 0X50000A28 GPIOE_MODER[21:20]

    2024年02月09日
    浏览(18)
  • STM32F407+LWIP+DP83848以太网驱动移植

      最近有个项目上需要用到网络功能,于是开始移植网络相关代码。在移植的过程中感觉好难,网上找各种资料都没有和自己项目符合的,移植废了废了好的大劲。不过现在回头看看,其实移植很简单,主要是当时刚开始接触网络,各种新的知识和概念扑面而来,加上LWI

    2024年02月12日
    浏览(15)
  • (STM32笔记5)ws2812驱动开发

    ws2812 需要开发的外设:ws2812 开发环境:MDK 开发板:stm32最小系统板 杜邦线无数 一、原理阐述 (一) 这个ws2812有很多种,一个小灯、灯带,矩形像素屏等等。 这些都是DIN连接输入,DOUT连接输出,另外两个引脚是GNE和VCC   (二) 数据传输原理: 第1个WS2812B灯珠接收到了第1个

    2024年01月19日
    浏览(21)
  • STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数

    该篇文章中用到的步进电机闭环驱动器为Emm42_V4.0步进电机闭环驱动器。该闭环驱动器自带FOC矢量闭环控制算法,能实现力矩、速度、位置三环控制。 如下图所示,该42步进闭环电机驱动器的A+、A-、B+、B-连接步进电机,通过右侧的使能、脉冲、方向端对步进电机进行驱动控制

    2024年02月01日
    浏览(28)
  • STM32F407移植OpenHarmony笔记1

    参考文档: OpenAtom OpenHarmony width=device-width,initial-scale=1.0 https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/get-code/gettools-acquire.md/ 搭建环境 安装linux系统: Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-91-generic x86_64) 下载源代码:我选择的是V3.2.4版本 https://repo.huaweicloud.com/openharmony/os/3.2.4/code-v3.2.4-Rele

    2024年01月25日
    浏览(29)
  • 野火霸天虎 STM32F407 学习笔记_1 stm32介绍;调试方法介绍

    博主开始探索嵌入式以来,其实很早就开始玩 stm32 了。但是学了一段时间之后总是感觉还是很没有头绪,不知道在学什么。前前后后分别尝试了江协科技、正点原子、野火霸天虎三次 stm32 的课程学习。江协科技的 stm32f103c8t6 课程看了一段时间,感觉对一些外设的调用方法有

    2024年02月06日
    浏览(17)
  • 基于STM32F407的智能门锁

            在消费升级渗透在各个领域的今天,国民消费发生着巨大的变化,与每个人息息相关的家居行业也是如此。现今,越来越多的智能家居产品出现在普通老百姓的生活中,智能照明、智能窗帘、智能扫地机器人等各种智能产品都给人们的生活带来了极大的便利。智能

    2024年02月11日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包