C2000 ePWM数字比较与事件触发模块:工业级电机与电源控制的核心保护机制

发布时间:2026/7/19 10:33:20
C2000 ePWM数字比较与事件触发模块:工业级电机与电源控制的核心保护机制 1. ePWM数字比较与事件触发模块深度解析在电机驱动、数字电源或者逆变器这类对实时性和可靠性要求极高的嵌入式控制系统中PWM波形的生成与控制是核心。德州仪器TIC2000系列微控制器中的增强型脉宽调制ePWM模块远不止是一个简单的PWM发生器。它更像一个精密的“波形控制与保护中枢”其数字比较DC与事件触发ET子模块是实现复杂保护逻辑、精准事件响应和高级控制算法的关键。很多工程师初次接触时往往只关注如何产生PWM波而忽略了这两个子模块的强大能力导致系统在应对突发故障或需要精确同步采样时显得笨拙甚至不可靠。我调试过不少电源和电机项目深刻体会到一个健壮的系统其PWM部分不仅要“会输出”更要“会感知”和“会应急”。数字比较模块就是系统的“感官神经”它能实时监测外部关键信号比如电流采样比较器的输出而事件触发模块则是“条件反射中枢”能根据预设的逻辑自动、快速地做出中断、ADC采样或强制改变PWM状态等反应。理解并熟练配置它们是从“功能实现”迈向“工业级可靠设计”的必经之路。今天我就结合TMS320F2838x的参考手册和实际项目经验把这部分内容掰开揉碎了讲清楚。2. 核心模块功能与设计思路拆解2.1 数字比较DC子模块从外部信号到内部事件数字比较子模块的核心任务是充当ePWM模块与外部数字世界之间的“翻译官”和“哨兵”。它的输入源非常灵活主要包括专用的故障输入引脚TZ1, TZ2, TZ3通常直接连接硬件故障信号如过流、过温、驱动芯片的故障输出等支持异步快速关断响应速度极快。通过输入X-BAR和ePWM X-BAR路由而来的各种数字信号这是其“增强型”能力的体现。你可以将片上模拟比较器模块CMPSS的输出、外部中断信号、甚至其他外设的错误标志如CLOCKFAIL, ECCDBLERR路由进来。这些输入信号被映射为四路核心比较信号DCAH数字比较A高、DCAL数字比较A低、DCBH数字比较B高、DCBL数字比较B低。这里的“高/低”并非指电平而是指比较条件。例如你可以配置当CMPSS1的输出为高时触发DCAH信号当某个GPIO输入为低时触发DCAL信号。关键设计思路DCA和DCB两套信号是独立且并行的这允许你对EPWMxA和EPWMxB两个输出通道进行独立且差异化的保护和事件控制。例如在H桥驱动中你可以用DCA事件管理上半桥的故障响应用DCB事件管理下半桥。这些原始的DCAH/L和DCBH/L信号经过事件限定逻辑会生成四路内部事件DCAEVT1, DCAEVT2, DCBEVT1, DCBEVT2。这四路事件就是后续所有动作的“扳机”。你可以配置事件是电平有效还是边沿有效这为不同特性的故障信号处理提供了灵活性。2.2 事件触发ET子模块精细化的事件调度器事件触发子模块是ePWM的“定时任务管理器”。它接收来自三个地方的事件时间基准TB子模块如计数器等于零CTR0、计数器等于周期值CTRPRD。计数比较CC子模块如计数器等于CMPA/CMPB/CMPC/CMPD并可区分递增和递减计数方向。数字比较DC子模块即上文提到的DCAEVT1.soc和DCBEVT1.soc事件。ET模块的核心能力在于预分频Prescale。它允许你设定一个“事件计数器”和一个“周期值”。例如你可以配置为“每3次CTRCMPA事件才产生一次中断”。这对于降低CPU中断负载、或在特定循环序列中触发动作至关重要。它管理两种主要输出中断EPWMxINT通知CPU进行软件处理。ADC启动转换EPWMxSOCA/B直接硬件触发ADC采样实现PWM周期内特定时刻如PWM波峰或波谷的精准采样这对于电流环控制等应用是必不可少的。2.3 故障保护Trip-Zone子模块系统的紧急制动故障保护子模块是系统的最后一道硬件防线。它接收两类故障事件直接故障输入TZ1-TZ6这些是专用的、低延迟的硬件故障路径。来自数字比较模块的强制事件DCAEVT1/2.force, DCBEVT1/2.force这实现了基于逻辑条件的软件可配置故障。故障动作分为两种模式这是理解保护逻辑的关键单次触发One-Shot, OSHT一旦触发PWM输出将被强制到一个安全状态如高、低、高阻并且锁存。除非软件主动清除故障标志否则输出将一直保持安全状态。适用于过流、短路等严重且需要人工干预的故障。周期循环Cycle-by-Cycle, CBC在每个PWM周期开始时自动清除故障状态。如果故障条件在当前周期内再次发生则会再次动作。适用于峰值电流限制等需要逐周期进行动态保护的应用。3. 核心细节解析与实操要点3.1 数字比较事件路径与优先级深度剖析数字比较事件如何影响最终的PWM输出其路径和优先级是配置时的重中之重。以EPWMxA通道为例其最终输出受多层控制外部信号 (e.g., CMPSS, GPIO) - 输入X-BAR - DCAH/DCAL信号 - DCAEVT1/2事件 - 动作生效于EPWMxA对EPWMxA输出引脚的控制存在一个明确的优先级顺序从高到低TZA来自直接故障引脚TZx的强制动作通过TZCTL[TZA]配置。DCAEVT1.force来自数字比较事件1的强制动作通过TZCTLDCA[DCAEVT1U/DCAEVT1D]配置。DCAEVT2.force来自数字比较事件2的强制动作通过TZCTLDCA[DCAEVT2U/DCAEVT2D]配置。实操要点这个优先级意味着如果你同时使能了TZ1的故障保护和DCAEVT1的强制拉高当两者同时发生时TZ1的配置比如强制拉低会覆盖DCAEVT1的动作。这在设计冗余保护时必须仔细考量。通常最紧急、最严重的故障如硬件直通短路应分配给最高优先级的TZ引脚。3.2 事件滤波空白窗口的实战意义与配置陷阱事件滤波或称空白窗口Blanking Window是数字比较模块中一个极其重要但容易用错的功能。它的目的是在PWM周期的特定时间段内暂时屏蔽数字比较事件以防止噪声或开关毛刺引起误触发。典型应用场景在同步Buck或逆变器桥臂中功率管开关瞬间会产生巨大的电压电流尖峰和噪声。如果此时模拟比较器正在采样电流其输出很可能产生一个短暂的误触发脉冲。如果不加处理这个脉冲会被数字比较模块捕获导致PWM被错误关断。空白窗口的配置涉及三个关键寄存器DCFCTL[PULSESEL]选择空白窗口的同步基准源通常是CTRPRD或CTR0即每个PWM周期的开始点。DCFOFFSET设置从同步基准点之后延迟多少个TBCLK时钟周期才开始空白窗口。DCFWINDOW设置空白窗口持续的TBCLK周期数。一个必须警惕的陷阱手册中明确警告必须确保故障输入信号在空白窗口结束后至少保持3个ePWM时钟周期TBCLK的有效时间。这是因为内部同步逻辑需要时间采样和锁存信号。如果信号脉宽太窄3*TBCLK即使在窗口外有效也可能无法被可靠捕获导致保护失灵。因此在设计比较器电路或故障信号生成逻辑时必须保证信号的脉冲宽度。3.3 周期循环CBC保护与比较器锁存的协同设计在峰值电流模式控制等应用中我们使用CBC保护来逐周期限制峰值电流。这里有一个经典的“故障残留”问题。问题描述假设CMPSS比较器在PWM周期末尾靠近CTRPRD时触发了一个跳变。这个信号经过数字滤波器CMPSS内部或ePWM的DC模块会产生N个时钟周期的延迟。如果这个被延迟的、有效的故障信号在周期结束时仍未消失它会被锁存并带入下一个PWM周期。导致新周期一开始PWM输出就被错误地强制为保护状态。解决方案基于手册26.11.3节系统设计规避确保你的控制环路和硬件参数使得比较器触发点不会过于接近周期末尾。这需要仔细的仿真和裕量计算。利用ePWM空白窗口在周期结束前至少2个TBCLK启动空白窗口并持续到下一个周期开始后至少N个TBCLK。这样就能“覆盖”掉周期末可能出现的毛刺和延迟信号。使用CMPSS锁存与软件/硬件清零如果使用了CMPSS的锁存输出COMPxLATCH可以在每个周期结束前至少N个TBCLK通过软件写COMPSTSCLR寄存器或硬件利用ePWM生成的PWMSYNCPER信号将其清零从而确保每个周期都从“干净”的状态开始。实操心得在调试峰值电流控制时如果发现波形在启动或负载突变时偶尔出现异常关断首先应该怀疑的就是CBC故障残留问题。用示波器同时观察比较器输出、PWM输出和电流波形并检查空白窗口和锁存清零的配置时序。4. 完整配置流程与核心环节实现下面我将通过一个完整的电机相电流过流保护与同步采样的实例串联起DC、ET和TZ模块的配置。场景是使用CMPSS1监控电机U相下桥臂电流当其超过阈值时通过数字比较产生CBC保护并同时触发ADC对三相电流进行同步采样。4.1 系统初始化与GPIO/X-BAR配置这是所有工作的基础顺序错误可能导致启动瞬间的误触发。void EPWM_DC_ET_Init(void) { // 步骤1: 禁用ePWM模块时钟防止误操作 SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_EPWM1); // 步骤2: 配置GPIO引脚复用为ePWM和CMPSS功能 // 假设GPIO0为EPWM1A, GPIO1为EPWM1B, GPIO2为CMPSS1输出 GPIO_setPinConfig(GPIO_0_EPWM1_A); GPIO_setPinConfig(GPIO_1_EPWM1_B); GPIO_setPinConfig(GPIO_2_CMPSS1_OUT); // 步骤3: 配置输入X-BAR将CMPSS1输出路由到ePWM X-BAR的某个输入 // 假设将CMPSS1.HOUT映射到INPUT X-BAR的INPUT5 InputXbar_configureInput(INPUTXBAR_BASE, INPUT5, INPUT5_SRC_CMPSS1_HOUT); // 再将INPUT X-BAR的INPUT5连接到ePWM X-BAR的TRIP4作为数字比较源 EPWM_configureTripCombinationInput(EPWM1_BASE, EPWM_TRIP_COMBINATION_INPUT4, EPWM_TRIP_INPUT_SOURCE_INPUTXBAR5); // 步骤4: 现在才使能ePWM模块时钟 SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_EPWM1); // 等待时钟稳定 DEVICE_DELAY_US(10); }注意手册特别强调必须先配置好GPIO和X-BAR最后再使能ePWM的Trip-Zone功能。如果顺序颠倒在配置X-BAR的瞬间输入信号的电平跳变可能被误认为是一个有效的故障事件导致系统意外进入保护状态。4.2 数字比较DC子模块配置我们将配置TRIP4来自CMPSS1作为数字比较A高DCAH事件的源并启用事件滤波。void configureDigitalCompare(EPWM_Handle epwmHandle) { uint32_t base EPWM_getBaseAddr(epwmHandle); // 步骤1: 选择数字比较事件的信号源 // 将ePWM X-BAR的TRIP4分配给DCAH数字比较A高事件 EPWM_selectDigitalCompareTripInput(base, EPWM_DC_TRIP_TRIP4, EPWM_DC_TYPE_DCAH); // 配置DCAH为高电平有效当CMPSS1输出高时认为条件满足 EPWM_setDigitalCompareEventSource(base, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_TRIP_HIGH); // 步骤2: 配置事件滤波空白窗口 // 使能DCAEVT1的事件滤波功能 EPWM_enableDigitalCompareEventFilter(base, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1); // 设置空白窗口的同步源为CTRPRD每个PWM周期开始 EPWM_setDigitalCompareFilterEventSource(base, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_WINDOW_START_SOURCE_PERIOD); // 设置偏移量在CTRPRD后延迟10个TBCLK再开始空白窗口 EPWM_setDigitalCompareFilterOffset(base, EPWM_DC_MODULE_A, 10); // 设置空白窗口持续时间为20个TBCLK EPWM_setDigitalCompareFilterWindow(base, EPWM_DC_MODULE_A, 20); // 注意根据之前的分析需要确保故障信号在窗口外持续至少3个TBCLK // 步骤3: 配置DCAEVT1事件的动作 // 将DCAEVT1配置为周期循环CBC故障源 EPWM_enableTripZoneSignals(base, EPWM_TZ_SIGNAL_DCAEVT1, EPWM_TZ_ACTION_CBC); // 配置当DCAEVT1 CBC故障发生时强制EPWM1A输出低电平关断上管 EPWM_setTripZoneAction(base, EPWM_TZ_ACTION_EVENT_DCAEVT1, EPWM_TZ_OUTPUT_A, EPWM_TZ_OUTPUT_LOW); // EPWM1B的动作可以根据需要独立配置例如也拉低或高阻 EPWM_setTripZoneAction(base, EPWM_TZ_ACTION_EVENT_DCAEVT1, EPWM_TZ_OUTPUT_B, EPWM_TZ_OUTPUT_HIGH_Z); }配置逻辑解析信号路由将CMPSS1的输出经过两级X-BAR最终映射为ePWM1模块内部的DCAH信号。事件定义定义当DCAH信号为高时产生DCAEVT1事件。噪声抑制在PWM周期开始后的10-30个TBCLK时钟内空白窗口忽略任何DCAEVT1事件。这覆盖了功率管开关的噪声期。保护动作将DCAEVT1事件配置为CBC故障并指定其动作为强制EPWM1A输出低安全状态。这是一个典型的逐周期过流保护。4.3 事件触发ET子模块配置我们希望当DCAEVT1事件发生时即电流超限不仅能触发保护动作还能同步启动ADC采样记录故障发生时的电流值。void configureEventTrigger(EPWM_Handle epwmHandle) { uint32_t base EPWM_getBaseAddr(epwmHandle); // 步骤1: 配置ADC启动转换SOC事件 // 选择DCAEVT1.soc作为SOCA的触发源 EPWM_setADCTriggerSource(base, EPWM_SOC_A, EPWM_SOC_DCAEVT1); // 配置SOCA为单次触发模式每个DCAEVT1事件触发一次ADC转换 EPWM_setADCTriggerEventPrescale(base, EPWM_SOC_A, 1); // 每1个事件触发一次 // 使能SOCA触发 EPWM_enableADCTrigger(base, EPWM_SOC_A); // 步骤2: 配置中断事件可选用于故障记录 // 我们也可以选择在DCAEVT1事件发生时产生中断用于软件记录故障次数等 EPWM_enableTripZoneInterrupt(base, EPWM_TZ_INTERRUPT_DCAEVT1); // 设置中断事件预分频每发生1次DCAEVT1事件就产生一次中断 EPWM_setInterruptEventCount(base, 1); // 选择中断事件源为DCAEVT1 // 注意这里的中断源是TZ子模块的DCAEVT1中断与ET子模块的中断不同源但关联 // 更常见的做法是在TZ中断服务程序里处理这里仅为示例 }配置逻辑解析ADC同步采样将DCAEVT1事件链接到SOCA。一旦电流超限DCAEVT1发生硬件会立即发出一个ADC启动脉冲无需CPU干预。这保证了采样时刻与故障时刻的严格同步对于事后分析至关重要。中断处理使能了DCAEVT1的Trip-Zone中断。中断发生时可以在中断服务程序ISR中清除故障标志、增加故障计数器或执行更复杂的恢复逻辑。注意CBC故障通常不需要在每次发生时都进中断以免中断过于频繁。这里使能主要用于严重故障统计或首次故障记录。4.4 故障保护Trip-Zone子模块的完整配置综合以上配置并补充TZ直接引脚的配置。void configureTripZone(EPWM_Handle epwmHandle) { uint32_t base EPWM_getBaseAddr(epwmHandle); // 配置直接故障引脚 TZ1 (假设接硬件紧急故障如驱动芯片FAULT) // 将TZ1配置为单次触发OSHT源 EPWM_enableTripZoneSignals(base, EPWM_TZ_SIGNAL_OSHT1, EPWM_TZ_ACTION_OSHT); // 配置TZ1触发时强制两个PWM输出都为低安全状态 EPWM_setTripZoneAction(base, EPWM_TZ_ACTION_EVENT_TZ1, EPWM_TZ_OUTPUT_A, EPWM_TZ_OUTPUT_LOW); EPWM_setTripZoneAction(base, EPWM_TZ_ACTION_EVENT_TZ1, EPWM_TZ_OUTPUT_B, EPWM_TZ_OUTPUT_LOW); // 使能TZ1中断用于通知CPU发生了不可自恢复的严重故障 EPWM_enableTripZoneInterrupt(base, EPWM_TZ_INTERRUPT_OSHT1); // 数字比较故障DCAEVT1的CBC配置已在configureDigitalCompare中完成 // 此处需要使能其Trip-Zone中断如果之前没在ET配置中使能 EPWM_enableTripZoneInterrupt(base, EPWM_TZ_INTERRUPT_DCAEVT1); // 配置故障引脚极性假设TZ1低电平有效 EPWM_setTripZoneInputPolarity(base, EPWM_TZ_INPUT_1, EPWM_TZ_POLARITY_ACTIVE_LOW); // 最后使能整个Trip-Zone模块 EPWM_enableTripZone(base); }配置总结TZ1 (OSHT)硬件紧急故障锁存式保护最高优先级。用于处理必须停机检查的严重故障。DCAEVT1 (CBC)软件逻辑故障电流超限逐周期保护可自动恢复。用于处理动态的、可容忍的瞬时过流。动作优先级TZ1的动作会覆盖DCAEVT1的动作符合安全设计原则。5. 常见问题与排查技巧实录在实际调试中ePWM的DC和ET模块配置灵活也容易遇到一些隐蔽的问题。下面是我在项目中踩过的一些“坑”及解决方法。5.1 问题一故障保护完全无反应PWM输出不受控现象配置了数字比较和故障保护但模拟比较器输出有效信号时PWM输出毫无变化。排查步骤检查时钟与使能确认ePWM模块的时钟PCLKCR已使能并且时间基准计数器TBCTR正在运行。一个静止的计数器不会产生任何周期事件很多逻辑依赖于此。验证信号通路这是最复杂的一环。使用CCS的寄存器观察窗口或实时调试功能。首先检查GPIOxDAT寄存器确认输入引脚的电平是否随外部信号变化。检查输入X-BAR选择寄存器INPUTxSELECT确认GPIO引脚是否正确映射到了预期的INPUT通道。检查ePWM X-BAR配置确认INPUT信号是否路由到了正确的TRIP输入如TRIP4。在DC模块中检查DCTRIPSEL寄存器确认TRIP输入是否被选为DCAH/DCAL等信号的源。检查TZDCSEL寄存器确认DCAH/L信号是否被正确限定以生成DCAEVT1事件。最后检查TZFLG寄存器。当故障条件满足时对应的CBC或OST标志位应该被置1。如果标志位没变化说明故障信号在到达TZ模块前就已经丢失。检查动作配置确认TZSEL寄存器已使能对应事件DCAEVT1作为CBC或OST源。确认TZCTL或TZCTLDCA寄存器已配置了非“忽略Ignore”的动作如强制高、低、高阻。技巧可以软件强制故障来隔离问题。通过写TZFRC寄存器的对应位如TZFRC[DCAEVT1]可以手动产生一个故障事件。如果强制后PWM能按预期动作说明TZ模块本身的配置是正确的问题出在前端的信号通路或事件生成逻辑。5.2 问题二ADC SOC触发不稳定或时机不对现象配置了由DCAEVT1触发SOCA但ADC有时不转换或转换时刻飘忽不定。排查步骤确认事件源检查ETSEL[SOCASEL]寄存器确保选择的是DCAEVT1.soc而不是其他事件。检查预分频与计数器这是最常见的原因。重点检查ETPS[SOCACNT]和ETPS[SOCAPRD]。SOCAPRD不能为0如果设为0SOC发生器是被禁用的永远不会触发。必须设为1每个事件触发或更大。理解计数器逻辑SOCACNT会在每个选择的DCAEVT1.soc事件时递增。当SOCACNT SOCAPRD时才会产生一个SOC脉冲并且SOCACNT被清零。如果SOCAPRD2那么是每2个事件触发一次。如果你的故障事件只发生了一次SOCACNT从0加到1不等于2所以不会触发SOC。你需要检查SOCACNT的当前值。检查空白窗口冲突如果DCAEVT1事件发生在你为它配置的空白窗口内该事件会被过滤掉自然不会产生DCAEVT1.soc信号。检查DCFOFFSET和DCFWINDOW的设置是否不合理地覆盖了故障发生的实际时间点。检查ADC模块配置确保ADC的SOCA通道已正确配置并且ADC模块已使能不在复位状态。技巧使用ETFRC[SOCA]位进行软件强制。在调试时手动置位此位观察ADC是否能正常启动转换。这可以快速判断是ePWM的SOC生成逻辑问题还是ADC接收端的问题。5.3 问题三周期循环CBC故障无法自动清除输出持续被钳位现象电流超限触发CBC保护后即使故障信号已消失PWM输出在下一个周期仍然保持被钳位的安全状态没有恢复。排查步骤确认是CBC模式检查TZSEL[CBCx]位是否已使能对应的事件源如DCAEVT1。检查CBC锁存清除条件CBC锁存会在每个PWM周期开始时当TBCTR0或TBCTRPRD时取决于TZCLR[CBCPULSE]的配置自动清除。确保你的时间基准模块工作在递增计数UP或上下计数UP-DOWN模式。如果工作在冻结模式计数器不运行CBC锁存永远不会被自动清除。检查故障信号脉宽回顾之前提到的“故障残留”问题。如果故障信号或经过滤波延迟后的信号在周期清除点CTR0时仍然有效那么清除动作会失效锁存状态会保持到下一个周期。用示波器或CCS的图形工具同时捕获比较器输出和TBCTR的值观察时序关系。检查TZ标志位在ISR或主循环中需要软件清除CBC故障标志TZFLG[CBC]。虽然CBC动作是硬件自动恢复的但标志位需要软件清除否则可能影响后续中断触发。使用TZCLR[CBC]来清除它。一个隐蔽的坑如果你同时使能了多个CBC源例如TZ1和DCAEVT1那么任何一个CBC源有效都会导致CBC动作。你必须确保所有CBC源的条件都已解除并且清除了所有对应的TZFLG[CBCx]标志PWM输出才会恢复正常。5.4 配置检查清单与调试建议为了避免低级错误在完成配置后可以按照以下清单快速核对检查项相关寄存器/位预期状态ePWM模块时钟使能PCLKCR0/2对应EPWMx位1TBCTR在运行TBCTL[CTRMODE]非00冻结模式GPIO复用正确GPxMUX, GPxDIR对应引脚配置为外设功能X-BAR路由正确INPUTxSELECT, EPWM X-BAR配置信号源-INPUT-TRIP路径畅通DC事件源选择DCTRIPSEL, DCAHTRIPSEL等正确选择了TRIP输入DC事件限定TZDCSELDCAH/L等信号能生成EVT事件滤波配置DCFCTL, DCFOFFSET, DCFWINDOW偏移和窗口值合理未覆盖有效事件区TZ事件使能TZSEL[CBCx], TZSEL[OSHTx]对应事件源已使能TZ动作配置TZCTL, TZCTLDCA/DCB动作非“忽略”(3)ET事件源选择ETSEL[INTSEL], ETSEL[SOCASEL]选择了正确的事件ET预分频配置ETPS[INTPRD], ETPS[SOCAPRD]值不为0符合预期分频中断使能与标志TZEINT, ETFLG, ETCLR中断已能标志位能正确置位/清除调试建议分步调试不要一次性配置所有复杂功能。先配置基本的PWM输出然后逐步添加数字比较、事件触发、故障保护。善用强制功能TZFRC和ETFRC寄存器是你的好朋友。在硬件信号难以模拟时用软件强制产生事件可以高效地验证后续逻辑是否正确。可视化工具充分利用CCS的寄存器观察窗口、内存浏览器以及更高级的实时变量跟踪和图形显示功能直观地观察TBCTR、CMPA、故障标志等关键变量的变化。双通道示波器永远是硬件调试的利器。一个通道看PWM输出另一个通道看故障输入信号或比较器输出可以一目了然地看清时序问题。我个人在多个大功率电机驱动项目上应用了这套配置。最深的一点体会是保护逻辑的可靠性比控制性能的极致更重要。一次误保护可能导致停机但一次保护失灵则可能导致炸机。因此在配置数字比较和故障保护时一定要反复推敲时序考虑最坏情况并充分利用空白窗口、滤波和优先级机制来构建一个既灵敏又抗干扰的“安全网”。例如对于关键的硬件故障如IGBT去饱和检测我通常会同时使用硬件TZ引脚最高优先级OSHT模式和经过软件滤波的数字比较路径CBC模式进行双重保护确保万无一失。