电源时序管理和电源电压监控管理芯片
扫描二维码
随时随地手机看文章
作者Email: cherh@dragonhk.com
摘要:本文介绍了一种新的用于电源控制的可编程芯片。可在单个芯片上实现多的电源时序控制和监控功能,并且所有的控制结果可以立即的仿真出来,要更改设计时,只要对器件的E2CMOS(r) 配置内存重新编程就可以了。
关键词:电源控制;场效应功率管;可编程逻辑器件;内部振荡器
前言
目前控制电源时序和监测方案大都是:电阻或电容等分离器件搭起来实现控制的,如A,B两种电压,要求A先上电,然后B上电。则使用A处理好的电压作为B的电荷泵的激励源,这样的两路还较容易实现控制,但精确性已经不足;两路以上的话PCB画起来就不十分简洁了,若再精确的延时控制就需要加上电容实现;更加精确的延时控制还需要通过CPLD计时来实现,但这都建立在主控电压正常稳定的基础下。偌主控电压稍不正常,种种电压引起的问题依然会出现。
一些简单的时序控制也可以用复位芯片组成,但当要求的控制电源较多时,比较繁琐,而且灵活性不强,电源控制部分稍作改动,就需要重新改板。要实现监测保护功能的话,还需要再加监测芯片。复杂的上电顺序,可用单片机调试来实现的,这就需要我们了解单片机的寄存器结构使用等等,需要调试。在自身供电电压上,很多单片机都要求比较严格,大致为3.3V和5V,正负10%的偏差,没有一般专用时序电路那样范围大,如POWERPAC,为2.25V到5.5V。另外在控制外围NMOS时,需要外加MOS驱动。在市场上也有一些时序控制芯片,可以控制多路电源,内置电荷泵,可以开启外围的NMOS,时序间隔采用外围阻容来调节,但一般没有监测保护功能,且定时不太精确。
Powepac是业界第一片混合信号可编程逻辑器件(PLD),它内含在系统可编程的模拟和逻辑组块,能提供经过优化的电源管理功能,这一功能对如今的多电源电子系统是至关重要的。而且芯片自身对电压供给要求非常低,2.25V至5V该芯片都可以稳定正常的工作,从而保证了整个板子对供电稳定性的高冗余度。该器件集成了可编程逻辑、电压比较器、参考电压及高电压的场效应管驱动器,支持单芯片可编程供电定序与监控,为总值达到 120 亿美元的电源半导体市场奉献了独特的可编程控制方案。POWERPAC是目前业绩比较新、由Lattice公司推出的电源时序控制和电压保护监测等功能集于一身的芯片。
2 POWERPAC的构成
POWERPAC是由模拟输入、数字输入、时序控制的 PLD、时钟和定时器、模拟比较器输出、控制高压输出、逻辑输出共七部分组成(图一)。
模拟输入用于各路电压的检测,为内置基准的比较器提供输入,内置电压基准可编程为1.03V到5.72V范围 内192个等级上的任一电压;时钟和定时器电路为内部数字电路提供时钟基准,以及产生四个可编程的定时器,250 kHz 的内部振荡器在芯片产生时钟(另外也可以根据需要由外部引入时钟),可编程定时器的定时在32μs 到 512ms之间灵活编程控制;
控制高压输出和逻辑输出用于控制开启MOS开关和DC/DC模块等,特别说明的是:控制高压输出可以配置成高压输出,利用内部的电荷泵,产生高达12V的电压,用于控制作为开关的小导通电阻NMOS;开启MOS开关过程长短可以编程,工程师可以根据使用现场灵活控制,开关减少开启时对电源系统的冲击,以保证电源系统的稳定。另外高压输出端也可以配置为和逻辑输出一样的OC门输出,用于逻辑控制。
图2
比较器输出和数字输入可和板上的相关外围电路结合起来,完成用户设计的一些特定功能。时序控制PLD是POWERPAC的主控部分,利用各种输入的检测,根据用户的控制程序,利用高压输出和逻辑输出来控制时序和实现保护,图2示出一款POWERPAC1208的详细结构框图。
Lattice公司免费提供基于PC机的设计工具—— PAC-Designer,具有功能强大、简单易用的特点,帮助您设计、综合仿真和烧写电路板上的电源管理电路。当你仿真完成后,通过POWERPAC的JTAG口下载到器件中的E2COMS中,实现了 JTAG 在系统可编程能力 ,灵活、有效地跟踪电源。
3 POWERPAC在单板上的应用
该应用是介绍Powerpac在RPR板上的应用,该板共要求有3.3V、2.5V、1.8V、1.5V、1.3V六种直流电压,另外还有两种用于QDR和DDR的总线匹配电压0.75V和1.25V,分别要求跟踪QDR和DDR的IO供电电压1.5V和2.5V。各电压要求直接或间接从48V输入变换得到。
本板上需要控制电源的主要芯片为:网络处理器(NPU)、QDR、DDR。各芯片要求上电顺序如下;
为满足上电顺序及电源监控保护的要求,还有整个板上电源的有效管理,采用了Lattice公司的电源控制专用芯片ispPAC_POWR1208来控制。由于本板上的电源较多,功率较大的特点,故在设计时采用隔离电源模块先得到3.3V和2.5V的直流输出,然后按特点采用非隔离模块、LDO以及电源芯片产生所需电压。
具体见图3单板电源时序和监控管理框图。
图3
从单板实现的框图中,可以看到我们利用POWERPAC1208,将48V输入DC/DC模块输出3.3V和2.5V通过高压直接驱动NMOS作为开关,来进行时序控制,LDO和非隔离DC/DC模块则通过逻辑输出控制其开启脚,来达到综合此单板器件所需要的电源1.3V、3.3V、1.8V、1.5V、2.5V的先后时序,另外总线终端(BUS TERNIMAL)则采用专用终端芯片,使1.25V和0.75跟随相应的2.5V和1.5V。
时序中的时间间隔设计见后面介绍的程序,可以用POWERPAC提供的四个定时器来定时,也可以用检测某一电压开通之后作为条件,再开通另一电压的方法实现。
另POWERPAC还提供电压监测保护的功能,当检测到有电压超过相应的预先设定的阀值时,立即产生一个中断的动作,完成用户指定的中断操作,实现保护功能。这里设定得阈值基准可编程为1.03V到5.72V范围 内192个等级上的任一电压,拥有1%的标准电压阈值可调度。在我们的设计里,当3.3V电压大于3.4V(3.3+3.3*5%=3.458V)或者2.5V大于2.6V(2.5V+2.5V*5%=2.622V)时,产生中断,切断电源,实现保护。
4 POWERPAC的编程及配置
POWERPAC的编程和配置,利用Lattice公司免费提供基于PC机的设计工具—— PAC-Designer,简单易用。先可以写出需要控制的伪代码,然后利用PAC-Designer设计出代码。仿真无错后,下载于器件中。我们利POWERPAC1208控制时序的伪代码如图4。
其中等待时间如图5 ,t1,t2,t3,t4,t5,t6 为Powerpac1208内部的250 kHz 的内部振荡器在芯片产生时钟, 产生四个可编程的定时器:Timer1--16.38ms ; Timer2-2.048ms ; Timer3-2.048ms ; Timer1-262.1ms 来实现的.如果有些设计需要的定时器时间超过了512ms,那么就可以双击图5中的开关,把开关配置在外部的时钟上,灵活实现各种时延要求。
图5
利用POWERPAC的开发工具PAC-Designer可以将伪代码设计成工程正式代码,编译仿真后可写于器件中。本板开发代码的界面如下图6。
图6
通过图6,我们可以看到整个控制实现的配置过程:
Step0 :Begin Startup Sequence 是每个设计都需要的一句开始语,告诉我们的软件设计开始了,是ispPAC-POWER1208复位指示.
Step1 :FET_Driver_3V3=0, FET_Driver_2V5=0,LDO1V8_En=0,Brick1V5_En=0,B… 是表示关闭3.3V和2.5V的FET驱动,关闭1.8V和1.5V的LDO导通信号。至于FET_Driver_3V3,FET_Driver_2V5,LDO1V8_En,Brick1V5_En等都是我们在软件中自己给信号起的名字。
Step2:一个条件―>等3.3V和2.5V信号都为高电平以后。
Step3:一个条件->满足Step2的条件以后,等待一个16.38ms的时间(16.38ms是用的计时器Timer2)。
Step4: 执行一个结果了,在满足Step3以后,把Brick1V3_En的信号拉高,实现了输出1.3V的允许,就把单板的1.3V的电压打开了。
Step5:一个条件―>等输入1.3V为高电平以后。
Step6:一个条件->满足Step5的条件以后,等待一个2.048ms的时间(2.048ms是用的计时器Timer1)。
Step7:执行一个结果了,在满足Step6以后,把FET_Drive_3.3V的信号拉高,实现了输出打开3.3VFET的允许,就把单板的3.3VFET MOS管开始打开了。至于打开FET的导通斜率,在图7 中有阐述。
以后Step8,Step9,Step10,Step11……意思相同,这里就不一一解释了。
图7
在图7中,可以通过调节Charge Pump Output 的Voltage 和Source 值来,控制FET导通时的斜率。从图中我们可以看到,如果这四个控制输出不用作FET的导通,可以把它们配置成Open Drain Logic Output ,即可用作为一般的控制LDO,DC/DC…的控制导通信号。
5 使用POWERPAC电源控制结论
现在采用在线可编程数字逻辑和在线可编程模拟电路实现电源时序控制和电压监测和保护功能。无需使用较多的比较器、电阻、电容、定时器和逻辑,就在单个芯片上实现完全的电源定序和监控功能!并且所有的控制结果都可以立即的仿真出来,ispPAC 电源管理器件就能为您做到这些。要更改设计时,只要对器件的E2CMOS(r) 配置内存重新编程就可以了。使用下来最大的感受就是:简单、方便、可靠、准确。