随着能源需求的日益短缺,科技的日趋智能化,高精度的模拟量准确采集,已日趋成为当今社会迅速发展的必然需求。昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的新版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.int main(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. return 0;50.}
cdk上开发信号滤波实例程序,编译结果为:
编译通过后,就可以开始调试了,调试后dc触发前后的epwm输出如下:
苹果iPad Mini5曝光或将于3月发布 配置及售价有惊喜
微软Windows MR头显迎来跳价 降幅超过50%
2022年度智能制造试点示范行动的通知
如何实现宏观叠加态?
套路:红米Note4X初音版官方一机难求,二手加价现货
芯教程|平头哥助力昊芯HX2000系列芯片EPWM_DC空窗滤波功能应用
触摸延时开关原理
医用口罩对应的测试设备都有哪些?
小米米家的智能门锁指纹识别功能足够安全吗
应尽快明确大数据“杀熟”的判断标准
C语言设计学习,教你如何将LCD菜单对象化
rainysky陪你一起在zedboard上移植qt+opencv(二)
报告:75%消费者希望用电视完成购物
超逼真的星战机器人,了解下
集成功率无源器件和战术权衡以提高功率效率:电源管理和开关电源
单核暴涨40%,英特尔15代Core要用台积电3nm制程
五角大楼试图建立人工智能无人机群 能够独立识别和跟踪目标
可穿戴设备中都有哪些传感器
关于如何提高FPGA嵌入式处理器的系统除错率
模数转换器ADS41B25的特点性能及作用分析