1. 项目概述与核心价值
在电力电子和电机驱动的世界里,脉宽调制(PWM)就像一位精准的指挥家,通过控制开关管的“开”与“关”的时长比例(占空比),来塑造我们所需的电压或电流波形。无论是给手机充电的适配器,还是驱动电动汽车电机的大功率逆变器,其心脏部位都离不开PWM技术。然而,随着开关频率的不断提升,一个“隐形杀手”——开关损耗,开始严重制约系统的效率和功率密度。每次开关管在硬开关状态下动作,都会产生显著的电压电流交叠损耗和电磁干扰(EMI)。
为了解决这个问题,谷底切换(Valley Switching)技术应运而生。它的核心理念非常巧妙:不是在任何时刻都粗暴地开关,而是像冲浪者等待完美的浪尖一样,等待谐振电流或电压自然振荡到其“谷底”(即最小值附近)的时刻再进行切换。此时,开关管两端的电压或流过的电流极低,甚至为零,从而实现“软开关”,将开关损耗和噪声降至最低。过去,实现这种精准的时序控制需要复杂的外部检测电路和逻辑,不仅增加了成本和板级空间,还引入了额外的延迟和不确定性。
德州仪器(TI)在其C2000系列微控制器中集成的增强型脉宽调制器(ePWM)模块,将谷底切换和多模块同步这两大高级功能直接做进了芯片的硬件里。这意味着,工程师无需再为搭建外部谐振检测和逻辑比较电路而头疼,仅通过软件配置寄存器,就能让ePWM模块自动、精准地捕捉振荡周期,并在预设的谷底点触发PWM切换。更重要的是,单个芯片内的多个ePWM模块可以灵活配置为主从关系,实现严格的频率同步和精确的相位偏移控制。这使得构建如多相交错降压转换器(以减小输入输出纹波)、零电压开关全桥(ZVS FB)变换器(以实现高效率)、以及多相电机驱动逆变器等复杂电源拓扑变得前所未有的简洁和高效。
本文将从一线工程师的视角,深入拆解ePWM的谷底切换硬件机制与多模块同步的配置哲学。我不会仅仅复述数据手册的寄存器描述,而是结合我在实际项目(如千瓦级服务器电源、车载OBC)中踩过的坑和积累的经验,带你理解每一个配置位背后的设计意图,手把手展示如何将这两个强大的功能组合起来,应对真实的电源设计挑战。无论你是正在评估C2000用于新项目的工程师,还是希望深入优化现有电源性能的开发者,这篇文章都将提供可直接“抄作业”的配置思路和避坑指南。
2. ePWM谷底切换(Valley Switching)硬件机制深度解析
谷底切换听起来很美好,但其硬件实现需要精准的“感知”和“定时”能力。ePWM模块内的数字比较(DC)子模块和专用的谷底捕获逻辑,共同构成了这套精密的系统。理解它,是灵活应用的前提。
2.1 核心逻辑与信号流
谷底切换功能的输入,通常来自于一个比较器(例如片内CMPSS模块的输出)或外部数字信号。这个信号反映了谐振槽路(如LLC变换器的谐振电流或MOSFET的漏极电压)的振荡状态。其上升沿或下降沿对应着振荡的过零点或极值点。
这个信号(记为DCxEVTy,如DCAEVT1)首先进入事件滤波(Event Filter)模块。这个模块的作用是抗抖动和事件计数。你可以把它想象成一个“保安”,只有看到连续、稳定的特定数量(可编程)的脉冲边沿后,它才会放行一个内部事件信号,去触发后续的捕获逻辑。这有效防止了噪声毛刺误触发谷底切换。
经过滤波的事件信号,被送入谷底捕获逻辑(Valley Capture Logic)。这是整个功能的核心。它的任务是测量两个特定边沿之间的时间,这个时间就是振荡的半个周期或一个完整周期。它通过一个16位计数器,在“开始边沿”(STARTEDGE)启动计数,在“停止边沿”(STOPEDGE)停止计数,并将计数值锁存到CNTVAL寄存器中。这个CNTVAL值,直接代表了以系统时钟(TBCLK)为单位的振荡周期信息。
关键理解:
STARTEDGE和STOPEDGE的选择,决定了你测量的是哪个“谷”。例如,在LLC的半桥应用中,你可能选择谐振电流从负过零到正过零的边沿(测量半个谐振周期),然后延迟半个周期(即CNTVAL值)再发出PWM开关信号,从而精准命中下一个电流谷底。
2.2 可编程延迟与应用
获取了振荡周期CNTVAL后,ePWM并没有直接使用它。硬件提供了极高的灵活性来处理这个延迟值:
- 直接应用:将
CNTVAL作为延迟值直接应用。 - 软件偏移:可以将
CNTVAL与一个软件编程值SWVDELVAL相加或相减。这在系统存在固定传播延迟(如驱动电路、传感器延迟)时进行补偿至关重要。 - 比例应用:甚至可以对
CNTVAL进行分频(VDELAYDIV),只应用其一部分。例如,如果你测量的是全周期,但只需要延迟四分之一周期来触发,就可以将CNTVAL右移2位(除以4)后使用。
最终,这个计算好的延迟值会被施加到最初那个经过滤波的DCxEVTy事件上。也就是说,当滤波事件发生时,硬件会启动一个定时器,等待我们计算出的“谷底延迟时间”过后,才产生一个最终的输出事件DCEVTFILT。这个DCEVTFILT事件,就可以用来同步ePWM自身的时基(TB)计数器,或者直接作为触发信号,实现PWM输出边沿的精准移动。
2.3 配置流程与实操要点
根据数据手册和我的项目经验,启用谷底切换的软件配置流程可以归纳为以下几步,我通常会写成一个初始化函数:
void EPWM_ValleySwitching_Config(EPWM_Module* pwm, uint32_t trigSource, uint32_t edgeMode, uint32_t edgeCount) { // 步骤1: 选择谷底切换块的输入事件源,并可选配置消隐窗口 pwm->DCFCTL.bit.SRCSEL = trigSource; // 例如,选择 DCAEVT1 作为触发源 pwm->DCFCTL.bit.BLANKE = 0; // 根据是否需要消隐来配置 // 步骤2: 配置边沿滤波器模式与计数 pwm->DCFCTL.bit.EDGEMODE = edgeMode; // 0: 仅上升沿,1: 仅下降沿,2: 双边沿 pwm->DCFCTL.bit.EDGECOUNT = edgeCount; // 需捕获连续多少个边沿后才产生有效事件 // 步骤3: 选择用于复位和重启边沿滤波器/计数器的触发事件 pwm->VCAPCTL.bit.TRIGSEL = 0x1; // 例如,选择软件触发(TRIGSEL=1) // 步骤4: 使能谷底捕获逻辑 pwm->VCAPCTL.bit.VCAPE = 1; // 步骤5 & 6: 配置振荡周期测量的开始与停止边沿 pwm->VCNTCFG.bit.STARTEDGE = 0x0; // 例如,选择第一个滤波后边沿作为开始 pwm->VCNTCFG.bit.STOPEDGE = 0x1; // 例如,选择第二个滤波后边沿作为停止 // 务必确保 STOPEDGE > STARTEDGE // 步骤7: 配置延迟应用方式(分频、软件偏移) pwm->VCAPCTL.bit.VDELAYDIV = 0x0; // 0: 应用全部CNTVAL,1: 应用1/2, 2: 应用1/4... pwm->SWVDELVAL = 0; // 软件偏移值,根据实际硬件延迟校准 // 步骤8: 选择将硬件计算的延迟应用到哪个事件路径 pwm->VCAPCTL.bit.EDGEFILTDLYSEL = 0x1; // 例如,应用到滤波后的事件 // 步骤9 (软件触发): 在适当的时候(如PWM周期开始)通过软件触发一次捕获 pwm->VCAPCTL.bit.SWVT = 1; // 置1触发,硬件会自动清零 }避坑指南:启动时序:在实际应用中,我强烈建议不要在系统一上电、PWM还未稳定运行时就使能谷底切换。正确的做法是,先让PWM以固定频率或固定占空比开环运行,确保功��级和检测电路工作正常。然后,在一个安全的时刻(如PWM周期开始或过零中断中),通过软件触发(
SWVT)第一次谷底捕获。这样可以避免初始状态紊乱导致捕获到错误周期,进而引发错误的切换。
3. 多ePWM模块同步与相位控制实战
单个ePWM模块已经功能强大,但现代电源拓扑往往需要多个桥臂协同工作。例如,三相逆变器需要3个相位互差120度的PWM,交错并联降压需要多个相位均匀分布的PWM以抵消纹波。ePWM模块的同步链(Sync Chain)和相位寄存器(TBPHS)就是为了优雅地解决这些问题而生的。
3.1 同步链(Sync Chain)工作原理
每个ePWM模块都有一个同步输入(EPWMxSYNCI)和一个同步输出(EPWMxSYNCO)。它们可以像链条一样连接起来。同步信号本质上是一个脉冲,当主模块的时基计数器(TBCTR)满足特定条件(如等于周期值PRD或比较值CMPB)时,就会产生一个同步脉冲输出。
关键配置在于两个选择:
同步输出源(SyncOut Select):决定本模块在什么条件下产生同步脉冲给下一个模块。
CTR = PRD:最常用。在每个PWM周期结束时(上-下计数模式时,在零和周期点都会)发出同步脉冲。这保证了所有从模块都以完全相同的频率运行。CTR = CMPB:可以在一个周期内的任意时刻发出同步脉冲,用于更特殊的同步需求。SyncIn:直通模式。将接收到的同步脉冲直接转发出去,用于长链式同步。Disable:不输出同步信号,模块独立运行。
同步输入动作(SyncIn Action):决定本模块在收到同步脉冲时做什么。
Ignore:忽略同步脉冲,我行我素。Load TBPHS:这是实现相位控制的关键!收到同步脉冲时,立即将相位寄存器(TBPHS)的值载入时基计数器(TBCTR)。这相当于对从模块的“时钟”进行了一次“对表”,强制将其相位调整到TBPHS定义的位置。
3.2 典型配置模式与应用场景
3.2.1 主-从模式(同频同相或固定相位差)
这是最基础的配置。例如,一个全桥的两个桥臂需要严格互补的PWM(防止直通),且频率必须绝对一致。
- 主模块(EPWM1):
SyncOut = CTR=PRD,SyncIn Action = Ignore。 - 从模块(EPWM2):
SyncIn = EPWM1_SYNCO,SyncIn Action = Load TBPHS,TBPHS = 0。 - 结果:EPWM2在每个周期开始时,都会将自己的计数器重置为0(如果TBPHS=0),从而与EPWM1完全同频同相。如果将EPWM2的TBPHS设置为
TBPRD/2,那么EPWM2的相位将滞后EPWM1半个周期,这正是全桥互补驱动所需的。
// 配置EPWM1为主模块 EPWM1->TBCTL.bit.SYNCOSEL = TB_SYNCOSEL_CTR_ZERO; // 在CTR=0时输出同步(上-下计数模式) EPWM1->TBCTL.bit.PHSEN = TB_DISABLE; // 忽略外部同步输入 // 配置EPWM2为从模块,相位滞后主模块180度(假设为向上计数模式) EPWM2->TBCTL.bit.SYNCOSEL = TB_SYNCOSEL_SYNCIN; // 输出直通,可选 EPWM2->TBCTL.bit.PHSEN = TB_ENABLE; // 使能相位加载 EPWM2->TBPHS.half.TBPHS = (EPWM2->TBPRD) / 2; // 设置相位偏移为半个周期 // 连接硬件:将EPWM1的SYNCOUT引脚连接到EPWM2的SYNCIN引脚(或通过内部ePWM X-BAR)3.2.2 同频多相(Interleaving)
这是多相交错降压转换器的核心。假设有三相,需要彼此相位差120度。
- 主模块(EPWM1):
SyncOut = CTR=PRD。 - 从模块1(EPWM2):
SyncIn = EPWM1_SYNCO,SyncIn Action = Load TBPHS,TBPHS = TBPRD/3。 - 从模块2(EPWM3):
SyncIn = EPWM2_SYNCO(或也接EPWM1),SyncIn Action = Load TBPHS,TBPHS = 2*TBPRD/3。
这样,当EPWM1在周期结束时发出同步脉冲,EPWM2和EPWM3会立即将计数器设置为TBPRD/3和2*TBPRD/3,从而在时间轴上均匀分布开。公式化表达:对于第M个从模块(M从1开始计数),TBPHS_M = (TBPRD / N) * (M-1),其中N为相数。
实操心得:相位计算的精度:
TBPRD和TBPHS是整数寄存器。当TBPRD不能被相数N整除时,会引入相位误差。例如,TBPRD=1000,三相时,理论相位差是333.33个计数。取整后(333和666)会引入微小误差。在超高开关频率(如500kHz以上)下,这个误差可能变得显著。解决方案是尽量选择TBPRD为N的整数倍,或者使用高分辨率PWM(HRPWM)的TBPHSHR寄存器来获得小数相位控制能力。
3.2.3 倍频模式
在某些拓扑中,可能需要一个模块的频率是另一个的整数倍。例如,一个用于功率因数校正(PFC)的Boost电路(开关频率65kHz)和一个用于DC-DC的LLC电路(开关频率130kHz)。
- 低频主模块(EPWM1):
SyncOut = CTR=PRD。 - 高频从模块(EPWM2):
SyncIn = EPWM1_SYNCO,SyncIn Action = Load TBPHS。关键是设置EPWM2的TBPRD为主模块的一半。这样,主模块每完成一个周期(发出一个同步脉冲),从模块已经完成了两个周期。从模块的计数器在每次收到同步脉冲时被重置,保证了两个频率间的严格整数倍关系和确定的相位关系。
3.3 ePWM X-BAR:灵活的触发路由网络
数据手册中提到的ePWM X-BAR是一个极其强大的片上互连网络。它允许你将几乎任何内部事件(如比较器输出、ADC转换完成、另一个ePWM的同步信号、甚至GPIO输入)路由到任何一个ePWM模块的Trip输入或同步输入。这意味着你的同步源和谷底切换的触发源可以非常灵活。
例如,在一个LLC谐振变换器中,你可以利用CMPSS模块检测谐振电流过零点,将其输出通过X-BAR路由到ePWM的Trip输入,用于实现逐周期限流保护;同时,也可以将这个信号路由到同一个ePWM模块的DC事件输入,作为谷底切换功能的触发源。所有这些连接都在软件中配置,无需改动PCB。
// 示例:通过X-BAR将CMPSS1的高电平比较器输出连接到EPWM1的DCAEVT1事件源 // 首先,配置输入X-BAR,选择输入源 InputXbarRegs.INPUT1SELECT = 60; // 假设CMPSS1.CTRIPH在输入选择表中的索引是60 // 然后,配置ePWM X-BAR,将INPUT1连接到EPWM1的DCAEVT1 EPwmXbarRegs.EPWM1DCAEVT1SELECT = 1; // 选择INPUT X-BAR的OUTPUT1作为源4. 在典型电源拓扑中的融合应用与配置实例
理论需要结合实践。下面我将以两个经典且复杂的拓扑为例,展示如何将谷底切换和多模块同步结合起来。
4.1 案例一:两相交错LLC谐振变换器(带同步整流)
这是一个在高效服务器电源和车载充电器中常见的设计。目标是实现高效率和高功率密度。
拓扑需求:两个LLC半桥相位交错180度工作,以减小输入输出电容的电流应力。每个半桥的上下管需要互补驱动(带死区)。为了实现ZVS,需要在谐振电流的谷底(或过零点后)开启相应的MOSFET。同步整流管(SR)也需要在精确的时刻开通和关断以替代二极管,减少导通损耗。
ePWM资源配置:
- EPWM1 & EPWM2:分别控制两个LLC相位的主功率管(高频桥臂)。
- EPWM3 & EPWM4:分别控制两个相位的同步整流管(SR)。
- CMPSS1 & CMPSS2:分别检测两个谐振相位的电流,用于谷底切换触发和过流保护。
配置策略:
- 同步设��:EPWM1配置为主模块,
SyncOut = CTR=PRD。EPWM2配置为从模块,SyncIn Action = Load TBPHS,且TBPHS = TBPRD/2,实现180度交错。 - 谷底切换:将CMPSS1和CMPSS2的过零输出信号,分别通过X-BAR连接到EPWM1和EPWM2的
DCAEVT1。按照第2章的流程配置各自的谷底捕获逻辑。设置STARTEDGE和STOPEDGE来测量谐振周期,并应用延迟(通常是半个周期或四分之一个周期,取决于具体谐振参数和驱动延迟),使得DCEVTFILT事件恰好发生在下一个电流谷底。 - 动作限定(AQ):将
DCEVTFILT事件配置为触发PWM输出翻转。例如,设置DCEVTFILT事件发生时,将EPWMxA输出强制拉高(开启上管)或拉低(开启下管)。这实现了基于谐振电流谷底的精准ZVS开通。 - 同步整流控制:EPWM3和EPWM4可以分别与EPWM1和EPWM2同步,但相位可能需要细微调整(例如,滞后一小段死区时间),以确保SR在体二极管导通后开通,在电流过零前关断。这可以通过设置不同的
TBPHS值或利用另一个比较器事件(检测电流过零)来触发SR的关断来实现。
- 同步设��:EPWM1配置为主模块,
4.2 案例二:峰值电流模式控制(Peak Current Mode)降压变换器
峰值电流模式通过逐周期限制电感电流峰值,具有内在的过流保护和优异的线性调整率。
拓扑需求:一个简单的Buck电路。需要检测电感电流(或下管电流),当其达到软件设定的峰值参考值时,立即关断主开关管(EPWMxA)。下一个周期由时钟信号(或周期结束事件)重新开启。
ePWM资源配置:
- EPWM1:控制Buck的主开关管。
- CMPSS1:比较器正端接电流采样信号,负端接内部DAC设定的峰值电流参考值。
- 数字比较(DC)子模块:用于处理比较器输出。
配置策略:
- 事件生成:配置CMPSS1输出连接到EPWM1的
DCAEVT1(或DCAEVT2)。 - 逐周期跳变(CBC):在数字比较控制寄存器(
DCACTL)中,使能DCAEVT1的逐周期跳变功能。这意味着,一旦DCAEVT1事件发生(电流达到峰值),硬件会立即将指定的PWM输出(如EPWM1A)强制拉低(关断),并且这个强制状态会持续到当前PWM周期结束。 - 周期复位:配置时基子模块,在
CTR=PRD(周期结束)时,清除由DC事件触发的强制状态。这样,在新的周期开始时,PWM输出会恢复正常由AQ模块控制的模式(通常是在CTR=0时置高,开启开关管)。 - 与谷底切换的结合(高级):在轻载或特定工况下,可以结合谷底切换。即,峰值电流关断事件发生后,不立即在周期结束时开启,而是等待由另一个比较器(检测下管电压)触发的谷底事件,实现开关管的ZVS开通。这需要更复杂的事件逻辑编排,可能用到两个DC事件和AQ模块的复杂切换逻辑。
- 事件生成:配置CMPSS1输出连接到EPWM1的
避坑指南:次谐波振荡与斜率补偿:纯峰值电流模式在占空比>50%时会发生次谐波振荡。ePWM模块本身不直接提供斜率补偿硬件,但可以通过软件轻松实现。在每个PWM周期开始时,你可以通过一个中断(如
CTR=PRD中断),用递增的数值去更新CMPSS的DAC参考值(即峰值电流指令),这个递增的斜率就是补偿量。确保更新发生在下一个周期开始之前,以避免竞争条件。
5. 高级主题:高分辨率PWM(HRPWM)与寄存器保护
5.1 HRPWM:突破时钟限制的精度
当开关频率很高时(例如>500kHz),常规PWM的分辨率会急剧下降。分辨率(比特数)计算公式为Log2(PWM周期 / 系统时钟周期)。在100MHz系统时钟下,500kHz的PWM分辨率只有约7.6比特,这意味着你最小能调节的占空比步进约为0.5%,对于精密控制可能不够。
HRPWM通过微边沿定位器(MEP)技术,在一个系统时钟周期内插入数百个精细的时间步进(典型值150ps)。它通过扩展寄存器(如CMPAHR)的8位来控制这个亚时钟周期的延迟。例如,CMPAHR写入128(0x80),代表将CMPA定义的边沿再精确延迟半个系统时钟周期。
使用要点:
- 校准:MEP的步进时间会随工艺、电压、温度(PVT)变化。TI提供了软件自检诊断模式,可以自动测量并校准MEP的步数/时钟比(
HRMSTEP寄存器)。上电后或温度变化大时,必须运行校准程序。 - 更新策略:HRPWM扩展寄存器(如
CMPAHR)通常与主寄存器(如CMPA)共享影子寄存器。在配置AQ动作时,要确保在正确的时刻(如CTR=ZERO)加载影子寄存器,以实现平滑无毛刺的占空比或相位变化。
5.2 寄存器锁保护(Register Lock)
在复杂的实时系统中,跑飞的代码意外写入关键PWM寄存器是灾难性的。ePWM模块提供了寄存器锁机制。
- 锁定:通过对
EPWMLOCK寄存器写入密钥0xA5A5,可以锁定特定的寄存器组(如Trip-Zone配置TZCFGLOCK、高分辨率PWM配置HRLOCK等)。锁定后,这些寄存器将变为只读。 - 解锁:再次向
EPWMLOCK写入0xA5A5即可解锁。 - 最佳实践:在系统初始化完成,所有ePWM模块配置妥当后,立即锁定关键寄存器组。特别是在功能安全(FuSa)相关的应用中,这是一项重要的安全机制。
// 锁定所有关键ePWM寄存器,防止误写 EPwm1Regs.ETCLOCK.bit.PROT = 0xA5A5; // 假设ETCLOCK是全局锁控制寄存器 // 或者分别锁定(如果支持) EPwm1Regs.EPWMLOCK.bit.KEY = 0xA5A5; EPwm1Regs.EPWMLOCK.bit.HRLOCK = 1; // 锁定HRPWM配置 EPwm1Regs.EPWMLOCK.bit.TZCFGLOCK = 1; // 锁定Trip-Zone配置6. 调试技巧与常见问题排查
即使理解了所有原理,调试阶段也常会遇到问题。以下是我总结的一些实战排查思路:
谷底切换不生效,PWM无变化:
- 检查信号路径:用示波器确认比较器(CMPSS)输出是否有预期的脉冲?该信号是否通过X-BAR正确路由到了ePWM的DC事件输入引脚?可以先将该事件配置为直接触发PWM跳变(不经过谷底延迟),验证路径是否通畅。
- 检查滤波器配置:
EDGECOUNT是否设得太大,导致需要连续多个事件才能通过?在调试初期,可以设为1。BLANKE(消隐)是否意外使能,屏蔽了事件? - 检查捕获逻辑:
VCAPE是否使能?STARTEDGE和STOPEDGE的选择是否合理?用仿真器读取CNTVAL寄存器,看它是否捕获到了合理的振荡周期值(非0且小于PWM周期)? - 检查延迟应用:
EDGEFILTDLYSEL是否选择了正确的路径?SWVDELVAL偏移值是否设置过大,导致延迟后的事件超出PWM周期?
多模块同步混乱,相位不对:
- 确认物理连接:在软件配置正确的前提下,通过内部X-BAR连接的同步信号,也要检查X-BAR的配置寄存器是否已正确写入。对于GPIO同步,确保引脚复用功能已使能。
- 检查时基模式:确保所有需要同步的模块都工作在相同的计数模式(向上、向下、上下)。通常上下计数模式最常用。
- 理解加载时机:
PHSEN使能后,从模块是在收到同步脉冲的下一个时钟边沿立即加载TBPHS。确保你的TBPHS值是在同步脉冲到来之前就已经写入寄存器的。通常在主模块计数器达到PRD之前就配置好从模块的TBPHS。 - 观察同步脉冲:有些IDE的调试工具可以显示ePWM同步脉冲的状态。或者,你可以将一个ePWM的
SYNCOUT信号通过GPIO输出,用示波器观察其是否按预期产生。
HRPWM输出有抖动或精度不佳:
- 首要任务:运行MEP校准:这是最常见的原因。确保在正确的电压和温度范围内运行了TI提供的
HRPWM_cal()或类似��准函数,并确认HRMSTEP寄存器得到了有效更新。 - 检查时钟一致性:确保ePWM模块的时钟源(
EPWMCLK)稳定,且与系统主频的关系符合数据手册要求。避免在动态改变时钟源的配置过程中更新HRPWM。 - 影子寄存器更新冲突:确保在更新
CMPA和CMPAHR时,使用完整的32位写入(访问CMPA的影子寄存器地址,它是一个32位寄存器,高16位是CMPA,低8位是CMPAHR),以避免中间状态。同时,配置AQCTLA在CTR=ZERO或CTR=PRD时加载影子寄存器,确保在一个周期内只生效一次更新。
- 首要任务:运行MEP校准:这是最常见的原因。确保在正确的电压和温度范围内运行了TI提供的
Trip-Zone保护误触发或不触发:
- 滤波与消隐:功率级的开关噪声很容易引起Trip输入引脚抖动。务必使能Trip输入的数字滤波(
TZDCSEL中的DCEVT1/2滤波)和消隐窗口(TZBCTL),根据你的开关频率设置合适的滤波周期和消隐时间。 - 异步路径与同步路径:理解
TZSEL中每个Trip源可以选择走异步路径(立即强制)还是同步路径(在下一个时钟边沿生效)。对于需要最快响应的严重故障(如短路),使用异步路径。对于一般性保护,同步路径可以避免亚稳态。 - 清除标志:一旦Trip事件发生,PWM输出会被强制到安全状态(如全低)。故障条件移除后,需要软件向
TZCLR寄存器相应位写1来清除Trip标志,否则PWM将一直被强制。
- 滤波与消隐:功率级的开关噪声很容易引起Trip输入引脚抖动。务必使能Trip输入的数字滤波(