特征
在7个独立
电源上检测到故障;1高压电源(2 V至14.4 V);4只正极电压电源(2 V至6 V);2正/负电压电源(+2 V至+6 V和-2 V至-6 V);看门狗检测器输入超时延迟可编程,从200 ms到12.8秒;4个通用逻辑输入;所有输入和输出的可编程逻辑块组合和排序逻辑控制9个可编程输出驱动器:开路集电极(需要外部电阻器)开路集电极,内部上拉至VDD;快速向上拉至VDD;带有VPn内部上拉功能的开放式收集器;快速内部启动到VPn;内部电荷泵高驱动(仅用于外部N通道FET PDO 1至4);EEPROM-256字节用户EEPROM;工业标准2线总线接口(SMBus);有VPn的保证PDO低,VH=1v。
应用
中央办公系统;服务器;基础设施网络板;高密度、多电压系统卡。
一般说明
ADM1060是一种可编程的监控/排序设备,它为
通信系统中的多电源故障检测和排序提供了一种单芯片解决方案。
在中央办公室、服务器和其他基础设施系统中,公共背板直流电源通过直流-直流转换器减少为多板电源。这些多个电源用于为
电路板的不同部分供电,如3.3v逻辑电路、5v逻辑电路、DSP核心和DSP I/O电路。通常要求某些部分在其他部分之前通电;例如,一个DSP核心可能需要在DSP I/O之前通电,反之亦然,以避免损坏、错误通信或锁存。ADM1060有助于实现这一点,它提供了最多7个独立电源的故障检测和排序/组合逻辑。七个电源故障探测器包括一个高压探测器(高达+14.4V)、两个双极电压探测器(高达+6V或低至-6V)和四个正低压探测器(高达+6V)。所有探测器都可以编程来检测欠压、过电压或窗口外(欠压或过电压)条件。这些电源故障探测器的输入通过VH(高压)引脚、VBn(正或负)引脚和VPn(仅正)引脚。VH电源或其中一个VPn电源用于为ADM1060供电(以较高者为准)。这可以确保在发生电源故障时,ADM1060尽可能长时间保持活动状态,从而能够断言可靠的故障标志,并按顺序关闭系统。
ADM1060的其他输入包括一个看门狗检测器(WDI)和四个通用输入(GPIn)。看门狗检测器可用于监视处理器时钟。如果时钟在可编程超时期间(最长18秒)内没有切换(从低到高或从高到低),则将断言失败标志。这四个通用输入可以被配置为逻辑缓冲器或检测正/负边缘,并从这些边缘产生逻辑脉冲或电平。因此,用户可以从系统的其他部分(例如,复位或电源良好)输入控制信号,以对由ADM1060监控的电源的顺序进行选通。
ADM1060具有九个可编程驱动程序输出(PDO)。所有九个输出都可以配置为逻辑输出,它可以为最终用户提供多个功能,如重置生成、电源良好状态、LDO启用和看门狗超时断言。PDOs 1至4具有附加的特征,能够提供内部电荷泵浦高电压,用作外部N沟道FET的栅极驱动,该FET可以放置在被监视的电源之一的路径中。
前面描述的所有输入和输出都由可编程逻辑块阵列(PLBA)控制。这是ADM1060的逻辑核心。它由9个宏单元组成,每个PDO一个。这些宏单元本质上只是宽的和门。任何/所有输入都可以用作这些宏单元的输入。宏单元的输出也可以用作除自身以外的任何宏单元的输入(对自身的输入将导致非终止循环)。PLBA输出通过延迟块控制ADM1060的pdo,在延迟块中,可以在数据的上升和/或下降沿上编程0 ms到500 ms的延迟。这就产生了非常灵活的测序能力。因此,例如,可以对PDO1进行编程,使其在VP2、VP3和VP4电源处于公差状态之前不会断言;VB1和VH已处于公差状态200 ms;PDO7已被断言。一个简单的排序操作是将每个PLB输出串接到下一个PLB的输入中,这样PDO9在PDO8断言之前不会断言,而PDO8又在PDO7断言之前不会断言,以此类推。
这里描述的所有功能都可以通过提供的工业标准2线总线(SMBus)进行编程。可将设备设置写入EEPROM存储器,以便在通电时对设备进行自动编程。EEPROM以512字节组织,其中一半用于在ADM1060上编程所有功能。其他256字节的EEPROM用于通用系统,如日期代码和系统ID。也可通过2线接口对其进行读/写访问。此外,每个输出状态都可以从串行接口直接超调,从而允许进一步的控制级别,如在系统控制的软电源关闭中。
绝对最大额定值
高于绝对最大额定值的应力可能会对设备造成永久性损坏。这仅是一个应力额定值;设备在本规范操作章节所述条件或以上任何其他条件下的功能操作并不意味着。长期暴露在绝对最大额定条件下可能会影响设备的可靠性。
热特性
28铅TSSOP包装:θJA=98°C/W
典型性能特征
输入
为ADM1060供电
ADM1060由仅正极电源输入(VPn)或高压电源输入(VH)上的最高电压输入供电。相同的管脚用于电源故障检测(如下所述)。设备上的VDD仲裁器选择要使用的电源。仲裁器可以被认为是二极管或正电源在一起(如图17所示),二极管以同步整流器的方式被开关补充以最小化电压损失。此损耗可以降低到~0.2 V,从而能够从低至3.0 V的电源为ADM1060供电。请注意,VBn管脚上的电源不能用于为设备供电,即使这些管脚上的输入为正。此外,必须在其中一个VPn管脚上显示3.0 V的最小电源,才能正确地为ADM1060通电。VH上可使用不低于4.5 V的电源。这是因为VH引脚上没有同步整流电路,导致VDD仲裁器的二极管上的电压降约为1.5v。
为了使片上电源与噪声分离,需要一个接地的外部电容器。该电容器应连接到VDDCAP引脚,如图17所示。电容器在“断电”期间还有另一个用途(瞬时断电)。在这些情况下,当输入电源VPn暂时下降到VDD以下时,同步整流开关立即关闭,这样就不会拉低VDD。然后,VDD电容器可以充当一个储能器来保持芯片的活性,直到下一个最高的电源接管设备的电源。此功能建议使用1μF电容器。最小电容值要求为0.1μF。
注意,如果在彼此100 mV范围内有两个或多个电源,则首先控制VDD的电源将保持控制。例如,如果VP1连接到3.3V电源,VDD将通过VP1供电至约3.1V。如果VP2连接到另一个3.3v电源,VP1仍将为设备供电,除非VP2比VP1高100毫伏。
ADM1060的VCCP引脚需要另一个电容器。这个电容器是中央电荷泵的储能电容器。同样,推荐使用1μF电容器来实现此功能。最小电容值要求为0.1μF。
可编程电源故障检测器(SFD)
ADM1060有七个可编程电源故障检测器(SFD):一个高压检测器(+2 V至+14.4 V)、两个双极检测器(+1 V至+6 V、-2 V至-6 V)和四个仅正极电压检测器(+0.6 V至+6 V)。输入分别通过VH(高压电源输入)、VBn(双极电源输入)和VPn(仅正极输入)管脚应用于这些探测器。SFD检测到这些输入电源中的任何一个出现故障。故障被定义为欠压(电源低于预先编程的水平)、过电压(电源高于预先编程的水平)或窗外(电源偏离预先编程的过电压或欠电压阈值)。一次只能选择一种故障类型。
通过比较输入电源与编程参考(欠压阈值)来检测欠压(UV)故障。如果输入电压低于欠压阈值,比较器的输出就会变高,从而判断出故障。欠压阈值使用8位DAC编程。在给定范围内,紫外线阈值可以设置为:
使用第二比较器和DAC对基准进行编程,以完全相同的方式检测过电压(OV)故障。
所有阈值使用8位寄存器编程,七个UV阈值各一个寄存器,七个OV阈值各一个寄存器。用户编程的UV或OV阈值由:
VT是期望的阈值电压(UV或OV)
VR是阈值电压范围
N是8位代码的十进制值
VB是阈值范围的底部
因此,给定阈值的代码由:
例如,如果用户希望在VP1,要在PS1OVTH寄存器中编程的代码(稍后讨论)将:
因此,N=1***制,或0xBF)
可用的阈值范围及其分辨率如表3所示。注意,探测范围的低端固定在范围顶部的33.33%。还要注意,对于给定的SFD,范围重叠;例如,VH从2v到6v,然后从4.8v到14.4v。这是为了在电源值降低时提供更好的阈值设置分辨率。
图18说明了可编程SFD的功能(对于正电源)。
SFD比较器滞后
图18所示的OV和UV比较器总是通过一个电位分配器来观察VPn。为了避免抖动(当输入非常接近设定的阈值水平时的多次跃迁),这些比较器具有数字可编程滞后。UV和OV迟滞可以在两个寄存器中编程,这两个寄存器类似但与UV或OV阈值寄存器分开。只能设置这些寄存器的五个LSB。当电源电压超出允许值时,磁滞会增加。因此,用户可以确定在解除对UV故障的评估之前,输入必须再次升高到UV阈值以上的程度。类似地,用户可以确定在取消对OV故障的评估之前,输入必须再次低于OV阈值多少。滞后系数由:
式中:VH为所需滞后电压;NTHRESH是5位滞后码的十进制值。
因此,如果选择了低范围阈值检测器,则最大滞后定义为:
滞后编程分辨率与阈值检测范围相同,即高范围37.5 mV,中范围15.6 mV,低范围7.8 mV,超低范围4.7 mV。
双极SFD
两个双极SFD还允许检测负极电源上的故障。此SFD的设置寄存器中的极性位(寄存器BSnSEL中的位7,见背面的寄存器映射)决定是否应将正或负输入应用于VBn。当SFD处于负模式时,只有一个范围(-6 V至-2 V)可用。请注意,双极SFD不能用于为ADM1060供电,即使VBn上的电压为正。
SFD故障类型
SFD可以断言三种类型的故障:OV故障、UV故障和窗口外故障(UV故障和OV故障同时存在)。所需故障类型使用故障类型选择位(寄存器中的位0、1)编程。如果应用程序要求在一个电源上检测单独的故障条件(例如,如果在3.3 V电源上发生紫外线故障,则断言PDO1;如果在同一3.3 V电源上发生紫外线故障,则断言PDO9),则该电源将需要应用于多个输入引脚。
SFD上的故障过滤
SFD的最后阶段是故障滤波器。此块对SFD的输出提供时域滤波。这允许用户删除任何虚假的转换(例如打开时的供应反弹)。此脱胶功能是SFD可编程滞后的补充。故障滤波器超时可编程为高达100微秒。如果输入端出现一个短于编程超时的脉冲,则该脉冲被屏蔽,信号变化将出现在输出端。如果输入脉冲超过编程超时出现在输入上,则该脉冲将出现在输出上。输出将延迟(相对于输入)编程超时的长度。
图19显示了故障过滤的实现。
在SMBus上编程SFD
稍后将描述使用SMBus的详细信息,但与电源故障检测器块相关联的寄存器名称、这些寄存器的位映射以及每个位的功能将在下表中描述。下表显示了如何为上的每个SFD设置紫外线阈值、紫外线滞后、OV阈值、OV滞后、故障过滤和故障类型ADM1060。
看门狗故障检测器
ADM1060具有看门狗故障检测器。这可用于监视处理器时钟以确保正常工作。探测器监测WDI引脚,期望在预先编程的时间段内出现从低到高或从高到低的转换。看门狗超时时间可以从200毫秒编程到最长12.8秒。
如果未检测到转换,则断言两个信号。一个是锁存高信号,表示发生了故障。另一个信号是低-高-低脉冲,可以用作处理器核心的复位信号。此脉冲的宽度可编程为从10微秒到最大10毫秒。这两个可以选择看门狗信号作为每个plb的输入(参见PLBA部分)。如果需要,它们也可以反转;例如,如果处理器需要高-低-高-高脉冲来复位。因此,看门狗上的故障可用于在九个pdo中的任何一个或所有pdo上产生脉冲或锁存输出。
通过读取SMBus接口上的LATF1,然后读取LATF2,可以低清除锁定信号(请参阅故障寄存器部分)。RAM寄存器列表和看门狗故障检测器的位图如下所示。
通用输入(GPI)
ADM1060有四个通用逻辑输入(GPI)。这些是TTL/CMOS逻辑级兼容。标准逻辑信号可应用于管脚:复位发电机复位、电源信号、故障标志、手动复位等。这些信号可以通过ADM1060监控的其他输入进行选通,并用于控制PDO的状态。可以简单地缓冲输入,或者检测逻辑转换并生成脉冲输出。此脉冲的宽度可编程为从10微秒到最大10毫秒。GPI的配置显示在下面的寄存器和位图中。
GPIs还具有类似于SFD上提供的故障滤波器。这允许用户忽略GPI上的虚假转换。例如,故障滤波器可用于松开手动复位开关。故障滤波器的长度也可以编程。
GPIs和其他逻辑输入的逻辑状态
每个GPI都可以有一个弱(10微安)下拉电流源。电流源可以通过对PDEN寄存器中的相关位进行编程来连接到输入端。这使得用户能够控制这些输入的条件,将它们拉到GND,即使它们是未使用的或浮动的。
注意,SMBus地址管脚A0和A1以及WDI管脚提供了相同的下拉功能。寄存器用于编程哪些输入与电流源相连。
程序设计
可编程逻辑块阵列
ADM1060包含可编程逻辑块阵列(PLBA)。此块是设备的逻辑核心。PLBA(和PDB参见可编程延迟块部分)提供ADM1060的排序功能。九个可编程驱动器输出(PDO)的断言由PLBA控制。PLBA由9个宏细胞组成,每个PDO通道一个。宏单元的主要组件是两个宽的和或门,如图20所示。每个与门代表一个函数(a或B),可以独立地用于控制PDO pin的断言。每个和门有21个输入:
•所有七个电源故障探测器的逻辑输出
•四个GPI逻辑输入
•看门狗故障检测器(锁定和脉冲)
•任何其他宏单元的延迟输出(宏单元的输出不能是自身的输入,因为这将导致非终止循环)。
所有21个输入均硬接线至功能A和功能B以及门。然后,用户可以选择哪些输入控制输出。这是通过两个控制信号来完成的,分别是mk(一个屏蔽位,设置它会忽略相关的输入)和POL(一个极性位,设置它会在将输入应用到与门之前反转输入)。设置这些位的效果如图20所示。所示的反转门是一个异或门,产生以下真值表:
真值表中的最后两个条目显示,在设置了反转(POL)位的情况下,异或输出总是与输入相反。
类似地,所示的忽略门是OR门,产生以下真值表:
在这里可以看到,一旦设置了该mk位,不管输入是什么,OR输出总是1,因此忽略它。图21是21个输入和编程所需寄存器的详细图。所示仅适用于PLB1的功能A,但功能B和其他八个PLB中的所有功能的编程方式完全相同。启用寄存器允许用户使用功能A和/或功能B。功能A和/或B的输出被输入到可编程延迟块(PDB),在PDB中,可以在输入的上升和下降边缘对延迟进行编程(参见可编程延迟块部分)。这个PDB块的输出可以编程为在断言任何PDO管脚之前反转。
这些宏单元的控制位存储在本地锁存器中,锁存器在通电时加载。这些锁存器也可以通过串行接口进行更新。包含宏单元控制位和每个位的功能的寄存器在下表中定义。
图21突出显示了一个给定函数的所有21个输入和需要设置的寄存器/位,以便正确调整21个输入。该图仅显示可编程逻辑块1(PLB1)的功能A,但所有功能的编程方式相同。
例如,如果用户希望在所有电源都符合规范后断言PLBOUT约200 ms(PLBOUT可用于驱动LDO的使能管脚),则需要电源故障检测器VBn、VH和VPn来控制该功能。功能编程如:
1、相关P1xxxIMK寄存器中所有其他输入(GPIs、PDBs、WDI)的忽略位设置为1。因此,无论其状态如何,这些输入的功能和门的输入将是1。
2、由于SFD在故障条件下断言1,而在电源处于允许范围内时断言0,因此在应用于函数之前,需要反转SFD输出。因此,P1SFDPOL寄存器中的相关位被设置(见表38)。
3、该功能已启用(寄存器P1EN的位1见表36)。
4、设定200 ms的上升时间(寄存器P1PDB
tiM详见寄存器图)。
可编程延迟块
PLBA的每个输出被馈送到单独的可编程延迟块(PDB)中。PDB使用户能够在应用于PDO或其他PLB之一之前向逻辑块输出添加延迟(PLB的输出可以是对任何其他PLB的输入,但不能是其本身)。PDB操作与故障滤波器的操作类似(在SFD一节中讨论)。然而,这两个功能之间有一个重要的区别。PDB输入下降沿上的延迟可以独立于上升沿进行编程。这允许用户编程从PDB输出的脉冲长度。因此,例如,可以调整来自看门狗故障检测器的脉冲宽度,或者用户可以确保在断言PDO之前,由一个sfd监视的电源在其UV/OV范围内的编程时间段内。可以在PnPDBTIM寄存器中编程0 ms到500 ms的延迟。每四位用于编程上升沿和下降沿。
编程后,PDB按如下方式工作。如果用户在上升沿(例如,200毫秒)编程延迟,则PDB会在输入端寻找上升沿。一旦它看到边缘,就会启动计时器。如果输入仍然很高并且计时器到达200毫秒后,PDB立即输出上升沿。如果在计时器达到200 ms之前输入降低,则PDB没有输出边缘,计时器复位。由于对下降沿有单独的控制,如果在下降沿上没有编程延迟,则延迟默认为0 ms,输入上的下降沿将立即出现在输出上。如果对下降沿延迟进行编程,则PDB的工作方式与上升沿完全相反。同样,如果在下降沿上编程了200 ms的延迟,则PDB在输入上寻找下降沿。一旦它看到边缘,就会启动计时器。如果输入保持低,计时器达到200毫秒,则输出从高到低转换。必须在输出端出现有效的上升沿,才能激活下降沿延迟。PDB的功能如图22所示。
除了额外的定时灵活性,可编程延迟还提供了一种粗糙的过滤形式。与故障滤波器的工作方式大致相同,输入必须在编程的一段时间内处于高位(或低位),然后才能在输出上看到。短于编程超时的瞬变不会出现在输出上。控制上升边和下降边的寄存器的位图如表38所示。
输出
可编程驱动器输出
ADM1060有九个可编程驱动程序输出(PDO)。这些是设备的逻辑输出。每个PDO通常由一个PDB控制。因此,pdo可以被设置为在PDB上的条件得到满足时断言,例如sfd处于容差中、GPI上的级别正确、看门狗计时器未超时等等。PDO可用于许多功能;例如,当所有SFD都在公差范围内时,为了提供功率良好的信号,如果其中一个SFD超出规格,则提供复位发电机输出(它可以用作DSP或其他微处理器的状态信号),或在ADM1060正在监视的电源上为LDO提供启用信号。
PDO上有许多上拉选项,使用户可以对输出电平进行编程。
输出可编程为:
•开路(允许用户连接外部上拉电阻器)
•排水明沟,弱上拉至V
•推拉至V
•开放式排水管,对VPn的上拉能力较弱
•推拉到VPn
•内部电荷泵高驱动(12 V)
最后一个选项仅在PDO1-4上可用。这允许用户在电源路径中直接驱动N通道FET的栅极。通过对PnPDOCFG中的位0到3进行适当编程来选择所需的上拉(见表40)。
驱动每个pdo的数据可以来自三个输入之一。这些输入在PnPDOCFG寄存器。输入是:
•相关PLB的(延迟)输出(通过将位CFG4设置为1启用)
•直接通过SMBus接口驱动的数据(通过将位CFG5设置为1启用)。在此模式下设置时,来自PDB的数据被禁用,PDO上的数据是CFG4上的数据。因此,可以对PDO进行软件控制,以启动软件通电/断电。
•片上时钟(通过将位CFG6设置为1启用)。100 kHz时钟可用于对外部设备(如LED)进行时钟。
关于这些数据模式的更多细节见表40的寄存器映射。
每个PDO的默认设置是由一个弱(20 kΩ)下拉电阻器拉低。这也是PDO通电时的设置,直到寄存器加载且编程条件锁定。一旦在任何VPn或VH上看到1v或更大的电压,输出就会被主动拉低。在芯片上有1V电源之前,输出是高阻抗的。这为pdo在通电期间提供了已知条件。通过将适当值的外部上拉从PDO引脚绑定到所需的上拉电压,可以过度驱动内部下拉。在计算合适的值时,必须考虑20千伏电阻。例如,如果需要将PDOn拉高到3.3v,并且5v可用作外部电源,则上拉电阻值由下式给出:
因此,
pdo的寄存器列表和位映射如表39和表40所示。
状态/故障
ADM1060上的故障/状态报告
如前所述,任何数量的pdo都可以编程为在一组预先编程的条件下断言。这些情况可能是SFD上的故障、GPI上的状态更改、监视器检测器超时等。由于ADM1060的灵活性和可用组合的选择,PDO的断言不会告诉用户是什么导致它断言(除非它编程为只使用一个输入断言)。
为了使用户能够调试PDO断言的原因,ADM1060上的多个寄存器提供了设备所监督的各种单独功能的状态和故障信息。
状态寄存器
许多状态寄存器指示由ADM1060控制的所有功能的逻辑状态。这些逻辑状态包括七个sfd中每个sfd的UV和OV比较器的输出、sfd本身的逻辑输出、gpi的逻辑状态、WDI上的错误条件以及九个pdo中每个pdo的逻辑状态。这些寄存器的内容是只读的,可以随时通过SMBus接口读取。这些状态寄存器的寄存器和位映射在下表中进行了描述。
故障寄存器
ADM1060还提供故障报告。例如,如果发生导致PDO更改其状态的故障,则用户可以确定实际发生故障的函数。这是通过提供由两个寄存器LATF1和LATF2组成的“故障平面”来实现的,系统控制器可以通过SMBus读出ADM1060。如表41所示,两个寄存器中的每个位(除了一个重要的例外,见下文)被分配给设备的一个输入。
每一位代表其分配函数的逻辑状态,i、 例如,sfd和WDI的逻辑输出,以及GPI输入上的逻辑电平。
重要的异常是LATF1寄存器的MSB。这是ANYFLT位。如果两个寄存器中的其他位之一发生故障,则该位变高。故障被定义为自上次读取故障寄存器以来极性的变化。一旦ANYFLT变高,两个寄存器的内容被锁存,从而防止在读取寄存器的内容之前其他比特中的一个以上改变极性。因此,可以确定第一个故障输入。
寄存器的读取顺序由无论如何。只要ANYFLT保持为0,就只有读取LATF1。这有两个原因。首先,ANYFLT=0表示没有发生任何故障,因此,不需要读取LATF2的内容。第二个也是更重要的原因是读取寄存器LATF2实际上将ANYFLT位重置为0。因此,如果在读取LATF1之后但在读取LATF2之前在SFD上发生故障,则ANYFLT将更改为1,表示已发生故障,但在读取LATF2之后将重置为0,从而擦除故障日志。总之,只有当ANYFLT=1时才应该读取LATF2。读取此序列中的寄存器可确保在通过SMBus记录故障之前,不会重置内容,从而确保监控处理器或CPLD知道由ADM1060监控的哪个功能导致故障。通过比较故障平面的内容(即两个寄存器的内容)与先前读取的值,并确定哪个位改变了极性,来确定故障功能。
故障平面的功能最好用一个例子来说明。例如,以VP1为例,输入电源为5.0v。在VP1上设置4.5v到5.5v的UV/OV窗口。每次读取LATF1和LATF2的内容时,电源都会从该窗口斜进斜出。记录的数值如下:
1. 5 V时的VP1:LATF1=LATF2=00000000。这是意料之中的。电源在公差范围内,SFD输出为0,因此没有故障。
2. 4.2V时的VP1:LATF1=10001000,LATF2=00000000。SFD输出已将状态更改为1,因此ANYFLT将变为高。
3. 5.0V时的VP1:LATF1=10000000,LATF2=00000000。SFD输出已将状态更改为0,因此ANYFLT再次变高。
4. 5.8 V时的VP1:LATF1=10001000,LATF2=00000000。SFD输出再次将状态从0更改为1,因此ANYFLT变为高。
5.4.2 V时的VP1:LATF1=10000000,LATF2=00000000。乍一看,这似乎是不正确的,因为SFD输出应为1(4.2v是欠压故障)。然而,在从5.8伏逐渐下降到4.2伏的过程中,电源进入UV/OV窗口,SFD输出从1变为0,ANYFLT设置为高,寄存器内容被锁定。在通过读取LATF2重置之前,这些值已被读取。
还提供了两个掩码寄存器,使用户可以忽略给定函数上的错误。错误屏蔽寄存器的位与故障寄存器的位映射方式相同,但ANYFLT位不能被屏蔽。在错误掩码寄存器中设置1将导致错误寄存器中的等效位始终保持为0,而不管该函数是否有错误。
程序设计
开机时下载配置
ADM1060的配置—紫外线/过电压阈值、故障滤波器超时、PLB组合、PDO上拉等—由RAM的内容决定。RAM由设置配置的本地锁存器组成。这些锁存器是双缓冲的,实际上由两个相同的锁存器(锁存器A和锁存器B)组成。双缓冲锁存器的更新首先更新锁存器A,然后更新锁存器B。下面说明此体系结构的优点。这些锁存是易失性存储器,断电时会丢失其内容。因此,在通电时,必须恢复RAM中的配置。这是通过将EEPROM(非易失性存储器)的内容下载到本地锁存器来实现的。此下载分若干步骤进行。
1. 在设备没有供电的情况下,pdo都是高阻抗的。
2. 一旦连接到V仲裁器(VH或VPn)的任何输入上出现1v,pdo都(微弱地)被拉到GND。
3. 一旦电源电压高于设备的欠压锁定(UVLO为2.5v),EEPROM开始下载到RAM。
4. EEPROM将其内容下载到所有锁存器As。
5. 一旦EEPROM的内容被完全下载,设备控制器输出一个控制脉冲,使所有锁存器As能够下载到所有锁存器Bs,从而完成配置下载。在此下载完成之前尝试与设备通信将导致从ADM1060发出NACK。
更新配置
一旦设备通电并将所有配置设置从EEPROM加载到RAM寄存器中,用户可能希望更改ADM1060上的功能配置;例如,更改SFD的UV或OV限制、SFD的故障输出、看门狗检测器的超时、其中一个pdo的上升延时等打开。
ADM1060提供了许多选项,允许用户通过SMBus接口以不同方式更新配置。所有这些选项都在寄存器UPDCFG中控制。可供选择的是:
1. 实时更新配置。用户通过SMBus写入RAM并立即更新配置。
2. 更新A闩锁“离线”,然后同时更新所有B闩锁。使用此方法,ADM1060的配置将保持不变,并继续在原始设置中运行,直到发出更新B闩锁的指令。
3. 离线更改EEPROM寄存器内容,然后将修改后的EEPROM内容下载到RAM寄存器。同样,使用此方法,ADM1060的配置将保持不变,并继续在原始设置中运行,直到发出更改指令为止。
如果对配置的修改不令人满意并且用户希望ADM1060返回到已知的操作模式,则从上述选项3中的EEPROM下载的指令也是恢复原始EEPROM内容的有用方法。
由于ADM1060的拓扑结构,此类型的操作是可能的。本地(易失性)寄存器或RAM都是双缓冲锁存器。将UPDCFG寄存器的位0设置为1将使双缓冲闩锁始终处于打开状态。如果位0设置为0,则当在SMBus上发生RAM写入时,只有双缓冲闩锁的第一侧被写入。然后,用户必须将UPDCFG寄存器的1写入位1。这会产生一个脉冲来同时更新所有的第二个锁存器。EPROM写的工作原理类似。
此寄存器中的最后一位用于启用EEPROM页擦除。如果该位设置为高,则EEPROM页的内容都可以设置为0。如果低,则无法擦除页面内容,即使页面擦除的命令代码已在SMBus中编程。
寄存器UPDCFG的位映射如表56所示。图24显示了在通电时下载和随后的配置更新的流程图。
内部寄存器
ADM1060包含大量数据寄存器。主要寄存器的简要说明如下。本数据表的相关章节提供了更详细的说明。
地址指针寄存器。此寄存器包含选择其他内部寄存器之一的地址。当写入ADM1060时,数据的第一个字节总是一个寄存器地址,它被写入地址指针寄存器。
配置寄存器。这些寄存器为ADM1060的各种操作参数提供控制和配置。
极性寄存器。这些寄存器定义到PLBA的输入极性。
屏蔽寄存器。这些寄存器允许屏蔽到PLBA的各个输入,并屏蔽故障报告寄存器中的故障。
电可擦可编程只读存储器
ADM1060具有512字节的非易失性、电可擦可编程只读存储器(EEPROM),从寄存器地址0xF800到0xF9FF。与易失性寄存器中的数据不同,这可用于永久存储在ADM1060断电时不会丢失的数据。尽管称为只读存储器,EEPROM可以通过串行总线以与其他寄存器完全相同的方式写入(以及读取)。EEPROM和其他寄存器之间唯一的主要区别是
1.EEPROM位置必须为空才能写入。如果它包含数据,则必须首先删除它。
2.写入EEPROM比写入RAM慢。
3.对EEPROM的写入应该受到限制,因为它的写入/循环寿命通常为10000次写入操作,这是由于EEPROM通常的磨损机制。
EEPROM被分成16(0到15)页,每页32字节。第0到6页,从地址0xF800开始,保存ADM1060上应用程序(PLB、SFD、GPIs、WDI、PDO等)的配置数据。这些EEPROM地址与RAM寄存器地址相同,前缀为0xF8。保留第7页。第8至15页供客户使用。数据可通过以下两种方式从EEPROM下载到RAM:
1.通电时,将下载0到6页。
2.UPDCFG寄存器(0x90)的设置位2执行用户下载页面0到6。
串行总线接口
ADM1060的控制通过串行系统管理总线(SMBus)执行。在主设备的控制下,ADM1060作为从设备连接到此总线。通电后,ADM1060从其EEPROM下载大约需要2毫秒。因此,在下载完成之前,对ADM1060的访问将受到限制。
在SMBus上识别ADM1060
ADM1060有一个7位串行总线从地址。当设备通电时,它将使用默认的串行总线地址。地址的五个m***设置为10101,两个l***由管脚A1和A0的逻辑状态确定。这允许将四个ADM1060连接到一个中小企业。该设备还具有多个识别寄存器(只读)可以跨SMBus读取的。这些是:
一般SMBus定时
图25和图26显示了使用SMBus的一般读写操作的时序图。SMBus规范为不同类型的读写操作定义了特定条件,稍后将讨论这些条件。通用SMBus协议的操作如下:
1、主机通过建立启动条件来启动数据传输,该启动条件定义为串行数据线SDA上的从高到低转换,而串行时钟线SCL保持高。这表示数据流将跟随。连接到串行总线的所有从机外设都对启动条件做出响应,并在接下来的8位中移位,包括7位从机地址(首先是MSB)和一个R/W位,后者决定数据传输的方向,i、 e.数据是写入还是从设备读取(0=写入,1=读取)。
其地址对应于发送地址的外围设备通过在第九个时钟脉冲(称为确认位)之前的低周期内将数据线拉低并在该时钟脉冲的高周期内保持低电平来响应。总线上的所有其他设备现在都处于空闲状态,而选定的设备则等待从中读取或写入数据。如果R/W位为0,主设备将写入从设备。如果R/W位是1,主设备将从从设备读取。
2、数据通过串行总线以9个时钟脉冲的顺序发送,8位数据后接从设备的确认位。数据线上的数据转换必须在时钟信号的低周期内发生,并且在高周期内保持稳定,因为时钟高时的低到高转换可以解释为停止信号。
如果操作是写操作,则从机地址之后的第一个数据字节是命令字节。这告诉从设备下一步会发生什么。它可以是诸如告诉从设备期望块写入之类的指令,也可以只是告诉从设备后续数据要写入的寄存器地址。
由于数据只能按R/W位定义的一个方向流动,因此在读取操作期间不可能向从设备发送命令。在执行读取操作之前,可能首先需要执行写入操作,以告知从机需要哪种读取操作和/或读取数据的地址。
3、当读取或写入所有数据字节时,将建立停止条件。在写入模式下,主机将在10时钟脉冲期间将数据线拉高以断言停止条件。在读取模式下,主设备将在第九时钟脉冲之前的低时段释放SDA线,但从设备不会将其拉低。这就是所谓的不承认。然后,主机将在10时钟脉冲之前的低周期内将数据线取低,然后在10时钟脉冲期间取高,以断言停止条件。
用于RAM和EEPROM的SMBus协议
ADM1060包含易失性寄存器(RAM)和非易失性EEPROM。用户RAM占用从0x00到0xDF的地址位置,而EEPROM占用从0xF800到0xF9FF的地址。
数据可以作为单个数据字节写入和读取RAM和EEPROM。
数据只能写入未编程的EEPROM位置。要将新数据写入编程位置,首先需要将其擦除。EEPROM擦除不能在字节级完成;EEPROM被安排为16页32字节,必须擦除整页。
通过将寄存器UPDCFG(地址0x90)中的位3设置为1来启用页擦除。如果未设置此选项,则即使命令字节(0xFE)已在SMBus上编程,也无法进行页擦除。
写操作
SMBus规范为不同类型的读写操作定义了几个协议。下面讨论ADM1060中使用的那些。图表中使用了以下缩写:
ADM1060使用以下SMBus写入协议:
发送字节
在此操作中,主设备向从设备发送单个命令字节,如下所示:
1.主设备在SDA上断言启动条件。
2.主机发送7位从机地址,然后是写入位(低)。
3.寻址从设备在SDA上断言ACK。
4.主机发送命令代码。
5.奴隶在SDA上断言ACK。
6.主服务器在SDA上声明一个停止条件,事务结束。
在ADM1060中,发送字节协议用于两个目的:
1.将寄存器地址写入RAM,以便从同一地址或块读中进行后续单字节读取,或从该地址开始写入。如图28所示。
2.擦除一页EEPROM存储器。只有在未编程的情况下才能写入EEPROM存储器。在写入一个或多个已编程的EEPROM存储器位置之前,必须先擦除包含这些位置的一页或多页。通过写入一个命令字节来擦除EEPROM存储器。
主设备发送一个命令代码,告诉从设备删除页面。页面擦除的ADM1060命令代码是0xFE(1111110二进制)。请注意,为了进行页擦除,必须在上一个写字事务中给出页地址(请参阅下面的写字节)。此外,寄存器UPDCFG(地址0x90)中的位3必须设置为1。
一旦ADM1060接收到命令字节,页面擦除就开始了。主设备可以在发送命令字节后立即发送停止命令。页面擦除大约需要20毫秒。如果在擦除完成之前访问了ADM1060,它将无需确认即可响应。
写入字节/字
在此操作中,主设备向从设备发送一个命令字节和一个或两个数据字节,如下所示:
1.主设备在SDA上断言启动条件。
2.主机发送7位从机地址,然后是写入位(低)。
3.寻址从设备在SDA上断言ACK。
4.主机发送命令代码。
5.奴隶在SDA上断言ACK。
6.主机发送一个数据字节。
7.奴隶在SDA上断言ACK。
8.主机发送一个数据字节(或者可以断言此时停止)。
9.奴隶在SDA上断言ACK。
10.主服务器在SDA上断言停止条件以结束事务。
在ADM1060中,写入字节/字协议用于三个目的:
1.将单字节数据写入RAM。在这种情况下,命令字节是从0x00到0xDF的RAM地址,而(唯一的)数据字节是实际数据。如图30所示。
2.为随后的读、写、块读、块写或页擦除设置2字节EEPROM地址。在这种情况下,命令字节是从0xF8到0xF9的EEPROM地址的高位字节。(唯一的)数据字节是EEPROM地址的低位字节。如图31所示。
请注意,对于页擦除,由于页由32个字节组成,只有地址低字节的三个m***是重要的。EEPROM地址低位字节的低位5位只指定页内的地址,在擦除操作期间忽略。
3.将单个字节的数据写入EEPROM。在这种情况下,命令字节是EEPROM地址的高位字节0xF8到0xF9。第一个数据字节是EEPROM地址的低位字节,第二个数据字节是实际数据。如图32所示。
块写入
在此操作中,主设备将数据块写入从设备。以前必须设置块写入的起始地址。在ADM1060的情况下,这是通过发送字节操作来设置RAM地址,或通过写入字节/字操作来设置EEPROM地址来完成的。
1.主设备在SDA上断言启动条件。
2.主机发送7位从机地址,然后是写入位(低)。
3.寻址从设备在SDA上断言ACK。
4.主设备发送一个命令代码,告诉从设备期望块写入。块写入的ADM1060命令代码是0xFC(1111100二进制)。
5.奴隶在SDA上断言ACK。
6.主设备发送一个数据字节,告诉从设备将发送多少数据字节。SMBus规范允许在块写入中最多发送32个数据字节。
7.奴隶在SDA上断言ACK。8个。主机发送N个数据字节。
9.从机在每个数据字节之后在SDA上断言ACK。
10.主服务器在SDA上断言停止条件以结束事务。
与某些将块写入限制在页面边界内的EEPROM设备不同,在对EEPROM执行块写入时,起始地址没有限制,除了:
1.从起始地址到最高EEPROM地址(0xF9FF)必须至少有N个位置,以避免写入无效地址。
2.如果地址跨越页面边界,则必须在编程前清除两个页面。
注意,ADM1060具有写入EEPROM的时钟扩展功能。编程EEPROM字节大约需要250微秒,这将限制SMBus时钟的重复或块写入操作。ADM1060将SCL拉低,并在无法接收更多数据时延长时钟脉冲。
读取操作
ADM1060使用以下SMBus读取协议:
接收字节
在该操作中,主设备从从设备接收单个字节,如下所示:
1.主设备在SDA上断言启动条件。
2.主机发送7位从机地址,后跟读取位(高)。
3.寻址从设备在SDA上断言ACK。
4.主机接收一个数据字节。
5.船长在SDA上没有确认。
6.主服务器在SDA上声明一个停止条件,事务结束。
在ADM1060中,接收字节协议用于从RAM或EEPROM位置读取单个字节的数据,该位置的地址先前由发送字节或写入字节/字操作设置。如图34所示。
块读取
在该操作中,主设备从从设备读取数据块。以前必须设置块读取的起始地址。在ADM1060的情况下,这是通过发送字节操作来设置RAM地址,或通过写入字节/字操作来设置EEPROM地址来完成的。块读取操作本身包括发送字节操作,该操作向从机发送块读取命令,紧接着是重复启动,以及读取多个数据字节的读取操作,如下所示:
1.主设备在SDA上断言启动条件。
2.主机发送7位从机地址,然后是写入位(低)。
3.寻址从设备在SDA上断言ACK。
4.主设备发送一个命令代码,告诉从设备期望块读取。块读取的ADM1060命令代码是0xFD(1111101二进制)。
5. 奴隶在SDA上断言ACK。
6.主机在SDA上断言重复启动条件。
7.主机发送7位从机地址,后跟读取位(高)。
8.奴隶在SDA上断言ACK。
9.ADM1060发送一个字节计数数据字节,告诉主机需要多少数据字节。ADM1060将始终返回32个数据字节(0x20),这是SMBus 1.1规范允许的最大值。
10.船长在SDA上断言ACK。
11.主机接收32个数据字节。
12.主服务器在每个数据字节之后在SDA上断言ACK。
13.主服务器在SDA上断言停止条件以结束事务。
误差修正
ADM1060提供在写入RAM、写入EEPROM、块写入RAM/EEPROM或块读取RAM/EEPROM后发出PEC(包错误纠正)字节的选项。这使用户能够验证ADM1060接收或发送的数据是否正确。PEC字节是最后一个数据字节写入或读取ADM1060后发送的可选字节。协议如下:
1.ADM1060向主机发出一个PEC字节。如果PEC字节不正确,主机应该检查PEC字节并发出另一个读块。
2.在PEC字节之后生成NACK以表示读取结束。
注:PEC字节使用CRC-8计算。框架校验序列(FCS)符合CRC-8的多项式:
有关更多信息,请参阅SMBus1.1规范。图36显示了使用可选PEC字节读取块的示例。
外形尺寸
[一]如果用作电源,至少一个VPn必须≥3.0 V。如果用作电源,VH必须≥4.5 V。
[二]规范未经生产测试,但在初始产品发布时由特性数据支持。
[三]%阈值精度只能在由模拟设备预先编程的部件上实现。有关详细信息,请联系。
[四]逻辑输入将接受高达5.5 V的输入高压,即使设备在低于5 V的电源电压下运行。
[五]根据JEDEC标准22方法A117,耐久性合格至100000次循环,并在-40℃、+25℃和+85℃下测量。
[六]对于EEPROM的编程和擦除,最低V=3.0V要求0°C至+85°C,最低V=4.5V要求-40°C至0°C。
[七]根据JEDEC标准22方法A117,连接温度(T)=55°C时的保持寿命当量。
[八]在逻辑电平V=0.8v(下降沿)和V=2.0v(上升沿)下测试时序规范。