ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

四开关Buck-Boost拓扑原理与STM32 PWM驱动实战

2026/9/26 14:44:52 拓冰建站 浏览量
四开关Buck-Boost拓扑原理与STM32 PWM驱动实战 1. 四开关Buck-Boost到底是个什么东西1.1 从一个尴尬的电压问题说起做电源的朋友大概都遇到过这种场景输入电压有时候比输出电压高有时候又比输出电压低比如锂电池供电的设备电池满电4.2V放电到3.0V但系统需要稳定3.3V。这时候你用纯Buck电路电池电压掉到3.3V以下就撑不住了用纯Boost电路电池电压高于3.3V时又没法降压。传统的做法是先用Boost升压再用LDO降压效率低得让人心疼发热还严重。四开关Buck-Boost拓扑就是专门解决这个“输入电压横跨输出电压”场景的。它的核心结构是用四个MOSFET组成一个H桥形状中间夹着一个电感。左边两个开关管构成Buck的开关对右边两个开关管构成Boost的开关对电感在中间充当能量搬运工。通过控制四路PWM信号的相位和占空比这个电路可以工作在三种模式下纯Buck模式、纯Boost模式、以及Buck-Boost混合模式。我第一次接触这个拓扑是在一个车载充电器的项目里输入电压范围9V到36V输出稳定12V。当时团队里有人提议用SEPIC或者反激但效率和体积都不太理想。后来选了四开关Buck-Boost实测效率在满载时能到96%以上比SEPIC高了将近5个百分点电感体积也小了一圈。1.2 为什么叫“四开关”和传统Buck-Boost有什么区别传统的Buck-Boost电路只有一个开关管和一个二极管结构简单但有两个致命问题一是输出极性反了输入正电压出来是负电压二是开关管和二极管承受的电压应力是输入加输出选型时耐压要求高。四开关Buck-Boost把二极管换成了同步整流的MOSFET不仅解决了极性反转问题还把电压应力降低到单个输入或输出电压的水平。四个开关管分别标记为Q1、Q2、Q3、Q4。Q1和Q2组成左边桥臂Q3和Q4组成右边桥臂。电感一端接在Q1和Q2之间另一端接在Q3和Q4之间。当Q1和Q4同时导通时电感两端电压为Vin减Vout电流上升当Q2和Q3导通时电感两端电压为负的Vout电流下降。这就是最基本的Buck-Boost工作模式。但四开关拓扑的精髓在于它可以分时复用。当输入电压远高于输出电压时让Q3常通、Q4常闭只切换Q1和Q2这时候电路就是一个标准的同步Buck。反过来当输入电压远低于输出电压时让Q1常通、Q2常闭只切换Q3和Q4电路就变成了同步Boost。只有在输入和输出接近时才让四个管子都参与PWM调制进入真正的Buck-Boost模式。这种模式切换带来的好处是效率最优。因为纯Buck或纯Boost模式下只有两个管子在做高频开关另外两个要么常通要么常闭开关损耗和导通损耗都最小。我实测过同样12V输出输入24V时用纯Buck模式效率97%如果强制用Buck-Boost模式效率会掉到94%左右差距还是很明显的。1.3 适合哪些人看能解决什么问题这篇内容主要面向刚入行做电源设计的工程师、电子相关专业的学生、以及需要选型电源方案的硬件开发者。如果你已经能熟练设计反激或LLC但对四开关Buck-Boost只是听说过没实际做过那这篇能帮你把原理和实操细节都串起来。如果你连Buck和Boost的基本原理都还不清楚建议先补一下基础否则看四开关的时序图会比较吃力。它能帮你解决的核心问题包括输入电压范围宽且横跨输出时的电源方案选型、双向充放电场景下的拓扑选择、以及如何用STM32这类MCU产生四路带死区的PWM驱动信号。后面我会详细讲PWM的配置方法包括死区时间的计算、互补输出的设置、以及模式切换时的逻辑处理。注意四开关Buck-Boost虽然效率高但控制逻辑比单管拓扑复杂得多尤其是模式切换时的瞬态响应。如果项目对成本极度敏感且输入输出压差固定传统的Buck或Boost仍然是更经济的选择。2. 核心工作原理与模式切换逻辑拆解2.1 四个开关管的角色分配与电流路径先把四个管子摆清楚。Q1是左上管漏极接输入正极源极接电感左端。Q2是左下管漏极接电感左端源极接地。Q3是右上管漏极接输出正极源极接电感右端。Q4是右下管漏极接电感右端源极接地。电感连接在Q1/Q2的中间点和Q3/Q4的中间点之间。在Buck模式下Q3常通Q4常闭。Q1导通时输入通过Q1、电感、Q3给输出供电电感电流上升。Q1关断后电感电流通过Q2续流Q2导通电流继续流向输出。这时候Q2代替了传统Buck里的续流二极管导通损耗更低。在Boost模式下Q1常通Q2常闭。Q3导通时输入通过Q1、电感、Q3给输出供电同时电感储能。Q3关断后电感电流通过Q4续流但注意此时Q4的体二极管方向是让电流从地流向电感右端实际上电感右端电压会升到高于输出通过Q3的体二极管或者同步整流给输出供电。这里Q4的作用是提供续流路径降低损耗。在Buck-Boost模式下四个管子分两组交替导通。第一组是Q1和Q4同时导通电感两端电压为Vin电流上升。第二组是Q2和Q3同时导通电感两端电压为负的Vout电流下降。通过调节这两组导通时间的比例就能实现升降压。这里有个容易搞混的地方Q1和Q4同时导通时输出端是通过Q3的体二极管还是同步整流来供电实际上在Buck-Boost模式下Q3和Q4是互补的Q4导通时Q3关断输出靠输出电容维持。所以输出电容的选型要足够大否则纹波会很难看。2.2 三种模式的切换边界与滞回设计模式切换不能等到输入电压刚好等于输出电压时才切那样会在边界附近反复跳变导致输出震荡。实际设计中要设置一个滞回窗口比如输入电压高于输出加1V时进入纯Buck模式低于输出减1V时进入纯Boost模式中间区域保持Buck-Boost模式。这个滞回窗口的大小取决于输入电压的变化速率和输出电容的容量。如果输入电压变化很慢滞回可以设小一点比如0.5V这样效率最优的区域更大。如果输入电压可能突变比如热插拔场景滞回要设大一些给控制环路足够的响应时间。我一般会在固件里做三段式判断当Vin大于Vout加Vhys时强制Buck模式Q3常通Q4常闭当Vin小于Vout减Vhys时强制Boost模式Q1常通Q2常闭其余情况进入Buck-Boost模式四管PWM。Vhys的典型值取0.5V到1V具体看输出精度要求。切换时的瞬态处理也很关键。从Buck切到Buck-Boost时Q4从常闭变成PWM开关输出端会突然多了一个对地的开关如果直接切会导致输出跌落。我的做法是在切换前先把Q4的占空比从0慢慢增加到目标值同时把Q1的占空比从当前值慢慢调整到Buck-Boost模式的目标值整个过程大概持续几百个开关周期让输出电容有时间缓冲。2.3 电感电流连续与断续模式的取舍四开关Buck-Boost通常设计在电流连续模式也就是电感电流在整个开关周期内都不降到零。CCM的好处是电流纹波小、EMI好处理、控制模型简单。但缺点是轻载时效率会下降因为电感电流始终有直流分量导通损耗固定。如果项目对轻载效率有要求可以引入DCM或者Burst模式。DCM下电感电流在每个周期末尾降到零开关管在电流为零时关断没有反向恢复损耗。但DCM的峰值电流比CCM高电感饱和风险大而且控制环路增益会随负载变化补偿网络设计更麻烦。我的经验是如果负载变化范围不超过10比1用CCM就够了控制简单可靠。如果负载可能从满载掉到几毫安那就要考虑在轻载时自动进入DCM或者打嗝模式。打嗝模式的实现方式是在输出电压高于目标值一定阈值时直接关闭所有PWM输出等电压掉下来再重新启动。这样轻载效率可以做到90%以上。提示电感选型时饱和电流要按最大峰值电流来选不是按平均电流。CCM下峰值电流等于平均电流加一半纹波电流DCM下峰值电流可能是平均电流的两倍以上。留20%余量比较稳妥。3. 用STM32生成四路PWM的实操细节3.1 定时器选型与互补输出配置STM32的通用定时器TIM1和TIM8是高级定时器支持互补输出和死区插入最适合驱动四开关Buck-Boost。TIM2到TIM5是通用定时器只有部分通道支持互补输出用起来限制较多。我一般用TIM1的CH1和CH1N驱动Q1和Q2CH2和CH2N驱动Q3和Q4。这样每个桥臂的上下管天然互补硬件自动插入死区不用担心软件逻辑出错导致直通。以STM32G070CBT6为例TIM1挂在APB2总线上时钟频率64MHz。配置成中央对齐模式计数周期设为1000这样PWM分辨率是0.1%。死区时间通过BDTR寄存器的DTG位设置计算公式是DTG乘以定时器时钟周期。假设需要200ns死区64MHz下每个时钟周期15.6ns200除以15.6约等于13DTG设成13就行。互补输出的极性也要注意。CH1配置为高电平有效CH1N配置为低电平有效这样CH1输出高时Q1导通CH1N输出低时Q2关断。如果极性搞反了上下管同时导通瞬间炸管。调试时先用示波器看两路波形确认死区时间足够再接功率管。// STM32 HAL库配置TIM1互补PWM的示例 TIM_HandleTypeDef htim1; TIM_OC_InitTypeDef sConfigOC; TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; htim1.Instance TIM1; htim1.Init.Prescaler 0; htim1.Init.CounterMode TIM_COUNTERMODE_CENTERALIGNED1; htim1.Init.Period 1000; htim1.Init.ClockDivision TIM_CLOCKDIVISION_DIV1; htim1.Init.RepetitionCounter 0; htim1.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_ENABLE; HAL_TIM_PWM_Init(htim1); sConfigOC.OCMode TIM_OCMODE_PWM1; sConfigOC.Pulse 500; // 初始占空比50% sConfigOC.OCPolarity TIM_OCPOLARITY_HIGH; sConfigOC.OCNPolarity TIM_OCNPOLARITY_LOW; sConfigOC.OCFastMode TIM_OCFAST_DISABLE; sConfigOC.OCIdleState TIM_OCIDLESTATE_RESET; sConfigOC.OCNIdleState TIM_OCNIDLESTATE_RESET; HAL_TIM_PWM_ConfigChannel(htim1, sConfigOC, TIM_CHANNEL_1); HAL_TIM_PWM_ConfigChannel(htim1, sConfigOC, TIM_CHANNEL_2); sBreakDeadTimeConfig.OffStateRunMode TIM_OSSR_ENABLE; sBreakDeadTimeConfig.OffStateIDLEMode TIM_OSSI_ENABLE; sBreakDeadTimeConfig.LockLevel TIM_LOCKLEVEL_OFF; sBreakDeadTimeConfig.DeadTime 13; // 约200ns死区 sBreakDeadTimeConfig.BreakState TIM_BREAK_DISABLE; sBreakDeadTimeConfig.BreakPolarity TIM_BREAKPOLARITY_HIGH; sBreakDeadTimeConfig.AutomaticOutput TIM_AUTOMATICOUTPUT_ENABLE; HAL_TIMEx_ConfigBreakDeadTime(htim1, sBreakDeadTimeConfig); HAL_TIM_PWM_Start(htim1, TIM_CHANNEL_1); HAL_TIMEx_PWMN_Start(htim1, TIM_CHANNEL_1); HAL_TIM_PWM_Start(htim1, TIM_CHANNEL_2); HAL_TIMEx_PWMN_Start(htim1, TIM_CHANNEL_2);这段代码初始化了TIM1的CH1和CH2以及它们的互补通道死区设为13个时钟周期。注意中央对齐模式下实际开关频率是定时器时钟除以2倍周期值。64MHz除以2000等于32kHz这是开关频率。如果觉得32kHz太低导致电感太大可以把Period改成500开关频率升到64kHz但死区时间要重新算。3.2 占空比计算与模式切换的代码实现占空比的计算取决于工作模式。纯Buck模式下D等于Vout除以Vin。纯Boost模式下D等于1减去Vin除以Vout。Buck-Boost模式下D等于Vout除以Vin加Vout。这些公式都是基于理想情况实际还要考虑管压降和电感电阻。在代码里我一般用一个状态机来管理模式切换。定义三个状态BUCK_MODE、BOOST_MODE、BUCKBOOST_MODE。每个控制周期读取输入输出电压判断当前应该处于哪个状态。如果状态发生变化不是立即切换而是先调整占空比到目标值附近再切换PWM输出配置。typedef enum { BUCK_MODE, BOOST_MODE, BUCKBOOST_MODE } converter_mode_t; converter_mode_t current_mode BUCKBOOST_MODE; float Vhys 0.8f; // 滞回窗口0.8V void update_mode(float Vin, float Vout) { converter_mode_t target_mode; if (Vin Vout Vhys) { target_mode BUCK_MODE; } else if (Vin Vout - Vhys) { target_mode BOOST_MODE; } else { target_mode BUCKBOOST_MODE; } if (target_mode ! current_mode) { // 先平滑过渡占空比再切换模式 transition_duty(target_mode); current_mode target_mode; apply_pwm_config(current_mode); } } void apply_pwm_config(converter_mode_t mode) { switch (mode) { case BUCK_MODE: // Q3常通Q4常闭 __HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_2, 1000); // Q1/Q2正常PWM break; case BOOST_MODE: // Q1常通Q2常闭 __HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_1, 1000); // Q3/Q4正常PWM break; case BUCKBOOST_MODE: // 四管都参与PWM break; } }这段代码里apply_pwm_config函数根据模式设置比较寄存器的值。在Buck模式下CH2的比较值设为1000意味着Q3的占空比100%Q4的占空比0%正好是常通和常闭。Boost模式下反过来设置CH1。Buck-Boost模式下两个通道都恢复正常PWM值。transition_duty函数负责平滑过渡我的做法是在100个开关周期内把占空比从当前值线性插值到目标值。这样输出电容上的电压不会突变避免触发过压或欠压保护。3.3 死区时间的计算与实测验证死区时间不够会导致上下管直通瞬间大电流烧管。死区时间太长又会增加体二极管导通损耗效率下降。理论计算死区时间要考虑MOSFET的关断延迟和驱动电路的传输延迟。一般MOSFET的关断延迟在几十纳秒驱动芯片的传输延迟也在几十纳秒加起来大概100ns左右。所以死区时间设150ns到200ns比较安全。实测验证的方法是用示波器同时看上下管的栅极波形。把时间轴展开到100ns每格观察一个管子关断到另一个管子开通之间的间隔。如果间隔小于100ns就要加大死区。如果间隔超过300ns可以适当减小死区提升效率。我踩过的一个坑是不同批次的MOSFET关断延迟差异很大。有一次小批量试产没问题量产时换了一批管子关断延迟多了50ns结果死区不够炸了好几个板子。后来在固件里把死区设成可配置参数产线根据实际管子批次调整问题才解决。注意死区时间是在定时器硬件层面插入的不受中断延迟影响。但模式切换时的PWM配置更新是在中断里做的如果中断被高优先级任务打断可能导致PWM配置更新延迟引起瞬态异常。建议把PWM更新放在高优先级中断里或者用DMA直接更新比较寄存器。4. 常见问题与排查技巧实录4.1 输出震荡和模式切换频繁跳变最常见的问题是输出在模式切换点附近震荡。表现是输入电压缓慢变化时输出突然掉一下或者冲一下示波器上能看到明显的毛刺。根本原因是模式切换时占空比不连续比如从Buck模式的D0.5切到Buck-Boost模式的D0.5虽然数值一样但四个管子的开关组合变了等效的电压增益变了。解决办法有两个方向。一是加大滞回窗口让模式切换不那么频繁。但滞回太大又会导致效率下降因为Buck-Boost模式的效率比纯Buck低。二是做占空比补偿在切换瞬间根据新旧模式的增益差给占空比加一个前馈补偿量。我一般用查表法提前算好不同输入电压下各模式的占空比切换时直接查表设置避免中间过渡态。还有一个隐蔽的问题是输入电压采样有噪声。如果ADC采样没有滤波输入电压读数在真实值附近跳动会导致模式判断反复翻转。我的做法是在ADC中断里做滑动平均滤波取最近8次采样的平均值同时加一个死区只有电压变化超过50mV才更新模式判断。4.2 轻载时电感电流倒灌和效率骤降四开关Buck-Boost在轻载时如果还工作在CCM电感电流会在过零后继续反向流动能量从输出倒灌回输入效率急剧下降。严重时输出电压会升高触发过压保护。这个现象在同步整流拓扑里很常见因为MOSFET是双向导通的不像二极管有反向截止特性。解决办法是引入过零检测和DCM控制。在电感电流下降到接近零时关断同步整流管让电流通过体二极管续流。体二极管的反向恢复特性会自然阻止电流反向。过零检测可以通过采样电感电流或者检测开关节点电压来实现。STM32的ADC采样速度够快的话可以在每个PWM周期内多次采样电流判断过零点。更简单的做法是打嗝模式。当输出电流低于某个阈值时直接关闭PWM输出让输出电容给负载供电。等输出电压掉到下限再重新启动PWM。这样轻载时大部分时间都在打嗝开关损耗几乎为零。缺点是输出电压纹波会变大如果负载对纹波敏感就要用DCM而不是打嗝。我实测过同样5V输出满载2A时CCM效率95%轻载10mA时CCM效率只有60%左右DCM能到85%打嗝模式能到90%以上。所以轻载效率要求高的项目一定要做模式切换。4.3 PCB布局导致的开关噪声和误触发四开关Buck-Boost的PCB布局比单管拓扑更讲究因为有两个高频开关节点而且四个管子形成两个回路。如果布局不好开关噪声会耦合到控制电路导致PWM误触发或者ADC采样错误。关键原则是功率回路面积最小化。输入电容要尽量靠近Q1和Q2输出电容要尽量靠近Q3和Q4。电感放在四个管子中间走线要短而粗。两个开关节点Q1/Q2中间点和Q3/Q4中间点的铜皮面积要小减少容性耦合。驱动电阻要靠近MOSFET栅极减少驱动回路的寄生电感。地平面处理也很重要。功率地和信号地要分开最后在输入电容的负极单点连接。如果混在一起开关电流在地平面上产生的压降会叠加到控制信号上。我见过一个案例因为地平面没处理好电流采样信号上叠加了200mV的开关噪声导致过流保护误动作满载时随机关机。还有一个容易忽略的点是自举电容的布局。Q1和Q3是高端管需要自举电容给栅极驱动供电。自举电容要靠近驱动芯片的自举引脚和开关节点走线尽量短。如果自举电容离得远充电路径上的寄生电感会导致自举电压不足高端管驱动能力下降开关损耗增加。4.4 常见问题速查表现象可能原因排查方法解决措施输出震荡模式切换频繁示波器看输入输出电压和PWM波形加大滞回窗口加占空比前馈补偿轻载效率低电感电流倒灌测电感电流波形看过零后是否反向引入DCM或打嗝模式开关管发热严重死区不足或驱动不足看栅极波形和开关节点波形加大死区检查自举电容和驱动电阻输出纹波大输出电容不够或布局差测输出纹波频率和幅值加大输出电容优化布局过流保护误动作电流采样噪声大看采样信号上是否有开关噪声加RC滤波优化地平面模式切换时输出跌落占空比不连续看切换瞬间的PWM占空比变化做平滑过渡切换前预调占空比这张表是我在实际调试中总结的基本上覆盖了八成以上的常见问题。每次遇到新问题先对照这张表排查能省不少时间。5. 关键元器件选型与参数计算5.1 电感的计算与选型要点电感值决定了电流纹波大小。纹波电流一般取满载电流的20%到40%。以输入12V、输出12V、满载3A、开关频率64kHz为例Buck-Boost模式下电感两端电压在Vin和Vout之间切换占空比D等于Vout除以Vin加Vout等于0.5。电感值L等于Vin乘以D除以纹波电流乘以开关频率。代入数值12乘以0.5除以1.2乘以64000约等于78微亨。取标准值82微亨。电感的饱和电流要大于最大峰值电流。峰值电流等于满载电流加一半纹波电流3加0.6等于3.6A。留20%余量选4.5A以上的电感。温升电流也要注意有些电感标称饱和电流5A但温升电流只有3A满载时电感会烫到一百多度。选型时要看温升电流曲线确保工作点在线性区。电感的直流电阻直接影响效率。DCR每增加10毫欧满载3A时导通损耗增加90毫瓦。虽然不大但累积起来也可观。我一般选DCR在20毫欧以内的电感如果空间允许用大一号的磁芯绕制DCR能降到10毫欧以下。提示四开关Buck-Boost的电感在Buck模式和Boost模式下看到的等效电路不同但电感值是一样的。设计时按最恶劣工况计算也就是输入输出电压差最大的时候这时候纹波电流最大。5.2 MOSFET的选型与损耗估算四个MOSFET的电压应力都是Vin和Vout中的较大值。比如输入最高36V输出12V那所有管子的耐压都要大于36V选40V或60V的管子。电流应力方面Q1和Q2流过电感电流Q3和Q4也流过电感电流所以四个管子的电流额定值都要大于最大峰值电流。导通损耗等于电流有效值的平方乘以导通电阻。以Q1为例Buck模式下Q1的占空比是Vout除以Vin电流有效值约等于满载电流乘以占空比的平方根。3A乘以0.7等于2.1A导通电阻10毫欧损耗约44毫瓦。四个管子加起来大概200毫瓦可以接受。开关损耗跟开关频率和栅极电荷有关。开关损耗等于0.5乘以Vin乘以Iout乘以开关时间乘以开关频率。开关时间包括开通时间和关断时间一般几十纳秒。64kHz下12V乘以3A乘以50ns乘以64000约等于115毫瓦每个管子。四个管子加起来接近500毫瓦比导通损耗还大。所以开关频率不能太高否则开关损耗会主导。选MOSFET时栅极电荷Qg越小越好但Qg小的管子导通电阻通常大一些要折中。我一般选Qg在10nC到20nC之间、导通电阻在10毫欧左右的管子。如果效率要求极高可以用氮化镓器件Qg能降到几纳库仑开关损耗大幅降低但成本会翻好几倍。5.3 输入输出电容的容量计算输入电容的作用是吸收开关电流的交流分量保持输入电压稳定。容量计算公式是C等于Iout乘以D乘以1减D除以纹波电压乘以开关频率。以3A、D等于0.5、纹波电压50mV、64kHz为例C等于3乘以0.5乘以0.5除以0.05乘以64000约等于234微法。实际选两个100微法加一个47微法的陶瓷电容并联总容量247微法留点余量。输出电容的计算类似但纹波要求更严。如果输出纹波要求20mV容量要加倍。另外输出电容的等效串联电阻也很关键ESR乘以纹波电流就是ESR纹波电压。陶瓷电容的ESR很小几毫欧但容量做不大。电解电容容量大但ESR高几十毫欧。我一般用陶瓷电容加聚合物电容的组合兼顾容量和ESR。电容的耐压要大于最大输入或输出电压的1.5倍。比如36V输入选50V或63V的电容。降额使用能提高可靠性但容量会随电压升高而下降选型时要看电容的直流偏压特性曲线。有些陶瓷电容在额定电压下容量会掉一半实际有效容量要按工作电压下的值算。6. 双向工作的扩展与实战建议6.1 双向Buck-Boost的实现思路四开关Buck-Boost天然支持双向工作因为四个管子都是双向导通的。把输入和输出对调电路就变成了反向的Buck-Boost。在电池充放电场景里同一套电路既能给电池充电又能让电池放电给负载硬件不用改只改控制逻辑。双向工作的关键是电流方向检测和模式切换。充电时电流从输入流向输出放电时反过来。用霍尔电流传感器或者采样电阻检测电流方向根据方向决定哪个桥臂做主控。充电时左边桥臂做Buck右边桥臂做同步整流放电时右边桥臂做Boost左边桥臂做同步整流。模式切换时要特别注意死区时间。双向工作时电流方向可能突变如果死区时间不够体二极管会先导通产生反向恢复电流。我的做法是在电流过零附近加大死区时间或者暂时关闭同步整流让体二极管续流等电流方向稳定后再恢复同步整流。6.2 从项目选型到调试的完整建议如果你正在评估是否用四开关Buck-Boost先问自己三个问题输入电压范围是否真的横跨输出电压效率要求是否高于90%成本预算是否允许四个MOSFET加驱动如果答案都是是那这个拓扑值得投入。如果输入输出压差固定或者效率要求不高传统的Buck或Boost更简单可靠。调试时建议分步走先不接功率管用示波器确认四路PWM波形和死区时间正确。然后接上功率管和电感用电子负载做轻载测试确认基本升降压功能。再逐步加大负载观察效率和温升。最后做输入电压扫描验证模式切换是否平滑。我个人的经验是四开关Buck-Boost的调试时间大概是单管拓扑的三倍主要花在模式切换和轻载效率上。但一旦调通它的宽输入范围和双向能力是单管拓扑没法比的。在车载、储能、USB PD这些场景里这个拓扑的性价比越来越高。最后分享一个小技巧在PWM输出和MOSFET驱动之间串一个几欧姆的电阻可以减缓开关速度降低EMI。虽然会增加一点开关损耗但能省掉不少EMI滤波器的成本。具体阻值看实测的开关波形以振铃刚好消失为准。