TI DSP TMS320F280025 Note9.10:EPWM:高分辨率脉宽调制器HRPWM

TMS320F280025 EPWM:高分辨率脉宽调制器HRPWM


`


HRPWM模块框图如图17-78所示。该模块扩展了传统衍生数字脉宽调制器(PWM)的时间分辨率能力。当PWM分辨率低于大约9-10位时,通常使用HRPWM。HRPWM的主要特点是:
•扩展的时间分辨率能力
•用于占空比和相移控制方法
•使用扩展到比较A,比较B和相位寄存器更精细的时间粒度控制或边缘定位
•实现使用PWM的A和B信号路径,即:在EPWMxA和EPWMxB输出上启用高分辨率控制,用于半周期时钟操作中的下降沿和上升沿延迟。自查诊断软件模式,用于检查微边缘定位器(MEP)逻辑是否按照设计运行。在EPWMxA和EPWMxB输出上启用高分辨率输出交换。通过对EPWMxA信号输出进行反转,在EPWMxB信号输出上启用高分辨率输出。对带ePWM模块的设备的EPWMxA和EPWMxB输出进行占空和相位控制
请参阅设备数据表,以确定您的设备是否具有具有高分辨率周期支持的ePWM模块
在这里插入图片描述

PWM外设用于执行数学上等同于数模转换器(DAC)的功能。如图17-79所示,传统方式产生的PWM的有效分辨率是PWM频率(或周期)与系统时钟频率的函数。
在这里插入图片描述

如果所需的PWM工作频率在PWM模式下不能提供足够的分辨率,请考虑使用HRPWM。作为HRPWM提高性能的一个例子,表17-15显示了不同PWM频率下的分辨率(以位为单位)。这些值假设MEP步长为180ps。有关MEP的典型和最高性能规格,请参见设备数据表。
在这里插入图片描述

尽管每个应用可能有所不同,但典型的低频PWM操作(低于250kHz)不需要HRPWM。HRPWM能力对于功率转换拓扑的高频PWM要求最有用,例如:
•单相降压,升压和反激
•多相降压,升压和反激
•相移全桥
•d级功率放大器的直接调制

HRPWM功能描述

HRPWM基于微边缘定位器(MEP)技术。MEP逻辑能够通过细分传统PWM发生器的一个粗系统时钟来非常精细地定位边缘。时间步长精度在150ps左右。请参阅设备数据表,了解特定设备上典型的MEP步长。HRPWM还具有自检软件诊断模式,以检查MEP逻辑是否在所有操作条件下按设计运行。软件诊断和功能的详细信息请参见17.15.1.7节。
图17-80显示了一个粗系统时钟和边缘位置在MEP步长方面的关系,这是由比较A扩展寄存器(CMPAHR)中的8位字段控制的。同样的操作逻辑也适用于CMPBHR。
要生成HRPWM波形,配置ePWM寄存器以生成给定频率和极性的传统PWM。HRPWM与ePWM寄存器一起工作以扩展边缘分辨率。
虽然许多编程组合是可能的,但只有少数是需要的和实用的。这些方法将在17.15.1.8节中描述。
在这里插入图片描述

控制HRPWM能力

HRPWM的MEP由6个扩展寄存器控制。这些HRPWM寄存器与16位TBPHS、TBPRD、CMPA、CMPBM、DBREDM和DBFEDM寄存器连接,用于控制PWM操作。
•CMPAHR—计数器比较高分辨率寄存器;CMPAHR用于通道A的AQ输出,与CMPA
•TBPRDHR -时间基期高分辨率寄存器无关。CMPBHR -计数器比较B高分辨率寄存器;CMPBHR用于通道B的AQ输出,与CMPB
•DBREDHR -死带发生器上升沿延迟高分辨率寄存器无关
•DBFEDHR -死带发生器下降沿延迟高分辨率寄存器
在这里插入图片描述

死带上升沿延迟和下降沿延迟的HRPWM功能仅适用于死带半周期时钟操作。由于同样的原因,MEP的步长数量是duty和phase高分辨率寄存器的一半[bits 15:9]
HRPWM功能使用通道A和B PWM信号路径进行控制。通过正确配置HRCNFG2寄存器,可以获得死带信号路径上的HRPWM支持。图17-82显示了HRPWM与8位扩展寄存器的接口。
在这里插入图片描述

HRPWM源时钟

每个HRPWM模块由各自的EPWMxCLK进行时钟处理。HRCAL有一个单独的时钟。例如,HRPWM1来自EPWM1CLK,而HRPWM2则来自EPWM2CLK。HRCAL和HRPWM模块分别来自各自的ePWM时钟源,如图17-83所示。
在这里插入图片描述

配置HRPWM

一旦ePWM被配置为提供给定频率和极性的传统PWM, HRPWM通过在特定ePWM模块的寄存器空间中编程HRCNFG寄存器来配置。
该寄存器提供以下配置选项:
边缘模式可以对MEP进行编程,以同时对上升沿(RE),下降沿(FE)或两个边缘(be)提供精确的位置控制。FE和RE用于需要占空比控制的功率拓扑(CMPA或CMPB高分辨率控制),而BE用于需要移相的拓扑,例如移相全桥(TBPHS或TBPRD高分辨率控制)。
控制方式MEP被编程为从CMPAHR/CMPBHR寄存器(占空比控制)或TBPHSHR寄存器(相位控制)进行控制。RE或FE控制模式可以与CMPAHR或CMPBHR寄存器一起使用。BE控制模式可以与TBPHSHR寄存器一起使用。当从TBPRDHR寄存器(周期控制)控制MEP时,也可以使用各自的高分辨率寄存器控制占空比和相位。
阴影模式此模式提供与常规PWM模式相同的阴影(双缓冲)选项。
此选项仅在从CMPAHR、CMPBHR和TBPRDHR寄存器操作时有效,并且可以选择与CMPA/CMPB寄存器的常规加载选项相同。如果使用TBPHSHR,则此选项不起作用。
高分辨率B信号控制ePWM通道的B信号路径通过在ePWMxB引脚上输出高分辨率ePWMxA信号的倒转版本来产生高分辨率输出。Type 2或Type 4 HRPWM模块也可以独立于A信号路径在B信号路径上实现高分辨率功能。
ePWMxA和ePWMxB输出互换该模式支持高分辨率A、B输出互换。模式选择允许A和B输出不变或A输出在B上输出,B输出在A上输出。
自动转换模式此模式仅与比例因子优化(SFO)软件一起使用。对于4型HRPWM模块,下面以CMPAHR为例介绍自动转换模式。如果启用了自动转换,则CMPAHR = fraction(PWMduty*PWMperiod)<<8。
比例因子优化软件在后台代码中计算MEP比例因子,并根据计算出的每粗步MEP步数自动更新hrrmstep寄存器。然后,MEP校准模块使用hrrmstep和CMPAHR寄存器中的值自动计算由分数占空比表示的MEP步长的适当数量,并相应地移动高分辨率ePWM信号边缘。如果自动转换被禁用,CMPAHR寄存器的行为就像一个0型HRPWM模块,CMPAHR =(分数(PWMduty * PWMperiod) * MEP比例因子+ 0.5)<<8)。所有的计算都需要在这种模式下由代码执行,并且忽略hrrmstep寄存器。
高分辨率周期的自动转换与高分辨率占空比的自动转换具有相同的行为。高分辨率周期模式必须始终启用自动转换。

如果HRPWM模块配置为UP-DOWN计数器模式,则HRPWM寄存器的阴影模式必须设置为ZERO和PERIOD加载。来自用户的新值仅在CTR=ZERO时加载到影子寄存器,但是寄存器的影子模式必须设置为ZERO和PERIOD。CTR=PRD事件用于HRPWM模块内的特定内部逻辑。
自动转换模式计算CMPBHR、DBREDHR和DBFEDHR。比例因子优化软件在后台代码中计算MEP比例因子,并根据计算出的每粗步MEP步数自动更新hrrmstep寄存器。然后,MEP校准模块使用hrrmstep和CMPBHR或DBREDHR/DBFEDHR寄存器中的值自动计算分数分量表示的MEP步长,并相应地移动高分辨率ePWM信号边缘。如果自动转换被禁用,CMPBHR的行为与CMPAHR相同。CMPBHR
=(分数(PWMduty * PWMperiod) * MEP比例因子+ 0.5)<<8)。 当应用程序需要访问ePWM1和HRPWM中的任何一个模块时,您应该禁用对这两个模块的保护

在死带上升沿和下降沿延迟中配置高分辨率

一旦ePWM配置为在半周期时钟模式下提供给定频率、极性和死带的传统PWM,就可以通过在特定ePWM模块寄存器空间中编程HRCNFG2寄存器来实现死带RED和FED线上的高分辨率操作。该寄存器提供以下配置选项:
边缘模式可以对MEP进行编程,以同时对死区上升沿(RED),死区下降沿(FED)或两个边缘(DBRED信号的上升沿和DBFED信号的下降沿)提供精确的位置控制。
控制模式选择在高分辨率模式下为DBRED和DBFED在活动寄存器中加载阴影值的时间事件。选择脉冲以匹配ePWM DBCTL[LOADREDMODE]和DBCTL[LOADFEDMODE]位中的选择。

工作原理

MEP逻辑能够在255(8位)离散时间步长之一中放置边缘(参见设备数据表中典型的MEP步长)。MEP与TBM和CCM寄存器一起工作,以确保应用时间步长,并且在宽范围的PWM频率,系统时钟频率和其他操作条件下保持边缘放置精度。HRPWM支持的典型工作频率范围如表17-16所示。
在这里插入图片描述

边缘定位

下面的示例使用[CMPA:CMPAHR]寄存器组合。如果打算使用[CMPBM:CMPBHRM]进行占空比控制,其操作理论和方程是相同的。

在典型的功率控制回路中,数字控制器发出工作命令,通常以单位或百分比表示。假设对于特定工作点,所需占空比为0.405或准时40.5%,所需变换器PWM频率为1.25MHz。在传统的系统时钟为100MHz的PWM产生中,占空比的选择在40.5%附近。如图17-84所示,32 count (duty = 40%)是最接近40.5%的比较值。这相当于边缘位置为320ns而不是期望的324ns。数据如表17-17所示。
通过利用MEP,可以实现更接近所需点324ns的边缘位置。表17-17显示,除了CMPA值外,MEP (CMPAHR寄存器)的22步将边缘定位在323.96ns,导致几乎为零的误差。在本例中,假设MEP的步进分辨率为180ps。
在这里插入图片描述

在这里插入图片描述

扩展的考虑

如何及时精确地定位边缘的机制已经使用标准CMPA和MEP (CMPAHR)寄存器的资源进行了演示。然而,在实际应用中,有必要无缝地为CPU提供从单位(分数)占空比到最终整数(非分数)表示的映射函数,该表示被写入[CMPA:CMPAHR]寄存器组合。
为此,首先检查所涉及的缩放或映射步骤。在控制软件中,以单位或百分比表示占空比是很常见的。这样做的优点是可以执行所有需要的数学计算,而不需要考虑最终的绝对占空比(以时钟计数或以纳秒(ns)表示的高时间)。
此外,它使代码在运行不同PWM频率的多种转换器类型之间更具可移植性。
为了实现映射方案,需要两个步骤的缩放过程。
本例假设:TBCLK = 10ns (100MHz) PWM频率= 1.25MHz (1/800ns)所需的PWM占空比,PWMDuty = 0.405(40.5%)粗步PWM周期,PWMPeriod (800ns/10ns) = 80每粗步在180ps (10ns/180ps)时MEP步数,MEP_ScaleFactor = 55值以保持CMPAHR在1-255范围内,小数舍入常数(默认值)= 0.5 (Q8格式中的0080h)CMPA寄存器的空值转换CMPA寄存器值= int(PWMDutyPWMPeriod);int表示整数部分= int(0.405 * 80) = int(32.4) CMPA寄存器值= 32 (20h)步骤2:CMPAHR寄存器的分数值转换CMPAHR = (frac(PWMDutyPWMPeriod)*MEP_ScaleFactor + 0.5) <<8);Frac表示小数部分= (Frac (32.4) * 55 + 0.5) <<8;移位是将值移动到CMPAHR的高字节。
= (0.4 * 55 + 0.5) < < 8 = (22 + 0.5) < < 8 = 22.5 * 256;左移8等于乘以256。
= 5760 (1680h) CMPAHR = 1680h CMPAHR值= 1600h(低8位被硬件忽略)。
在这里插入图片描述

如果设置了AUTOCONV位(HRCNFG.6)并且MEP_ScaleFactor在hrrmstep寄存器中,则CMPAHR /
CMPBHR寄存器值= frac
(PWMDuty*PWMperiod<<8)。其余的转换计算在硬件中自动执行,正确的mep缩放信号边缘出现在ePWM通道输出上。如果未设置AUTOCONV,则必须通过软件执行上述计算。
MEP比例因子(MEP_ScaleFactor)随系统时钟和DSP工作条件的不同而变化。
TI提供了一个MEP比例因子优化(SFO)软件C函数,它在每个HRPWM中使用内置诊断,并返回给定工作点的最佳比例因子。
比例因子在有限范围内变化缓慢,因此优化C函数可以在后台循环中非常缓慢地运行。
在内存中配置CMPA、CMPB、CMPAHR和CMPBHR寄存器,使CPU的32位数据能力可以将此写入单个连接值,即[CMPA:CMPAHR]、[CMPB:CMPBHR],等等。
映射方案已经在C语言和汇编语言中实现,如17.15.1.8节所示。
实际实现利用32位CPU体系结构,与第17.15.1.5.2节中显示的步骤有些不同。
对于每个周期都重要的时间关键控制回路,建议使用汇编版本。这是一个周期优化函数(11个EPWMCLK周期),它将Q15占空值作为输入,并写入单个[CMPA:CMPAHR]值。

占空比范围限制

在高分辨率模式下,MEP在PWM周期的100%内不活动,并开始工作:•当高分辨率周期(TBPRDHR)控制未启用时,周期开始后三个EPWMCLK周期。
•当使用HRPCTL寄存器使能高分辨率周期(TBPRDHR)控制时:
—在up-count模式下:周期开始后三个EPWMCLK周期,直到周期结束前三个EPWMCLK周期。
—上下计数模式:向上计数时,CTR = 0后3个周期,直到CTR = PRD前3个周期;向下计数时,CTR = PRD后3个周期,直到CTR = 0前3个周期。
•使用DBREDHR或DBFEDHR时,DBRED或DBFED(高分辨率位移边缘对应的寄存器)必须大于或等于7。
占空比范围限制如图17-85 ~图17-88所示。这个限制对MEP施加了一个占空比限制。例如,精确的边缘控制是不可用的一路下降到0%占空比。
当高分辨率周期控制被禁用时,尽管HRPWM特性在前三个周期不可用,但常规PWM占空比控制完全可运行至0%占空比。在大多数应用中,这不会是一个问题,因为控制器调节点通常不被设计为接近0%占空比。为了更好地理解可使用的占空比范围,请参见表17-18。当高分辨率周期控制使能(HRPCTL[HRPE]=1)时,占空比必须不落在限制范围内;否则,ePWMxA输出可能出现未定义的行为。在这里插入图片描述

在这里插入图片描述

如果应用程序要求HRPWM低于最小占空比限制,则可以将HRPWM配置为在高分辨率周期关闭(HRPCTL[HRPE] = 0)时,以倒计时模式工作,上升沿位置(REP)由MEP控制,如图17-86所示。在这种配置中,最小占空比限制不再是问题。但是,最大关税限制与表17-18中给出的百分比数相同。
如果应用程序启用了高分辨率周期控制(HRPCTL[HRPE]=1),则占空比必须不落在限制范围内;否则,ePWM输出可能会出现未定义的行为。在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

高分辨率的时期

使用MEP逻辑的高分辨率周期控制在具有1型ePWM模块或更高版本的设备上得到支持。

当高分辨率周期控制使能时,只在ePWMxA输出,而不在ePWMxB输出,反之,非高分辨率输出在up-count模式下有±1
TBCLK周期抖动,在up-down count模式下有±2 TBCLK周期抖动。

17.15.1.5.2节中描述的占空比的缩放过程也适用于高分辨率周期:本例的假设:TBCLK = 10ns (100MHz)所需PWM频率= 175kHz(周期为571.428)每粗步在180ps (10ns/ 180ps)时的MEP步数,(MEP_ScaleFactor) = 55值以保持TBPRDHR在1-255范围内,小数舍入常数(默认值)= 0.5 (0080h在Q8格式)问题:在上计数模式下:•如果TBPRD = 571,则PWM频率= 174.82kHz(周期= (571+1)* TTBCLK)。
•如果TBPRD = 570,则PWM频率= 175.13kHz(周期= (570+1)* TTBCLK)。
•如果TBPRD = 286,则PWM频率= 174.82kHz(周期= (2862) TTBCLK)。
•如果TBPRD = 285,则PWM频率= 175.44kHz(周期= (2852) TTBCLK)。
解决方案:每粗步有55个MEP步骤,每次180ps:步骤1:百分比整数TBPRD寄存器的周期值转换整数周期值= 571 * TTBCLK = int (571.428) * TTBCLK = int (PWMperiod) * TTBCLK在上计数模式:TBPRD = 570 (TBPRD =周期值- 1)= 023Ah在上下计数模式:= 285 (TBPRD =周期值/2)TBPRD = 011Dh www.ti.com增强脉宽调制器(ePWM)在这里插入图片描述

在这里插入图片描述

高分辨率周期配置

要使用高分辨率周期,ePWMx模块必须按照给出的顺序进行初始化。
下面的步骤使用带有阴影寄存器的CMPA和相应的HRCNFG位在EPWMxA上进行高分辨率操作。为了在EPWMxB上进行高分辨率操作,请使用B通道字段进行适当的替换。

  1. 使能ePWMx时钟
    2。使能HRPWM时钟
    3。禁用TBCLKSYNC
    4。配置ePWMx寄存器——AQ、TBPRD、CC等。
    •ePWMx只能配置up-count或up-down计数模式。高分辨率周期不兼容down-count模式。
    •TBPRD和CC寄存器必须为影子负载配置。
    •CMPCTL[loadmode]
    -在向上计数模式:CMPCTL[loadmode] = 1(加载CTR=PRD)
    -在向上计数模式:CMPCTL[loadmode] = 2(加载CTR=0或CTR=PRD)
    5。配置HRCNFG寄存器:
    •HRCNFG[HRLOAD] = 2(在CTR = 0或CTR = PRD上加载)
    •HRCNFG[AUTOCONV] = 1(启用自动转换)
    •HRCNFG[EDGMODE] = 3(在两侧的MEP控制)
  2. 对于高分辨率周期的TBPHS:TBPHSHR同步,设置HRPCTL[tbpshrload] = 1和TBCTL[PHSEN] = 1。在上下计数模式下,无论TBPHSHR的内容如何,这些位必须被设置为1。
  3. 7 .使能高分辨率周期控制(HRPCTL[HRPE] = 1)。
  4. 启用TBCLKSYNC
    9。Tbctl [swfsync] = 1
  5. HRMSTEP必须包含精确的MEP比例因子(每个EPWMCLK粗步的MEP步数),因为启用了自动转换。MEP比例因子可以使用第17.15.2节中描述的SFO()函数获得。
  6. 为了控制高分辨率周期,写入TBPRDHR(M)寄存器。

当启用高分辨率周期模式时,EPWMxSYNC脉冲会给PWM带来±1-2个周期的抖动(上计数模式为±1个周期,上下计数模式为±2个周期)。因此,“EPWMxSYNCO源”不能设置为“CTR
= 0”或“CTR = CMPB”。否则,在同步脉冲的每个PWM周期上都会出现抖动。 当EPWMxSYNCI为EPWMxSYNCO源时,在高分辨率周期初始化时,一个软件同步脉冲只能发出一次。如果在PWM运行时应用软件同步脉冲,则在同步脉冲时PWM输出上出现抖动。

死带高分辨率操作

在up-count模式下,当启用任何高分辨率模式时,死带模块不可用。
本例假设:系统时钟= 10ns (100MHz)半周期模式下使能死带,TBCLK = EPWMCLK所需PWM频率1.33MHz (1/750ns)所需PWM占空比0.5(50%)所需死带上升时延5%所需死带上升时延ns (0.05 * 375ns) = 18.75ns
在这里插入图片描述

在这里插入图片描述

比例因子优化软件(SFO)

微边缘定位器(MEP)逻辑能够在255个离散时间步长之一中放置边缘。如前所述,这些步骤的大小大约为150ps(请参阅设备数据表,了解设备上典型的MEP步骤大小)。MEP步长根据最坏情况的工艺参数、工作温度和电压而变化。MEP步长随电压和温度的降低而增大,随电压和温度的降低而减小。使用HRPWM特性的应用程序可以使用ti提供的MEP比例因子优化(SFO)软件功能。当HRPWM工作时,SFO函数有助于动态确定每个EPWMCLK周期的MEP步数。
为了有效地利用MEP功能,软件需要知道MEP比例因子的正确值。为了实现这一目标,HRPWM模块内置了自检和诊断功能,可用于确定任何操作条件下的最佳MEP比例因子值。TI提供了一个可调用c语言的库,其中包含一个SFO函数,该函数利用该硬件并确定最佳MEP比例因子。因此,MEP控制和诊断寄存器保留给TI使用。
SFO库的详细描述- SFO_TI_Build_V8。SFO库软件- SFO TI_Build_V8.lib中可以找到SFO库软件。

使用优化汇编代码的HRPWM示例

了解如何使用HRPWM功能的最佳方法是通过两个实际示例:简单降压变换器采用非对称PWM(计数)与主动高极性。
2. DAC功能使用简单的R+C重构滤波器。
下面的示例都有用c编写的初始化和配置代码。为了使这些代码更容易理解,使用了下面所示的#define。
示例17-2假设MEP步长为150ps,并且不使用SFO库。

在这里插入图片描述

// HRPWM (High Resolution PWM) //
================================ 
// HRCNFG 
#define HR_Disable 0x0 
#define HR_REP 0x1 // Rising Edge position 
#define HR_FEP 0x2 // Falling Edge position 
#define HR_BEP 0x3 // Both Edge position #define HR_CMP 0x0 // CMPAHR controlled 
#define HR_PHS 0x1 // TBPHSHR controlled #define HR_CTR_ZERO 0x0 // CTR = Zero event 
#define HR_CTR_PRD 0x1 // CTR = Period event 
#define HR_CTR_ZERO_PRD 0x2 // CTR = ZERO or Period event 
#define HR_NORM_B 0x0 // Normal ePWMxB output 
#define HR_INVERT_B 0x1 // ePWMxB is inverted ePWMxA output

实现一个简单的Buck转换器
在这个例子中,PWM的要求是:
•PWM频率= 1MHz(即TBPRD = 100)•PWM模式=不对称,上计数
•分辨率= 12.7位(MEP步长为150ps)
图17-89和图17-90显示了所需的PWM波形。如前所述,除了需要启用/选择适当的MEP选项外,ePWM1模块的配置几乎与正常情况相同在这里插入图片描述

在这里插入图片描述

所示的示例代码由两个主要部分组成:
•初始化代码(执行一次)
•运行时代码(通常在ISR中执行)例17-3显示了初始化代码。第一部分配置为常规PWM。第二部分设置HRPWM资源。
本例假设MEP步长为150ps,并且不使用SFO库。
例17-4显示了HRPWM降压转换器运行时代码的汇编示例。

在这里插入图片描述

void HrBuckDrvCnf(void)
 { 
// Config for conventional PWM first 
EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // set Immediate load 
EPwm1Regs.TBPRD = 100; // Period set for 1000kHz PWM 
hrbuck_period = 200; // Used for Q15 to Q0 scaling 
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; 
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // EPWM1 is the Master
EPwm1Regs.EPWMSYNCOUTEN.all = TB_SYNC_DISABLE;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; 
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; 
// Note: ChB is initialized here only for comparison purposes, it is not required
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; 
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; 
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // optional 
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; // optional 
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; 
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; 
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET; // optional 
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR; // optional 
// Now configure the HRPWM resources 
EALLOW; // Note these registers are protected 
 // and act only on ChA 
EPwm1Regs.HRCNFG.all = 0x0; // clear all bits first 
EPwm1Regs.HRCNFG.bit.EDGMODE = HR_FEP; // Control Falling Edge Position 
EPwm1Regs.HRCNFG.bit.CTLMODE = HR_CMP; // CMPAHR controls the MEP 
EPwm1Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO; // Shadow load on CTR=Zero 
EDIS; 
MEP_ScaleFactor = 66*256; // Start with typical Scale Factor 
 // value for 100MHz 
 // Note: Use SFO functions to update
 MEP_ScaleFactor dynamically 
 }

在这里插入图片描述

EPWM1_BASE .set 0x6800 CMPAHR1 .set EPWM1_BASE+0x8
;=============================================== HRBUCK_DRV; (can
execute within an ISR or loop)
;=============================================== MOVW DP,
#_HRBUCK_In MOVL XAR2,@_HRBUCK_In ; Pointer to Input Q15 Duty (XAR2) MOVL XAR3,#CMPAHR1 ; Pointer to HRPWM CMPA reg (XAR3) ; Output for
EPWM1A (HRPWM) MOV T,*XAR2 ; T <= Duty MPYU ACC,T,@_hrbuck_period
; Q15 to Q0 scaling based on Period MOV T,@_MEP_ScaleFactor ; MEP
scale factor (from optimizer s/w) MPYU P,T,@AL ; P <= T * AL,
Optimizer scaling MOVH @AL,P ; AL <= P, move result back to ACC
ADD ACC, #0x080 ; MEP range and rounding adjustment MOVL *XAR3,ACC ;
CMPA:CMPAHR(31:8) <= ACC ; Output for EPWM1B (Regular Res) Optional

  • for comparison purpose only MOV *+XAR3[2],AH ; Store ACCH to regular CMPB Enhanced Pulse Width Modulator (ePWM) www.ti.com

用R+C重构滤波器实现DAC功能

在这个例子中,PWM的要求是:•PWM频率= 400kHz(即TBPRD = 250)•PWM模式=不对称,Up-count•分辨率= 14位(MEP步长= 150ps)图17-91和图17-92显示了DAC功能和所需的PWM波形。如前所述,除了需要启用/选择适当的MEP选项外,ePWM1模块的配置几乎与正常情况相同。在这里插入图片描述

在这里插入图片描述

所示的示例代码由两个主要部分组成:•初始化代码(执行一次)•运行时代码(通常在ISR中执行)此示例假设一个典型的MEP_SP并且不使用SFO库。
例17-5所示为初始化代码。第一部分配置为常规PWM。第二部分设置HRPWM资源。
例17-6展示了一个可以在高速ISR循环中执行的运行时代码的汇编示例。

在这里插入图片描述

在这里插入图片描述

SFO库软件- SFO_TI_Build_V8.lib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值