TI DSP TMS320F280025 Note9.8:EPWM:数字比较(DC)子模块

TMS320F280025 EPWM:数字比较(DC)子模块


`


ePWM系统中DC (digital compare)子模块与其他子模块的信号接口如图17-50所示。
eCAP的输入信号来源于输入X-BAR信号,如图17-51所示。
在该器件上,任意GPIO引脚都可以灵活地映射为脱扣区输入和脱扣输入到脱扣区子模块和数字比较子模块。输入X-BAR输入选择(INPUTxSELECT)寄存器定义哪些GPIO引脚被分配为跳闸区输入/跳闸输入。
数字比较(DC)子模块比较ePWM模块外部的信号(例如,来自模拟比较器的CMPSSx信号),以直接生成PWM事件/动作,然后馈送到事件触发,触发器和时基子模块。此外,支持消隐窗口功能,以从直流事件信号中过滤噪声或不需要的脉冲。

在启用时钟和配置相应ePWM外设的行程输入之前,用户负责在所选引脚上驱动正确的状态,以避免trip信号的杂散锁存
在这里插入图片描述
在这里插入图片描述

数字比较子模块的目的

数字比较子模块的主要功能有:
•模拟比较器(COMP)模块输出通过输入X-BAR, EPWM X-BAR馈送,外部使用GPIO外设,中断控制器信号,ECC错误信号,TZ1, TZ2和TZ3输入产生数字比较A高/低(DCAH, DCAL)和数字比较B高/低(DCBH, DCBL)信号。
•DCAH/L和DCBH/L信号触发事件,然后可以过滤或直接应用于触发器、事件触发器和时间基子模块:
—生成触发器中断
—生成ADC转换开始
—强制事件
—生成同步事件用于同步ePWM模块TBCTR。
•事件滤波(空白窗口逻辑)可以选择空白输入信号,以消除噪声。

使用CMPSS增强行程动作

为了允许多个CMPSS同时影响DCA/BEVTx事件和跳闸动作,有一个OR逻辑将来自ePWM模块外部源的所有跳闸输入(最多15个)汇集在一起,并使用DCTRIPSEL寄存器作为“组合输入”馈送到DCAH、DCAL、DCBH和DCBL。这可以通过在DCTRIPSEL寄存器中选择“行程组合输入”(0xF的值)来配置。
在生成DCAH、DCAL、DCBH和DCBL信号的组合逻辑中,可以离散地选择哪些跳闸输入。这是使用DCAHTRIPSEL、DCALTRIPSEL、DCBHTRIPSEL和DCBLTRIPSEL寄存器选择来实现的。为组合输入选择的输入被传递到DCTRIPSEL寄存器。

使用CMPSS逐周期跳闸ePWM

当使用CMPSS逐周期触发ePWM时,可以采取措施防止在一个PWM周期中断言的比较器跳闸状态扩展到下一个周期。CMPSS可用于向下游ePWM模块发送跳闸信号。对于峰值电流模式控制等应用,每个PWM周期只期望一个跳闸事件。在某些条件下,如果不采取预防措施,持续或延迟跳闸事件(到达PWM周期结束附近)可能会延续到下一个PWM周期。
如果配置CMPSS数字滤波器或ePWM数字比较(DC)子模块来限定比较器跳闸信号,则在ePWM跳闸逻辑响应跳闸信号的逻辑变化之前,需要引入“N”个时钟周期的限定。一旦ePWM跳闸条件合格,在比较器跳闸信号解除后,跳闸条件将保持活动N个时钟周期。如果一个合格的比较器跳闸信号在一个PWM周期结束前的N个时钟周期内保持断言,则直到下一个PWM周期开始后才清除跳闸条件。因此,新的PWM周期在周期开始时就检测到跳闸条件。
为了避免这种不希望出现的跳闸情况,应用程序可以采取措施,确保在每个PWM周期结束之前,ePWM跳闸逻辑看到的合格跳闸信号被解除断言。这可以通过各种方法实现:
•设计系统,使比较器跳闸在PWM周期结束前的N个时钟周期内不会断言。
•使用ePWM事件滤波器在PWMSYNCPER信号之前至少两个时钟周期激活比较器跳闸信号的消隐,并继续消隐至少N个时钟周期进入下一个PWM周期。
•如果使用CMPSS COMPxLATCH路径,在PWM周期结束前至少N个时钟周期清除COMPxLATCH。锁存器可以通过软件(使用COMPSTSCLR)或通过产生早期PWMSYNCPER信号来清除。该器件上的ePWM模块包括在CMPC或CMPD匹配(使用HRPCTL)上生成PWMSYNCPER的能力,可在PWM周期内任意放置PWMSYNCPER。

数字比较子模块的操作要点

数字比较事件

可以使用DCTRIPSEL位选择来自模拟比较器(COMP)模块的跳闸区输入(TZ1, TZ2和TZ3)和CMPSSx信号,以生成数字比较A高低(DCAH/L)和数字比较B高低(DCBH/L)信号。然后,TZDCSEL寄存器的配置对所选DCAH/L和DCBH/L信号上的动作进行限定,这些动作生成DCAEVT1/2和DCBEVT1/2事件(事件限定A和B)。

当用作DCEVT跳闸函数时,TZn信号被视为正常输入信号,可以定义为高激活或低激活输入。ePWM输出是异步跳闸的,当TZn,
DCAEVTx。或DCBEVTx。警用信号激活。为了保持锁存状态,至少需要3˟TBCLK的同步脉冲宽度。当脉冲宽度<
3*TBCLK同步脉冲宽度时,CBC或OST锁存器可以或不可以锁存跳闸条件。

然后可以对DCAEVT1/2和DCBEVT1/2事件进行过滤,以提供事件信号的过滤版本(DCEVTFILT),或者可以绕过过滤。过滤将在事件过滤中进一步讨论。DCAEVT1/2和DCBEVT1/2事件信号或滤波后的DCEVTFILT事件信号都可以对脱扣区模块、TZ中断、ADC SOC或PWM同步信号产生一个力。
•力信号:DCAEVT1/2。强制信号强制跳闸区条件,直接影响EPWMxA引脚上的输出(使用TZCTL, TZCTLDCA, TZCTLDCB寄存器配置),或者,如果DCAEVT1/2信号被选择为单次或逐周期跳闸源(使用TZSEL寄存器),则DCAEVT1/2。强制信号可以使用TZCTL或TZCTL2寄存器配置来影响跳闸动作。
DCBEVT1/2。力信号的行为类似,但影响EPWMxB输出引脚,而不是EPWMxA输出引脚。
TZCTL, TZCTL2, TZCTLDCA和TZCTLDCB寄存器上冲突动作的优先级如下(最高优先级覆盖较低优先级):
输出EPWMxA: - TZA(最高)-> DCAEVT1 -> DCAEVT2(最低)- TZAU(最高)-> DCAEVT1U -> DCAEVT2U(最低)- TZAD(最高)-> DCAEVT1D -> DCAEVT2D(最低)输出EPWMxB: - TZB(最高)-> DCBEVT1 -> DCBEVT2(最低)- TZBU(最高)-> DCBEVT1U -> DCBEVT2U(最低)- TZBD(最高)-> DCBEVT1D -> DCBEVT2D(最低)
•中断信号:dcaevt1 /2.中断信号对中断控制器产生行程区中断。为了使能中断,在TZEINT寄存器中设置DCAEVT1、DCAEVT2、DCBEVT1或DCBEVT2位。
一旦这些事件之一发生,就会触发一个EPWMxTZINT中断,并且必须设置TZCLR寄存器中的相应位来清除中断。

  • soc信号:DCAEVT1。soc信号与事件触发子模块接口,可以选择作为使用ETSEL[SOCASEL]位生成ADC开始转换a (SOCA)脉冲的事件。
    同样,DCBEVT1。soc信号可以被选择为一个事件,该事件使用ETSEL[SOCBSEL]位生成ADC转换开始(SOCB)脉冲。
    •同步信号:DCAEVT1。sync和DCBEVT1。同步事件与EPWMxSYNCI输入信号和TBCTL[SWFSYNC]信号一起产生一个同步脉冲到时基计数器。
    DCxEVT1、DCxEVT2或DCEVTFLT信号的处理方法如图17-52和图17-53所示。DCxEVT1、DCxEVT2或DCEVTFLT信号产生数字比较A和B事件强制、中断、soc和同步信号。
    在移相全桥(PSFB)转换器等一些应用中,需要对CBC跳闸事件和OST跳闸事件采取不同的操作。这可以使用dxevt1lat来实现。
    •根据DCxCTL.EVTy.LATCLRSEL设置,该锁存可以在CNT=0, CTR=PRD和CNT=0或CTR=PRD事件上清除。这类似于CBC闩锁清除机制。
    •DCxEVTy。基于DCxCTL的力信号可以选择闭锁版本或非闭锁版本。EVTyLATSEL价值。
    •DCxEVTyLAT信号的状态可以通过读取DCxCTL来获取。EVTyLAT字段。

在这里插入图片描述
在这里插入图片描述

事件过滤

空白控制逻辑:可以使用事件过滤逻辑对DCAEVT1/2和DCBEVT1/2事件进行过滤,通过可选地在一段时间内对事件进行空白来去除噪声。这对于可以选择模拟比较器输出来触发DCAEVT1/2和DCBEVT1/2事件的情况很有用,并且空白控制逻辑用于在跳闸PWM输出或产生中断或ADC开始转换之前过滤掉信号上的潜在噪声。空白控制逻辑用于定义一个消隐窗口,该窗口在活动时忽略信号上发生的所有事件。在DCFCTL、DCFOFFSET和DCFWINDOW寄存器中配置空白窗口。DCFCTL寄存器启用消去窗口,并将消去窗口对齐到CTR = PRD脉冲或CTR = 0脉冲或CTR = PRD和CTR = 0,如DCFCTL[PULSESEL]指定的。DCFCTL[SRCSEL]为DCEVTFILT信号选择dcevty事件源。TBCLK计数中的偏移值被编程到DCFOFFSET寄存器中,该寄存器决定在CTR = PRD或CTR = 0脉冲之后的哪个点开始消隐窗口。在偏移计数器过期后,以TBCLK计数为单位的空白窗口的持续时间由应用程序写入DCFWINDOW寄存器。在空白窗口结束之前和之后,事件可以像以前一样产生soc,同步,中断和强制信号。
事件过滤逻辑的详细信息如图17-54所示。
在这里插入图片描述

捕获控制逻辑:事件过滤还可以捕获在DCCAPCTL寄存器中配置的所选dxevty事件的TBCTR值。当捕获控制逻辑被启用时,所选的dxevty事件触发将TBCTR捕获到活动寄存器。CPU直接从活动寄存器中读取,除非DCCAPCTL[SHDWMODE]启用了阴影模式。当影子模式被启用时,活动寄存器信息被复制到DCFCCTL[PULSESEL]指定的事件上的影子寄存器,CPU从影子寄存器中读取。在选择DCCAPCTL[CAPMODE]指定的事件之前,不会发生进一步的捕获事件。CAPMODE可以通过两种方式配置:(1)在DCFCTL[PULSESEL]定义的事件发生之前,不会发生进一步的捕获事件;(2)在DCCAPCTL[CAPSTS]的比较事件标志被DCCAPCTL[CAPCLR]清除之前,不会发生进一步的捕获事件。
您必须适当地配置ePWM清空窗口,以便在清空窗口过期后,跳闸输入至少在3个ePWM周期内保持有效。
图17-55给出了ePWM周期内偏移和消落窗口的几种定时条件。
注意,如果消影窗口越过CTR = 0或CTR = PRD边界,下一个窗口仍然在CTR = 0或CTR = PRD脉冲之后以相同的偏移值开始
在这里插入图片描述

Valley Switching

事件过滤描述了谷转换功能以及事件过滤中描述的事件过滤逻辑。
此功能可用于实现可编程谷开关,无需任何额外的外部电路。
该模块提供了一个片上硬件机制,可以:
•捕获振荡周期
•精确延迟PWM开关瞬间
•允许在延迟生效之前可编程的边缘数
•提供多种触发器和事件选择
•允许在不断变化的系统/操作条件下轻松适应最佳性能。
dxevty信号需要进一步处理以支持谷切换。下面是如何使能谷开关功能的简要说明:

  1. 选择dcevty事件之一作为谷切换块(DCFCTL[SRCSEL])的输入,并带有添加空白窗口(空白控制逻辑)的选项。这就是选择上面的比较器输出(或外部输入)作为谷切换块的输入的地方。
  2. 配置边缘过滤器,通过边缘选择逻辑(DCFCTL[EDGEMODE, EDGECOUNT])捕获’ n '上升,下降或两个边缘。
  3. 选择正确的事件重置和重新启动边缘过滤器(VCAPCTL[TRIGSEL])。边缘捕获事件由所选边缘触发或武装。
  4. 启用谷捕获逻辑(VCAPCTL[VCAPE])。
  5. 选择表示振荡周期测量捕获开始的起始边缘(VCNTCFG[STARTEDGE])。这是16位计数器开始计数的地方。
  6. 选择停止边缘(VCNTCFG[STOPEDGE]),表示16位计数器停止计数的边缘。捕获的计数器值(CNTVAL)提供振荡周期信息。
    •STOPEDGE值必须始终大于STARTEDGE值。
  7. 配置并将捕获的延迟(CNTVAL)应用于边缘滤波的dxevty信号。CNTVAL值可以单独应用,也可以与软件编程值(用于偏移量调整)(SWVDELVAL)一起应用,或者只有一小部分延迟可以使用或不使用SWVDELVAL。这对于正确应用与谷点相对应的延迟是有用的。(VCAPCTL [VDELAYDIV]) 8。配置VCAPCTL[EDGEFILTDLYSEL]以根据上面捕获的值应用硬件延迟。
    一旦计数器停止,计数器值被复制到CNTVAL寄存器中,计数器被重置为零。在VCAPCTL[TRIGSEL]选择的事件再次触发逻辑之前,不会进行进一步的捕获。在这个实现中,软件触发器被用作VCAPCTL[TRIGSEL]的源。触发事件发生后,无论计数器的当前状态如何,计数器都被重置,并在STARTEDGE发生时从零开始计数。类似地,在发生触发事件时,边缘过滤器被重置,并在发生STARTEDGE时开始从零计数。
    从山谷开关块(DCEVTFILT)输出,然后用于同步PWM时基。流程如图17-56所示。
    C2000Ware中提供了一个演示谷转换硬件和软件用法的具体应用示例。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值