DSP芯片F2803x系列之PWM模块及高精度PWM使用 |
您所在的位置:网站首页 › AQ模块是指 › DSP芯片F2803x系列之PWM模块及高精度PWM使用 |
DSP芯片F2803x之ePWM模块 文章目录 1 ePWM模块概述2 ePWM模块构成3 ePWM各子模块3.1 TB模块3.2 CC模块3.3 AQ模块3.4 DB模块3.5 PC模块3.6 TZ模块3.7 ET模块3.8 DC模块 4 高精度PWM 1 ePWM模块概述ePWM模块是电力电子数字控制中重要的部分。其主要功能和作用如下: 1 用于电力电子拓扑中可控功率器件的驱动信号; 2 实现DAC功能,有时ePWM也做为功率DAC的一部分; 3 用于继电器等器件的控制信号; 4 用于模拟一些带信息的信号,如模拟电机码盘信号。 2 ePWM模块构成DSP中有多个ePWM模块,各个系列型号的ePWM模块数量不尽相同。 F2803x系列中,每个ePWM模块都包含两个PWM输出,EPWMxA和EPWMxB。其中,x表示第几个模块,x = 1,2,…。 各模块、外部接口及其与其他模块连接如下: 从图可知,各个模块的主要对外信号: ePWM模块输出信号(EPWMxA和ePWMxB) TZ信号( T Z 1 ‾ \overline{TZ1} TZ1~ T Z 6 ‾ \overline{TZ6} TZ6) 在ePWM模块外部发生故障时,可通过这些信号给ePWM模块示警。每个ePWM模块都可以选择使用或者不使用这些信号。 时基同步输入信号(EPWMxSYNCI)和时基同步输出信号(EPWMxSYNCO) 同步信号通过菊花链将ePWM模块连接在一起。每个模块都可以配置位使用或者忽略自身模块的同步输入信号。其中,只有ePWM1模块才可以将其输入输出同步信号带出引脚。ePWM1同步信号的输入输出也连接到eCAP1的同步输入信号上。 ADC起始转换信号(EPWMxSOCA和EPWMxSOCB) 每个ePWM模块都有两个ADC起始转换信号。任一个ePWM模块都可以触发一个转换起始。 COMP输出信号(COMPxOUT) COMP的输出信号可以连接到TZ信号用于产生DC事件。 外设总线 外设总线是32位宽并且允许16位和32位写入ePWM寄存器文件。 每个ePWM模块包含以下子模块: 时基模块(TB, Time-Base Module);计数比较模块(CC, Counter Compare Module);动作模块(AQ, Action Qualifier Module);死区模块(DB, Dead-Band Generator Module)斩波模块(PC, PWM Chopper Module)刹车模块(TZ, Trip Zone Module),也称联防模块事件触发模块(ET, Event Trigger Module)数字比较模块(DC,Digital Compare)子模块和外部信号如下图: 每个ePWM模块的特点如下: 16位专用时基计数器用于控制周期和频率 两个PWM输出,并且可以配置为: 两个独立单边缘操作输出; 两个独立双边缘对称操作输出; 一个独立双边缘非对称操作输出; 通过软件异步控制PWM信号 可编程控制相对于其他ePWM模块的超前/滞后的相位 逐周期硬件同步相位关系 独立的上升沿/下降沿延时控制死区 TZ可设置为CBC和one-shot TZ控制可强制PWM的输出为高、低、高阻态 比较器模块的输出和TZ输入都可以产生事件、滤除事件或TZ条件。 3 ePWM各子模块 3.1 TB模块TB模块在ePWM的部分如下: TB模块的作用: 设定TB计数器的周期频率 管理和其他ePWM模块的同步 设定和其他模块的相位 设定计数模式,计数模式有增计数模式、减技术模式和增减技术模式 产生事件: CTR = PRD时产生事件;CTR = ZERO时产生事件;配置TB时钟速率 TB计数共有三种模式 其计数方式及周期频率计算方式如下: 周期影子寄存器 为了避免软件异步装载寄存器的值导致出现不可预料的错误,因此有影子寄存器。影子寄存器不直接用于硬件,而是作为一个缓冲,当特定条件下装载到活动寄存器,作用于硬件。 对于TB模块,可以选择不使用影子寄存器而是直接作用,也可以选择使用影子寄存器。使用影子寄存器时,只有当TBCTR = 0x0000时,影子寄存器的值装载到活动寄存器作用于硬件。 同步信号 使能同步信号时,所有使能的ePWM模块时钟都开始于TBCLK的第一个上升沿。为了能正确的使能TBCLK,每一个ePWM模块的顶预定必须设置一样。 每个ePWM模块都有同步输入和同步输出信号。其中,ePWM1的同步输入信号来源于外部引脚。各ePWM模块同步信号之间的连接如下图: 虽然模块内部是这样连接的,但是针对每个模块,都可以选择使用或者不使用同步信号。当使用同步信号时,出现以下情况可使得TBCTR自动装载相位寄存器TBPHS的值: 输入同步脉冲,当输入同步脉冲来时,将在下一个TBCTR上升沿将相位寄存器的值给到TBCTR,产生的延迟: 当TBCLK = SYSCLKOUT时,延迟为2 x SYSCLKOUT当TBCLK != SYSCLKOUT时,延迟为1个TBCLK 软件强制同步DC事件同步脉冲TB的计数可以同步,而TBCLKSYNC位可以被用于同步使能的ePWM模块的TB时钟。这个位是设备时钟使能寄存器的一部分。当TBCLKSYNC = 0,TB时钟是停止的(默认);当TBCLKSYNC = 1,所有的ePWM模块的TB时钟就开始了,并起始于TBCLK的上升沿。为了能够正确地同步TBCLK,TBCTL的预定标位必须设定为一样的。正确处理ePWM时钟的方式步骤如下: 使能各自的ePWM时钟;设定TBCLKSYNC为0,这将停止每一个使能的ePWM模块的TB时钟;配置预定标的值和ePWM模块;设定TBCLKSYNC为1; 3.2 CC模块CC模块在ePWM的部分如下: CC模块的输入是时基计数器的值。CC模块将该值持续和CMPA和CMPB寄存器比较。当数值相等时,产生对应的事件。如果AQ配置为对应的设定,那么可以使用CC模块改变PWM的占空比。 3.3 AQ模块AQ模块在ePWM的部分如下: AQ模块作用: 基于如下事件产生动作: CTR = PRDCTR = ZEROCTR = CMPACTR = CMPB 管理事件同时发生的优先级当设置为增计数或减计数时,提供独立事件的控制AQ模块是基于事件驱动逻辑。可以认为AQ模块是通过编程选择输入事件然后进行输出动作。其输入事件有: CTR = PRDCTR = ZeroCTR = CMPACTR = CMPB软件强制事件其中,软件强制事件由AQSFRC和AQCSFRC寄存器控制。AQSFRC为软件强制寄存器(Action-Qualifier Software Force Register),AQCSFRC为软件持续强制寄存器(Action-Qualifier Continuous Software Force Register)。 AQ模块可能配置epWM模块输出EPWMxA、EPWMxB执行的动作有: 置高置低翻转无动作。通过无动作可以配置对应的事件,但PWM不动作。比如,配置CTR = CMPB为ADC起始事件,但对应的PWM不动作。其中,EPWMxA和EPWMxB是独立配置的。输出的动作可以配置为任一或者所有事件输入。比如,CTR = CMPA和CTR= CMPB都可以在EPWMxA上配置。 如果,CMPA/CMPB的值超过周期值,那么: 如果是增计数模式,那么CMPA/CMPB > TBPRD时,不会触发CAU/CBU事件;如果是减计数模式,那么CMPA/CMPB ≥ TBPRD时,会触发CAD/CBD事件(该事件发生在TBCTR = TBPRD);关于这个问题有点想不通,为啥减计数的时候,会触发这个事件呢? PWM配置生效问题 在运行的系统中,一般CMPA/CMPB活动寄存器的值是每个周期由影子寄存器更新的。但是存在一些异常情况。这些情况是当基于更新的值得动作延迟一个周期或者是基于旧值的动作继续生效额外个周期。 3.4 DB模块DB模块在ePWM的部分如下: DB模块的主要功能: 由EPWMxA通过DB产生适当的信号对(EPWMxA和EPWMxB)信号对可控制为: EPWMxA和EPWMxB输出高有效(AH)EPWMxA和EPWMxB输出低有效(AL)EPWMxA和EPWMxB输出互补高有效(AHC)EPWMxA和EPWMxB输出互补低有效(ALC) 上升沿死区下降沿死区死区模块被旁路DB模块的结构如下图: 其中,EPWMxA in和EPWMxB in为AQ模块的输出,DB模块的输入。 半周期时钟 死区模块可以使用半周期,因此有双倍的精度。即,计数的时钟为2 x TBCLK。 极性控制 上升沿延迟和下降沿延迟的输出信号,可以选择是否进行反极性。 死区计算 上升沿及下降沿死区计算公式: F E D = D B F E D ∗ T T B C L K R E D = D B R E D ∗ T T B C L K FED = DBFED * T_{TBCLK} \\ RED = DBRED * T_{TBCLK} FED=DBFED∗TTBCLKRED=DBRED∗TTBCLK 其中, T T B C L K T_{TBCLK} TTBCLK为TBCLK的周期值; 当半周期时钟使能时,计算公式如下: F E D = D B F E D ∗ T T B C L K / 2 R E D = D B R E D ∗ T T B C L K / 2 FED = DBFED * T_{TBCLK}/2 \\ RED = DBRED * T_{TBCLK}/2 FED=DBFED∗TTBCLK/2RED=DBRED∗TTBCLK/2 3.5 PC模块PC模块在ePWM的部分如下: PC模块的主要功能: 设定斩波频率设定第一个脉冲的脉宽设定第二个和之后脉冲的脉宽可被旁路PC模块操作重点: 简化波形如下: 第一个脉冲宽度设定: 如图所示: 斩波的第一个脉冲宽度可设。第一个脉冲宽度的时间计算如下: T 1 s t p u l s e = T S Y S C L K O U T ∗ 8 ∗ O S H T W T H T_{1stpulse} = T_{SYSCLKOUT} * 8 * OSHTWTH T1stpulse=TSYSCLKOUT∗8∗OSHTWTH 第二个及之后的斩波的占空比: 可设定占空比从12.5%到87.5%。 3.6 TZ模块TZ模块在ePWM的部分如下: TZ模块被连接到6个 T Z n ‾ \overline{TZn} TZn上,其中 T Z 1 ‾ \overline{TZ1} TZ1~ T Z 3 ‾ \overline{TZ3} TZ3连接到GPIO口上, T Z 4 ‾ \overline{TZ4} TZ4是连接到eQEP模块中EQEP1ERR的翻转信号上, T Z 5 ‾ \overline{TZ5} TZ5连接到系统时钟错误逻辑上, T Z 6 ‾ \overline{TZ6} TZ6到CPU的EMUSTOP输出上。这些信号表示故障或者联防条件满足,当故障发生时,ePWM的输出可以配置为对应相应。 TZ模块的主要功能: 6个联防输入信号 T Z n ‾ \overline{TZn} TZn可以映射到任何一个ePWM模块;针对错误信号,EPWMxA和EPWMxB输出可以被强制为: 高电平低电平高阻抗无动作 在短路或过流时,支持one-shot针对限流,支持CBC支持基于COMP模块输出、 T Z 1 ‾ \overline{TZ1} TZ1~ T Z 3 ‾ \overline{TZ3} TZ3信号的数字比较联防每一个错误联防输入和数字比较子模块的DCAEVT1/2 or DCBEVT1/2强制事件都可以被配置为CBC或者OSHOT如何一个错误联防输入都可以产生中断也支持软件强制触发可被旁路TZ模块控制逻辑如下图: 当 T Z 1 ‾ \overline{TZ1} TZ1~ T Z 6 ‾ \overline{TZ6} TZ6信号变低或者DCAEVT1/2 or DCBEVT1/2强制事件发生都表明联防事件已经发生。每个ePWM模块都可以独立被配置为忽略或者使用错误联防信号或DC事件。具体哪个 T Z ‾ \overline{TZ} TZ信号、DC事件被用于ePWM模块由TZSEL寄存器决定。其中, T Z ‾ \overline{TZ} TZ信号输入,最小三个TBCLK时钟宽度可以触发ePWM模块上的错误条件。少于3个时钟则有可能不能被CBC或OST锁存。 每个 T Z ‾ \overline{TZ} TZ信号输入都可以独立地被配置为CBC或OST事件;DCAEVT1 and DCBEVT1事件可以被配置直接联防ePWM模块或者可以给模块提供一个one-shot联防事件。DCAEVT2and DCBEVT2事件可以被配置直接联防ePWM模块或者可以给模块提供一个cycle-by-cycle联防事件。 因此,可以使得PWMxA动作的有TZA、DCAEVT1 、DCAEVT2。其中,TZA又可以是one-shot,也可以是CBC。这里TZA如果是通过DC的事件触发,只能是DCAEVT1 、DCAEVT2,而不能是DCBEVT1 、DCBEVT2。 因此,可以使得PWMxB动作的有TZB、DCBEVT1 、DCBEVT2。其中,TZB又可以是one-shot,也可以是CBC。这里TZB如果是通过DC的事件触发,只能是DCBEVT1 、DCBEVT2,而不能是DCAEVT1 、DCAEVT2。 所以,COMP的输出封波,即可以让COMP的输出触发DCAEVT1事件,DCAEVT1事件直接封波;还可以让COMP的输出触发DCAEVT1事件,DCAEVT1事件配置为One-shot事件,One-shot事件封波。区别在于事件锁存。 以下分别针对CBC、OSHOT及DC事件做说明: 1.CBC 当一个cycle-by-cycle联防事件发生时,EPWMxA/EPWMxB输出将按照TZCTL[TZA]和 TZCTL[TZB]位中规定的动作进行动作。此时事件发生时,如果使能了对应的中断(TZEINT 寄存器和PIE外设),那么cycle-by-cycle联防中断位((TZFLG[CBC])将被置位。 如果CBC中断通过TZEINT 寄存器被使能,并且DCAEVT2或 DCBEVT2通过 TZSEL寄存器被选择为CBC联防源,那就没必要使能在TZEINT寄存器中也使能DCAEVT2或 DCBEVT2中断。这是因为DC事件触发中断是通过CBC机制的。 当触发事件不再出现,当ePWM模块TBCTR = 0x0000时,输入上指定条件被自动清除。因此,在CBC这种模式下,每个PWM周期触发事件都被清除。但一直到手动通过给TZCLR(CBC)写入来清除之前,TZFLG[CBC]位会持续被置位。清除之后,cycle-by-cycle触发事件再出现,TZFLG[CBC]还是会被置位。 2.One-shot(OSHT) 当one-shot 触发事件发生,EPWMxA/EPWMxB输出将按照TZCTL[TZA]和 TZCTL[TZB]位中规定的动作进行动作。此时,one-shot触发事件标志位(TZFLG[OST])被置位。并且事件发生时,当TZEINT寄存器和PIE外设使能时,产生一个EPWMx_TZINT中断。one-shot联防条件只能通过给TZCLR[OST]位手动写入来清除。 如果one-shot中断通过TZEINT寄存器被使能,并且DCAEVT1或 DCBEVT1通过TZSEL寄存器被选择为OSHT联防源,那么就没有必须在TZEINT寄存器中使能DCAEVT1或 DCBEVT1中断。这是因为DC事件触发中断是通过OSHT机制。 3.Digital Compare Events (DCAEVT1/2 and DCBEVT1/2): 通过TZDCSEL寄存器可以选择DCAH/DCAL和 DCBH/DCBL信号的组合。基于这个信号组合可以产生一个数字比较事件(DCAEVT1/2 or DCBEVT1/2 事件)。这些DCAH/DCAL和 DCBH/DCBL信号的源信号(输入信号)可以是通过DCTRIPSEL选择。这些源信号(DCAH/DCAL和 DCBH/DCBL的输入信号)可以是任一个TZ输入引脚,也可以是COMP的输出信号。 当DC事件发生,EPWMxA/EPWMxB输出将按照TZCTL[DCAEVT1/2]和 TZCTL[DCBEVT1/2]位中规定的动作进行动作。此时,对应的DC联防事件标志(TZFLG[DCAEVT1/2] /TZFLG[DCBEVT1/2])被置位。并且事件发生时,如果TZEINT寄存器和PIE外设使能时,将会产生一个EPWMx_TZINT中断。 **当DC联防事件不在出现时,引脚上的特定条件将被自动清除。**但一直到手动给TZCLR[DCAEVT1/2] 或 TZCLR[DCBEVT1/2]为写入来清除,TZFLG[DCAEVT1/2] 或 TZFLG[DCBEVT1/2]标志位会一直被置位。清除之后,如果DC联防事件再出现,对应位还是会被置位。 其中,CBC用于电流逐周期限幅,OSHOT为单次锁死。这里的原因是CBC锁存的清除是TCR = 0 ,而OSHOT的清除必须通过软件清除。 而对于DC事件,其DC事件没有锁存功能,因此当DC事件的条件消失,那么DC事件将会消失,但是对应标志位和CBC及OSHOT是一样的,不会直接消失,而是需要手动清除。 3.7 ET模块ET模块在ePWM的部分如下: ET模块的主要功能有: 通过TB、CC、DC各子模块产生事件输入 使用TB方向信息产生相应的事件 使用预定标逻辑发出中断请求或ADC转换起始信号 每个事件 每两个事件 每三个事件 通过事件计数器和标志提高事件产生可视化 允许软件强制中断和ADC起始转换 ET操作 每个ePWM模块都有一个中断请求线和两个ADC起始转换信号。所有的ePWM模块的ADC起始转换信号都连接到ADC独立的触发输入上,因此多个模块都可以通过ADC触发输入开始ADC转换。 ET模块实时监控事件的产生,检测到事件之后可以配置多次事件后动作。 3.8 DC模块DC模块在ePWM的部分如下: DC模块主要模块和信号接口如下图: DC子模块的比较信号延伸到ePWM模块去直接产生ePWM事件或动作。该事件或动作可以反馈到ET、TZ、TB模块。此外,针对DC事件信号支持滤除。 DC模块主要功能: COMP模块输出和 T Z 1 ‾ \overline{TZ1} TZ1、 T Z 2 ‾ \overline{TZ2} TZ2、 T Z 3 ‾ \overline{TZ3} TZ3输入产生数字比较A的高低信号(DCAH,DCAL)和数字比较B的高低信号(DCBH,DCBL)DCAH/L 和 DCBH/L信号触发事件,可以选择滤除或不滤除,然后反馈到TZ、ET、TB模块 产生一个TZ中断产生一个ADC转换起始信号强制一个事件对于同步到ePWM模块的TBCTR,产生一个同步事件 事件信号滤除DC模块的操作 通过DCTRIPSEL位,可以选择COMP模块输出和 T Z 1 ‾ \overline{TZ1} TZ1、 T Z 2 ‾ \overline{TZ2} TZ2、 T Z 3 ‾ \overline{TZ3} TZ3输入产生数字比较A的高低信号(DCAH,DCAL)和数字比较B的高低信号(DCBH,DCBL)。 通过TZDCSEL寄存器选择 DCAH/L 和 DCBH/L 信号,用于产生DCAEVT1/2 和 DCBEVT1/2事件。 当 T Z ‾ \overline{TZ} TZ信号作为DCEVT触发功能时,可以将 T Z ‾ \overline{TZ} TZ信号作为一个普通的输入信号,并且 T Z ‾ \overline{TZ} TZ信号可以被配置为高输入有效和低输入有效。EPWM输出为异步触发。 经过滤除或不滤除的DCAEVT1/2 和 DCBEVT1/2事件信号可以产生一个强制给TZ模块,可以产生一个TZ中断,可以产生一个ADC的SOC,或者可以产生一个PWM的同步信号。以下依次介绍: 强制信号: DCAEVT1/2强制信号通过配置TZCTL[DCAEVT1] 或 TZCTL[DCAEVT2]产生一个强制TZ条件,这个条件可以直接影响EPWMxA的引脚。如果DCAEVT1/2信号源通过TZSEL寄存器选择为one-shot或cycle-by-cycle输入,DCBEVT1/2.force信号可以通过TZCTL[TZA]配置影响联防动作。DCBEVT1/2.force信号性能相似,只是该信号影响的是EPWMxB输出引脚。 TZCTL寄存器上影响动作的有:TZA、TZB、DCAEVT1/2、DCBEVT1/2。当同时来临时,其具有优先级。其优先级如下: Output EPWMxA: TZA (highest) -> DCAEVT1 -> DCAEVT2 (lowest) Output EPWMxB: TZB (highest) -> DCBEVT1 -> DCBEVT2 (lowest) TZ中断: 一旦DCAEVT1、DCAEVT2、DCBEVT1、DCBEVT2中任一事件触发,并且TZEINT寄存器对应中断使能位使能,那么都会触发到EPWMxTZINT。清除时,置位TZCLR寄存器中对应的位去清除。 ADC的SOC信号: DCAEVT1.soc 信号给到ET模块,可以作为ET模块的事件输入用于产生ADC的起始信号SOCA; DCBEVT1.soc 信号给到ET模块,可以作为ET模块的事件输入用于产生ADC的起始信号SOCB; 同步信号: DCAEVT1.sync 和 DCBEVT1.sync事件与EPWMxSYNCI输入信号或,用于给TB计数器产生同步脉冲。 各输入信号和输出信号之间的连接如下: 从四个事件的连接来看,其中DCAEVT1和DCAEVT2产生DCAEVTx.force和DCAEVTx.inter; DCAEVT2和DCBEVT2不产生SOC和同步信号。 事件滤除 DCAEVT1/2和DCBEVT1/2事件可以实现滤除。事件滤除是通过事件滤除逻辑,在一个特定时间内选择性的消除事件,来消除事件干扰的。 事件滤除在以下工况是很有用的: 比较器输出用于触发DCAEVT1/2和DCBEVT1/2事件,消除逻辑可用于滤除联防PWM输出之前、中断产生之前、ADC起始转换之前的,可能的干扰。事件滤除还可以捕获联防事件的TBCTR的值。 事件滤除的输入是DCAEVT1, DCAEVT2, DCBEVT1, DCBEVT2事件。当消除窗口使能时,消除逻辑可以滤除信号上出现的事件。消除窗口可通过配置与CTR = PRD或CTR = 0对齐。可以程序写入TBCLK计数的偏置数,该值决定在CTR = PRD或CTR = 0之后多久开启消除窗。 消除窗的持续时间,是由应用着写入DCFWINDOW寄存器的。消除窗期间,所有的事件都会被忽略。在开始之前和消除窗结束之后,事件可以象之前一样产生SOC、同步、中断和强制信号。 其时序图如下: HRPWM(High Resolution Pulse Width Modulator)模块可以拓展传统PWM的时间精度。 HRPWM的主要特征为: 拓展时间精度能力;用于占空比和移相控制方式;使用CMPA/CMPB的拓展来得到更好的时间粒子控制和边缘位置控制;独立使用PWM的A信号路径,比如EPWMxA输出;自检诊断软件模式用于检测是否微边沿定位(MEP)逻辑是最优运行;通过交换PWM A和B的通道来使能PWM输出B的高精度;通过翻转A信号输出,使能高精度输出B信号;使能PWMxA输出的高精度周期控制(Type1的PWM模块)HRPWM和PWM精度对比 传统生成PWM的有效分辨率是PWM周期和系统时钟频率的函数。 F28033主频为60M,那么100K的PWM精度为: P W M _ r e s o l u t i o n = F P W M / F S Y S C L K O U T ∗ 100 % = 100 K / 60 M = 0.1667 % P W M _ r e s o l u t i o n = log 2 ( T P W M / T S Y S C L K O U T ) = 9.2 PWM\_resolution=F_{PWM}/F_{SYSCLKOUT}*100\% = 100K/60M = 0.1667\% \\ PWM\_resolution=\log_{2}{(T_{PWM}/T_{SYSCLKOUT})} = 9.2 PWM_resolution=FPWM/FSYSCLKOUT∗100%=100K/60M=0.1667%PWM_resolution=log2(TPWM/TSYSCLKOUT)=9.2 即,设定100k周期的PWM,那么可能生成的PWM的精度为100.167kHz。计算如下: 设定的100kHz,那么周期值为600,则实际的可能是599计算的值,那么60M/601 = 100.167KHz。 如果在一些需要高精度的场合,那么就可以使用HRPWM。下表为使用HRPWM和传统PWM精度的对比,对了方便,这里MEP的步长为180ps。具体数据如下: 表4-1 PWM和HRPWM精度对比虽然每个应用均有差别,但是典型的低频PWM(低于250kHz)操作一般不需要HRPWM。HRPEM在高频中最有用,比如: 单相buck,boost和反激;多相buck,boost和反激;移相全桥;Direct modulation of D-Class power amplifiersHRPWM操作 HRPEM是基于微边沿定位(MEP)技术进行的。MEP逻辑可以通过细分传统PWM中一个粗略的系统时钟来很好的定位一个边沿。时间步进精度近似150ps。HRPEM还有软件自检诊断模式来检测是否MEP逻辑运行在最优。 上图给出了一个粗略的系统时钟和MEP的边沿位置。具体的边沿位置是由比较A拓展寄存器(CMPAHR)中的8bit控制的。 控制HRPWM性能 HRPWM的MEP是由三个拓展寄存器控制的。这些HEPWM寄存器和16位的TBPHS、TBPRD和CMPA相连用于控制PWM操作。 镜像寄存器都有一个"M"的后缀(比如 CPMA镜像 = CMPAM)。图中镜像的镜像寄存器都可以在不同内存地址被写入。读取高精度镜像寄存器将会导致不可确定的值。 TBPRDHR和TBPRD只在镜像地址可以以32位的值写入。 使用通道A PWM信号路径可以控制HRPWM性能。通过正确配置HRCNFG寄存器,HRPWM也可用于通道B信号路径。 配置HRPWM 一旦PWM已经被配置为传统的PWM,那么就可以在偏移0x20的内存地址通过编程配置HRPWM。寄存器提供如下配置选项: 边沿模式(Edge mode):在上升沿(RE)、下降沿(FE)或者上升下降沿(BE),MEP都可以通过编程提供一个精细的位置控制。FE和RE用于需要占空比控制的拓扑,即CMPA好精度控制;BE用于需要相移的,比如移相全桥拓扑,此时使用TBPHS或者TBPRD高精度控制。 控制模式(Control Mode):CMPAHR(占空比控制)或者TBPHSHR(相移控制)都可以通过程序控制MEP。RE或FE应该被用于CMPAHR寄存器。BE控制被用于TBPHSHR寄存器。当MEP被TBPRDHR寄存器(周期控制)控制时,占空比和相位也还可以通过对应的高精度寄存器控制。 影子模式(Shadow Mode):这种模式下提供和常规PWM模式相同的影子选项(双缓冲)。但这个影子选项只有在操作CMPAHR和TBPRDHR寄存器,并且被选择为和传统CMPA寄存器相同负载选项时才是有效的。如果使用TBPHSHR,该选择无效。 高精度B信号控制(High-Resolution B Signal Control):通过交换A和B输出,ePWM通道的B信号路径可以产生一个高精度输出。或者还可以通过输出高精度ePWM xA信号的翻转信号来输出ePWMxB引脚上的高精度。 自动转换模式(Auto-conversion Mode):该模式只用于连接scale factor优化软件。对于Type1 HRPWM模块,如果自动转换使能,CMPAHR = fraction(PWMduty*PWMperiod) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |