ADT7473/ADT7473-1控制器是一个热监视器和多个PWM风扇控制器,用于需要主动系统冷却的噪声敏感或功率敏感应用。ADT7473/ADT7473-1可以使用低频或高频驱动信号驱动风扇,监测最多两个遥感二极管的温度加上其自身的内部温度,并测量和控制最多四个风扇的速度,使其以尽可能低的速度运行,以将噪音降到最低。
自动风扇转速控制回路在给定温度下优化风扇转速。独特的动态T控制模式使系统的热量/声学得到智能管理。可以使用闽热量输入。ADT7473/ADT7473-1还提供使用双向热管脚作为输出对系统进行热保护,以防止系统或组件过热。
特征:控制和监控多达4个风扇;高频和低频风扇驱动信号;1个片上和2个远程温度传感器;远程通道上的串联电阻消除;扩展温度测量范围,最高可达191°C;动态T控制模式智能优化系统声学闽;自动风扇速度控制模式根据测量的温度控制系统冷却;增强的声学模式显著降低了用户对风扇转速变化的感知;热输出热保护功能;监控英特尔奔腾4处理器的性能影响;通过热输入的热控制电路;3线和4线风扇转速测量;所有监测值的极限比较;符合SMBus 2.0电气规范(完全符合SMBus 1.1);这些设备无铅、无卤素/bfr且为RoHS。
ADT7473/ADT7473-1是一个完整的热监测器和多风扇控制器,适用于任何需要热监测和冷却的系统。设备通过串行系统管理总线与系统通信。串行总线控制器具有用于读取和写入地址和数据的串行数据线(引脚16)和用于串行时钟的输入线(引脚1)。ADT7473/ADT7473-1的所有控制和编程功能都通过串行总线执行。此外,可以将pin重新配置为smbalert输出到信号超出限制条件。
建议实施
如图12所示配置ADT7473允许系统设计器使用以下功能:两个PWM输出,用于最多三个风扇的风扇控制。(前后底盘风扇并联。);三个转速表风扇转速测量输入;V通过插脚3内部测量;使用远程1温度通道测量CPU温度;通过远程2测量的环境温度。
温度通道,双向热插脚。此功能允许Intelpentium 4 Prochhot监测,并可作为过热热输出。它也可以编程为smbalert系统中断输出。
串行总线接口
在PC和服务器上,使用SMBus对ADT7473/ADT7473-1进行控制。ADT7473/ADT7473-1在主控制器(通常(但不一定)的控制下作为从设备连接到该总线。
ADT7473具有固定的7位串行总线地址0101110或0x2E。必须添加读/写位才能获得8位地址(01011100或0x5C)。当ADT7473-1在引脚8(pwm3/addren)高的情况下通电,ADT7473-1的默认SMBus地址为0101110或0x2e。如果系统中使用了多个ADT7473-1,每个ADT7473-1都通过在通电时将引脚8固定在低位而处于ADDR选择模式。然后,pin 4的逻辑状态确定设备的smbus地址。这些管脚的逻辑在通电时采样。
当串行总线地址字节与所选从机地址匹配时,在通电时对设备地址进行采样,并锁定在第一个有效的smbus事务上,更准确地说是在第八个scl脉冲开始时的从低到高转换上。使用addren pin/addr选择pin。在此之后,任何试图更改地址的操作都将无效。
对smbus从机地址进行硬接线更改的能力允许用户避免与共享同一串行总线的其他设备发生冲突,例如,如果系统中使用了多个adt7473-1。
数据以9个时钟脉冲的顺序通过串行总线发送:8位数据后接从设备的确认位。数据线上的跃迁必须发生在时钟信号的低周期内,并且在高周期内保持稳定,因为时钟高时的低到高跃迁可能被解释为停止信号。单次读写操作中可通过串行总线传输的数据字节数仅受主设备和从设备所能处理的内容的限制。
当读取或写入所有数据字节时,将建立停止条件。在写入模式下,主机在第十个时钟脉冲期间将数据线拉高以断言停止条件。在读取模式下,主设备通过在第九时钟脉冲之前的低周期中将数据线拉高来覆盖确认位;这称为无确认。主机在第十个时钟脉冲之前的低周期内将数据线取低,然后在第十个时钟脉冲期间取高,以断言停止条件。
在一次操作中,可以通过串行总线传输任意数量的数据,但不能在一次操作中混合读取和写入,因为操作类型是在开始时确定的,并且在不启动新操作的情况下无法随后更改。
在ADT7473/ADT7473-1中,写操作包含一个或两个字节,读操作包含一个字节。要将数据写入设备数据寄存器或从中读取数据,必须设置地址指针寄存器,以便对正确的数据寄存器进行寻址,然后才能将数据写入或从中读取。写操作的第一个字节总是包含存储在地址指针寄存器中的地址。如果数据写入设备,则写入操作包含写入地址指针寄存器所选寄存器的第二个数据字节。
这个写操作如图17所示。装置地址通过总线发送,然后R/W设置为0。后面跟着两个数据字节。第一个数据字节是要写入的内部数据寄存器的地址,它存储在地址指针寄存器中。第二个数据字节是要写入内部数据寄存器的数据。
从寄存器读取数据时,有两种可能:
1、如果ADT7473/ADT7473-1的地址点寄存器值未知或不是所需的值,则必须先将其设置为正确的值,然后才能从所需的数据寄存器读取数据。这是通过执行对ADT7473/ADT7473-1的写入来完成的,但由于没有数据写入寄存器,因此只发送包含寄存器地址的数据字节。如图18所示。然后执行读取操作,包括串行总线地址,r/w位设为1,然后是从数据寄存器读取的数据字节。如图19所示。
2、如果已知地址指针寄存器已在所需地址读取,则无需首先写入地址指针寄存器即可从相应的数据寄存器读取数据,如图19所示。
如果地址指针寄存器的值已经正确,则可以在不首先写入地址指针寄存器的情况下从数据寄存器读取数据字节。但是,如果不写入地址指针寄存器,就不可能将数据写入寄存器,因为写入的第一个数据字节总是写入地址指针寄存器。
除了支持发送字节和接收字节协议外,ADT7473/ADT7473-1还支持读取字节协议。如果必须连续执行多个读或写操作,主机可以发送重复开始条件而不是停止条件来开始新操作。
写操作
smbus规范为各种读写操作定义了若干协议。ADT7473/ADT7473-1使用以下SMBus写入协议。图表中使用了以下缩写:S—开始;P—停止;R读;W-写;A-确认;A-不承认。
发送字节
在此操作中,主设备向从设备发送单个命令字节,如下所示:
1、主设备断言启动条件为SDA。
2、主机发送7位从机地址,从机地址由写入位(活动低位)跟随。
3、寻址从设备在sda上断言ack。
4、主机发送命令代码。
5、奴隶在sda上断言ack。
6、主服务器在sda上声明停止条件,事务结束。
对于adt7473/adt7473-1,发送字节协议用于将寄存器地址写入ram,以便随后从相同地址读取单字节。此操作如图20所示。
如果要求主机在设置地址后立即从寄存器中读取数据,则它可以在最终ack之后立即断言重复启动条件,并在不断言中间停止条件的情况下执行单字节读取。
写入字节
在该操作中,主设备向从设备发送一个命令字节和一个数据字节,如下所示:
1、主设备在sda上断言启动条件。
2、主机发送7位从机地址,从机地址由写入位(活动低位)跟随。
3、寻址从设备在sda上断言ack。
4、主机发送命令代码。
5、奴隶在sda上断言ack。
6、主机发送一个数据字节。
7、奴隶在sda上断言ack。
8、主服务器在sda上声明一个停止条件,事务结束。
读取操作
ADT7473/ADT7473-1使用以下SMBus读取协议。
接收字节
当重复读取单个寄存器时,此操作非常有用。注册地址必须事先设置好。在该操作中,主设备从从设备接收单个字节,如下所示:
1、主设备断言启动条件为SDA。
2、主机发送7位从机地址,从机地址由读取位(高位)跟随。
3、寻址从设备在sda上断言ack。
4、主机接收一个数据字节。
5、船长在sda上没有确认。
6、主服务器在sda上声明一个停止条件,事务结束。
在adt7473/adt7473-1中,接收字节协议用于从寄存器中读取单个字节的数据,该寄存器的地址先前由发送字节或写入字节操作设置。此操作如图22所示。
警报响应地址
警报响应地址(ara)是smbus设备的一个功能,当同一总线上存在多个设备时,它允许中断设备向主机标识自己。
smbalert输出可以用作中断输出或smbalert。一个或多个输出可以连接到连接到主服务器的公用smbalert线路。如果设备的smbalert行变低,则会发生以下事件:smbalert被拉低;主机启动读取操作并发送警报响应地址(ara=0001 100)。这是一个不能用作特定设备地址的常规呼叫地址;smbalert输出低的设备响应警报响应地址,主机读取其设备地址。设备的地址现在是已知的,可以用通常的方式询问;如果多个设备的smbAlert输出低,则设备地址最低的设备具有与正常smbus仲裁一致的优先级。
一旦ADT7473/ADT7473-1响应警报响应地址,主机必须读取状态;仅当错误条件消失时,才会清除寄存器和smbalert。
SMBus超时
ADT7473/ADT7473-1包括SMBus超时功能。如果35 ms内没有smbus活动,则adt7473/adt7473-1假定总线已锁定并释放总线。这可防止设备锁定或保持smbus所需的数据。某些SMBus控制器无法使用SMBus超时功能,因此可以禁用它。
电压测量输入
ADT7473/ADT7473-1有一个外部电压测量通道,还可以测量自己的电源电压VCC。针脚14可以测量VCCP。VCC电源电压测量通过V引脚(引脚3)进行。在计算机系统中,V输入可用于监测芯片组的电源电压。
模数转换器
所有的模拟输入被多路复用到片上,逐次逼近,模数转换器。(ADC)分辨率为10位。基本输入范围为0 V至2.25 V,但输入有内置衰减器,允许在没有任何外部组件的情况下测量V。为了允许电源电压的公差,ADC为标称输入电压产生3/4满标度(768十进制或300十六进制)的输出,因此有足够的空间处理过电压。
输入电路
V模拟输入的内部结构如图23所示。输入电路由输入保护二极管、衰减器和电容组成,形成一阶低通滤波器,提供输入抗高频噪声能力。
VCCP极限寄存器
与v测量信道相关的是一个高限和低限寄存器。超过编程的上限或下限会设置相应的状态位,超过任一限制也会生成smbalert中断。
VCCP极限寄存器
当adc运行时,它对711s内的电压输入进行采样和转换,平均16次转换以降低噪声;名义上测量时间为11.38ms。
用于电压测量的附加ADC功能ADT7473/ADT7473-1上还提供了许多其他功能,以增强系统设计器的灵活性。
关闭平均值
对于从值寄存器中读取的每个电压测量值,实际上已经在内部读取了16个读数,并且在将结果放入值寄存器之前将其平均。当需要更快的转换时,设置配置寄存器2的位4(0x73)将关闭平均值。这有效地使读取速度提高了16倍(711s),但读取可能会更嘈杂。
旁路电压输入衰减器
设置配置寄存器2(0x73)的位5将从V输入中删除衰减电路。这允许用户直接连接外部传感器或为其他应用重新调整模拟电压测量输入。不带衰减器的adc的输入范围为0v到2.25v。
单通道adc转换
配置寄存器2(0x73)的设置位6将ADT7473/ADT7473-1置于单通道ADC转换模式。在此模式下,ADT7473/ADT7473-1只能读取单个电压通道。如果使用内部ADT7473/ADT7473-1时钟,则每711s读取所选输入。通过写入TACH1最小高字节寄存器(0x55)的位<7:5>来选择适当的ADC通道。
温度测量方法
测量温度的一种简单方法是利用二极管的负温度系数,测量在恒定电流下工作的晶体管的基极发射极电压(V)。不幸的是,这项技术需要校准以消除v的绝对值的影响,而v的绝对值因设备而异。
ADT7473/ADT7473-1中使用的技术测量在三种不同电流下操作设备时V的变化。以前的设备只使用了两个工作电流,但是使用第三个电流可以自动消除与外部温度传感器串联的电阻。
图24显示了用于测量外部温度传感器输出的输入信号调节。此图显示外部传感器作为衬底晶体管,但也可以是分立晶体管。如果使用分立晶体管,则集电极不接地,应与底座相连。为了防止接地噪声干扰测量,传感器的更负极端子不参考接地,而是通过D输入处的内部二极管偏置在地上。C1可以选择性地添加为噪声滤波器(建议最大值1000 pF)。但是,在噪声环境中,更好的选择是添加一个过滤器,如噪声过滤部分所述。
局部温度测量
ADT7473/ADT7473-1包含一个片上带隙温度传感器,其输出由片上10位ADC数字化。8位msb温度数据存储在本地温度寄存器(0x26)中。由于可以测量正温度和负温度,因此温度数据以偏移64格式或两个补码格式存储,如表14和表15所示。理论上,温度传感器和ADC可以以+0.25°C的分辨率测量-63°C至+127°C(或扩展温度范围内的-63°C至+191°C)的温度。但是,这超出了设备的工作温度范围,因此在ADT7473/ADT7473-1工作温度范围之外的本地温度测量不可能。
远程温度测量
ADT7473/ADT7473-1可以测量连接到针脚10和针脚11或针脚12和针脚13的两个远程二极管传感器或二极管连接晶体管的温度。
在恒定电流下工作的二极管或二极管连接晶体管的正向电压显示出大约-2 mV/℃的负温度系数。不幸的是,V的绝对值因设备而异,需要单独校准以消除这一点,因此该技术不适合大规模生产。ADT7473/ADT7473-1中使用的技术是测量装置在三种不同电流下工作时V的变化。这是由以下人员给出的:
其中:k是玻尔兹曼常数。t是绝对温度,单位为开尔文;Q是载体上的电荷;n是两个电流的比值。
图24显示了用于测量远程温度传感器输出的输入信号调节。此图显示了作为衬底晶体管的外部传感器,用于在某些微处理器上监测温度。它也可以是分立晶体管,如2N3904/2N3906。
如果使用分立晶体管,则集电极不接地,应与底座相连。如果使用PNP晶体管,底座连接到D-输入,发射器连接到D+输入。如果使用NPN晶体管,发射器连接到D-输入,底座连接到D+输入。图25和图26显示了如何将ADT7473/ADT7473-1连接到用于温度测量的NPN或PNP晶体管。为了防止接地噪声干扰测量,传感器的更负端不参考接地,而是通过D-输入处的内部二极管偏置在地上。
为了测量电压,通过传感器的工作电流在三个相关电流之间切换。n1×i和n2×i是电流i的不同倍数,如图24所示。通过温度二极管的电流在i和n1×i之间切换,得到v,然后在i和n2×i之间切换,得到v。然后可以使用两个v测量值计算温度。该方法还可以消除串联电阻对温度测量的影响。
产生的v波形通过65khz低通滤波器去除噪声,然后进入斩波器稳定放大器。这将放大和整流波形以产生与V成比例的直流电压。ADC将该电压数字化,并产生温度测量。为了减少噪声的影响,通过平均16个测量周期的结果来执行数字滤波。
如表10所示,远程温度测量的结果以10位双补格式存储。温度测量的额外分辨率保存在扩展分辨率寄存器2(0x77)中。这将给出分辨率为0.25°C的温度读数。
噪声滤波
对于在噪声环境中工作的温度传感器,以前的做法是在D+引脚和D-引脚之间放置一个电容器,以帮助对抗噪声的影响。然而,大电容会影响温度测量的精度,因此推荐的最大电容值为1000 pf。这种电容器可以降低噪声,但不能消除噪声,使传感器在非常嘈杂的环境中难以使用。
在消除噪声对外部传感器的影响方面,ADT7473/ADT7473-1比其他设备具有主要优势。利用串联电阻抵消特性,可以在外部温度传感器和部件之间构造滤波器。与遥感器串联的任何滤波器电阻的影响都会自动从温度结果中消除。
滤波器的结构允许ADT7473/ADT7473-1和远程温度传感器在噪声环境中工作。图27显示具有以下值的低通R-C滤波器:
这种滤波同时降低了共模噪声和差分噪声。
串联电阻消除
对ADT7473/ADT7473-1 D+和D-输入的寄生电阻(与远程二极管串联)由多种因素引起,包括PCB跟踪电阻和跟踪长度。此串联电阻在遥感器的温度测量中显示为温度偏移。此错误通常会导致与远程二极管串联的寄生电阻每偏移0.5°C。
ADT7473/ADT7473-1自动消除了该串联电阻对温度读数的影响,在不需要用户描述该电阻的情况下,给出了更准确的结果。ADT7473/ADT7473-1的设计通常可自动消除高达3 K的电阻。这是透明的用户使用先进的温度测量方法。此功能允许将电阻添加到传感器路径以产生滤波器,从而允许部件在噪声环境中使用。有关详细信息,请参见“噪波过滤”部分。
影响二极管精度的因素
遥感二极管
ADT7473/ADT7473-1设计用于与内置于处理器中的衬底晶体管或分立晶体管一起工作。基片晶体管通常是pnp型,集电极与基片相连。离散型可以是PNP或NPN晶体管作为二极管连接(基极对集电极短路)。如果使用NPN晶体管,则集电极和基极连接到D+,发射器连接到D-。如果使用PNP晶体管,则集电极和基极连接到D-,发射极连接到D+。
为了减少由于衬底晶体管和分立晶体管的变化而产生的误差,应考虑以下几个因素:
(1)、晶体管的理想因子n是热二极管偏离理想行为的度量。ADT7473/ADT7473-1被修剪为n值1.008。当使用n不等于1.008的晶体管时,使用以下公式计算在温度t(℃)下引入的误差。
要将此因素考虑在内,用户可以将t值写入偏移寄存器。然后,ADT7473/ADT7473-1自动将其与温度测量值相加或相减。
(2)、一些CPU制造商规定了衬底晶体管的高电流和低电流电平。ADT7473/ADT7473-1的高电流电平为96 A,低电流电平ILOW为6 A。如果ADT7473/ADT7473-1的电流电平与CPU制造商指定的电流电平不匹配,则可能需要消除偏移。CPU的数据表建议是否需要删除这个偏移量以及如何计算它。这个偏移量可以编程到偏移寄存器。需要注意的是,如果必须考虑多个偏移量,则必须将这些偏移量的代数和编程到偏移寄存器中。
如果离散晶体管与ADT7473/ADT7473-1一起使用,则通过根据以下标准选择器件可获得最佳精度:在最高工作温度下,6 A时的基极发射极电压大于0.25 V;在最低工作温度下,100 A时的基极发射极电压小于0.95 V;基础电阻小于100;H的微小变化(如50到150),表明对VBE特性的严格控制。铁晶体管,例如2N3904、2N3906或SOT-23封装中的等效器件,是适合使用的器件。
消除温度误差
随着CPU运行速度的加快,在系统板周围路由D+/D-跟踪时,避免高频时钟变得更加困难。即使遵循了推荐的布局指南,一些温度误差仍然可以归因于耦合到D+/D-线上的噪声。恒定的高频噪声通常通过一个线性的恒定值来衰减或增加温度测量值。
ADT7473/ADT7473-1在寄存器0x70和寄存器0x72处具有远程1和远程2温度通道的温度偏移寄存器。通过对系统进行一次性校准,用户可以确定由系统板噪声引起的偏移,并使用偏移寄存器将其调零。偏移寄存器会自动为每个温度测量值添加一个2补8位读数。LSB将+0.5°C偏移添加到温度读数中,因此8位寄存器有效地允许温度偏移高达±64°C,分辨率为+0.5°C。这确保温度测量寄存器中的读数尽可能精确。
ADT7460/ADT7473/ADT7473-1向后兼容模式
通过设置配置寄存器5(0x7C)的位1,所有温度测量值以两个补码存储在区域温度值寄存器(寄存器0x25、寄存器0x26和寄存器0x27)中,范围在-63°C到+127°C之间。(ADT7473/ADT7473-1仍基于偏移量64扩展范围进行计算,并钳制结果,如有必要。)温度限值必须以两个补码重新编程。如果输入低于-63°C的双秒补码温度,则温度被钳制为-63°C。在此模式下,二极管故障状态保持为-128°C=1000 0000,而在扩展温度范围(-64°C到+191°C)中,故障状态由-64°C=0000 0000表示。
从ADT7473/ADT7473-1读取温度
需要注意的是,温度可以从ADT7473/ADT7473-1读取为8位值(分辨率为1°C)或10位值(分辨率为0.25°C)。如果只需要1°C的分辨率,温度读数可以在任何时间以任何特定顺序读取。
如果需要10位测量,则使用每次测量的2寄存器读取。应首先读取扩展分辨率寄存器(寄存器0x77)。这将导致所有温度读数寄存器冻结,直到从中读取所有温度读数寄存器为止。这将防止在读取msb的两个lsb时更新msb读取,反之亦然。
用于温度测量的附加ADC功能
ADT7473/ADT7473-1上还提供了许多其他功能,以增强系统设计器的灵活性。
关闭平均值
对于从值寄存器中读取的每个温度测量值,实际上已经在内部读取了16个读数,并且在将结果放入值寄存器之前将其平均。有时需要快速测量。配置寄存器2(0x73)的设置位4关闭平均值。
单通道adc转换
配置寄存器2(0x73)的设置位6将ADT7473/ADT7473-1置于单通道ADC转换模式。在此模式下,ADT7473/ADT7473-1只能读取单个温度通道。通过写入TACH1最小高字节寄存器(0x55)的位<7:5>来选择适当的ADC通道。
超温事件
任何温度通道上的超温事件都可以在自动风扇转速控制模式下自动检测和处理。寄存器0x6a到。寄存器0x6c是热限制。当温度超过其热限值时,所有的脉宽调制输出以100%的占空比或最大的脉宽调制占空比运行(寄存器0x38、寄存器0x39和寄存器0x3A)如果设置了配置寄存器4(0x7D)的位3。风扇保持此速度运行,直到温度降到低于.therm减去滞后;这可以通过在配置寄存器3(0x78)的位2中设置boost位来禁用。该热限值的滞后值是编程到滞后寄存器(寄存器0x6d和寄存器0x6e)中的值。默认滞后值为4°C。
限制、状态寄存器和中断
极限值
与ADT7473/ADT7473-1上的每个测量通道相关的是上限和下限。这些可以构成系统状态监视的基础;状态位可以针对任何超出限制的情况进行设置,并由轮询设备。或者,可以生成smbalert中断来将处理器或微控制器标记为超出限制条件。
16位限制
风扇转速测量值为16位结果。风扇转速限制也是16位,由高字节和低字节组成。由于风扇在转速下运行或失速通常是唯一感兴趣的条件,因此风扇转速只有很高的限制。因为实际测量的是风扇转速周期,超过此限值表示风扇缓慢或失速。
超出限制的比较
所有限值编程完成后,可以启用ADT7473/ADT7473-1进行监控。ADT7473/ADT7473-1以循环模式测量所有电压和温度测量值,并为超出限制条件设置适当的状态位。转速计测量不是循环周期的一部分。根据测量值是否与上限或下限进行比较,进行比较的方式有所不同。
上限>执行的比较
下限≤进行比较
电压和温度通道使用窗口比较器进行误差检测,因此具有高限和低限。风扇转速测量仅使用低限值。此风扇限制仅在手动风扇控制模式下才需要。
模拟监控周期时间
当1写入配置寄存器1(0x40)的起始位(位0)时,模拟监视周期开始。默认情况下,ADT7473/ADT7473-1使用此位集通电。ADC依次测量每个模拟输入,每次测量完成后,结果自动存储在相应的值寄存器中。除非通过将配置寄存器1的0写入位0而禁用,否则此循环监视循环将继续。
由于adc通常以这种方式自由运行,因此监视所有模拟输入所用的时间通常不重要,因为任何输入的最新测量值可以随时读出。
对于监视周期时间很重要的应用程序,可以很容易地进行计算。测量的通道总数为:一个专用电源电压输入(V);电源电压(V引脚);局部温度;两个远程温度。
如前所述,adc执行循环转换。平均电压和温度监测的总监测周期时间为146 ms。禁用平均值的电压和温度监测的总监测周期时间为19 ms。ADT7473/ADT7473-1是ADT7467的派生。结果,尽管adt7473/adt7473-1具有较少的监视信道,但adt7473/adt7473-1中的总转换时间与adt7467的总转换时间相同。
风扇转速测量是并行进行的,与模拟测量不同步。
中断状态寄存器
极限比较的结果存储在中断状态寄存器1和中断状态寄存器2中。每个通道的状态寄存器位反映该通道上最后一次测量和限制比较的状态。如果测量值在限制范围内,则相应的状态寄存器位清除为0。如果测量超出限制,则相应的状态寄存器位设置为1。
通过串行总线读取状态寄存器,可以对各种测量通道的状态进行轮询。在中断状态寄存器1(REG.0x41),1表示在中断状态寄存器2中标记了超出限制的事件。这意味着当该位被设置时,用户只需要读取中断状态寄存器2。或者,ADT7473上的引脚5或引脚9可以配置为smbalert输出,而只有引脚9可以配置为ADT7473-1上的smbalert。这将自动通知系统主管超出限制的情况。只要引起中断的错误条件被清除,读取状态寄存器就会清除相应的状态位。状态寄存器位(ovt除外)是粘性的。无论何时设置状态位,指示超出限制条件,即使导致它的事件已消失(直到读取),它仍保持设置。清除状态位的唯一方法是在事件消失后读取状态寄存器。中断屏蔽寄存器(寄存器0x74和寄存器0x75)允许屏蔽单个中断源导致smbalert。但是,如果其中一个屏蔽中断源超出限制,其相关状态位将在中断状态寄存器中设置。ovt自动清除。
smbalert中断行为
可以轮询ADT747/ADT7473-1的状态,也可以生成SMBAlert中断以防超出限制条件。在编写中断处理程序软件时,必须注意smbalert输出和状态位的行为。
图29显示了smbalert输出和粘性状态位的行为。一旦超过限制,相应的状态位将设置为1。中断状态位保持设置,直到错误条件消失并读取中断状态寄存器。状态位称为粘滞位,因为它们在被软件读取之前一直保持设置状态。这可确保如果软件定期轮询设备,则不会错过超出限制的事件。请注意smbalert输出在整个读取超出限制的持续时间内保持低,直到读取中断状态寄存器为止。这对软件如何处理中断有影响。
注意,过热事件不是粘性的,在过热状态后立即重置停止。如果与ovt事件关联,这也适用于smbalert。
处理smbalert中断
防止系统被捆绑维修中断时,建议按如下方式处理smbalert中断:
1、检测smbalert断言。
2、输入中断处理程序。
3、读取状态寄存器以识别中断源。
4、通过在中断屏蔽寄存器(寄存器0x74和寄存器0x75)中设置适当的屏蔽位来屏蔽中断源。
5、对给定的中断源采取适当的操作。
6、退出中断处理程序。
定期轮询状态寄存器。如果中断状态位已清除,则重置相应的中断掩码位到0。这将导致smbalert输出和状态位的行为如图30所示。
屏蔽中断源
寄存器0x74,中断屏蔽寄存器1;寄存器0x75,中断屏蔽寄存器2。这些寄存器允许屏蔽各个中断源,以防止smbalert中断。屏蔽中断源只防止smbalert输出被断言;适当的状态位被正常设置。
启用smbalert中断输出默认情况下,smbalert中断功能被禁用。插脚5或插脚9可以重新配置为smbalert输出,以指示超出限制条件。(smbalert功能仅在ADT7473-1的引脚9上可用。)
ADT7473−1 Therm_闩锁功能在温度上升0.25°C高于所选远程通道的热限制时锁定并断言。由于热事件,风扇以全速旋转。这可以通过在配置寄存器0x7d中设置位2来禁用。
销5保持锁定,直到温度降到以下所选区域、远程信道d1或远程信道d2以及状态寄存器2中的位0的热限制为变明朗。默认情况下,在ADT7473-1上,远程通道2的热极限设置为136°C,远程通道1的热极限设置为100°C。
采用pwm控制的风扇驱动
ADT7473/ADT7473-1使用脉冲宽度调制(PWM)来控制风扇转速。这依赖于改变施加在风扇上的方波的占空比(或开/关比)来改变风扇转速。使用pwm控制驱动风扇所需的外部电路非常简单。对于4线风扇,pwm驱动器可能只需要一个上拉电阻器。在许多情况下,4线风扇pwm输入有一个内置的上拉电阻。ADT7473/ADT7473-1的脉宽调制频率可以设置为选择低频或单个高脉宽调制频率。低频选项通常用于3线风扇,而高频选项通常用于4线风扇。
注意,必须小心确保转速表销未连接到大于3.6 V的上拉电源。许多风扇的内部上拉连接到转速/脉宽调制引脚,电源电压大于3.6伏。必要时,必须夹紧或降低这些引脚上的电压。用齐纳二极管夹持这些引脚也有助于防止反电动势相关噪声耦合到系统中。
对于3线风扇,只需要一个n沟道mosfet驱动装置。mosfet的规格取决于驱动风扇所需的最大电流。典型的笔记本电脑风扇的额定电流为170毫安;因此,SOT设备可用于需要考虑板空间的地方。在台式机中,风扇通常可以吸引250毫安到300毫安。如果从一个pwm输出并行驱动多个风扇或驱动更大的服务器风扇,mosfet必须处理更高的电流要求。唯一的其他规定是,mosfet具有栅极电压驱动,v<3.3v,用于直接连接到pwm输出。mosfet还应具有低导通电阻,以确保fet上没有明显的电压降,这将降低风扇上施加的电压,从而降低风扇的最大工作速度。
图35使用一个10k上拉电阻器作为转速信号。这假设转速信号是来自风扇的开路收集器。在所有情况下,来自风扇的转速信号必须保持在最大3.6 V以下,以防止损坏ADT7473/ADT7473-1。如果不确定所用风扇是否具有开路集电极或图腾磁极转速表输出,请使用“风扇转速测量”部分中所示的输入信号调节电路之一。
图36显示了使用npn晶体管(如通用mmbt2222)的风扇驱动电路。虽然这些器件价格低廉,但它们往往比mosfet具有更低的电流处理能力和更高的导通电阻。选择晶体管时,应注意确保它满足风扇的电流要求。
确保选择了基极电阻,以便在风扇通电时晶体管饱和。
由于4线风扇是连续供电的,因此风扇转速不会像以前的由pwm驱动/供电的风扇那样打开或关闭。这使其性能优于3线风扇,特别是在高频应用中。
图37显示了4线风扇的典型驱动电路。由于4线风扇上的脉宽调制输入通常在内部被拉高到大于3.6 V的电压(ADT7473/ADT7473-1脉宽调制输出上允许的最大电压),因此应使用齐纳二极管将脉宽调制输出钳制到3.3 V。
从PWM3驱动两个风扇
ADT7473/ADT7473-1有四个转速计输入可用于风扇转速测量,但只有三个PWM驱动输出。如果系统中使用第四个风扇,则应与第三个风扇并联,从PWM3输出驱动。图38显示了如何使用低成本NPN晶体管并行驱动两个风扇。图39显示了使用mosfet的等效电路。
因为mosfet可以处理高达3.5a的电流,所以只需将另一个风扇直接与第一个风扇并联即可。在设计带有晶体管和fet的驱动电路时,应注意确保不需要pwm管脚来提供电流,并且它们的电流吸收小于数据表中规定的8毫安最大电流。
从PWM3驱动最多三个风扇
风扇的转速测量与特定的脉宽调制通道同步;例如,转速1与PWM1同步。TACH3和TACH4都与PWM3同步,因此PWM3可以驱动两个风扇。或者,可以对PWM3进行编程,使转速计2、转速计3和转速计4与PWM3输出同步。这允许PWM3驱动两个或三个风扇。在这种情况下,驱动电路看起来相同,如图38和图39所示。寄存器0x62中的同步位启用此功能。与4线风扇一起使用时,在高频模式下不需要同步。
加速输入
引脚4、引脚6、引脚7和引脚9(配置为转速表输入时)是用于风扇转速测量的开漏转速表输入。ADT7473/ADT7473-1中的信号调节可调节风扇转速表典型输出的缓慢上升和下降时间。最大输入信号范围为0 V至3.6 V。如果这些输入由超过0 V至3.6 V的风扇输出提供,则必须包括风扇信号的电阻衰减或二极管箝位,以将输入保持在可接受范围内。
如果风扇转速输出的电阻上升到V,则可以直接连接到风扇输入,如图40所示。
如果风扇输出的电阻上升到12 V(或其他电压大于3.6 V),风扇输出可以用齐纳二极管钳制,如图41所示。应选择齐纳二极管电压,使其大于转速计输入的V,但小于3.6 V,允许齐纳的电压公差。3.0 V和3.6 V之间的值是合适的;如果风扇有一个强大的拉升(小于1K)到12V或图腾极输出,可以添加一个串联电阻来限制齐纳电流,如图42所示;或者,可以使用电阻衰减器,如图43所示。r1和r2的选择应确保。