当前位置: 首页 > news >正文

基于NSD8389评估板快速测试电子膨胀阀

文章目录

    • 前言
    • 1.芯片简介
      • 1.1 芯片概述
      • 1.2 主要特性
      • 1.3 应用场景
    • 2.硬件设计
      • 2.1 应用框图
      • 2.2 电源部分
      • 2.3 MCU控制引脚
      • 2.4 输出引脚
      • 2.5 电流配置引脚
    • 3.软件驱动
      • 3.1 SPI通信
      • 3.2 寄存器
        • 3.2.1 状态寄存器
        • 3.2.2 控制寄存器-电机驱动相关
        • 3.2.3 控制寄存器-诊断相关
        • 3.2.3 控制寄存器-堵转相关
        • 3.2.4 控制器寄存器-其它
      • 3.3 电流调节
      • 3.4 步进电机控制
      • 3.5 故障处理
    • 4.性能测试
      • 4.1 电子膨胀阀的常见需求
      • 4.2 实际测试

前言

最近在支持一些热管理客户时,发现单板控制的电子膨胀阀(下文简称EXV)数量急剧上涨,从4个到8个不等。使用的方案也基本是一颗M7内核的MCU加多个步进电机驱动,用于驱动多个EXV以及AGS;同时这颗M7内核的MCU也会带3个左右的预驱,用于驱动多个水泵以及冷却风扇。

当前已量产的方案中,使用的步进电机驱动芯片中最常见的是TI的DRV8889。新开发的方案因为降本和国产化的要求,很多客户会选择纳芯微的NSD8389去进行替换,因为两者软硬件基本兼容,替换工作量不大。

下文先介绍NSD8389的软硬件特性,然后基于实际的测试案例,分享如何使用纳芯微的评估板测试EXV,快速评估方案的可行性。

1.芯片简介

1.1 芯片概述

NSD8389是一款高性能的双极性步进电机驱动芯片,专为汽车应用设计,如车灯位置调整、HUD投影仪调节执行器以及热管理中的阀门或BDC电机等。它支持高达1.5A的全量程电流,具备从全步到1/256微步的多种步进模式,能够实现步进电机的平稳运动。

1.2 主要特性

  • **宽工作电压范围:**4.5V至36V,适用于多种电源环境。
  • **低导通电阻:**每路桥驱的内阻典型值为900mΩ(HS + LS),有助于降低功耗。
  • **驱动电流灵活可配:**满量程最大电流为1.5A,可通过外部电阻以及内部寄存器组合配置。
  • **多种步进模式:**提供全步、半步以及高达1/256微步的多种步进模式,满足不同精度需求。
  • **可编程输出级斜率/死区时间:**可根据应用需求灵活配置。
  • **多种衰减模式选择:**包括慢衰减、快衰减和混合衰减模式,优化电流控制。
  • **内部集成电流检测:**无需外部检测电阻,简化电路设计。
  • **支持展频功能:**通过展频功能优化EMC。
  • **低功耗睡眠模式:**在睡眠模式下,静态电流极低,适合节能应用。
  • **SPI接口:**支持菊花链连接,便于多芯片扩展和集中控制。
  • **全面的保护功能:**包括欠压、过流、过温保护,以及开路负载检测和堵转检测。

1.3 应用场景

NSD8389目前已经量产,目前接触的很多零部件厂商都在新项目中使用NSD8389,如汽车大灯调节、汽车HUD的角度调整、电子膨胀阀和电动出风口的执行器等。

2.硬件设计

NSD8389封装

NSD8389有HTSSOP24和VQFN24两种封装,目前EXV应用大多选择VQFN24这种小封装。

NSD8389的引脚包括电源引脚、步进电机控制引脚(如STEP、DIR)、SPI通信引脚(如SCK、SDI、SDO、NCS)、电流设置引脚(VREF)以及故障指示引脚(nFAULT)等。

2.1 应用框图

NSD8389的应用框图如下:

NSD8389应用框图

2.2 电源部分

  • **电荷泵:**相关引脚为CPL、CPH和VCP;CPL和CPH之间通过22nF相连,VCP串联一个220nF连接到主电源供电引脚。电荷泵的内部框图如下。

Charge pump内部框图

  • **主电源:**相关引脚为VSA、VSB;VSA和VSB需要相连,并且旁边并联22uF的电解电容和100nF的陶瓷电容,防止VSA和VSB引脚在电机停止时出现电尖峰或过应力。VSA和VSB的工作电压范围为4.5V到36V。

  • **内部LDO:**相关引脚为VINT,为内部LDO的解耦输出引脚,内部框图如下。需要在外部接一个470nF的陶瓷电容。当EN引脚拉低时,该LDO关闭输出。

