基于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有HTSSOP24和VQFN24两种封装,目前EXV应用大多选择VQFN24这种小封装。
NSD8389的引脚包括电源引脚、步进电机控制引脚(如STEP、DIR)、SPI通信引脚(如SCK、SDI、SDO、NCS)、电流设置引脚(VREF)以及故障指示引脚(nFAULT)等。
2.1 应用框图
NSD8389的应用框图如下:
2.2 电源部分
- **电荷泵:**相关引脚为CPL、CPH和VCP;CPL和CPH之间通过22nF相连,VCP串联一个220nF连接到主电源供电引脚。电荷泵的内部框图如下。
-
**主电源:**相关引脚为VSA、VSB;VSA和VSB需要相连,并且旁边并联22uF的电解电容和100nF的陶瓷电容,防止VSA和VSB引脚在电机停止时出现电尖峰或过应力。VSA和VSB的工作电压范围为4.5V到36V。
-
**内部LDO:**相关引脚为VINT,为内部LDO的解耦输出引脚,内部框图如下。需要在外部接一个470nF的陶瓷电容。当EN引脚拉低时,该LDO关闭输出。
注意:VINT引脚虽然是内部LDO的输出引脚,但是电流很小,不能用于外部器件供电,也不能接外部LDO的输出引脚。
- **数字电路供电:**相关引脚为VDDIO,为内部数字电路的电源输入引脚,供电范围为3V-5.5V,建议旁边放一个100nF的X7R陶瓷电容。
2.3 MCU控制引脚
- **器件使能引脚:**相关引脚为EN,内部带100KΩ下拉电阻。如下图所示,当EN从高拉低12us之后,错误状态会清除;当拉低56us之后,芯片寄存器以及内部逻辑会复位,电荷泵和输出关闭,芯片进入睡眠模式。当EN从低拉高12us之后,并且VDDIO和VS没有欠压,芯片会启动上电序列;当拉高200us之后,MCU可以通过SPI和NSD8389通信,拉高900us之后,NSD8389内部电路都开始正常工作。
- **输出使能引脚:**相关引脚为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]
的说明如下:
VREF引脚的电压可以通过外部分压电路(固定电压)或者MCU的DAC外设(可调电压)或者MCU的PWM外设加RC电路(可调电压)去设置。
3.软件驱动
3.1 SPI通信
MCU通过SPI接口读写NSD8389的寄存器,从而实现对NSD8389的配置、控制和状态读取。如下是NSD8389的SPI接口要求。
- NSD8389的SDI引脚的数据如下表。
- NSD8389的SDO引脚的数据格式如下表。
3.2 寄存器
NSD8389的寄存器总表如下:
总的来说,一共有两大类寄存器,分别为状态寄存器和控制器寄存器,下文对两类寄存器进行介绍。
3.2.1 状态寄存器
STA_0
、STA_1
、STA_2
三个状态寄存器的描述如下:
FAULT
用于指示nFAULT引脚的电平状态;SPI_ERROR
bit用于只是SPI通信是否发生错误;VSUV
、CPUV
、OC
、OPL
、UTW
、OTW
、OTSD
、STALL
等bit用于指示是否发生欠压、过流、开路、温度异常、堵转等故障;OC_OUTB2_LS
、OC_OUTB2_HS
等bit用于指示相关输出通道是否发生过流;OPL_OUTB
、OPL_OUTA
用于指示A、B通道是否发生开路。
3.2.2 控制寄存器-电机驱动相关
和电机驱动相关的配置主要在CONFIG_1
、CONFIG_2
、CONFIG_3
三个寄存器,描述如下:
-
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_DIR
、SPI_STEP
用于配置步进电机的DIR和STEP信号来源于外部引脚,还是通过SPI配置。 -
DIR
、STEP
在SPI_DIR
、SPI_STEP
都为1时,作为驱动芯片的DIR信号和STEP信号来源。 -
STEPPER_MODE[3:0]
用于配置步进电机的细分模式。
3.2.3 控制寄存器-诊断相关
CONFIG_4和CONFIG_5寄存器用于诊断相关的配置,描述如下:
-
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_9
、CONFIG_10
、CONFIG_11
、CONFIG_12
、CONFIG_13
、CONFIG_14
。
NSD8389堵转检测的原理也和NSD8381一样,这里就不赘述了。有兴趣的可以参考笔者之前的文章和NSD8389的数据手册。
- 如何使用NSD8381的堵转检测功能
3.2.4 控制器寄存器-其它
CONFIG_8
寄存器包含芯片ID,为4bit数据,可以用来识别芯片是NSD8389还是NSD8389A。
CONFIG_15
寄存器包含芯片展频设置、HOLD模式配置、电流调节过滤时间配置。
CONFIG_16
寄存器包含VS过压检测、细分相序计数高2位。
CONFIG_17
寄存器用于保存细分相序计数低8位。
CONFIG_18
寄存器用于保存芯片结温。
3.3 电流调节
NSD8389的驱动电流的调节示意图如下:
上图几个参数的说明如下:
-
ITRIP为NSD8389在每个相序需要设定的电流值。
-
tDRIVE为NSD8389驱动阶段的时间,即电流调节ON Phase的时间;其中包含的tBLANK为驱动管刚开启时的一小段时间(一般几us),这段时间会关闭电流监控,因为驱动管刚开启时会有毛刺,采集的相电流不准。
-
tOFF为NSD8389驱动关闭的时间,即电流调节OFF Phase阶段的时间。
NSD8389的tBLANK时间固定为0.5us;NSD8389A的tBLANK时间和两个寄存器的配置相关,如下表所示。
在OFF Phase阶段,选择不同的续流方式,整体电流上升、下降阶段的波形也不一样,电机噪音也不一样。
如上图所示,虽然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-16V | 9-16V | 9-16V |
驱动方式 | 2相8拍 | 2相8拍 | 2相8拍 |
额定电流 | 260mA | ≤0.5A | |
开阀脉冲 | 32±20P | 38±15P | 38±15PS |
励磁速度 | 30~100PPS | 80~200PPS | |
全开脉冲数 | 576P | 576P |
下图是某个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相-。
4.2 实际测试
本次测试使用纳芯微的NSD8389官方demo板,测试环境如下图。
-
S32DS导入NSD8389的驱动例程
S32K144_NSD8389_Demo_241120A.zip
(需要找纳芯微原厂申请)。 -
按照实际需要修改电机的步距角配置。
- 如果需要电机自动正反转,需要打开下面的函数。
- 将代码烧录进MCU底板,并打开工程目录下的freemaster文件。
- 将Freemaster工程中的elf文件替换成最新的。
- 下图为Freemaster界面中对NSD8389和电机运行的一些可配置参数。用户可以跟进自己需要进行配置并观察效果。
- 最终测得的电流波形如下图,没有出现过多的尖峰,所以失步的发生概率很低。
如果觉得本文对你有用,帮忙给个一键三连!!!