TPS5430 负压工作时 使能(EN)信号的正压控制转换

最近在做项目的时候遇到了一个问题,一开始的时候完全没有想到会遇到这种问题,只能说经验还是有点匮乏。就是在使用TI的开关电源芯片TPS5430生成负电压的时候,需要用工作电压为正的单片机进行使能的控制。(使用输出电压为0-3.3V的控制信号控制输出电压为-3.3V的TPS5430)

然而使用TPS5430这种开关电源使用正电压生成负电压时,往往是将输出的正端接入电路的GND(为了方便称呼不混淆,从后面将其称为PGND),负端作为负电压输出端,而负端对应的就是芯片的GND端(也就是CGND)。具体电路如下图:

TPS5430 正压转负压电路

也就是说,当输出端接入PGND之后其CGND就称为了负压,而其使能控制信号EN的参考电压就成了负压。这就意味着关断其使能需要提供一个负压,而开启它则需要给一个比CGND高的电压,具体是多少电压则需要看手册:

TPS5430 数据手册SLVS632I Page7

同时再看一下它的输入最大限制:

TPS5430 数据手册SLVS632I Page5

也就是说其EN脚的输入可以从VCGND-0.3V一直到VCGND+7V,然而实际上我觉得对于这种输入电流本身就不会很大的引脚来说超出其范围一些也没太大问题(大概)。所以需要对控制信号进行电压转换,这里我绕了一个小弯路,但我觉得讲讲这个还蛮有意思,所以不要嫌我啰嗦。

一开始的时候我觉得这个其实很简单嘛,那就用一个3.3V的齐纳管串接在控制信号上就好了,于是就设计了这么一个电路:

使用齐纳管转换控制信号电平

但啪的一下很快啊,我就发现了问题。就是说如果现在电源是开着的,那么单CTRL_EN信号为0V,EN信号可以降低到-3.3V足以让它关闭。但是如果它关闭了以后,-3V3的电压就会回归0V,再想让它打开,CTRL_EN即使到达3.3V也没办法让它开启。(当然实际情况并不是这样,这只是我简单的分析,实际情况要复杂一些,但即使简单的分析就已经不行了,所以这里就先按这样来,后面我会讲具体是什么情况。)

于是乎我就又想了一下,觉得那如果这样的话,不如直接再用一路电源产生一个-3.3V作为待机电源-3V3SUB,然后将R1的负端接到-3V3SUB不就好了。虽然这样做会在使能关闭的时候EN脚的输入电压低于最低电压限制( VCGND-0.3V )不过我觉得应该问题不大,只要能控制它就行,于是我就这么设计了电路并且投板子印了出来。在测试的时候就发现这样并不行,具体原因是:

首先,并不是说在齐纳管到达导通电压之前,它就没有电流。这是一个经常容易被忽略的地方,实际上在导通电压到来前其两端就已经有电流了,而这个电流的大小可以通过手册查到:

1N4728 数据手册中详细参数

通过这个可以看到,在它两端导通的时候,实际上两端需要过76mA电流才行,而实际上整个6.6V的电经过10K电阻也并不能产生高达76mA的电流,也只有0.66mA,即便把电阻换成1K也才只有6.6mA如果一味的换更小的电阻来试图达到这个电流,让它工作起来,且不说耗电的问题,单片机的IO口也会承受不住。我使用的STM8S003F3单片机的IO口只能支持最大20mA的电流。

STM8S003F3 数据手册DS7147 Rev 10 Page48

然而一味的寻找导通电压更高的管子不仅非常费劲,而且实际上对于板子来说也没办法复制,因为管子的参数有一定的误差,希望找到一个不是其主要关注参数的合适型号并且误差能够在允许范围内的管子还是不太容易的。(比理解我前面说的这句特别长的话要复杂)。如果再在单片机端口上加跟随电路做电流放大的话总觉得将简单的问题复杂化了。

所以说这个通过齐纳管来做电压转换这样可能并不能行得通,得想想其它办法才行。于是我打开了steam,挑了几个游戏玩了那么一会,希望能对这个问题有别的理解。

我突然想到自己从一开始理解这个问题的时候可能就陷入了一个误区。就是我过于纠结它的控制电压问题,想着做电压转换,或者说怎么样去将控制电压转换成负压。实际上换一个思路,我实际上需要控制的就是EN端和CGND端之间的通断就可以了。

换句话说,如果我想关闭使能,那就将EN和CGND两端连起来,(降低其压差到0.5V以内),如果我想开启使能,那就将EN和CGND两端之间断开,(增加其压差到1.3V以上)。而这种用一个电压去控制另一个回路通断的事情应该用三极管去做呀!

所以说,我开始考虑用三极管来做这个使能的控制,考虑到是使用高压去控制低压,所以这里选用了S9015的PNP管,所以电路如下:

使用S9015做EN使能控制转换

分析这个电路,当CTRL_EN输入为低电平,即电压为0V左右时,由于S9015的发射极和基极电压差几乎为0V,所以集电极电流几乎为0mA,流过R2两端的电流几乎为0mA,EN和-3V3端(CGND端)压差几乎为0V,使能关闭。而当CTRL_EN输入为高电平时,减去发射极和基极压差0.7V,还有2.6V分到了R1两端,则R1两端有0.26mA的电流,由于S9015的hFE大约在60-600的区间内(也就是β),而流过R2最多只有0.66mA的电流,所以三极管一定是处于饱和状态,则EN脚输出的电压为3.3V-VCE(sat),远远超过了开启门限(-3.3V+1.3V)。则这个电路可以正常工作。三极管S9015的参数表格如下:

S9015数据手册

最后通过实际测试,这个电路可以正常工作。下面放一张我把一个二极管的焊盘强行塞一个三极管焊上去的丑陋操作图:

(完)