注意:VINT引脚虽然是内部LDO的输出引脚,但是电流很小,不能用于外部器件供电,也不能接外部LDO的输出引脚。

VINT内部框图

  • **数字电路供电:**相关引脚为VDDIO,为内部数字电路的电源输入引脚,供电范围为3V-5.5V,建议旁边放一个100nF的X7R陶瓷电容。

2.3 MCU控制引脚

  • **器件使能引脚:**相关引脚为EN,内部带100KΩ下拉电阻。如下图所示,当EN从高拉低12us之后,错误状态会清除;当拉低56us之后,芯片寄存器以及内部逻辑会复位,电荷泵和输出关闭,芯片进入睡眠模式。当EN从低拉高12us之后,并且VDDIO和VS没有欠压,芯片会启动上电序列;当拉高200us之后,MCU可以通过SPI和NSD8389通信,拉高900us之后,NSD8389内部电路都开始正常工作。

EN时序图

  • **输出使能引脚:**相关引脚为DRVOFF,内部带100KΩ上拉电阻。如下表所示,需要和寄存器中的DRV_DIS bit一起配合,用于使能输出。

输出控制真值表

  • **SPI通信引脚:**相关引脚为SCK、NCS、SDI、SDO,NCS内部带100KΩ上拉电阻,SCK、SDI内部带100KΩ下拉电阻。

  • **电机控制引脚:**相关引脚为DIR和STEP,前者控制电机方向,后者控制电机速度。如果MCU引脚资源有限,也可以使用寄存器替代这两个引脚的功能。

  • **故障反馈引脚:**相关引脚为nFAULT,为开漏结构,外部需要接4.7KΩ或10KΩ上拉电阻到VDDIO,当发生过流、过温、开路、堵转等故障,nFAULT会拉低。

2.4 输出引脚

相关引脚为OUTA1、OUTA2、OUTB1、OUTB2,用于接步进电机的A、B线圈。不同step时刻对应的OUT引脚电流大小以及方向,参考NSD8389手册Step translator of micro step modes表格。

2.5 电流配置引脚

相关引脚为VREF,该引脚最大输入电压为3.3V。VREF电压需要配合CONFIG_1控制寄存器的IFS_DAC[3:0]去设置输出电流的最大值。计算公式和IFS_DAC[3:0]的说明如下:

电流计算公式

IFS_DAC[3:0]说明

VREF引脚的电压可以通过外部分压电路(固定电压)或者MCU的DAC外设(可调电压)或者MCU的PWM外设加RC电路(可调电压)去设置。

VREF引脚电压设置方式

3.软件驱动

3.1 SPI通信

MCU通过SPI接口读写NSD8389的寄存器,从而实现对NSD8389的配置、控制和状态读取。如下是NSD8389的SPI接口要求。

NSD8389-SPI接口要求

  • NSD8389的SDI引脚的数据如下表。

NSD8389-SDI数据格式

  • NSD8389的SDO引脚的数据格式如下表。

NSD8389-SDO数据格式

3.2 寄存器

NSD8389的寄存器总表如下:

NSD8389寄存器总表

总的来说,一共有两大类寄存器,分别为状态寄存器和控制器寄存器,下文对两类寄存器进行介绍。

3.2.1 状态寄存器

STA_0STA_1STA_2三个状态寄存器的描述如下:

NSD8389状态寄存器描述

  • FAULT用于指示nFAULT引脚的电平状态;
  • SPI_ERRORbit用于只是SPI通信是否发生错误;
  • VSUVCPUVOCOPLUTWOTWOTSDSTALL等bit用于指示是否发生欠压、过流、开路、温度异常、堵转等故障;
  • OC_OUTB2_LSOC_OUTB2_HS等bit用于指示相关输出通道是否发生过流;
  • OPL_OUTBOPL_OUTA用于指示A、B通道是否发生开路。
3.2.2 控制寄存器-电机驱动相关

和电机驱动相关的配置主要在CONFIG_1CONFIG_2CONFIG_3三个寄存器,描述如下:

