随着能源需求的日益短缺,科技的日趋智能化,高精度精密控制已日趋成为人们生产生活的必然趋势,中科昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的新版HXS320F28034PNT数字信号处理器DSP,芯片HRCAP模块以数百皮秒内的典型分频率测量外部脉冲的宽度,可更有效助力于工程师实现3D精密打印、超声波声纳测距与气体检测、扫地机器人与数控机床等精密测量功能。
自平头哥半导体有限公司的剑池集成开发环境(简称“CDK”)V2.12.1支持HXS320F28034PNT芯片调试以来,本期以HRCAP捕获变频PWM输出实例对HRCAP脉冲捕获原理展开介绍。
HXS320F28034PNT HRCAP高精度脉冲捕获原理如下,通过控制寄存器HCCTL[HCCAPCLKSEL]选择HRCAP时钟,HCCAPCLK以系统时钟SYSCLK或倍频时钟PLLCLK产生16位计数HCCOUNTER,通过校准寄存器HCCAL[HRPWMSEL]选择HRCAP边沿探测逻辑,运行于正常分辨率或高分辨率捕获模式,通过HRCAPxINTn中断触发响应PIE执行:当检测到上升沿与下降沿时,通过计数捕获产生HCCOUNTER值,并在计数器复位为0之前被捕获到16位寄存器HCCAPCNTRISE0与HCCAPCNTFALL0,即实际低电平和高电平脉冲宽度分别为HCCAPCNTFALL0+1和HCCAPCNTRISE0+1,等待下一脉冲周期上升沿时载入上升沿与下降沿捕获寄存器HCCAPCNTRISE1与HCCAPCNTFALL1。通过GPIOMUX配置外设引脚捕获功能,从而输出相应的PWM波。因此在同一时间间隔内,下降沿捕获相比上升沿捕获,可捕获到的脉冲边沿计数增加一倍,使得捕获分辨率提高一倍。

由此设计高分辨率脉冲捕获实例:HRCAP1与HRCAP2分别捕获两组向下计数与向上计数,频率在30kHz~120kHz间变化的PWM波上升沿与下降沿,通过GPIOMUX配置HRCAP输出引脚GPIO26与GPIO27上输出相应的PWM波,故硬件连接为GPIO0-GPIO26、GPIO2-GPIO27,如下图所示。

实例所采用软硬件开发环境如下表所示:

基于以上分析,在CDK上开发HRCAP捕获变频PWM输出程序,代码包括:HRCAP与EPWM外设GPIO引脚、捕获功能配置程序,HRCAP捕获两组向下计数与向上计数,频率在30kHz~120kHz间变化的PWM波上升沿与下降沿的中断服务程序,主程序调用执行。
1.int main(void)2.{3. /*系统时钟初始化*/4. InitSysCtrl();5.6. /*LED初始化*/7. InitLED();8.9. /*HRCAP与EPWM的GPIO引脚定义*/10. InitHRCapGpio();11. InitEPwm1Gpio();12. InitEPwm2Gpio();13.14. /*关中断*/15. IER=0x0000;16. IFR=0x0000;17.18. /*打开中断向量表*/19. InitPieVectTable();20.21. EALLOW;22. /*中断向量表HRCAP1_INT与HRCAP2_INT指向执行相应的脉冲捕获中断服务程序*/23. PieVectTable.HRCAP1_INT=&HRCAP1_Isr;24. PieVectTable.HRCAP2_INT=&HRCAP2_Isr;25. EDIS;26.27. /*HRCAP1上升沿捕获与HRCAP2下降沿捕获功能配置*/28. HRCAP1_Config();29. HRCAP2_Config();30.31. EALLOW;32. /*禁止EPWM的时基使能,允许EPWM初始化配置写入*/33. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;34. EDIS;35.36. /*EPWM的初始化配置:PWM1采用向下计数,PWM2采用向上计数*/37. ePWM1_Config(1000);38. ePWM2_Config(1000);39.40. EALLOW;41. /*打开EPWM的时基使能,使EPWM的初始化配置起作用*/42. SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;43. EDIS;44.45. /*指令周期延迟决策变量定义,用于完成捕获EPWM波*/46. first,rise=0;47.48. /*捕获时间测定判断变量定义*/49. HRCap1IntCount,HRCap1PassCount=0;50. HRCap2IntCount,HRCap2PassCount=0;51.52. /*使能打开CPU IER的第4组中断向量*/53. IER|=M_INT4;54.55. /*使能打开PIE IER的第4组中断向量的第七、八个向量*/56. PieCtrlRegs.PIEIER4.bit.INTx7=1;57. PieCtrlRegs.PIEIER4.bit.INTx8=1;58.59. /*使能打开全局中断*/60. EINT;61. while(1)62. {63. /*判断HRCap2与HRCap1的捕获时间*/64. if(HRCap2PassCount>1.25*HRCap1PassCount)65. {66. GpioDataRegs.GPBTOGGLE.bit.GPIO44=1;67. DELAY_US(1000000);68. }69. else70. {71. GpioDataRegs.GPBSET.bit.GPIO44=1;72. DELAY_US(1000000);73. }74. }75. return 0;76.}
CDK上开发HRCAP捕获变频PWM输出程序,其编译结果为:

编译通过后,就可以开始调试了,其调试结果如下:

调试后,HRCAP输出捕获的PWM周期变化波形如下:

为证明HRCAP的高精度脉冲捕获有效性,本设计实例采用ECAP与HRCAP捕获两路向下计数、同等周期范围变化的PWM波进行对比,同时通过设置LED1闪灯来对比ECAP与HRCAP的捕获时间,效果如下:

从图中可以看出,HRCAP相较于ECAP脉冲捕获用时减少一半,故能更加精细地读出同等变频PWM波的输出频率变化,因而测量更加精准。
全部0条评论
快来发表一下你的评论吧 !