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 寄存器协同工作流程

下图展示了三个寄存器在死区插入过程中的协同关系:

CCU8死区配置寄存器协同工作流程图 CCU8死区配置寄存器协同工作流程 CCU8_DC 死区控制寄存器 DTE = 1 使能死区插入 DTM 选择死区模式(独立/对称/单边) CCU8_DTC 设定死区时钟周期数 CCU8_PSL 定义死区窗口输出电平 配置顺序 1. 先设PSL确定被动电平 2. 再设DTC确定死区时长 3. 最后使能DC寄存器

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,可能导致死区窗口出现毛刺。