NSD8389电机驱动相关寄存器

  • IFS_DAC[3:0]用于配置输出通道的最大电流相比满量程电流的缩减比例,满量程电流由VREF引脚的电压决定,详情参考前文的描述。

  • SR_SEL[1:0]用于配置输出通道的压摆率(slew rate)。

  • DRV_DIS用于配合EN引脚和DRVOFF引脚控制输出通道使能,详情参考前文的描述。

  • TOFF_SEL[1:0]用于设置NSD8389进行电流闭环控制时的OFF phase时间。

  • DECAY_SEL[2:0]用于配置NSD8389进行电流闭环控制时的OFF phase段的续流方式。

  • SPI_DIRSPI_STEP用于配置步进电机的DIR和STEP信号来源于外部引脚,还是通过SPI配置。

  • DIRSTEPSPI_DIRSPI_STEP都为1时,作为驱动芯片的DIR信号和STEP信号来源。

  • STEPPER_MODE[3:0]用于配置步进电机的细分模式。

3.2.3 控制寄存器-诊断相关

CONFIG_4和CONFIG_5寄存器用于诊断相关的配置,描述如下:

NSD8389诊断相关寄存器

  • CLR_FLT用于清除错误状态。

  • LOCK[2:0]用于锁住寄存器配置,CLR_FLT不受影响。

  • OPL_ON_EN用于开启输出通道开路诊断。

  • OCP_MODE用于配置过流事件发生之后芯片是否自动恢复。

  • OTSD_MODE用于配置过温关断事情发生之后芯片是否自动恢复。

  • TW_NMASK_FLT用于配置温度异常事件是否反馈到nFAULT引脚。

  • STALL_EN用于配置是否开启堵转检测。

  • STALL_NMASK_FLT用于配置堵转事件是否反馈到nFAULT引脚。

  • OPL_FLT[1:0]用于配置开路检测的过滤时间。此配置只对NSD8389A有效,NSD8389固定为200ms。

  • TBLANK_SR_EN用于配置Tblank的时间。此配置只对NSD8389A有效,NSD8389固定为0.5us。

3.2.3 控制寄存器-堵转相关

堵转检测相关的寄存器主要是CONFIG_9CONFIG_10CONFIG_11CONFIG_12CONFIG_13CONFIG_14

NSD8389堵转检测的原理也和NSD8381一样,这里就不赘述了。有兴趣的可以参考笔者之前的文章和NSD8389的数据手册。

  • 如何使用NSD8381的堵转检测功能
3.2.4 控制器寄存器-其它

CONFIG_8寄存器包含芯片ID,为4bit数据,可以用来识别芯片是NSD8389还是NSD8389A。

芯片ID

CONFIG_15寄存器包含芯片展频设置、HOLD模式配置、电流调节过滤时间配置。

CONFIG_15寄存器

CONFIG_16寄存器包含VS过压检测、细分相序计数高2位。

CONFIG_16寄存器

CONFIG_17寄存器用于保存细分相序计数低8位。

CONFIG_17寄存器

CONFIG_18寄存器用于保存芯片结温。

CONFIG_18寄存器

3.3 电流调节

NSD8389的驱动电流的调节示意图如下:

驱动电路调节示意图(来源于网络)

上图几个参数的说明如下:

  • ITRIP为NSD8389在每个相序需要设定的电流值。

  • tDRIVE为NSD8389驱动阶段的时间,即电流调节ON Phase的时间;其中包含的tBLANK为驱动管刚开启时的一小段时间(一般几us),这段时间会关闭电流监控,因为驱动管刚开启时会有毛刺,采集的相电流不准。

  • tOFF为NSD8389驱动关闭的时间,即电流调节OFF Phase阶段的时间。

NSD8389的tBLANK时间固定为0.5us;NSD8389A的tBLANK时间和两个寄存器的配置相关,如下表所示。

tBLANK时间配置

在OFF Phase阶段,选择不同的续流方式,整体电流上升、下降阶段的波形也不一样,电机噪音也不一样。

Decay modes

电流调节ON和OFF阶段的电流流向

如上图所示,虽然NSD8389可以配置8种decay模式,但本质上还是对Slow decay和Fast decay进行不同的组合。

3.4 步进电机控制

  • **步进更新:**通过STEP信号或SPI接口的STEP位,控制步进电机的步进更新。可以通过更改STEP信号的频率以实现不同的步进速度。需要注意PWM信号的高电平持续时间不能小于2us。

  • **方向控制:**通过DIR信号或SPI接口的DIR位,控制步进电机的旋转方向。

  • **保持模式:**在HOLD模式下,步进电机的相位保持不变,可以通过SPI接口的HOLD_MODE_EN位进入或退出保持模式。

3.5 故障处理

NSD8389的故障总表如下,包含了故障发生条件以及恢复条件。

4.性能测试

4.1 电子膨胀阀的常见需求

笔者目前接触了多家的EXV,和电机驱动芯片相关的参数都差不多。如下是摘录的三家产品手册标注的参数,空白部分为产品手册缺失的数据。其中励磁速度是按1/2细分去计算的。

