1. C2000芯片TZ模块保护机制概述
在电机驱动和电源系统设计中,过流保护是确保系统安全运行的关键环节。TI的C2000系列芯片内置的Trip-Zone(TZ)模块提供了硬件级的快速保护机制,其中CBC(Cycle-By-Cycle)逐周期限流和OSHT(One-Shot)单次触发是两种最常用的保护模式。这两种模式可以形成两级保护体系:CBC用于处理瞬时过流,允许系统自动恢复;OSHT则应对严重故障,需要人工干预才能复位。
我第一次在变频器项目中使用这个功能时,发现它比软件保护快至少5个时钟周期。硬件保护的优势在于响应时间可预测,不受程序分支或中断延迟影响。比如当IGBT出现直通故障时,从信号检测到PWM关闭的整个链路能在100ns内完成,这对保护功率器件至关重要。
TZ模块支持6个输入通道(TZ1-TZ6),每个通道可以独立配置为CBC或OSHT模式。实际项目中通常会做这样的分配:
- TZ1连接电流传感器的快速比较器输出,配置为CBC模式
- TZ2连接硬件过流检测电路,配置为OSHT模式
- 其他通道可配置为温度保护、电压保护等
2. 保护逻辑设计与寄存器配置
2.1 通道选择与模式配置
根据保护等级的不同,我们需要合理分配TZ输入通道。下面是一个典型的电机驱动配置示例:
// TZ1作为一级保护(瞬时过流),使用CBC模式 EPwm1Regs.TZSEL.bit.CBC1 = 0x01; // TZ2作为二级保护(严重故障),使用OSHT模式 EPwm1Regs.TZSEL.bit.OSHT2 = 0x01; // 定义保护动作:将PWM输出强制拉低 EPwm1Regs.TZCTL.bit.TZA = 0x02; // EPWM1A强制低电平 EPwm1Regs.TZCTL.bit.TZB = 0x02; // EPWM1B强制低电平这里有个容易踩坑的点:TZCTL寄存器中的动作模式选择。数值0x02表示强制低电平,但有些工程师会误用0x03(高阻态),这在半桥驱动中会导致上下管同时关断,可能引发母线电压尖峰。
2.2 保护动作时序分析
CBC和OSHT的核心区别在于恢复机制:
- CBC模式:当触发信号消失后,在下一个PWM周期计数器归零时自动恢复
- OSHT模式:必须手动清除TZFLG标志位才会恢复输出
实测波形显示,CBC模式的响应延迟约40ns(系统时钟50MHz时),而软件保护通常需要500ns以上。这就是为什么在200kW以上的大功率系统中,必须使用硬件保护的原因。
3. 中断系统配置实战
3.1 CBC模式的中断处理
CBC事件通常不需要使能中断,因为其自动恢复特性已经能满足瞬时保护需求。但在调试阶段,建议临时开启中断用于故障记录:
// 调试时可临时启用(正式发布时应注释掉) EPwm1Regs.TZEINT.bit.CBC = 1; // 启用CBC中断我在光伏逆变器项目中发现,当系统频繁触发CBC时,可能是控制参数需要调整。这时可以在中断中增加计数器,统计保护触发频率。
3.2 OSHT模式的中断配置
OSHT必须配置中断服务程序,否则系统将一直保持保护状态。完整的中断配置流程如下:
// 1. 使能TZ中断 EPwm1Regs.TZEINT.bit.OST = 0x1; // 2. 配置PIE中断 IER |= M_INT2; // 使能CPU级中断组2 PieCtrlRegs.PIEIER2.bit.INTx1 = 1; // 使能EPWM1_TZINT // 3. 注册中断服务程序 PieVectTable.EPWM1_TZINT = &TZ_Protect_ISR; // 4. 中断服务程序实现 interrupt void TZ_Protect_ISR(void) { EPwm1Regs.TZCLR.bit.OST = 1; // 清除OSHT标志 EPwm1Regs.TZCLR.bit.INT = 1; // 清除中断标志 PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // 应答中断 // 这里可以添加故障处理逻辑 SystemStatus.FaultFlags |= OVER_CURRENT_FAULT; }特别注意:在ISR中必须先清除OST标志再清除INT标志,否则可能导致中断重复触发。我在早期项目中就遇到过因为顺序错误导致的系统死锁问题。
4. 调试技巧与实测分析
4.1 使用示波器进行信号观测
调试TZ保护时,建议使用四通道示波器捕获以下信号:
- 通道1:PWM输出信号
- 通道2:TZ触发信号
- 通道3:电流传感器输出
- 通道4:中断引脚状态
触发方式设置为下降沿触发,触发源选择TZ信号。这样可以清晰看到保护响应的全过程。
4.2 典型故障波形分析
CBC模式正常波形特征:
- TZ信号变低后,PWM在下一个时钟周期立即被拉低
- TZ信号恢复后,PWM在TBCTR归零时自动恢复
- 整个过程不触发中断(除非特别使能)
OSHT模式异常情况处理: 当发现OSHT触发后无法恢复时,按以下步骤排查:
- 检查TZFLG寄存器的OST标志位是否被清除
- 确认中断服务程序是否被正确执行
- 测量PIEACK寄存器的应答状态
- 检查中断向量表配置是否正确
我在调试750V伺服驱动器时,曾遇到OSHT恢复异常的问题,最终发现是DSP的Flash等待状态设置不当导致的中断延迟。这类问题可以通过在ISR起始处添加IO翻转代码,用示波器测量实际响应时间。
5. 工程实践中的优化建议
5.1 保护阈值设置策略
CBC的触发阈值应该略高于正常工作电流,但低于器件安全曲线。例如:
- 额定电流:20A
- CBC阈值:25A(1.25倍)
- OSHT阈值:35A(1.75倍)
实际项目中可以通过DAC模块动态调整比较器阈值,实现自适应保护。我在智能充电桩方案中就采用这种方法,根据电池温度实时调整保护值。
5.2 系统级保护协调
TZ模块需要与其他保护机制配合使用:
- 硬件保护(TZ):纳秒级响应,处理致命故障
- 软件保护(ADC采样):微秒级响应,处理一般过载
- 看门狗定时器:监控系统运行状态
建议在PCB布局时将TZ信号走线优先布置,尽量缩短路径。某型号变频器就曾因为TZ走线过长导致保护延迟,造成IGBT损坏。
6. 常见问题解决方案
问题1:CBC保护后波形失真可能原因:PWM周期计数器未正确归零 解决方法:检查TBPRD寄存器设置,确认计数器工作在增/减计数模式
问题2:OSHT中断无法进入排查步骤:
- 确认TZEINT.OST已使能
- 检查PIE模块使能状态
- 测量TZ引脚输入电平
- 验证中断向量地址
问题3:保护动作后系统振荡典型场景:CBC阈值设置过低 优化方案:适当提高阈值或增加去抖时间 可在TZ输入前添加RC滤波(时间常数约100ns)
在完成所有调试后,建议进行压力测试:逐步增加负载电流,用热像仪监测功率器件温度,同时记录保护触发情况。最终目标是既确保系统安全,又避免不必要的保护动作影响性能。