今天,我们来聊聊怎样设计一个高可靠的负载开关电路。从需求分析到原理实现,再到设计验证,stepbystep。

 

采用MCU来控制一个外部功率开关是一个非常常见的需求。比如MCU用ADC检测电源输出电压,当出现异常情况的时候,需要快速切断输出进行保护。

 

这个需求很简单,一般是这样实现的——

android mcu 电源管理 用mcu设计开关电源_android mcu 电源管理

android mcu 电源管理 用mcu设计开关电源_android mcu 电源管理

android mcu 电源管理 用mcu设计开关电源_android mcu 电源管理

(图1)

 

如图所示,Control电平控制Q1三极管的导通,继而控制Q2的导通,实现VCC输出到OUT。

 

这往往是最后一道防线,如果MCU死机或跑飞,导致控制失效,那么可能会造成后端烧毁的严重后果。有没有办法在MCU死机或者是跑飞的情况下,电路能实现高可靠性的自动的保护呢?

 

我们考虑,当MCU死机或跑飞的时候,电平是固定的。也正因此才会造成失控的情况。所以我们是否可以采用电平不固定的形式来作为MCU正常工作的标记呢?就跟有些LED指示灯一样,闪烁的时候代表正常。

 

也就是说,当上图的Control信号是方波的时候,代表正常,Q2导通。当Control为固定电平的时候,代表异常,Q2不导通。这样就能实现完善的保护了。

 

如何实现这个电路呢?

 

Q1、Q2的导通截至,还是需要固定电平来进行控制的。如果把(图1)的Control直接改成方波,那OUT输出也会变成方波。

android mcu 电源管理 用mcu设计开关电源_死机_04

(图2)

 

以图2为例,需要将Control连接的A点输入方波,在B点变成高电平,把高电平和低电平输入变成低电平。

 

首先,我们要解决A点输入高电平或低电平的时候,B点为低电平。什么形式的电路能解决这个问题呢?电容!

 

于是我们尝试这样的电路——

android mcu 电源管理 用mcu设计开关电源_设计验证_05

 

这样确实能解决高电平或低电平输入的时候,B点输出为低电平。

 

但方波输入的时候,问题仍然存在。

 

怎样在上述基础上,将方波变成高电平呢?可以利用电容积分电容。利用方波给电容充电,转化成直流电平。于是我们修改为以下电路——

 

android mcu 电源管理 用mcu设计开关电源_死机_06

 

但实测会发现,这样并不能解决问题。C2无法实现充电。原因是因为电流会从C1回流回去。那怎样解决回流问题呢?单向导通,那就是二极管呗。

 

android mcu 电源管理 用mcu设计开关电源_死机_07

 

实测发现,加上D2二极管之后,在B点测量没有办法达到预期的电压。这里实际输出是负压。所以必须提供一个回流通道。

 

于是再修改为——

android mcu 电源管理 用mcu设计开关电源_android mcu 电源管理_08

 

除了增加D1之外,同时还调整了R2和R1的顺序和阻值,调整了C2的容值。阻值调整是为了减少电阻分流,使得电容充电更快。而R2同时还起到一个非常重要的作用是当A点输入为直流电平时,可以通过R2消耗C2上的能量,使得Q2关闭。

 

以上,这个电路就设计完成了。我们通过仿真可以看到——

 

android mcu 电源管理 用mcu设计开关电源_死机_09

 

绿色波形是A点输入波形,蓝色波形是Out输出波形。可以看到,上面的电路很好实现了需求。