C2000 ePWM死区与故障保护:电力电子系统可靠性的硬件基石 1. 项目概述为什么死区与故障保护是电力电子系统的生命线在电机驱动、逆变器或者任何开关电源的设计中PWM脉宽调制信号是驱动功率开关器件如IGBT、MOSFET的“指挥官”。但一个看似简单的“开”和“关”指令背后却隐藏着足以在瞬间摧毁整个系统的风险直通短路。想象一下一个桥臂的上下两个开关管如果同时导通电源正负极之间就形成了一条几乎没有阻抗的路径巨大的短路电流会像洪水一样冲垮开关管轻则器件冒烟重则引发连锁故障。为了避免这种灾难工程师们引入了“死区时间”这个关键的安全措施。简单说死区就是在互补的PWM信号之间人为插入的一段“空白期”确保一个管子完全关断后另一个管子才被允许导通。然而仅有死区预防“主动”的直通风险还不够。系统运行时负载突变、传感器故障、外部干扰等都可能引发过流、过压等“被动”故障。这时系统需要一种比软件中断更快的“反射弧”来立即关断PWM输出保护功率器件。这就是故障保护机制存在的意义。它必须是一个硬件级别的快速响应通道能在微秒甚至纳秒级内动作。德州仪器TI的C2000系列微控制器中的增强型PWMePWM模块将这两大核心安全机制——死区生成DB和故障保护TZ——以高度可配置的硬件子模块形式集成在一起。这不仅仅是提供了几个寄存器而是为工程师提供了一套从信号生成到安全关断的完整“武器库”。理解并正确配置这两个子模块是设计出稳定、可靠电力电子系统的基石。本文将深入拆解ePWM中死区生成器和跳闸区子模块的工作原理、配置细节以及在实际工程中的避坑指南让你不仅能看懂手册更能用得放心。2. 死区生成器DB子模块深度解析死区生成器是ePWM模块中位于动作限定器AQ之后的一个关键处理环节。它的核心任务是接收AQ输出的原始PWM信号EPWMxA_In, EPWMxB_In并对其进行延迟和极性处理最终输出一对带有安全死区、且极性符合栅极驱动器要求的互补信号EPWMxA, EPWMxB。2.1 核心功能与寄存器概览死区模块的核心功能非常明确主要围绕延迟和极性控制展开可编程边沿延迟可独立设置上升沿延迟RED和下降沿延迟FED的时长。信号极性控制能够生成多种行业标准的PWM对极性模式如主动高互补AHC、主动低互补ALC等。输入源选择灵活选择哪个输入信号EPWMxA_In 或 EPWMxB_In作为两个延迟单元的源。高分辨率模式支持半周期时钟模式将延迟分辨率提高一倍。这些功能主要通过三个寄存器进行控制DBCTL死区控制寄存器这是大脑负责配置输入模式IN_MODE、输出模式OUT_MODE、极性选择POLSEL和是否启用半周期时钟HALFCYCLE。DBRED上升沿延迟计数寄存器一个10位寄存器用于设置上升沿延迟的时钟周期数。DBFED下降沿延迟计数寄存器同样是一个10位寄存器用于设置下降沿延迟的时钟周期数。注意DBRED和DBFED寄存器是非影子寄存器。这意味着你对它们的修改会立即生效在动态调整死区时间例如基于温度或电流进行补偿时需要特别注意时序避免在PWM周期中间修改导致输出毛刺。通常安全的做法是在计数器为0TBCTR0的同步点进行更新。2.2 输入与输出模式灵活性的来源死区模块的灵活性首先体现在输入信号路径的选择上由DBCTL[IN_MODE]控制。输入模式IN_MODE解析这个配置决定了RED和FED两个延迟模块的信号来源。手册中提到了四种模式但最常用的是模式0即EPWMxA_In同时作为上升沿和下降沿延迟的源。这是最经典的用法AQ模块生成一个原始的PWM信号通常放在EPWMxA通道死区模块基于这个信号复制并延迟其边沿生成互补的EPWMxB信号。其他模式如EPWMxA_In给FEDEPWMxB_In给RED则用于更特殊的场景例如当你需要两个不对称的延迟源时。但在绝大多数桥式驱动电路中模式0足以满足需求。输出模式OUT_MODE与极性控制POLSEL这是理解死区波形如何产生的关键。OUT_MODE决定是否应用RED、FED或两者都应用。POLSEL则决定是否对延迟后的信号进行取反。手册中的表21-14列出了经典的死区工作模式。我们以最常用的两种模式为例拆解其配置和波形模式2主动高互补AHC应用场景驱动需要高电平有效的栅极驱动器且上下管信号互补。配置DBCTL[POLSEL] 1DBCTL[OUT_MODE] 1(即S31, S21)。波形生成逻辑原始信号EPWMxA_In假设为高有效PWM同时送入RED和FED模块。OUT_MODE使能了RED和FED因此会生成两个延迟信号RED_Out原始上升沿延迟后和FED_Out原始下降沿延迟后。POLSEL1意味着对RED_Out进行取反然后作为EPWMxA输出对FED_Out也进行取反然后作为EPWMxB输出。最终效果EPWMxA和EPWMxB是互补的且每个信号的开通边沿对于高有效来说是上升沿都被延迟了。这个延迟就是死区时间。EPWMxA的开通由原始信号的上升沿经RED延迟后取反变下降沿再取反为上升沿这里需要仔细推敲形成实际上更直观的理解是它是由原始信号的下降沿经FED延迟后取反得到的上升沿来开通。为了避免混淆最好的方法是结合时序图如图21-28和仿真来验证。模式4主动高AH应用场景驱动需要高电平有效的栅极驱动器但上下管信号并非严格互补可能用于半桥或某些特殊调制。配置DBCTL[POLSEL] 0DBCTL[OUT_MODE] 1。逻辑POLSEL0表示不取反。EPWMxA输出的是FED_Out即原始信号下降沿延迟后的版本EPWMxB输出的是RED_Out即原始信号上升沿延迟后的版本。两者都是高有效且它们的上升沿之间具有死区。实操心得不要死记硬背配置表。在IDE如CCS的图形化配置工具中直接选择你想要的极性模式如AHC工具会自动帮你填好OUT_MODE和POLSEL。工程师的核心任务是理解每种模式对应的物理意义和输出波形并能通过示波器验证。我习惯在项目初期用仿真器配合示波器将DB模块的所有模式都跑一遍保存下参考波形后续调试时一目了然。2.3 死区时间计算与配置实战死区时间并非随意设置它必须大于功率开关管的关断时间Turn-off time以确保在另一个管子开通前这个管子已完全关断。这个时间可以从器件的数据手册中查到。计算公式是基础死区时间 寄存器值 (DBFED/DBRED) × T_{TBCLK}其中T_{TBCLK}是时间基准时钟的周期。TBCLK来源于系统时钟VCLK3并可进行分频通常为1, 2, 4分频。例如系统时钟VCLK3 150 MHzTBCLK选择不分频即TBCLK VCLK3则T_{TBCLK} 1/150MHz ≈ 6.67 ns。 若需要设置2μs的死区时间则寄存器值应设置为DBFED 2μs / 6.67ns ≈ 300。由于寄存器是整数实际死区时间为300 * 6.67ns 2.001 μs。高分辨率模式HALFCYCLE当死区时间要求非常精细时可以启用DBCTL[HALFCYCLE]。此模式下延迟计数器以2 * TBCLK的频率运行相当于将时间分辨率提高了一倍。计算公式变为死区时间 寄存器值 (DBFED/DBRED) × T_{TBCLK} / 2这样在上例中要得到2μs死区寄存器值可设置为600实际死区时间为600 * (6.67ns/2) 2.001 μs。虽然结果一样但寄存器值变大在需要微调时步进精度更高步进值从6.67ns变为3.33ns。配置步骤示例假设我们需要为一个全桥逆变器配置AHC模式死区时间为2μs系统时钟150MHzTBCLK不分频。配置时基模块TB设置TBPRD决定PWM频率设置TBCLK分频此处为1。配置比较模块CC和动作限定器AQ生成占空比可调的原始PWM波形于EPWMxA_InEPWMxB_In可先设置为固定低或高在AHC模式下DB模块会忽略它。配置死区模块DBDBCTL[IN_MODE] 0x0EPWMxA_In作为RED和FED的共同源。DBCTL[POLSEL] 0x1选择AHC模式根据手册表21-14AHC对应POLSEL1。DBCTL[OUT_MODE] 0x3使能RED和FED根据手册S11 S01。DBCTL[HALFCYCLE] 0x0禁用半周期时钟本例精度足够。DBRED 300计算得出的上升沿延迟计数值。DBFED 300下降沿延迟计数值通常两者相等形成对称死区。验证使用示波器同时测量EPWMxA和EPWMxB引脚。观察两者是否互补且开通边沿之间是否存在约2μs的间隔死区。特别注意在占空比极小时接近0%或极大时接近100%死区可能会“吃掉”有效脉冲导致输出异常这需要在软件中做占空比限幅。3. 跳闸区TZ子模块硬件级故障保护机制如果说死区是预防性的“交通规则”那么跳闸区就是反应迅速的“安全气囊”。TZ子模块为ePWM提供了多达6路TZ1-TZ6硬件故障输入能够在不依赖CPU干预的情况下在几十个纳秒内强制改变PWM输出状态是系统安全的最后一道硬件防线。3.1 故障输入源与分类TZ子模块的输入信号来源多样覆盖了系统可能出现的多种故障TZ1, TZ2, TZ3来自GPIO复用引脚。这是最常用的外部故障输入通常连接电流采样比较器的输出、电压检测电路或驱动芯片的故障反馈信号。TZ4来自正交编码器eQEP模块的错误信号EQEP1ERR或EQEP2ERR的组合。用于电机驱动中编码器信号异常保护。TZ5连接系统时钟失效逻辑OSCFAIL或PLL Slip。用于检测时钟源异常防止控制器在异常时钟下运行。TZ6来自CPU的调试模式暂停指示。在调试器暂停CPU时可以立即关断PWM防止电机失控。这些信号都是低电平有效Active-Low。当它们被拉低时表示故障发生。3.2 两种关键的故障响应模式TZ模块对故障的响应分为两种模式对应不同的故障严重程度和恢复方式逐周期Cycle-By-Cycle, CBC模式适用场景电流限流等需要持续监控和保护的场景。例如在电机驱动中我们希望电流超过阈值时立即关断本周期的PWM但下一个PWM周期如果故障消失系统应自动恢复正常运行。工作原理当配置为CBC的故障源如TZ1触发时ePWM输出立即按照TZCTL寄存器配置的动作如强制为低执行。同时TZFLG[CBC]标志位置1并可产生中断如果使能。关键的自动恢复机制当时间基准计数器TBCTR计数到0一个PWM周期结束时硬件会自动检查故障信号是否依然存在。如果故障已消失则CBC条件被自动清除下一个周期PWM输出恢复正常。如果故障仍存在则下一个周期继续执行保护动作。配置要点通过TZSEL[CBCn]位使能特定TZn信号为CBC源。TZCTL[TZA/TZB]配置动作。单次One-Shot, OSHT模式适用场景严重故障如短路、过压、过热等。这类故障需要立即、彻底地关断PWM并且必须由软件干预确认故障排除后才能手动复位恢复。工作原理当配置为OSHT的故障源触发时ePWM输出立即执行保护动作TZFLG[OST]标志位置1并产生中断。此后输出将一直被锁定在保护状态即使故障信号已经消失。直到软件向TZCLR[OST]位写1手动清除该标志PWM输出才能恢复正常。配置要点通过TZSEL[OSHTn]位使能。通常将最严重的故障如硬件过流配置为OSHT。3.3 数字比较DC事件触发这是ePWM一个非常强大的特性。TZ模块不仅可以响应外部引脚信号还可以响应片内数字比较DC子模块产生的事件DCAEVT1/2, DCBEVT1/2。DC子模块可以将片内模拟比较器CMPSS的输出、ADC转换结果与设定值进行比较直接在硬件层面生成故障事件。这意味着什么意味着你可以实现无软件延迟的硬件逐周期限流。例如将电流采样信号接入片内比较器比较器的输出通过DC模块直接连接到TZ的CBC事件。一旦电流超限比较器翻转 - DC事件触发 - TZ模块在下一个时钟周期内强制PWM拉低。整个环路完全由硬件完成响应速度极快通常在100ns以内软件只需要在中断中处理标志位和进行故障记录即可。配置数字比较触发首先需要配置DC子模块DCTRIPSEL,TZDCSEL等寄存器选择模拟比较器输出或ADC事件作为信号源并设置触发条件大于、小于等。然后在TZ模块中通过TZSEL[DCAEVT1/2]等位将DC事件选择为CBC或OSHT的触发源。在TZCTL寄存器中可以专门为DC事件DCAEVT1等配置独立的输出动作提供了更精细的控制。3.4 故障响应动作与寄存器配置详解当故障发生时可以对每个PWM输出通道EPWMxA和EPWMxB独立配置四种动作之一通过TZCTL寄存器设置00: 高阻态High-Z将引脚置为高阻输入模式。这是最彻底的关断常用于驱动芯片使能端为高阻有效的场景。01: 强制高电平。10: 强制低电平。11: 无变化。即忽略此故障源。完整的TZ模块配置流程示例假设一个电机驱动系统要求TZ1连接硬件过流比较器作为OSHT源触发时强制所有PWM输出低。TZ2连接软件可编程的限流比较器作为CBC源触发时强制PWM输出低。DCAEVT1由另一个模拟比较器产生作为CBC源用于另一路保护。以ePWM1模块为例配置步骤如下// 1. 选择故障源和模式 (TZSEL) EALLOW; // 解除寄存器保护 EPwm1Regs.TZSEL.bit.OSHT1 1; // 使能TZ1为单次(OSHT)故障源 EPwm1Regs.TZSEL.bit.CBC2 1; // 使能TZ2为逐周期(CBC)故障源 EPwm1Regs.TZSEL.bit.DCAEVT1 1; // 使能DCAEVT1为故障源需配合DC模块配置 EPwm1Regs.TZSEL.bit.DCBEVT1 0; // 本例不使用 // ... 其他TZ信号根据需要配置 EDIS; // 2. 配置故障响应动作 (TZCTL) EALLOW; // 当OSHT故障(TZ1)或CBC故障(TZ2, DCAEVT1)发生时对EPWM1A和1B采取的动作 // 这里配置为强制低电平 (10b) EPwm1Regs.TZCTL.bit.TZA TZ_FORCE_LO; // 宏定义通常为2 EPwm1Regs.TZCTL.bit.TZB TZ_FORCE_LO; // 也可以为DCAEVT1单独配置动作如果与TZn不同 EPwm1Regs.TZCTL.bit.DCAEVT1 TZ_FORCE_LO; EDIS; // 3. 使能故障中断 (TZEINT) - 可选但强烈建议使能以便记录故障 EALLOW; EPwm1Regs.TZEINT.bit.OST 1; // 使能OSHT中断 EPwm1Regs.TZEINT.bit.CBC 1; // 使能CBC中断 EPwm1Regs.TZEINT.bit.DCAEVT1 1; // 使能DCAEVT1中断 EDIS; // 4. 在PIE中断向量表中配置EPWM1_TZINT中断服务程序(ISR) // 5. 在ISR中处理故障标志 __interrupt void epwm1_tz_isr(void) { if (EPwm1Regs.TZFLG.bit.OST 1) { // 处理单次故障严重错误 SystemErrorHandler(ERROR_OVERCURRENT); EPwm1Regs.TZCLR.bit.OST 1; // 必须手动清除OST标志才能恢复PWM EPwm1Regs.TZFRC.bit.OST 0; // 确保强制位被清除如果使用了的话 } if (EPwm1Regs.TZFLG.bit.CBC 1) { // 处理逐周期故障可能是瞬时过流 CurrentLimitCounter; EPwm1Regs.TZCLR.bit.CBC 1; // 清除CBC标志 // 注意如果故障条件在TBCTR0时已消失硬件已自动清除CBC条件。 // 此处清除的是标志位以便下次触发时能再次进入中断。 } if (EPwm1Regs.TZFLG.bit.DCAEVT1 1) { // 处理数字比较事件故障 // ... 处理逻辑 EPwm1Regs.TZCLR.bit.DCAEVT1 1; } // 清除PIE中断应答位 PieCtrlRegs.PIEACK.all PIEACK_GROUP2; }避坑指南故障恢复的陷阱OSHT与CBC标志清除的区别这是最容易出错的地方。OSHT标志 (TZFLG.OST) 必须由软件手动写1清除。而CBC标志 (TZFLG.CBC) 虽然也需软件清除以重新捕获中断但其故障条件会在TBCTR0时由硬件自动评估并复位。如果你清除了CBC标志但故障信号依然存在标志位会立刻再次被置位。中断服务程序中的耗时操作TZ中断是最高优先级的硬件保护响应。中断服务程序ISR必须极其简短只做最关键的状态记录和标志清除。绝对不要在TZ ISR中进行复杂计算、打印日志或等待操作。复杂的故障处理应放在后台循环或更低优先级任务中。软件强制故障TZFRCTZFRC寄存器允许软件模拟一个故障事件用于测试保护逻辑。测试完毕后务必将其清除否则PWM输出会一直被强制。异步跳闸AsyncTrip注意图21-35中的“AsyncTrip”路径。即使系统时钟VCLK3丢失TZn引脚上的有效低电平脉冲宽度大于3个TBCLK周期仍能触发故障保护。这确保了在最极端的时钟故障情况下硬件保护依然可能生效。4. 高级应用PWM斩波器PC子模块简介在输入资料中还提到了一个相对小众但非常有用的子模块PWM斩波器PC。它主要用于驱动脉冲变压器隔离型栅极驱动器。为什么需要斩波脉冲变压器无法传递直流或低频信号。为了通过变压器传递一个持续的“开通”状态我们需要将原始的PWM信号用一组高频脉冲载波进行调制。第一个脉冲通常需要更宽的能量来确保开关管快速开通克服米勒平台后续的脉冲则只需维持开通状态。PC模块的关键控制参数斩波频率CHPFREQ载波信号的频率。首脉冲宽度OSHTWTH第一个脉冲的宽度可独立编程16个可选值公式为T_{1stpulse} T_{VCLK3} × 8 × OSHTWTH。维持脉冲占空比CHPDUTY第二个及后续脉冲的占空比可在12.5%到87.5%之间选择7个档位。配置示例 假设VCLK3100MHz需要斩波频率为1MHz首脉冲宽度500ns维持脉冲占空比50%。载波周期 1/1MHz 1000ns。CHPFREQ需根据手册公式或查找表设置分频比使载波周期接近1000ns。首脉冲宽度 500ns。计算OSHTWTH 500ns / (10ns * 8) 6.25取整为6。查表21-17OSHTWTH6对应700ns对于100MHz或需要调整VCLK3分频以满足要求。维持脉冲占空比50%对应CHPDUTY选择4/8即50%的档位。注意事项PC模块通常用于特定的驱动电路。在使用前务必确认你的栅极驱动器是否需要此功能。错误的斩波参数尤其是首脉冲宽度不足可能导致开关管开通不充分增加开关损耗甚至引发热失效。5. 实战配置流程与调试技巧将死区DB、故障保护TZ以及核心的时基TB、比较CC、动作限定器AQ模块整合起来是一个系统工程。下面是一个典型的配置流程和调试中会遇到的问题。5.1 完整的ePWM初始化流程以全桥驱动为例时钟与引脚配置使能ePWM模块的时钟。通过GPIO MUX将EPWMxA/B引脚配置为PWM功能模式。时基模块TB配置设置TBPRD决定PWM开关频率。例如100kHz对应TBPRD (CPU_CLK / (PWM_FREQ * TBCLK_DIV)) - 1。设置TBCLK分频TBCTL[CLKDIV]和计数模式增减计数、向上计数等。配置同步输入输出EPWMxSYNCI/O如果需要多个ePWM模块同步的话。比较模块CC与动作限定器AQ配置根据调制算法如SPWM、SVPWM计算并更新CMPA和CMPB值以控制占空比。在AQ中配置CTRCMPA和CTRCMPB时的动作生成原始的互补PWM对EPWMxA_In, EPWMxB_In。通常设置EPWMxA_In在CTRCMPA时拉高CTRPRD时拉低用于上管EPWMxB_In则相反用于下管形成初始的互补信号。死区模块DB配置根据栅极驱动器数据手册和开关管关断时间计算所需的死区时间。根据驱动器要求的信号极性高有效/低有效互补/独立选择DBCTL[OUT_MODE]和[POLSEL]配置为AHC、ALC等模式。计算并设置DBRED和DBFED值。验证DBCTL[IN_MODE]是否正确通常为0即EPWMxA_In作为双延迟源。故障保护TZ模块配置根据硬件设计确定哪些故障引脚TZ1-TZ3被使用以及它们是CBC还是OSHT模式。配置TZSEL寄存器选择故障源和模式。配置TZCTL寄存器确定每个通道的故障动作强制高、低、高阻。使能所需的中断TZEINT。在软件中编写TZ中断服务程序并清除中断标志。事件触发ET模块配置可选如果需要ADC在特定的PWM时刻如计数器为0或等于CMPA时进行采样配置ETSEL和ETPS寄存器来产生EPWMxSOCA/B信号。使能PWM输出最后通过设置TBCTL[SWFSYNC]位软件强制同步或等待同步信号然后使能计数器TBCTL[CTRMODE]不为停止模式。5.2 常见问题排查与调试技巧问题PWM输出完全没有波形。检查顺序确认GPIO引脚复用是否正确配置为PWM输出功能。使用万用表测量引脚是否有电压变化。检查时基确认TB模块计数器是否在运行TBCTR值是否变化。检查TBCTL[CTRMODE]是否被设置为停止FREE_SOFT模式在仿真暂停时可能停止计数器。检查输出强制检查TZCTL寄存器是否因故障标志被意外置位而强制输出为固定电平。检查AQCSFRC或AQCSFRC寄存器是否被软件强制输出。问题死区时间不正确或没有死区。测量方法务必使用示波器的上升沿/下降沿延时测量功能直接测量互补两路PWM开通边沿之间的时间差。计算验证重新核算TBCLK频率、分频比以及DBRED/DBFED寄存器的值。确保计算时考虑了半周期时钟使能位HALFCYCLE。模式确认确认DBCTL[OUT_MODE]是否正确使能了RED和FED。如果设置为旁路模式OUT_MODE0则死区不起作用。输入信号检查如果使用非标准输入模式IN_MODE非0请确认AQ模块生成的EPWMxA_In和EPWMxB_In波形是否符合预期。问题故障保护不动作或误动作。信号电平确认故障输入引脚TZ1-TZ3的电平。TZ是低电平有效确保正常时为高电平故障时被可靠拉低持续时间3个TBCLK周期。滤波与同步检查GPIO MUX中是否为该引脚配置了数字滤波输入同步器。过短的故障脉冲可能被滤掉。根据故障信号特性调整滤波参数或考虑使用异步跳闸路径。寄存器锁定写TZ相关寄存器前必须使用EALLOW指令解除保护写完后用EDIS指令恢复保护。遗漏EALLOW/EDIS是配置失效的常见原因。中断标志在TZ中断服务程序中必须清除对应的TZFLG标志位通过写TZCLR寄存器否则中断会持续触发且OSHT故障无法恢复。软件强制检查TZFRC寄存器是否被意外置位这会导致软件强制故障状态。问题在改变占空比CMPA/CMPB时PWM输出出现毛刺或异常。影子寄存器CMPA和CMPB有影子寄存器。确保在CTR0或CTRPRD通过CMPCTL[SHDWAMODE]配置的加载点更新影子寄存器然后在下一个周期生效。在计数器中间更新活跃寄存器会导致占空比突变和毛刺。AQ动作覆盖确保在更新比较值的同时没有其他操作如软件强制AQ动作AQCSFRC干扰输出。高级调试工具CCS的寄存器实时查看在调试时实时观察TBCTR、CMPA/CMPB、TZFLG等关键寄存器的值。CPU暂停影响在调试器暂停CPU时ePWM模块的行为由TBCTL[FREE/SOFT]位决定。通常设置为FREE模式这样即使CPU暂停PWM也能继续运行避免电机失控。但在调试TZ中断时可能需要设置为SOFT模式以便单步调试。使用示波器触发利用TZ中断信号或某个GPIO引脚在ISR开始时拉高、结束时拉低来在示波器上精确捕获从故障发生到PWM被关断的硬件响应时间。这个时间对于评估保护系统性能至关重要。6. 设计考量与选型建议理解了ePWM的机制后在设计系统时还需要从更高的层面进行考量。死区时间的动态调整 在电机驱动中开关管的关断时间会随结温、集电极电流而变化。更高级的方案是动态死区补偿。可以通过软件监测温度和电流实时计算并更新DBRED和DBFED寄存器。注意这两个寄存器是非影子的更新需谨慎。一个安全的方法是在每个PWM周期的开始TBCTR0中断中进行更新。故障保护的分级与协同 不应将所有故障都设为最高优先级的OSHT。建议建立分级保护体系Level 1 (硬件CBC)由DC模块TZ CBC实现的硬件限流。响应最快100ns用于处理开关瞬间的尖峰电流。Level 2 (软件CBC)由ADC采样电流值软件比较后通过强制TZ引脚或软件强制TZFRC触发的限流。响应在几微秒级用于持续过载保护。Level 3 (OSHT)严重故障如总线过压、IGBT驱动欠压、过热等。触发后需软件干预才能复位。ePWM模块间的联动 在复杂拓扑如三相逆变器中多个ePWM模块需要协同工作。利用EPWMxSYNCI/O进行同步至关重要它能确保所有PWM模块的计数器同时从0开始保证各相之间严格的相位关系。同时一个模块的TZ事件可以通过软件或外部连线广播给其他模块实现全局故障保护。与模拟比较器CMPSS的搭配 C2000的模拟比较器子系统CMPSS是TZ模块的“最佳拍档”。CMPSS内置了可编程参考DAC可以直接与模拟信号如电流采样比较并输出数字信号到DC模块。强烈建议将关键的过流保护环路设计为电流传感器 - CMPSS - DC - TZ (CBC)。这个全硬件通路提供了无可比拟的响应速度。最后再强调一次电力电子系统的可靠性建立在每一个细节之上。ePWM的死区和故障保护功能正是将这些细节固化为可靠的硬件逻辑。吃透它们意味着你掌握了构建坚固系统底层的核心工具。在实际项目中除了阅读手册多动手实验、多测量波形、多思考异常情况下的系统行为才是将这些知识转化为可靠产品的唯一途径。