随着能源需求的日益短缺,科技的日趋智能化,高精度精密控制已日趋成为人们生产生活的必然趋势,中科昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的新版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值,并在计数器复位为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,如下图所示。
实例所采用软硬件开发环境如下表所示:
开发环境 | 开发板 | |
剑池集成开发环境V2.12.1 | Core_DSC28034核心板 | HX100V2 |
| ||
下载地址: https://occ.t-head.cn/community/download?id=575997419775328256 | 申请地址: http://haawking.cn/core28034 | 申请地址: http://haawking.cn/DSP-EMULATOR |
基于以上分析,在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的第4组中断向量*/
53.IER|=M_INT4;
54.
55./*使能打开PIEIER的第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.else
70.{
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的捕获时间,效果如下:
从图中可以看出,HRCAP相较于ECAP脉冲捕获用时减少一半,故能更加精细地读出同等变频PWM波的输出频率变化,因而测量更加精准。
-
芯片
+关注
关注
455文章
50812浏览量
423590
发布评论请先 登录
相关推荐
评论