如何添加网站,合肥建站平台,济南网站优化排名,wordpress自带数据库优化文章目录 1. 前言2. 问题描述3. 理论分析3.1 NSD8381如何连接电机3.2 S32K144和NSD8381的软件配置 4.测试验证4.1 测试环境4.2 测试效果4.3 测试记录 1. 前言
最近有客户在使用S32K144NSD8381驱动电子膨胀阀时#xff0c;遇到无法正常驱动电子膨胀阀的情况。因为笔者也是刚开… 文章目录 1. 前言2. 问题描述3. 理论分析3.1 NSD8381如何连接电机3.2 S32K144和NSD8381的软件配置 4.测试验证4.1 测试环境4.2 测试效果4.3 测试记录 1. 前言
最近有客户在使用S32K144NSD8381驱动电子膨胀阀时遇到无法正常驱动电子膨胀阀的情况。因为笔者也是刚开始使用NSD8381无法线上支持这类实际应用问题所以让客户提供了一个电子阀自己搭建环境进行测试。
2. 问题描述
客户电子膨胀阀的阀针安装位置比较隐蔽需要通过注水观察水的流动情况判断阀门是否打开关闭。之前也给客户提供了NSD8381的驱动代码以及相关的文档说明如下所示
基于S32K144驱动NSD8381
但是客户反馈按照文档的步骤配置NSD8381之后无论给CTRL1引脚发送多少脉冲阀门始终无法关闭即注水都会流出。
3. 理论分析
关于S32K144NSD8381无法驱动电机的场景主要有两种可能一个是NSD8381的寄存器配置有误或者NSD8381和电机的接线有问题。
针对NSD8381配置有误的可能性客户有测试更改过NSD8381的步进电机模式1/16细分改为1/2运行电流576mA更改1.3A等参数现象仍然一致并且读了SPI的返回值最高字节为0x80说明寄存器配置有正确写入。
针对NSD8381和电机的连线发现和NSD8381的时序不一致详细情况如下描述。
3.1 NSD8381如何连接电机
客户的电子膨胀阀的运行时序如下左图当前的NSD8381的输出引脚和电机的连线如下有图。 从横轴看左上图1到8为阀门关闭的相序8到1为阀门打开的相序从纵轴看左上图1234分别为电机四根引线的输入电平要求右上图显示NSD8381和电机的连线情况为OUTA1、OUTA2连接电机的1、3号引线OUTB1、OUTB2连接电机的2、4号引线。
按照上图的连线方式对应的NSD8381输出引脚需要的相序如下表格最右列。 翻看NSD8381数据手册1/2微步模式下的芯片的相序如下 为了让电机相序和NSD8381的相序一致需要NSD8381和电机的接线方式修改修改后的接线方式为
OUTB1、OUTB2连接电机的1、3号引线OUTA1、OUTA2连接电机的2、4号引线
按如上描述修改接线方式后对应的NSD8381输出引脚需要的相序如下表格 另外客户提供的电机参数表中和驱动电路相关的参数如下红框所示 对应的驱动NSD8381配置为
供电电压为12系统1/2微步模式下CTRL1引脚的PWM频率在80-200Hz1/2微步模式下阀门从完全关闭到完全打开的PWM脉冲数为576从完全关闭到打开阀门需要38±15个PWM脉冲。
针对这些需求需要基于前文《基于S32K144驱动NSD8381》分享的代码做一些修改。详细情况如下描述。
3.2 S32K144和NSD8381的软件配置
因为需要计算PWM的脉冲数所以需要增加PWM计数功能。代码修改如下。
增加FTM2通道5的中断使能 FTM_DRV_EnableInterrupts(INST_FLEXTIMER_PWM1, FTM_CHANNEL5_INT_ENABLE);增加对应的中断处理函数在里面增加PWM计数功能
volatile uint16_t PWM_Count 0;void FTM2_Ch4_Ch5_IRQHandler(void)
{PWM_Count;FTM_DRV_ClearStatusFlags(INST_FLEXTIMER_PWM1,FTM_CHANNEL5_FLAG);
}需要将PWM的频率修改为200Hz修改下图形化配置即可。 NSD8381的初始化函数中需要修改步进电机模式为1/2微步修改如下红框即对CONFIG3寄存器赋值0x9B00。 在while(1)循环中增加如下功能 增加PWM计数处理逻辑以及和PH[5:0]寄存器值的获取用于判断NSD8381是否处于1/2微步模式以及达到预定的PWM脉冲后停止CTRL1引脚的脉冲输入。 增加按键按下处理逻辑按下SW2将CTRL2引脚拉低DIR为0输入PWM波到CTRL1引脚按下SW3将CTRL2引脚拉高DIR为1输入PWM波到CTRL1引脚。 如果希望电机整体功耗降低可以增加Hold模式当电机停止转动开启Hold模式此时消耗的电流远远小于RUN模式的电流。
对应的代码如下 while(1){Phase_Count NSD8381drv_GetPH();/* 励磁速度80-200pps每秒钟的脉冲数* 开阀脉冲数38±15PS全开脉冲576* *//* 测试步进电机模式是否正确配置1/2微步的时候PWM计数4PH[5:0]计数0b100000即32*/if(PWM_Count 4){printf(PWM Count is %d\r\n, PWM_Count);printf(Phase Count is %d\r\n, Phase_Count);}if(PWM_Count 576){NSD8381drv_HOLDM_En(ENABLE);FTM_DRV_DeinitPwm(INST_FLEXTIMER_PWM1);printf(PWM Count is %d\r\n, PWM_Count);printf(Phase Count is %d\r\n, Phase_Count);PWM_Count 0;}/* SW2 press */if(SW2_Press_Flag){SW2_Press_Flag false;printf(SW2 press!\r\n);/* Increment phase counter, clockwise */NSD8381drv_CTRL2_Dir(clockwise);/* Hold mode - Run mode */NSD8381drv_HOLDM_En(DISABLE);/* FTM2 CH5 use PWM mode,freq:200Hz */FTM_DRV_InitPwm(INST_FLEXTIMER_PWM1, flexTimer_pwm1_PwmConfig);}/* SW3 press */if(SW3_Press_Flag){SW3_Press_Flag 0;printf(SW3 press!\r\n);/* decrement phase counter, counter-clockwise */NSD8381drv_CTRL2_Dir(counter_clockwise);/* Hold mode - Run mode */NSD8381drv_HOLDM_En(DISABLE);/* FTM2 CH5 use PWM mode,freq:200Hz */FTM_DRV_InitPwm(INST_FLEXTIMER_PWM1, flexTimer_pwm1_PwmConfig);}}关于其中几个函数的实现如下所示
/* read phase counter */
uint32_t NSD8381drv_GetPH(void)
{uint32_t Rsult;CONFIG3Reg[0] (uint8_t)(0x85U);Parity_check(CONFIG3Reg);SPI_Send(CONFIG3Reg, StatReg_Result);StatReg_Result[2] 0x7F;Result (uint32_t)(StatReg_Result[2] 1);return Result;
}/*set NSD8381 CONFIG_3 HOLD_EN bits*/
void NSD8381drv_HOLDM_En(FunctionalState_TypeDef EN)
{if(ENENABLE){CONFIG3Reg[1]|NSD8381_HOLDM; //0x40}else{CONFIG3Reg[1](uint8_t)(~NSD8381_HOLDM);}CONFIG3Reg[0] (uint8_t)(0x05U);CONFIG3Reg[2](uint8_t)(0xFE);Parity_check(CONFIG3Reg);SPI_Send(CONFIG3Reg, CtrlReg_Result);
}/* set NSD8381 CTRL2 pin level when used for dir status* 0: Increment phase counter, clockwise* 1: decrement phase counter, counter-clockwise* */
void NSD8381drv_CTRL2_Dir(DirStatus_TypeDef EN)
{PINS_DRV_WritePin(NSD8381_CTRL2_PORT, NSD8381_CTRL2_PIN, EN);
}4.测试验证
4.1 测试环境
整个测试的环境如下图 4.2 测试效果
实际的测试效果如下视频
当按下SW2时阀门完全关闭此时注入水不会流出接着按下SW3阀门完全打开注入水会加速流出。 NSD8381驱动电子膨胀阀 4.3 测试记录
实际测试时串口打印的数据如下图
第一个操作的寄存器的高8bit返回值为0x40因为有reset事件如果第一个操作的寄存器高8bit返回值为0x00可能是NSD8381还没初始化完成建议在EN引脚拉高后延迟200us再发送SPI命令给NSD8381。当PWM计数为4时对应的PH[5:0]为0x32即0b100000和相序表一致说明处于1/2微步模式。使用250Hz的PWM波也可以正常驱动该电磁阀说明该电机兼容性比参数表更好。使用HOLD模式时的电流远小于RUN模式有助于降低NSD8381的功耗。
文章转载自: http://www.morning.lqznq.cn.gov.cn.lqznq.cn http://www.morning.frsbf.cn.gov.cn.frsbf.cn http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn http://www.morning.kntbk.cn.gov.cn.kntbk.cn http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn http://www.morning.ebpz.cn.gov.cn.ebpz.cn http://www.morning.qnrpj.cn.gov.cn.qnrpj.cn http://www.morning.zwgbz.cn.gov.cn.zwgbz.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.bqyb.cn.gov.cn.bqyb.cn http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn http://www.morning.fwdln.cn.gov.cn.fwdln.cn http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn http://www.morning.ttdxn.cn.gov.cn.ttdxn.cn http://www.morning.gpsr.cn.gov.cn.gpsr.cn http://www.morning.pngfx.cn.gov.cn.pngfx.cn http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.jsljr.cn.gov.cn.jsljr.cn http://www.morning.rbgwj.cn.gov.cn.rbgwj.cn http://www.morning.pmsl.cn.gov.cn.pmsl.cn http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn http://www.morning.ylph.cn.gov.cn.ylph.cn http://www.morning.sfgzx.cn.gov.cn.sfgzx.cn http://www.morning.myrmm.cn.gov.cn.myrmm.cn http://www.morning.zthln.cn.gov.cn.zthln.cn http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn http://www.morning.tztgq.cn.gov.cn.tztgq.cn http://www.morning.zymgs.cn.gov.cn.zymgs.cn http://www.morning.lqzhj.cn.gov.cn.lqzhj.cn http://www.morning.rfqk.cn.gov.cn.rfqk.cn http://www.morning.rwqj.cn.gov.cn.rwqj.cn http://www.morning.alwpc.cn.gov.cn.alwpc.cn http://www.morning.lftpl.cn.gov.cn.lftpl.cn http://www.morning.rryny.cn.gov.cn.rryny.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.jwefry.cn.gov.cn.jwefry.cn http://www.morning.rtryr.cn.gov.cn.rtryr.cn http://www.morning.lxdbn.cn.gov.cn.lxdbn.cn http://www.morning.ptzf.cn.gov.cn.ptzf.cn http://www.morning.frcxx.cn.gov.cn.frcxx.cn http://www.morning.smhtg.cn.gov.cn.smhtg.cn http://www.morning.txnqh.cn.gov.cn.txnqh.cn http://www.morning.alwpc.cn.gov.cn.alwpc.cn http://www.morning.smpb.cn.gov.cn.smpb.cn http://www.morning.cfmrb.cn.gov.cn.cfmrb.cn http://www.morning.rqqmd.cn.gov.cn.rqqmd.cn http://www.morning.jjsxh.cn.gov.cn.jjsxh.cn http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn http://www.morning.yjdql.cn.gov.cn.yjdql.cn http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn http://www.morning.rszt.cn.gov.cn.rszt.cn http://www.morning.grqlc.cn.gov.cn.grqlc.cn http://www.morning.rcmcw.cn.gov.cn.rcmcw.cn http://www.morning.gwsfq.cn.gov.cn.gwsfq.cn http://www.morning.bsgfl.cn.gov.cn.bsgfl.cn http://www.morning.wctqc.cn.gov.cn.wctqc.cn http://www.morning.rmyqj.cn.gov.cn.rmyqj.cn http://www.morning.wdply.cn.gov.cn.wdply.cn http://www.morning.gwdnl.cn.gov.cn.gwdnl.cn http://www.morning.xwlmg.cn.gov.cn.xwlmg.cn http://www.morning.lkthj.cn.gov.cn.lkthj.cn http://www.morning.jxtbr.cn.gov.cn.jxtbr.cn http://www.morning.mrckk.cn.gov.cn.mrckk.cn http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn http://www.morning.tmlhh.cn.gov.cn.tmlhh.cn http://www.morning.sqdjn.cn.gov.cn.sqdjn.cn http://www.morning.mwnch.cn.gov.cn.mwnch.cn http://www.morning.lkmks.cn.gov.cn.lkmks.cn http://www.morning.nyqzz.cn.gov.cn.nyqzz.cn http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn http://www.morning.gcxfh.cn.gov.cn.gcxfh.cn http://www.morning.bsgfl.cn.gov.cn.bsgfl.cn http://www.morning.nkpml.cn.gov.cn.nkpml.cn http://www.morning.tfqfm.cn.gov.cn.tfqfm.cn http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn http://www.morning.tgmfg.cn.gov.cn.tgmfg.cn http://www.morning.qwmsq.cn.gov.cn.qwmsq.cn http://www.morning.mnlk.cn.gov.cn.mnlk.cn