3、CCU8死区时间配置寄存器详解:CCU8_DC寄存器、CCU8_DTC寄存器、CCU8_PSL寄存器
CCU8的死区时间配置由三个核心寄存器协同完成:CCU8_DC(死区控制寄存器)、CCU8_DTC(死区时间寄存器)和CCU8_PSL(被动电平选择寄存器)。理解这三个寄存器的位域定义与配置逻辑,是实现精确死区插入的基础。
核心概念:死区时间配置的本质是控制CCU8在输出状态切换时,强制插入一段“双管均关断”的延迟窗口。DC寄存器决定死区功能的开启与模式,DTC寄存器设定延迟的时钟周期数,PSL寄存器定义死区窗口内的输出电平。
3.1 CCU8_DC寄存器:死区控制与模式选择
CCU8_DC(Dead-Time Control Register)是死区配置的“总开关”,位于每个CCU8 slice的基地址偏移 0x0C 处。该寄存器主要控制以下功能:
| 位域 | 位号 | 类型 | 描述 |
|---|---|---|---|
| DTE0 | [0] | rw | 死区使能位(通道0)。1:使能死区插入;0:旁路死区。 |
| DTE1 | [1] | rw | 死区使能位(通道1)。用法同DTE0。 |
| DTM | [3:2] | rw | 死区模式选择。00:独立死区模式(上升/下降沿分别配置);01:对称死区模式(上升/下降沿共用同一值);10:仅上升沿死区;11:仅下降沿死区。 |
| DTE | [4] | rw | 全局死区使能。必须与DTE0/DTE1配合使用。 |
| DTR0 | [5] | rw | 死区运行模式(通道0)。0:仅CC6x输出插入死区;1:CC6x和COUT6x均插入死区。 |
| DTR1 | [6] | rw | 死区运行模式(通道1)。用法同DTR0。 |
实战建议:在电机驱动应用中,通常将DTM设置为
00(独立模式),以便对开通延迟和关断延迟分别进行微调。若MOSFET/IGBT的开关特性对称,可选用01(对称模式)以节省寄存器配置空间。
3.2 CCU8_DTC寄存器:死区时间长度设定
CCU8_DTC(Dead-Time Count Register)直接决定死区窗口的持续时间,单位是CCU8的时钟周期(f_CCU8)。该寄存器包含两个独立的计数值:
| 位域 | 位号 | 类型 | 描述 |
|---|---|---|---|
| DT0 | [15:0] | rw | 通道0死区计数值。范围:0~65535。 实际死区时间 = DT0 × t_CCU8。 |
| DT1 | [31:16] | rw | 通道1死区计数值。范围:0~65535。 实际死区时间 = DT1 × t_CCU8。 |
在独立死区模式(DTM = 00)下,DT0和DT1分别对应上升沿和下降沿的死区长度。在对称模式(DTM = 01)下,仅使用DT0的值,DT1被忽略。
配置陷阱:死区计数值必须小于PWM周期计数值(CCU8_PR寄存器)。若DT0或DT1 ≥ 周期值,CCU8会进入非法状态,输出可能锁定为被动电平或产生窄脉冲。建议预留至少2~3个时钟周期的安全余量。
3.3 CCU8_PSL寄存器:被动电平与死区输出状态
CCU8_PSL(Passive State Level Register)定义了当死区插入或通道处于非活动状态时,CCU8输出引脚的电平。该寄存器直接影响死区窗口内的输出波形:
| 位域 | 位号 | 类型 | 描述 |
|---|---|---|---|
| PSL0 | [0] | rw | 通道0被动电平。0:低电平;1:高电平。 |
| PSL1 | [1] | rw | 通道1被动电平。0:低电平;1:高电平。 |
在电机驱动半桥拓扑中,PSL0和PSL1通常配置为互补关系:若上管被动电平为低(关断),则下管被动电平为高(关断),确保死区期间两管均不导通。
3.4 寄存器协同工作流程
下图展示了三个寄存器在死区插入过程中的协同关系:
3.5 典型配置代码示例
以下代码展示了在XMC4500上配置CCU8 slice 0死区参数的过程,采用独立模式,死区时间为1μs(假设CCU8时钟为120MHz):
// 假设 CCU8 时钟频率 f_CCU8 = 120 MHz, t_CCU8 ≈ 8.33 ns
// 目标死区时间:1 μs → 计数值 = 1μs / 8.33ns ≈ 120
// 步骤1:配置被动电平(上管低电平关断,下管低电平关断)
CCU8_PSL0->PSL0 = 0; // 通道0被动电平:低
CCU8_PSL0->PSL1 = 0; // 通道1被动电平:低
// 步骤2:配置死区计数值(独立模式)
CCU8_DTC0->DT0 = 120; // 上升沿死区:120个时钟周期
CCU8_DTC0->DT1 = 120; // 下降沿死区:120个时钟周期
// 步骤3:配置死区控制寄存器
CCU8_DC0->DTE0 = 1; // 使能通道0死区
CCU8_DC0->DTE1 = 1; // 使能通道1死区
CCU8_DC0->DTM = 0; // 独立死区模式
CCU8_DC0->DTE = 1; // 全局死区使能
CCU8_DC0->DTR0 = 0; // 仅CC6x输出插入死区
CCU8_DC0->DTR1 = 0; // 仅CC6x输出插入死区
调试技巧:在示波器上观察死区波形时,建议将CCU8的CC6x和COUT6x引脚同时引出。死区窗口表现为两个引脚均为被动电平(本例中为低电平)的“凹陷”区域。若死区时间过短,可观察到上下管驱动信号出现交叠尖峰;若过长,则电机相电流波形会出现明显畸变。
3.6 寄存器配置避坑清单
- 死区与周期冲突:确保
DT0 + DT1 < PR(周期寄存器值),否则CCU8可能产生非法输出。 - 被动电平极性:PSL必须与外部驱动器的逻辑匹配。若驱动器为高有效,PSL应设为0(低电平关断);若驱动器为低有效,PSL应设为1。
- 死区模式选择:在电机启动或低速重载工况下,建议使用独立模式分别调节开通和关断死区,以优化开关损耗与EMI。
- 全局使能与通道使能:必须同时设置
DTE = 1和DTE0/DTE1 = 1,死区功能才会生效。仅设置全局使能而遗漏通道使能是常见错误。 - 寄存器写入顺序:建议先配置PSL和DTC,最后配置DC寄存器。若先使能DC再修改DTC,可能导致死区窗口出现毛刺。