EXV参数厂家A厂家B厂家C
驱动电压9-16V9-16V9-16V
驱动方式2相8拍2相8拍2相8拍
额定电流260mA≤0.5A
开阀脉冲32±20P38±15P38±15PS
励磁速度30~100PPS80~200PPS
全开脉冲数576P576P

下图是某个EXV厂家的励磁方式和开、闭阀的关系图,其它EXV厂家基本一致,偶尔有些厂家开闭阀的相序和下图是相反的。

励磁方式和开、闭阀关系图

结合笔者对多家EXV的现场调试和客户的测试工程师的沟通,关于使用NSD8389驱动EXV的配置推荐如下。

  • NSD8389的工作电压控制在9-16V,驱动电路控制在500mA以内;有条件的话,VREF引脚前期调试接一个可调电压源,方便实时调节驱动电流。

  • NSD8389的细分模式选择普通的1/2细分,即STEPPER_MODE[3:0]赋值为0011,给STEP引脚的PWM信号的频率为100Hz,即1/2细分下,励磁速度为100PPS。

  • NSD8389的输出引脚和EXV的接线方法为OUTA1、OUTA2接EXV的B相+、B相-;OUTB1、OUTB2接EXV的A相+、A相-。

NSD8389接步进电机相序图

4.2 实际测试

本次测试使用纳芯微的NSD8389官方demo板,测试环境如下图。

测试环境

  1. S32DS导入NSD8389的驱动例程S32K144_NSD8389_Demo_241120A.zip(需要找纳芯微原厂申请)。

  2. 按照实际需要修改电机的步距角配置。

步距角配置

  1. 如果需要电机自动正反转,需要打开下面的函数。

电机运行状态配置

  1. 将代码烧录进MCU底板,并打开工程目录下的freemaster文件。

工程目录

  1. 将Freemaster工程中的elf文件替换成最新的。

freemaster烧录文件更新

  1. 下图为Freemaster界面中对NSD8389和电机运行的一些可配置参数。用户可以跟进自己需要进行配置并观察效果。

  1. 最终测得的电流波形如下图,没有出现过多的尖峰,所以失步的发生概率很低。


如果觉得本文对你有用,帮忙给个一键三连!!!

http://www.dtcms.com/a/290493.html

相关文章:

  • 「日拱一码」034 机器学习——插值处理
  • FreeSwitch通过Websocket(流式双向语音)对接AI实时语音大模型技术方案(mod_ppy_aduio_stream)
  • 优测发布IoT云联解决方案,赋能生态应用创新跨端体验!
  • 智慧水厂怎么建?物联网数据采集+SCADA升级,水务工业智能转型
  • 蜂窝物联网模组市场新展望:中国企业继续保持最强竞争力
  • Netty中AbstractReferenceCountedByteBuf源码解析
  • 康复器材动静态性能测试台:精准检测,为康复器械安全保驾护航
  • 【Android】交叉编译faiss库 | 问题解决
  • jdk25浅谈
  • 亚马逊自养号测评实战指南:从环境搭建到安全提排名
  • 智能合约安全 - 重入攻击 - 常见漏洞(第一篇)
  • 电科金仓2025发布会,国产数据库的AI融合进化与智领未来
  • A316-Mini-V1:超小尺寸USB高清音频解码器模组技术探析
  • Sequential 损失函数 反向传播 优化器 模型的使用修改保存加载
  • 20250721
  • A316-1926-V1 USB多路高清音频解码器模组技术解析
  • 番茄工作法
  • 在幸狐RV1106板子上用gcc14.2本地编译安装mysql-8.0.42数据库
  • 【高等数学】第五章 定积分——第一节 定积分的概念与性质
  • C++学习<2>--引用、函数、内存分区
  • 数据结构-哈希表(一)哈希函数、哈希表介绍、优缺点
  • 计算机发展史:个人计算机时代的多元融合与变革
  • 【ASP.NET Core】ASP.NET Core中Redis分布式缓存的应用
  • 进程资源分配的安全性判断与安全序列
  • 14.6 《3步实战LLaMA2-7B指令微调:Hugging Face生态+LoRA技术,MT-Bench得分从5.1直升7.3》
  • 【烧脑算法】拓扑排序:从“依赖”到“序列”,理解题目中的先后逻辑
  • 通俗易懂卷积神经网络(CNN)指南
  • [深度学习] 大模型学习3上-模型训练与微调
  • Pytorch02:深度学习基础示例——猫狗识别
  • 无人机避障雷达模式运行方式