1. 项目概述与核心价值
在开关电源的设计与调试中,数字脉冲宽度调制(DPWM)模块的性能直接决定了系统的效率、动态响应和可靠性。它不再是简单的“开”和“关”,而是一个集成了精密时序控制、多模式切换和多重保护机制的复杂数字系统。德州仪器(TI)的UCD31xx系列数字电源控制器,以其高度集成的DPWM模块,成为了中高功率密度电源设计的首选。然而,面对动辄上百页的技术手册和数十个功能交叠的寄存器,很多工程师在初次接触时都会感到无从下手,配置过程往往伴随着反复试错和潜在的风险。
本文旨在剥开UCD31xx DPWM模块的技术外壳,直击其核心运作机制。我们将不仅仅罗列寄存器位域,而是深入探讨PWM计数器这个“心脏”是如何跳动的,周期寄存器(PERIOD)的设定背后有哪些容易被忽略的细节,以及最为关键的逐周期电流限制(CBC)保护是如何在纳秒级时间内守护功率开关管安全的。理解这些底层逻辑,能帮助你在设计LLC谐振变换器、相移全桥(PSFB)或交错式PFC时,不再是机械地拷贝参考代码,而是能够根据实际拓扑和性能需求,自信地进行寄存器配置和优化,从而构建出既高效又坚固的电源系统。
2. DPWM核心架构与计数器工作机制
要驾驭DPWM,首先必须理解其最基础的计时单元——PWM计数器。它是所有DPWM时序事件的源头和基准。
2.1 PWM计数器:看不见的引擎
在UCD31xx中,PWM计数器是一个18位宽的上数计数器,但其行为有些特殊。你无法通过直接读取某个寄存器来获取其当前计数值,它是一个纯粹的“幕后工作者”。计数器的时钟源由系统时钟分频而来,其每个计数周期代表一个时间基准(例如4纳秒)。计数器从0开始,在每个时钟沿递增,直到达到一个由周期寄存器(DPWMPRD)定义的阈值,然后立即复位到0,并开始下一个周期。
这里有一个至关重要的细节:当计数器达到周期寄存器(PERIOD)的值时,它会在下一个时钟周期复位到0。这意味着,一个完整的PWM周期所经历的计数时钟周期数实际上是PERIOD + 1。例如,你将PERIOD寄存器设置为2499,期望的PWM周期可能是2500 * 4ns = 10μs(对应100kHz开关频率)。实际上,计数器会计数0, 1, 2, ..., 2499,然后在计到2499后的下一个时钟沿复位,总共经历了2500个计数状态。因此,实际周期是(2499 + 1) * 4ns = 10μs。虽然在大多数计算中,这个“+1”的误差可以忽略,但在进行极高精度的频率计算或与其他同步系统对接时,心里必须有这根弦。
实操心得:在初始化代码中计算PERIOD寄存器值时,我习惯使用公式
PERIOD = (Desired_Switching_Period / Clock_Period) - 1。例如,目标开关频率为250kHz(周期4μs),时钟周期为4ns,则PERIOD = (4000ns / 4ns) - 1 = 999。这样写代码意图更清晰,避免了后续调试时的概念混淆。
2.2 高分辨率模式:突破时间粒度限制
标准的DPWM时间分辨率受限于其核心时钟(例如4ns)。对于追求极致效率的先进拓扑(如GaN FET应用的LLC),这可能导致可实现的开关频率有限,或占空比调节不够精细。UCD31xx通过高分辨率(High-Resolution)模式打破了这一限制。
尽管周期寄存器(DPWMPRD)只有14位,但PWM计数器内部实则拥有18位。其秘诀在于将每个4ns的基础时钟周期进一步细分为16个区间,每个区间约250皮秒(ps)。这额外的4位就是高分辨率位。当启用高分辨率模式(通过DPWMCTRL1中的HIRES_DIS=0及相关位配置)后,事件寄存器(如DPWMEV1, EV2等)和周期调整寄存器(DPWMCYCADJ)就可以利用这250ps的分辨率进行设置,从而实现对PWM边沿位置的超精密控制。
注意事项:高分辨率模式的启用需要配合
PWM_HR_MULT_OUT_EN、HIRES_SCALE和ALL_PHASE_CLK_ENA等位的正确设置。一个常见的坑是,在非多模式(Multi Mode)下误开启了PWM_HR_MULT_OUT_EN,可能导致DPWM输出异常。我的经验是,除非明确需要在多模式下进行高分辨率相位调整,否则将此位保持为0。
2.3 同步(Sync)机制:多相系统的节拍器
在交错式Boost PFC、多相Buck等需要多个DPWM通道协同工作的系统中,同步机制至关重要。UCD31xx的每个DPWM模块既可以作为主设备(Master)发出同步信号,也可以作为从设备(Slave)接收同步信号。
- 主模式同步:通过DPWMCTRL0的
MASTER_SYNC_CNTL_SEL位选择同步信号的来源。通常设置为0,表示同步延迟由相位触发寄存器(DPWMPHASETRIG)控制。该寄存器定义了从本DPWM周期开始,到发出同步脉冲之间的延迟时间(以4ns为单位)。这允许你精确设置多个DPWM通道之间的相位差。 - 从模式同步:通过设置DPWMCTRL0的
MSYNC_SLAVE_EN位,并配置DPWMMUX寄存器中的DPWMx_SYNC_SEL位来选择同步源(例如来自DPWM0),即可使该DPWM模块成为从设备。当接收到主设备的同步脉冲时,从设备的PWM计数器会立即复位并开始新的周期。
这里有一个关键时序问题:同步信号接收的时机。技术手册指出,如果同步信号恰好在一个PWM周期结束时到达,系统运行会非常平滑。但如果同步信号在周期中间到达,它会立即复位计数器并重启整个周期。这会导致当前周期被意外截断,下一个周期提前开始。
避坑指南:这种“周期重启”效应可能引发次谐波振荡或电流不平衡。在设计多相系统时,必须确保主从DPWM的周期设置完全一致,并且主设备发出的同步信号能够稳定地在从设备周期的末尾被捕获。必要时,可以稍微增加从设备的周期值(如增加1-2个计数时钟),利用DPWM内部的同步逻辑容限来避免周期中段的同步触发。我曾在一个四相交错Buck项目中,因为主从周期寄存器值细微不同(一个为999,一个为1000),导致从设备偶尔在周期70%的位置被同步,输出电流出现低频纹波,调试了很久才定位到这个同步时序问题。
3. 核心控制寄存器DPWMCTRL0深度解析
DPWMCTRL0是配置DPWM行为的核心寄存器之一,包含了模式选择、输出控制、关键保护功能的使能等。理解其中每一位的作用,是进行可靠配置的基础。
3.1 工作模式选择(PWM_MODE)
PWM_MODE位域决定了DPWM的基本工作模式,它直接影响了事件寄存器(EV1-EV4)的解释方式以及DPWMA/B输出的波形关系。UCD31xx主要支持以下几种模式:
| 模式值 | 模式名称 | 典型应用 | DPWMA/B 关系 |
|---|---|---|---|
| 0 | 正常模式 (Normal) | 硬开关全桥、半桥、Buck、Boost | 互补输出,带死区 |
| 1 | 多模式 (Multi) | 相移全桥 (PSFB) | 两个独立脉冲,相位可调 |
| 2 | 谐振模式 (Resonant) | LLC谐振变换器 | 频率调制,固定或可变占空比 |
| 4 | 双沿模式 (Dual Edge) | 用于特定调制 | 两个边沿均可调制 |
模式选择的影响:
- 正常模式:EV1定义DPWMA的上升沿,EV2定义DPWMA的下降沿(即开通时间),EV3和EV4则用于定义DPWMB的上升沿和下降沿,两者之间的差值即为死区时间。这是最常用的模式。
- 谐振模式:在此模式下,DPWM的周期不再固定,而是由滤波器(Filter)的输出动态决定,用于实现变频控制。EV1和EV2通常用于设置最小和最大导通时间限制或死区。
配置要点:在初始化时,应��先确定拓扑所需模式并设置
PWM_MODE。后续对事件寄存器的配置必须基于所选模式的理解。例如,在正常模式下将EV2设置为大于周期值是没有意义的,但在谐振模式下,EV2可能被用作最大导通时间限制,其值可以接近动态变化的周期值。
3.2 逐周期电流限制(CBC)保护机制
这是DPWMCTRL0中最关键的保护功能配置区。逐周期电流限制(Cycle-By-Cycle Current Limit)是一种高速硬件保护机制,当电流采样值超过设定阈值时,能在当前开关周期内立即关闭驱动信号,防止功率器件过流损坏。
DPWMCTRL0中与CBC相关的使能位包括:
CBC_PWM_AB_EN:使能DPWMA和DPWMB的CBC保护。CBC_PWM_C_EN:使能DPWMC(如果存在)的CBC保护。CBC_ADV_CNT_EN:高级计数使能,与CBC_PWM_AB_EN配合,用于控制CBC事件对DPWMB的影响方式。CBC_BSIDE_ACTIVE_EN:B侧主动使能,仅在谐振/多模式下用于占空比匹配。CBC_SYNC_CUR_LIMIT_EN:同步电流限制使能,用于在CBC事件时提前从设备同步信号(目前拓扑中较少使用)。
不同模式下的CBC行为逻辑:
正常模式(Normal Mode):
- 仅有
CBC_PWM_AB_EN置位:当CBC事件触发时,DPWMA会立即拉低(提前关断)。DPWMB的上升沿(开通时刻)会向前移动相同的时间量,以保持预设的死区时间。这意味着DPWMB会提前开通。 CBC_PWM_AB_EN与CBC_ADV_CNT_EN同时置位:这是最常用的配置。CBC事件触发时,DPWMA立即拉低,同时DPWMB的下降沿(关断时刻)也会向前移动相同量,从而同时缩短A和B的脉冲宽度,但保持两者之间的相位关系(死区)不变。这对于保护桥式电路的上管和下管至关重要。- 负死区时间情况:在正常模式下也支持负死区(即DPWMB的上升沿早于DPWMA的下降沿)。CBC逻辑会保持这个负死区。触发CBC时,会先产生DPWMB的上升沿,待负死区时间结束后,再产生DPWMA的下降沿。
- 仅有
谐振/多模式(Resonant/Multi Mode): 在这些对称拓扑中,有时需要保证DPWMA和DPWMB被CBC事件缩短的导通时间相等,以防止变压器偏磁或电容电压偏移。这时就需要用到占空比匹配(Duty Match)功能。
CBC_PWM_AB_EN=1,CBC_ADV_CNT_EN=1,CBC_BSIDE_ACTIVE_EN=0:CBC作用于A,并且B的占空比会去匹配A被缩短后的值。- 三个位全部置1:CBC同时作用于A和B,并且两者互相进行占空比匹配。
CBC消隐时间(Blanking Time)的必须性: 技术手册中特别警告:CBC电流限制保护可能会在用户定义的脉冲宽度之前终止PWM脉冲。因此,强烈建议在事件更新窗口(对于UCD3138是72ns)内通过实现CBC消隐时间来禁用CBC保护。
核心经验:不配置消隐时间(Blanking Time)是导致CBC误触发的头号原因。在开关管开通瞬间,电流采样电路通常会有一个尖峰噪声。如果此时CBC保护是使能的,这个噪声尖峰很容易误触发保护,导致脉冲被异常切断。我的标准做法是,在DPWMCTRL0中使能
BLANK_A_EN和BLANK_B_EN,并在对应的消隐寄存器(如DPWMBLKABEGIN和DPWMBLKAEND)中设置一段覆盖开关管开通瞬间的消隐窗口(例如,从DPWMA上升沿后开始,持续100-200ns)。这能有效屏蔽掉开通噪声,确保CBC只在真正需要的时候动作。
3.3 最小占空比控制(MIN_DUTY_MODE)
在某些轻载或软启动情况下,滤波器计算出的占空比可能非常小,甚至接近于零。过窄的脉冲可能导致驱动芯片无法正常响应,或者变压器伏秒积不足。最小占空比控制功能就是为了处理这种情况。
MIN_DUTY_MODE位域有三种模式:
- 0(默认):滤波器输出直接传递给DPWM,不做任何处理。
- 1:如果滤波器输出值高于最小占空比阈值,则正常输出;如果低于阈值,则DPWM不输出脉冲(保持低电平)。
- 2:如果滤波器输出值高于最小占空比阈值,则正常输出;如果低于阈值,则DPWM输出脉冲宽度被钳位在最小占空比值。
与之配套的还有两个寄存器:
DPWMMINDUTYLOW:设置当占空比下降时,最小占空比模式生效的阈值点。在模式2下,它也定义了被钳位的最小占空比值。DPWMMINDUTYHI:设置当占空比上升时,退出最小占空比模式的阈值点。
这两个寄存器共同构成了一个滞回比较器,防止在阈值点附近因噪声导致模式频繁切换,输出抖动。例如,设置LOW=30,HI=70。在模式1下,当占空比从100%向下降时,一旦低于30,输出立即变为0;只有当占空比从0向上升,超过70时,输出才恢复跟随滤波器。在模式2下,当占空比低于30时,输出被钳位在30;当占空比超过70时,输出才解除钳位。
应用技巧:在LLC谐振变换器的轻载突发模式(Burst Mode)管理中,我常使用模式1。当负载极轻,所需频率很高(等效占空比很小)时,直接关闭脉冲,进入“打嗝”模式,可以显著降低轻载损耗。而在一些对输出纹波有严格要求的Buck电路中,可能会使用模式2,确保即使在极轻载时也有一个最小脉冲维持电感电流连续,避免输出电压纹波增大。
3.4 其他关键位域
- 内部多路复用器(Intra Mux):
PWM_A_INTRA_MUX和PWM_B_INTRA_MUX位允许将来自不同源的信号复用到DPWMA和B输出。这在全桥和半桥拓扑中用于实现复杂的驱动逻辑组合,例如将来自不同DPWM模块或边缘生成器(Edge Gen)的信号进行组合。默认值0表示使用标准DPWM波形。 - 滤波器使能(CLA_EN):历史名称,实际为滤波器使能位。此位置1时,DPWM的脉冲宽度由滤波器(Filter)的输出动态控制;置0时,则完全由DPWM的事件寄存器静态控制。在电压模式或需要固定占空比的测试中,可以暂时关闭滤波器。
- DPWM使能(PWM_EN):总使能位。为0时,DPWM输出引脚将保持为
PWM_A_FLT_POL和PWM_B_FLT_POL所定义的电平(通常设置为故障安全状态,如低电平)。 - 输出极性反转(PWM_A_INV, PWM_B_INV):用于反转DPWMA和B的输出极性。注意,这不影响复位后或故障状态下的引脚电平。
4. DPWMCTRL1与CTRL2寄存器关键功能剖析
DPWMCTRL1和CTRL2寄存器进一步扩展了DPWM的灵活性和高级功能。
4.1 周期计数器预置(PRESET_EN)与同步
PRESET_EN位为多DPWM系统提供了更灵活的同步启动机制。通常,PWM计数器在三种情况下复位到0:1) DPWM使能(PWM_EN);2) 接收到同步信号(从模式);3) 计数器达到周期值。
当PRESET_EN使能后,行为发生变化:
PWM_EN被置位时,计数器被设置为一个预置值(由DPWMPHS寄存器设定),而非0。- 接收到同步信号时,计数器也被设置为该预置值。
- 只有计数器达到周期值时,才复位到0。
应用场景:假设一个三相交错系统,你希望DPWM1和DPWM2相对于主DPWM0分别有120度和240度的相位延迟。你可以将DPWM1和DPWM2设置为从模式,同步源为DPWM0。然后,设置DPWM1的
PRESET_EN=1,并将其DPWMPHS值设置为PERIOD/3;设置DPWM2的PRESET_EN=1,DPWMPHS��设置为2*PERIOD/3。当主DPWM0启动并发出第一个同步脉冲时,DPWM1和DPWM2的计数器将从各自预设的相位点开始计数,立即实现精确的120°交错,无需等待多个周期来逐渐同步。
4.2 事件更新窗口(EVENT_UP_SEL)与系统稳定性
这是影响DPWM实时性和稳定性的一个隐蔽而重要的设置。DPWM模块需要约72ns的时间(对于UCD3138)来更新下一个周期的时序参数,包括读取最新的滤波器输出和固件更新的寄存器值。EVENT_UP_SEL选择了这个“事件更新窗口”发生的时间点。
- 模式0:滤波器计算一完成就立即更新。风险最高,因为更新可能发生在PWM脉冲的任意时刻。
- 模式1(最常用):在周期结束时刻开始更新,窗口持续72ns,会延伸到下一个周期的开始部分。这是最安全的选择,但要求你在新周期开始的72ns内,不能有PWM边沿动作。
- 模式2:在由采样触发2(Sample Trigger 2)设定的时间点更新。
- 模式3:在周期结束和采样触发2两个时间点都更新。
致命陷阱与解决方案:技术手册用大写“CAUTION”警告:如果PWM边沿移动进入或离开事件更新窗口,这些边沿可能会被错过,导致PWM脉冲比预期更长或更短。这会引起不可预测的输出电压跳动甚至震荡。标准做法:对于绝大多数拓扑,选择模式1。然后,你必须利用死区时间、最小脉宽限制或消隐时间,确保在每一个PWM周期开始后的至少72ns内,DPWMA和DPWMB都没有边沿变化(即保持为固定的电平,通常是两者都为低)。例如,在正常模式半桥中,可以将DPWMA的上升沿(EV1)设置在周期开始后的100ns之后。这样,事件更新窗口(0-72ns)就处于一个“安静”的区间,确保了参数更新的安全。
4.3 理想二极管仿真(IDE)与同步FET控制
在同步整流Buck或LLC的同步整流管驱动中,为了最大化效率,希望同步FET(通常对应DPWMB)能在电感电流或谐振电流过零后立即关断,模拟理想二极管的零反向恢复特性。这就是理想二极管仿真(IDE)功能。
通过设置DPWMCTRL2的IDE_DUTY_B_EN位,可以启用数字IDE逻辑来控制DPWMB。该逻辑会监控电流采样信号(通常来自前端ADC),并在检测到电流过零或接近零时,立即生成DPWMB的关断信号,从而避免同步FET体二极管导通产生的损耗。
4.4 谐振模式下的死区补偿(RESON_DEADTIME_COMP_EN)
在LLC谐振模式中,为了在全频率范围内获得恒定、对称的死区时间,需要启用死区补偿。设置RESON_DEADTIME_COMP_EN=1,DPWM模块会对来自滤波器的CLA Duty信号进行一个调整。
如果不启用此功能,在谐振模式下,DPWMA的输出占空比将是50% + Cycle_Adjust_A,而DPWMB是50% - Dead_Time + Cycle_Adjust_B。这很难在整个频率范围内让A和B的波形保持对称。启用补偿后,算法会自动调整,使得A和B的关断时刻关于周期中点对称,从而获得恒定的死区。
强烈建议:在设计LLC变换器时,除非有特殊理由,否则务必将
RESON_DEADTIME_COMP_EN置1。这是我调试多个LLC项目后的血泪教训。未启用时,轻载和重载下的死区时间差异很大,轻载时可能因死区过大导致效率降低,重载时可能因死区不足而引起直通风险。
4.5 滤波器输出缩放(CLA_SCALE)与占空比选择(FILTER_DUTY_SEL)
CLA_SCALE:用于在滤波器输出送给DPWM之前进行移位缩放(左移或右移0-3位)。这相当于改变了控制环路的增益。例如,在两级式架构中,如果前级和后级共用同一个滤波器输出但开关频率不同,可以通过缩放来适配。FILTER_DUTY_SEL:选择用于与滤波器输出相乘的因子,以得到最终的占空比信号。这对于LLC拓扑尤其重要:- 模式2(常用):选择谐振占空比寄存器(DPWMRESDUTY)作为乘数。在TI的LLC参考设计中,通常将此寄存器设置为最大期望周期值的一半。这样,滤波器输出(代表频率控制量)与一个固定值相乘,得到占空比。
- 模式0/1:分别选择DPWM周期或事件寄存器EV2作为乘数,用于其他拓扑。
5. 寄存器配置实战与常见问题排查
理解了原理,最终要落实到代码上。下面以一个典型的半桥LLC谐振变换器的DPWM初始化片段为例,并分析常见问题。
5.1 配置示例:LLC谐振变换器DPWM初始化
// 假设使用DPWM0通道,系统时钟周期为4ns,目标满载频率200kHz (周期5us) void DPWM0_Init_For_LLC(void) { // 1. 配置基本周期和模式 Dpwm0Regs.DPWMPRD.bit.PRD = 1249; // 周期 = (5000ns / 4ns) - 1 = 1249 Dpwm0Regs.DPWMCTRL0.bit.PWM_MODE = 2; // 设置为谐振模式 Dpwm0Regs.DPWMCTRL0.bit.CLA_EN = 1; // 使能滤波器控制 // 2. 配置谐振模式相关参数 Dpwm0Regs.DPWMCTRL2.bit.RESON_DEADTIME_COMP_EN = 1; // 使能死区补偿(关键!) Dpwm0Regs.DPWMCTRL2.bit.FILTER_DUTY_SEL = 2; // 使用RESDUTY寄存器作为乘数 Dpwm0Regs.DPWMRESDUTY = 625; // 设置为PRD/2,用于50%最大占空比 // 3. 配置事件寄存器作为死区和最小脉宽限制(单位:高分辨率计数,250ps) // 设置最小导通时间限制为100ns (100ns / 0.25ns = 400 counts) Dpwm0Regs.DPWMEV1.bit.EV1 = 400; // DPWMA上升沿(最小开通时间点) // 设置死区时间为200ns (200ns / 0.25ns = 800 counts) // 在谐振模式下,EV2和EV3常用于定义死区 Dpwm0Regs.DPWMEV2.bit.EV2 = 800; Dpwm0Regs.DPWMEV3.bit.EV3 = 800; // 对称死区 // 4. 配置CBC保护(逐周期电流限制) Dpwm0Regs.DPWMCTRL0.bit.CBC_PWM_AB_EN = 1; Dpwm0Regs.DPWMCTRL0.bit.CBC_ADV_CNT_EN = 1; // A/B同时动作,保持死区 Dpwm0Regs.DPWMCTRL0.bit.BLANK_A_EN = 1; Dpwm0Regs.DPWMCTRL0.bit.BLANK_B_EN = 1; // 配置消隐时间:从A上升沿后开始,持续150ns消隐 Dpwm0Regs.DPWMBLKABEGIN.bit.BLANKA_BEGIN = 100; // 25ns后开始 (100*0.25ns) Dpwm0Regs.DPWMBLKAEND.bit.BLANKA_END = 700; // 开始后150ns结束 (700*0.25ns - 100*0.25ns) // 5. 配置事件更新窗口和同步 Dpwm0Regs.DPWMCTRL1.bit.EVENT_UP_SEL = 1; // 模式1,周期结束时更新(最安全) Dpwm0Regs.DPWMCTRL0.bit.MASTER_SYNC_CNTL_SEL = 0; // 同步信号来自相位触发寄存器 Dpwm0Regs.DPWMPHASETRIG = 0; // 如果需要作为主设备发同步,可设置相位延迟 // 6. 使能DPWM Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 1; }5.2 常见问题排查速查表
在实际调试中,DPWM相关的问题往往表现为无输出、波形畸形、频率不对或保护误动作。以下是一个快速排查指南:
| 现象 | 可能原因 | 排查步骤 |
|---|---|---|
| DPWM无输出 | 1. 总使能未打开。 2. 引脚被配置为GPIO。 3. 滤波器使能但滤波器未运行。 | 1. 检查DPWMCTRL0.PWM_EN是否为1。2. 检查 DPWMCTRL1.GPIO_A/B_EN是否为0。3. 检查 CLA_EN状态,若为1,确认滤波器是否已初始化并运行。 |
| 输出频率不正确 | 1. 周期寄存器(DPWMPRD)计算错误。 2. 高分辨率模式配置混乱。 3. 在谐振模式下,周期受滤波器控制。 | 1. 复核PRD = (目标周期/时钟周期) - 1。2. 检查 DPWMCTRL1.HIRES_DIS等位,确认时间基准单位(4ns还是250ps)。3. 在谐振模式下,测量的是变频输出,需检查滤波器输出是否正常。 |
| 死区时间异常或消失 | 1. 事件寄存器(EVx)设置错误,导致边沿顺序错乱。 2. CBC配置导致死区被改变。 3. 谐振模式死区补偿未启用。 | 1. 用示波器双通道测量A和B,确认EV1-EV4的设置符合所选模式的定义。 2. 检查 CBC_ADV_CNT_EN配置,在正常模式下如���保持死区,此位需置1。3. 对于LLC,检查 RESON_DEADTIME_COMP_EN是否置1。 |
| CBC保护频繁误触发 | 1. 未配置或消隐时间不足。 2. 电流采样电路噪声过大。 3. CBC阈值设置过低。 | 1.首要检查BLANK_A/B_EN是否使能,以及BLANKxBEGIN/END寄存器是否覆盖了开关噪声区间。2. 优化电流采样RC滤波或布局。 3. 适当提高CBC比较器的阈值。 |
| 多DPWM同步相位错乱 | 1. 主从设备周期寄存器值不同。 2. 同步信号在从设备周期中间触发。 3. PRESET_EN使用不当。 | 1. 确保主从DPWM的DPWMPRD值严格一致。2. 检查主设备的 DPWMPHASETRIG和从设备的同步配置,确保同步脉冲在从周期末尾到达。3. 如果使用 PRESET_EN,理解其计数器从预设值开始,而非0。 |
| 轻载时波形不稳定(突发) | 最小占空比模式配置不当。 | 检查MIN_DUTY_MODE、DPWMMINDUTYLOW/HI设置。在需要突发模式时,可设为模式1;需要维持最小脉冲时,设为模式2并合理设置阈值。 |
调试DPWM时,最有力的工具是高带宽示波器。不仅要看输出波形,更要利用示波器的数字通道或混合信号功能,同时捕获DPWM输出、同步信号、电流采样信号以及关键的内部状态标志(如果MCU支持输出)。通过对比实际波形与寄存器设定的理论时间点,可以快速定位是配置错误、时序冲突还是保护机制介入导致的问题。记住,DPWM是一个硬实时逻辑模块,其行为完全由寄存器配置决定,耐心、细致地对照手册核对每一位的配置,是解决复杂问题的唯一捷径。