目前,电源时序控制和电压监测方案大都存在种种问题,例如,采用电阻或电容等分离器件搭起来实现控制的,如A,B两种电压,要求A先上电,然后B上电,则使用A处理好的电压作为B的电荷泵的激励源,这种方案对于两路还较容易实现控制,但精确性已显不足;对于两路以上则PCB会非常复杂,若再需要精确的延时控制时,就需要加上电容来实现;更加精确的延时控制还需要通过CPLD计时来实现,但这都建立在主控电压正常稳定的基础下。若主控电压稍不正常,电压引起的种种问题就会出现。
一些简单的时序控制也可以用复位芯片组成,但当要求的控制电源较多时,比较繁琐,而且灵活性不强,电源控制部分稍做改动,就需要重新改板。要实现监测保护功能的话,还需要再加监测芯片。复杂的上电顺序,可用单片机调试来实现,这就需要我们了解单片机的寄存器结构及使用等,需要调试。在自身供电电压上,很多单片机都要求比较严格,大致为3.3V和5V,正负10%的偏差,没有一般专用时序电路那样范围大(如PowerPAC,为2.25~5.5V),另外在控制外围NMOS时,需要外加MOS驱动。市场上也有一些时序控制芯片可以控制多路电源,内置电荷泵,可以开启外围的NMOS,时序间隔采用外围阻容来调节,但一般没有监测保护功能,且定时不太精确。
PowerPAC是Lattice公司推出的一款混合信号可编程逻辑器件(PLD),它内含在系统可编程的模拟和逻辑组块,能提供经过优化的电源管理功能,这一功能对如今的多电源电子系统是至关重要的。而且芯片自身对电压供给要求非常低,在2.25~5V下,该芯片都可以稳定正常的工作,从而保证了整个板子对供电稳定性的高冗余度。该器件集成了可编程逻辑、电压比较器、参考电压及高电压的场效应管驱动器,支持单芯片可编程供电定序与监控。
PowerPAC 的构成
PowerPAC是由模拟输入、数字输入、时序控制的 PLD、时钟和定时器、模拟比较器输出、控制高压输出、逻辑输出等部分组成。
模拟输入用于各路电压的检测,为内置基准的比较器提供输入,内置电压基准可编程为1.03~5.72V范围内192个等级上的任一电压;时钟和定时器电路为内部数字电路提供时钟基准,并产生四个可编程的定时器,250 kHz的内部振荡器在芯片产生时钟(也可以根据需要由外部引入时钟),可编程定时器的定时在32μs~512ms之间灵活编程控制。
控制高压输出和逻辑输出用于控制开启MOS开关和DC/DC模块等,特别说明的是:控制高压输出可以配置成高压输出,利用内部的电荷泵,产生高达12V的电压,用于控制作为开关的小导通电阻NMOS;开启MOS开关过程长短可以编程,工程师可以根据使用现场灵活控制,开关减少开启时对电源系统的冲击,以保证电源系统的稳定。另外高压输出端也可以配置为和逻辑输出一样的OC门输出,用于逻辑控制。
图1:PowerPAC1208器件框图
比较器输出和数字输入可和板上的相关外围电路结合起来,完成用户设计的一些特定功能。时序控制PLD是PowerPAC的主控部分,利用各种输入的检测,根据用户的控制程序,利用高压输出和逻辑输出来控制时序和实现保护,图1所示是一款PowerPAC1208的详细结构框图。
PAC-Designer 是Lattice公司免费提供的基于PC的设计工具,它具有功能强大、简单易用的特点,帮助工程师设计、综合仿真和烧写电路板上的电源管理电路。当仿真完成后,通过PowerPAC的JTAG口下载到器件中的E2CMOS中,实现 JTAG 在系统可编程能力,灵活、有效地跟踪电源。
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以及电源芯片产生所需电压。具体见图2单板电源时序和监控管理框图。
图2:单板电源时序和监控管理框图
从单板实现的框图中,可以看到,我们利用PowerPAC1208将48V输入DC/DC模块,输出3.3V和2.5V,通过高压直接驱动NMOS作为开关,来进行时序控制。LDO和非隔离DC/DC模块则通过逻辑输出控制其开启脚,来达到综合此单板器件所需要的电源1.3V、3.3V、1.8V、1.5V、2.5V的先后时序。另外总线终端则采用专用终端芯片,使1.25V和0.75V跟随相应的2.5V和 1.5V。
时序中的时间间隔设计见后面介绍的程序,可以用PowerPAC提供的四个定时器来定时,也可以用检测某一电压开通之后作为条件,再开通另一电压的方法实现。
PowerPAC还提供电压监测保护的功能,当检测到有电压超过相应的预先设定的阀值时,立即产生一个中断的动作,完成用户指定的中断操作,实现保护功能。这里设定的阈值基准可编程为1.03~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)时,产生中断,切断电源,实现保护。
PowerPAC 的编程及配置
PowerPAC的编程和配置,利用Lattice公司免费提供的基于PC的设计工具—— PAC-Designer,简单易用。先可以写出需要控制的伪代码,然后利用PAC-Designer设计出代码。仿真无错后,下载于器件中。我们利用PowerPAC1208控制时序的伪代码如图3所示。
图3:伪代码示意图
其中等待时间如图4所示,t1、t2、t3、t4、t5、t6为PowerPAC1208内部的250 kHz 振荡器在芯片产生时钟, 产生四个可编程的定时器:Timer1: 16.38ms、Timer2:2.048ms、Timer3:2.048ms、Timer4:262.1ms来实现的。如果有些设计需要的定时器时间超过了512ms,那么就可以双击图4中的开关,把开关配置在外部的时钟上,灵活实现各种时延要求。本板开发代码的界面如图5所示。
图4:时钟和计时器示意图
图5:PAC-Designer开发界面示意图