随着能源需求的日益短缺和技术的日益智能化,高精度精密控制日益成为人们生产生活的必然趋势。中科浩信顺应时代要求,推出适用于高精度工业自动化运动控制的新版本HXS320F28034PNT数字信号。处理器DSP和芯片HRCAP模块在数百皮秒内的典型分频下测量外部脉冲的宽度,可以更有效地帮助工程师实现精密3D打印、超声波声纳测距和气体检测、扫地机器人和数控机床等。测量功能。
由于平头阁半导体有限公司剑池集成开发环境(简称CDK)V2.12.1支持HXS320F28034PNT芯片调试,本期以HRCAP捕获变频PWM输出为例,介绍HRCAP脉冲捕获的原理。
HXS320F28034PNTHRCAP高精度脉冲捕捉原理如下。通过控制寄存器HCCTL[HCCAPCLKSEL]选择HRCAP时钟。 HCCAPCLK 使用系统时钟SYSCLK 或倍频时钟PLLCLK 生成16 位计数HCCOUNTER。通过校准寄存器HCCAL[HRPWMSEL] 选择HRCAP 边沿检测逻辑。运行在正常分辨率或高分辨率捕捉模式下,响应HRCAPxINTn 中断触发而执行PIE:当检测到上升沿和下降沿时,通过计数捕捉产生HCCOUNTER 值,并捕捉到16 位寄存器HCCAPCNTRISE0 和计数器复位为0 HCCAPCNTFALL0 之前,即实际低电平和高电平脉冲宽度分别为HCCAPCNTFALL0+1 和HCCAPCNTRISE0+1。当等待下一个脉冲周期的上升沿时,加载上升沿和下降沿捕获寄存器HCCAPCNTRISE1 和HCCAPCNTFALL1。通过GPIOMUX配置外设引脚捕捉功能,输出对应的PWM波。因此,在相同的时间间隔内,下降沿捕获与上升沿捕获相比,可以捕获的脉冲沿数量增加了一倍,从而使捕获分辨率增加了一倍。
由此设计了一个高分辨率脉冲捕捉的例子:HRCAP1和HRCAP2分别捕捉频率在30kHz到120kHz之间变化的PWM波的上升沿和下降沿的两组向下计数和向上计数。 HRCAP 输出引脚GPIO26 和GPIO27 通过GPIOMUX 配置。输出对应的PWM波,因此硬件连接为GPIO0-GPIO26、GPIO2-GPIO27,如下图所示。
示例中使用的软硬件开发环境如下表所示:
开发环境
开发板
模拟器
剑池集成开发环境V2.12.1
Core_DSC28034核心板
HX100V2
下载链接:
https://occ.t-head.cn/community/download?id=575997419775328256
申请地址:
http://haawking.cn/core28034
申请地址:
http://haawking.cn/DSP仿真器
基于以上分析,在CDK上开发了HRCAP捕获变频PWM输出程序。代码包括:HRCAP和EPWM外设GPIO引脚、捕获功能配置程序,HRCAP捕获两组减计数和加计数,频率在30kHz和120kHz之间变化。主程序在PWM波的上升沿和下降沿调用并执行中断服务程序。
1.intmain(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./*使能打开CPUIER第四组中断向量*/53.IER|=M_INT4;54.55./*使能打开PIEIER第四组中断向量第七、第八向量*/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(HRCap2PassCount1.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.return0;76.}
在CDK上开发HRCAP捕获变频PWM输出程序,其编译结果为:
编译通过后就可以开始调试了。调试结果如下:
调试后,HRCAP输出捕捉到的PWM周期变化波形如下:
为了证明HRCAP高精度脉冲捕获的有效性,本设计实例使用ECAP和HRCAP捕获两个在同一周期范围内向下计数且变化的PWM波进行比较。同时设置LED1闪烁,比较ECAP和HRCAP的捕获时间。效果如下:
从图中可以看出,与ECAP相比,HRCAP只需一半的脉冲捕获时间,因此可以更准确地读取同一变频PWM波的输出频率变化,使得测量更加准确。