综述
ADM1177是一款热插拔控制器,并且还支持电压电流采集(12bitADC)和传输(IIC).本文着重说明热插拔技术,所以仅说明ADM热插拔处理过程,对于ADC和IIC部分不予说明,请读者自行研究。
热插拔的应用背景
服务器、 网络交换机、 冗余存储磁盘阵列(RAID), 以及其它形式的通信基础设施等高可用性系统, 需要在整个使用生命周期内具有接近零的停机率。 如果这种系统的一个部件发生了故障或是需要升级,它必须在不中断系统其余部分的情况下进行替换, 在系统维持运转的情况下, 发生故障的电路板或模块将被移除, 同时替换部件被插入。这个过程被称为热插拔(hot swapping)(当模块与系统软件有相互作用时, 也被称为hot plugging1)。 为了实现安全的热插拔, 通常使用带交错引脚的连接器来保证地与电源的建立先于其它连接, 另外, 为了能够容易的从带电背板上安全的移除和插入模块, 每块印制板(PCB)或热插拔模块都带有热插拔控制器2。 在工作状态下, 控制器还可提供持续的短路保护和过流保护。
热插拔事件
考虑一块背板及一组可移除模块的系统。 每个模块必须能在不影响任意相邻模块正常工作的条件下被移除和替换。 当没有控制器时, 每个模块可能会对电源线造成较大的负载电容, 通常在毫法量级。 首次插入一个模块时, 其未充电的电容需要所有可用的电流来对其进行充电。 如果不对这个浪涌电流加以限制, 这个很大的初始电流将会降低端电压, 导致主背板上的电压大幅下降, 使系统中的多个邻近模块复位, 并破坏模块的连接器。这个问题可通过热插拔控制器(图1) 来解决, 热插拔控制器能合理控制浪涌电流, 确保安全上电间隔。 上电后, 热插拔控制器还能持续监控电源电流, 在正常工作过程中避免短路和过流。
下面以ADM1177为例说明热插拔控制器工作原理。
ADM1177工作原理图
ADM1177热插拔控制器包括三个主要元件: 用作电源控制主开关的N沟道MOSFET、 测量电流的检测电阻, 以及热插拔控制器。 热插拔控制器用于实现控制MOSFET导通电流的环路, 其中包含一个电流检测放大器。
热插拔控制器内部的电流检测放大器用于监控外部检测电阻上的电压降。 这个小电压(通常为0~100 mV)必须被放大到可用的水平。 ADM1177中放大器的增益为10, 那么, 举例来说, 某个给定电流产生的100 mV电压降将被放大到1V。 这个电压将与固定或可变的基准电压进行比较。 如果使用1V的基准源, 那么在检测电阻上产生100 mV(±3%)以上电压的电流将导致比较器指示过流。 因此, 最大电流触发点主要取决于检测电阻、 放大器增益, 以及基准电压; 检测电阻值决定了最大电流。 定时器电路用于设定过流持续时间。
ADM1177具有软启动功能, 其中过流基准电压线性上升, 而不是突然开启, 这使得负载电流也以类似方式跟着变化。 这可通过从内部电流源往外部电容(SS引脚)注入电流, 令比较器的基准输入从0 V到1 V线性升高而实现。 外部SS电容决定了上升的速度。 如果需要, SS引脚也可以直接使用电压驱动, 以设定最大电流限。
ADM1177典型应用电路
ADM1177热插拔工作过程
这部分是该控制器工作的核心,下面进行详细描述。
ADM1177通过调节处在电源和负载之间FET的栅极电流来使得脉冲电流维持在一个固定最大值,这样就避免了因为热插拔导致的浪涌电流对连接对象、FET自身的损害。
在真正热插拔处理前,ADM1177有一些处理操作,包括将GATE一直拉低、等待供电电压满足要求、检测供电正常后还会有一段时间延迟,这些工作从物理过程上是为了保持热插拔完全插上,从电气过程上为了内部电路供电正常,能够开始正常的工作,这在实际使用中很必要。
Vlim/Rsense是一个关键阈值,手册里叫linear current limit,刚开始容易被绕进去了,反正就是门限值。ADM1177会用一个变化电流(从小到大)给FET的栅极充电,充电会出现三种情况:
一、如果充的过程中, 一直到不了Vlim/Rsense这个阈值,那正常充,FET到了一定阈值,该打开就打开。
二、充的过程中这个门限值达到了,ADM1177会调节让电流保持在限制值
三、充的过程中一下子就超过了门限。一个电流源就会开始给接在TIMER引脚的电容充电。
如果电容充满前(TIMER引脚达到1.3V)电流回落低于阈值,ADM1177继续给GATE充使得其达到一个更高的电压,从而使导通电阻最小,同时TIMER引脚电压下拉回落。
如果电容充满后电流仍未回落,将会报错,热插拔过程会被放弃,GATE引脚马上拉低以关闭FET.
这里ADM1177的手册是写得很不好理解的,尤其第一次刚看手册的时候会被绕进去。在电气参数中来看更容易理解这个过程,下面结合参数重新说明一下过程:
当给Vsense没有达到92mV时,给FET栅极该怎么充就怎么充;
当Vsense达到92mv时,开始给TIMER引脚电容充电(因为是用恒定电流源充电,所以有点等效为计时)计时,如果计时结束电流都超过电流没超过97mv(假设按最小值处理),该怎么充怎么充;
如果计时结束Vsense超过了97mv,没超过115mv,FET工作在线性放大区,ADM1177会调节使FET的栅极电流位置在某一个阈值(97/Rsense–103/Rsense之间);
如果计时未结束Vsense就超过了115mv,ADM1177直接通过下拉电流将GATE拉低,关闭FET.
在进一步思考上述操作和热插拔过程的结合。把热插拔过程说的通俗一点,
对于热插拔过程中产生的低于92mv/Rsense的浪涌电流,不影响,FET该怎么接通就怎么接通;
对于热插拔过程中产生的大于92mv/Rsense,低于115mv/Rsense的浪涌电流,线性调整,保持一定恒定值给FET充电,之后该怎么接通怎么接通,有点抑制但是不直接关断的抑制;
对于热插拔过程中大于115mv/Rsense的浪涌电流,对后级负载危害太大了,赶紧关闭FET.
ADM1177欠压锁存
低于2.8V,不工作;高于2.8V,开始初始定时工作周期(initial timing cycle)。
ADM1177的ON引脚
在ON引脚低于1.3V,GATE拉低,FET关闭;TIMER引脚会因为该引脚拉低复位;低到高的变化会开启热插拔处理过程; 推荐10K上拉电阻接到VCC;
也可以用分压网络来来实现欠压检测;也可以用一个RC网络来解决initial timing cycle部不足的问题。
ADM1177的TIMER功能
比较器阈值:1.3V和0.2V
四个电流源:上拉:5uA和60uA 下拉:2uA和100uA
以上这些值加上外部电容决定了初始定时的周期,过流检测的限制时间和重新一次热插拔的间隔时间。
ADM1177的热插拔过程中的GATE和TIMER
在一次热插拔过程中,最开始以12.5uA给GATE上拉,如果Vsense电压值超过92mv,TIMER脚以60uA给电容充电,如果Vsense电压值超过97mv(假设按最小值设计),通过调整Vsense在Vlim范围内调整GATE充电电容;
在定时时间内Vsense电压值回落到92mv之内,TIMER引脚充电从60uA上拉编程100uA下拉,ADM1177正常打开FET;如果在定时时间内Vsense电压值不能回落到92mv之内,GATE会被1.5-7mA之间的一个电流下拉,只有重置ON才能重新一次热插拔;
如果Vsense电压值直接超过115mv,立即关闭FET.
上述部分其实就是上述的热插拔分析过程,在此又啰嗦了一遍。手册中来回叙述,着见其重要性。
ADM1177的INITIAL TIMING CYCLE
复位时:GATE被25mA电流下拉,TIMER被100uA电流下拉,复位之后进入 initial timing cycle阶段。
initial cycle delay:
T2:5uA上拉TIMER引脚电容,直到Vtimerh
T3:100uA下拉TIMER引脚电容,直到直到Vtimerl
之后进入FET开通阶段:
T4:GATE引脚开始充电
T5:FET门限电压达到,FET开始导通
中间有一段Vsense的调整时间,FET的栅极电压也不增加
T6:FET完全导通
ADM1177的重插拔
ADM1177-1:通过TIMER引脚延时来实现自动重插拔
所有的ADM1177:过流故障后,TIMER用60uA上拉电流给电容充电,当充电至1.3V,限制时间达到后将GATE拉低。对于ADM1177-1,会用2uA下拉电流将TIMER引脚拉低,当TIMER引脚达到0.2V以下后,就可以重新开始重插拔。
ADM1177软重启
SS引脚在Vsense到达mv前保持拉低状态;之后一个电流源给SS电容线性充电至1V。栅极线性放大器的参考电压依据这个软启动电压,这个参考电压也可以用外部电压直接给定。