随着能源需求的日益短缺,科技的日趋智能化,高精度的模拟量准确采集,已日趋成为当今社会迅速发展的必然需求。昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的新版HXS320F28034PNT数字信号处理器DSP,芯片EPWM模块DC以空窗滤波功能,滤除数字比较误动作事件,更加有效助力于工程师实现高精度信号采集,广泛应用于电动车、电动汽车、轨道交通、全电飞机、新能源发电、机器人等工业自动化高精度控制领域。
平头哥半导体有限公司剑池集成开发环境(简称“CDK”)支持HX2000系列芯片调试,本期将对EPWM_DC空窗滤波功能应用展开介绍。
HX2000系列EPWM_DC信号滤波可用于DC数字比较错误联防误动作事件滤除,过流误动作期间ADC采样潜在噪声滤除。实现方法如下:
通过DCFCTL[SRCSEL]选择,滤除数字比较DCAEVT1/2或DCBEVT1/2空运行事件噪声;配置DCBCTL[EVT1SRCSEL]对数字比较事件滤波;通过DCBCTL[EVT1FRCSYNCSEL]选择同/异步采样;通过DCFCTL[PULSESEL]位配置滤波起始偏移点为CTR=0或CTR=PRD,从而在CTR=0或CTR=PRD处,偏移DCFOFFSET位置,产生长度为DCFWINDOW个TBCLK的空窗滤波信号。空窗期间,被选择滤除的数字比较事件信号被屏蔽,导致其产生的SOC信号、同步、中断与强制信号均被屏蔽,空窗结束后,数字比较事件可以产生SOC信号、同步、中断与强制信号,因而可用于DC过流误动作信号滤除,以有效滤除空窗期间ADC启动转换前潜在噪声,从而实现更精确的模拟量信号采集,与PWM限流动作触发。
由此设计EPWM_DC模拟量过流信号滤波实例:EPWM2_SOCA触发ADCINA2采样,假设输入采样电流超越阈值,则比较器COMP1输出低电平给TZ3,再将TZ1引脚置高,将TZ1,TZ3输入给DC模块:由DCAH与DCAL产生数字比较事件DCAEVT2,触发EPWM2A置高;由DCBH与DCBL信号输入,产生数字比较事件DCBEVT1,触发EPWM2B置低;在EPWM2 CTR=0处,偏移500TBCLK处,产生200TBCLK长度空窗,对EPWM2_DCAEVT1信号滤波,以滤除过流误动作信号,防止PWM限流误动作触发。
因此,硬件连接为5V-ADCINA2,GPIO1-GPIO17,3.3V-TZ1(GPIO12)如上图所示。
基于CDK V2.12.1开发,代码包括:EPWM 及TZ GPIO、COMP1 GPIO与ADC模拟量采集AIO引脚配置,ADC初始化上电,EPWM2_SOCA事件功能配置,EPWM2_DC触发动作及空窗信号滤波配置、ADC单触发源顺序采集配置、COMP1比较器比较阈值检测功能配置,ADC模拟量采集转换结果存储,DC触发EPWM动作中断程序,主程序调用执行。
1.intmain(void)2.{3. /*初始化系统控制:PLL,WatchDog,使能外设时钟*/4. InitSysCtrl();5. /*初始化GPIO,复用为EPwm功能*/6. InitEPwm2Gpio();7. /*初始化TZ故障保护模块*/8. InitTzGpio();9. /*初始化Adc*/10. InitAdc();11. /*初始化GPIO,复用为comp功能*/12. InitComp1Gpio();13. /*初始化LED配置*/14. InitLED();15. /*关中断*/16. InitPieCtrl();17. /*清中断*/18. IER=0x0000;19. IFR=0x0000;20. /*初始化PIE向量表*/21. InitPieVectTable();22. EALLOW;23. /*执行带有空窗的DC事件触发EPWM2A,DC事件触发EPWM2B*/24. PieVectTable.EPWM2_TZINT=&epwm2_tz_isr;25. /*将adc_isr入口地址赋给ADCINT3,执行ADC采样*/26. PieVectTable.ADCINT3=&adc_isr;27. EDIS;28. EALLOW;29. /*每个启用的ePWM模块中的TBCLK(时基时钟)均已停止。*/30. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;31. EDIS;32. /*初始化EPWM2*/33. InitEpwm2_Example();34. EALLOW;35. /*所有使能的ePWM模块同步使用TBCLK*/36. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;37. EDIS;38. /*初始化ADC*/39. ADC_Init();40. /*初始化comp1*/41. InitComp1();42. /*使能相对应的中断*/43. IER|=M_INT2|M_INT10;44. PieCtrlRegs.PIEIER2.bit.INTx2=1;45. PieCtrlRegs.PIEIER10.bit.INTx3=1;46. EINT;47. while(1)48. {}49. return0;50.}
CDK上开发信号滤波实例程序,编译结果为:
编译通过后,就可以开始调试了,调试后DC触发前后的EPWM输出如下:
-
芯片
+关注
关注
455文章
50812浏览量
423590
发布评论请先 登录
相关推荐
评论