191点击型号即可查看芯片规格书
ADT7476A点击型号即可查看芯片规格书
8226点击型号即可查看芯片规格书
特征
监控多达五个电压;改进的转速和脉宽调制性能;控制和监控多达四个风扇;高低频风扇驱动信号;一个芯片和两个远程温度传感器;温度测量范围扩展至191°C;自动风扇速度控制模式控制系统;基于测量温度的冷却;增强的声学模式大大减少了用户;改变风扇转速的感觉;通过热输出的热保护功能;监视英特尔奔腾4处理器的性能影响;热输入热控制电路;3线和4线风扇转速测量;所有监测值的极限比较;所有转速和脉冲宽度调制通道支持5伏电压;符合SMBus 2.0电气规范。
一般描述
DBCOOL控制器是一种热监视器和多个PWM FAN控制器,用于噪声敏感或功率敏感应用要求主动系统冷却。茶可以用低频率或高频率驱动球迷。驱动信号和能够监控两个上方温度遥感二极管及其内部温度茶另一部分测量和控制四个粉丝的速度,所以歌迷们在最低可能速度运行声学噪声自动扇速度控制环路优化扇速度为了一个纪念品的温度。系统的有效性热溶液可通过热输入进行监测。ADT7476A还提供临界热保护系统使用双向热带松作为输出防止系统或部件过热。
产品描述
ADT7476A是一个完整的热监测器和多风扇控制器,适用于任何需要热监测和冷却的系统。设备通过串行系统管理总线与系统通信。串行总线控制器具有用于读取和写入地址和数据的串行数据线(引脚1)和用于串行时钟的输入线(引脚2)。ADT7476A的所有控制和编程功能都通过串行总线执行。此外,可以将pin重新配置为SMBALERT输出到信号超出限制条件。
ADT776A与ADT768的特性比较
(1)、ADT7476A中不再提供动态T、动态操作点和相关寄存器。以下相关寄存器消失:o校准控制1(0x36)o校准控制2(0x37)o操作点(0x33、0x34和0x35)最小值。
(2)、以前(在ADT7468中),T定义了自动风扇控制算法的斜率。T现在定义了一个真实的温度范围(在ADT7476A中)。范围范围。
(3)、声波过滤现在被分配到温度区,而不是风扇。为了获得更好的声学性能,增加了可用的平滑时间。
(4)、现在使用两个开关电流而不是三个。SRC在ADT7476A中不可用。
(5)、现在可以单独对每个脉冲宽度调制输出启用/禁用高频脉冲宽度调制。
(6)、现在可以分别在每个温度通道上启用/禁用THERM。
(7)、ADT7476A不支持完全关闭模式。
(8)、ADT7476A可提高所有温度通道的温度精度。
(9)、ADT7476A默认为双补温度测量模式。
(10)、一些引脚已交换/添加功能。
(11)、简化了ADT7476A的通电程序。
ADT776A具有更高的最大输入电压TACH/PWM规格,支持更广泛的风扇。
V已重新分配到配置寄存器1(0x40)的位7核心低启用。
建议实施
如图13所示配置ADT7476A允许系统设计器使用以下功能:
(1)、两个脉宽调制输出,用于最多三个风扇的风扇控制(前后底盘风扇并联连接)。
(2)、三个转速表风扇转速测量输入。
(3)、V通过插脚4内部测量。科科斯群岛
(4)、使用远程1温度通道测量CPU温度。
(5)、通过远程2温度通道测量的远程温度区。
(6)、通过内部温度通道测量的局部温度区。
(7)、双向热插脚。此功能允许Intel Pentium 4 Prochhot监视,并可作为过热输出。它也可以编程为SMBALERT系统中断输出。
串行总线接口
使用串行系统控制ADT7476A管理总线(SMBus)。ADT7476A与此连接总线作为从设备,在主控制器的控制下。ADT7476A有一个7位串行总线地址。当设备在引脚13(PWM3/ADDREN)高的情况下通电ADT7476A的默认SMBus地址为0101110或0x2E。必须添加读/写位才能获得8位地址。如果一个系统中要使用多个ADT7476A,则每个ADT7476AADT7476A通过捆扎进入ADDR选择模式针脚13上电时电压过低。引脚14的逻辑状态,然后确定设备的SMBus地址。它们的逻辑引脚在通电时采样。设备地址在通电时采样并锁定第一个有效的SMBus事务,更准确地说是在第八个SCL脉冲开始时的从低到高的转换上,当串行总线地址字节与选定的从机地址匹配。使用ADDREN pin选择所选的从机地址/地址选择管脚。地址中的任何尝试更改在这之后没有效果。
对SMBus从机地址进行硬接线更改的能力允许用户避免与共享同一串行总线的其他设备发生冲突,例如,如果系统中使用了多个ADT7476A。
串行总线协议的操作如下:
1、主机通过建立启动条件来启动数据传输,该启动条件被定义为串行数据线SDA上的从高到低转换,而串行时钟线SCL保持高。这表示随后是地址/数据流。所有连接到串行总线的从机外设都对启动条件做出响应,并在接下来的八个工作日内进行切换位,由7位地址(MSB优先)加上R/W位组成,R/W位决定数据传输的方向,即数据是写入从设备还是从设备读取。
其地址对应于所发送地址的外围设备通过在第九时钟脉冲(称为确认位)之前的低周期中将数据线拉低来响应。总线上的所有其他设备现在都处于空闲状态,而选定的设备则等待从中读取或写入数据。如果R/W位为0,则主设备写入从设备。如果R/W位是1,则主设备从从设备读取。
2、数据通过串行总线以9个时钟脉冲的顺序发送,8位数据后接从设备的确认位。数据线上的转换必须在时钟信号的低周期内发生,并在高周期内保持稳定。当时钟处于高位时,从低到高的转换可以解释为停止信号。在一次读写操作中通过串行总线传输的数据字节数仅受主设备和从设备能够处理的内容的限制。
3、当读取或写入所有数据字节时,将建立停止条件。在写入模式下,主机在10时钟脉冲期间将数据线拉高以断言停止条件。在读取模式下,主设备通过在第九时钟脉冲前的低周期。这就是所谓的不承认。然后,主机在10时钟脉冲之前的低时段将数据线取低,然后在10时钟脉冲期间取高,以断言停止条件。
任何字节的数据都可以通过串行总线在一次操作中传输。但是,不能在一个操作中混合读写,因为操作的类型是在开始时确定的,并且在不启动新操作的情况下无法随后更改。在ADT7476A中,写操作包含一个或两个字节,读操作包含一个字节。
要将数据写入其中一个设备数据寄存器或从中读取数据,必须设置地址指针寄存器,以便对正确的数据寄存器进行寻址。然后,可以将数据写入或读取该寄存器。写操作的第一个字节总是包含地址指针寄存器中存储的地址。如果要将数据写入设备,则写入操作包含写入地址指针寄存器所选寄存器的第二个数据字节。
这个写操作如图18所示。装置地址通过总线发送,然后R/W设置为0。后面跟着两个数据字节。第一个数据字节是要写入的内部数据寄存器的地址,它存储在地址指针寄存器中。第二个数据字节是要写入内部数据寄存器的数据。
从寄存器读取数据时,有两种可能:
1、如果ADT7476A的地址指针寄存器值未知或不是所需的值,则必须先将其设置为正确的值,然后才能从所需的数据寄存器读取数据。这是通过像以前一样对ADT7476A执行写操作来完成的,但是只发送包含寄存器地址的数据字节,因为没有数据写入寄存器(参见图19)。
然后执行一个读取操作,该操作由总线地址;R/W位设置为1,然后是从数据寄存器读取的数据字节(见图20)
2、如果已知地址指针寄存器位于所需地址,则无需首先写入地址指针寄存器即可从相应的数据寄存器读取数据(见图20)。
如果地址指针寄存器的值已经正确,则可以在不首先写入地址指针寄存器的情况下从数据寄存器读取数据字节。但是,如果不写入地址指针寄存器,就不可能将数据写入寄存器,因为写入的第一个数据字节总是写入地址指针寄存器。
除了支持发送字节和接收字节协议外,ADT7476A还支持读取字节协议。请参阅英特尔系统管理总线规范修订版。
如果必须连续执行多个读或写操作,主机可以发送重复开始条件而不是停止条件来开始新操作。
写操作
SMBUS规范为不同类型的读写操作定义了几个协议。下面讨论ADT7476A中使用的那些。图表中使用了以下缩写:
8226;S–开始
•P–停止
•R–读取
•W–写入
•A–确认
•A–不承认
ADT7476A使用以下SMBus写入协议。
发送字节
在此操作中,主设备向从设备发送单个命令字节,如下所示:
1、主设备在SDA上断言启动条件。
2、主机发送7位从机地址,然后是写入位(低)。
3、寻址从设备在SDA上断言ACK。
4、主机发送命令代码。
5、奴隶在SDA上断言ACK。
6、主服务器在SDA上声明停止条件,事务结束。
对于ADT7476A,发送字节协议用于将寄存器地址写入RAM,以便从同一地址读取后续的单字节此操作如图21所示。
如果要求主机在设置地址后立即从寄存器中读取数据,则它可以在最终ACK之后立即断言重复启动条件,并在不断言中间停止条件的情况下执行单字节读取。
写入字节
在该操作中,主设备向从设备发送一个命令字节和一个数据字节,如下所示:
1、主设备在SDA上断言启动条件。
2、主机发送7位从机地址,然后是写入位(低)。
3、寻址从设备在SDA上断言ACK。
4、主机发送命令代码。
5、奴隶在SDA上断言ACK。
6、主机发送一个数据字节。
7、奴隶在SDA上断言ACK。
8、主服务器在SDA上声明停止条件,事务结束。此操作如图22所示。
读取操作
ADT7476A使用以下SMBus读取协议。
接收字节
当重复读取单个寄存器时,此操作非常有用。寄存器地址是预先设置的。在该操作中,主设备从从设备接收单个字节,如下所示:
1、主设备在SDA上断言启动条件。
2、主机发送7位从机地址,后跟读取位(高)。
3、寻址从设备在SDA上断言ACK。
4、主机接收一个数据字节。
5、船长在SDA上没有确认。
6、主服务器在SDA上声明停止条件,事务结束。
在ADT7476A中,接收字节协议用于从寄存器中读取单个字节的数据,该寄存器的地址先前由发送字节或写入字节操作设置。此操作如图23所示。
警报响应地址
报警响应地址(ARA)是SMBus设备的一个特点,允许中断设备在同一总线上存在多个设备时向主机识别它自己。
SMBALERT输出可以用作中断输出或SMBALERT。一个或多个输出可以连接到连接到主服务器的公用SMBALERT线路。如果设备的SMBALERT行变低,则会发生以下过程:
1、SMBALERT被拉低。
2、主机启动读取操作并发送警报响应地址(ARA=0001 100)。这是一个不能用作特定设备地址的常规呼叫地址。
3、SMBALERT输出低的设备响应警报响应地址,主机读取其设备地址。这个设备的地址现在是已知的,可以按常规进行查询。
4、如果多个设备的SMBALERT输出较低,则设备地址最低的设备具有与正常SMBus仲裁一致的优先级。
5、一旦ADT7476A响应警报响应地址,主机必须读取状态寄存器,并且仅当错误条件消失时才清除SMBALERT。
SMBus超时
ADT7476A包括SMBus超时功能。如果35 ms内没有SMBus活动,则ADT7476A假设总线已锁定并释放总线。这可防止设备锁定或保持SMBus所需的数据。某些SMBus控制器无法处理SMBus超时功能,因此如果需要,可以禁用它。
配置寄存器1(0x40)配置寄存器1(0x40)[6]TODIS=0,已启用SMBus超时(默认)。
[6]TODIS=1,SMBus超时已禁用。
病毒防护
防止恶意程序或病毒访问ADT7476A寄存器设置,可设置锁定位。配置寄存器1的设置位1(0x40)设置锁定位并锁定关键寄存器。在此模式下,在ADT7476A断电并再次通电之前,某些寄存器无法再写入。
电压测量输入
ADT7476A有四个外部电压测量通道。它还可以测量自己的供电电压,V。
插脚20到插脚23可以测量5 V、12 V和2.5 V电源,以及处理器核心电压VCCP(0 V到3 V输入)。VCC电源电压测量通过VCC引脚(引脚4)进行。2.5V输入可用于监控计算机系统中芯片组的电源电压。
模数转换器
所有模拟输入被多路复用到片上,逐次逼近,模数转换器,其分辨率为10位。基本输入范围为0 V至2.25 V,但输入具有内置衰减器,允许测量2.5 V、3.3 V、5 V、12 V和处理器核心电压VCCP,无需任何外部组件。为了允许这些电源电压的公差,ADC为标称输入电压产生一个全刻度(768 dec或300 hex)的输出,为其提供足够的空间来应对过电压。
输入电路
模拟输入的内部结构如图24所示。输入电路由输入保护二极管、衰减器和电容组成,形成一阶低-使输入抗高频噪声的通滤波器。
电压测量寄存器
寄存器0x20,2.5 V读=0x00默认寄存器0x21,V=0x00默认
所读数
寄存器0x22,V=0x00默认值
寄存器0x23,5 V读数=0x00默认值
寄存器0x24,12 V读数=0x00默认值
电压限制寄存器
与每个电压测量通道相关联的是一个高限和低限寄存器。超过编程的上限或下限会设置相应的状态位。超过limit还可以生成SMBALERT中断。
寄存器0x44,2.5 V下限=0x00默认值
寄存器0x45,2.5 V上限=0xFF默认值
寄存器0x46,VCCP下限=0x00默认值
寄存器0x47,VCCP上限=0xFF默认值
寄存器0x48,VCC下限=0x00默认值
寄存器0x49,VCC上限=0xFF默认值
寄存器0x4A,5 V下限=0x00默认值
寄存器0x4B,5 V上限=0xFF默认值
寄存器0x4C,12 V下限=0x00默认值
寄存器0x4D,12 V上限=0xFF默认值
表9显示了10位ADC的模拟输入和输出代码的输入范围。
当ADC运行时,它在0.7ms内采样并转换一个电压输入,平均16次转换以减少噪声;名义上测量需要11ms。
扩展分辨率寄存器
可以使用扩展分辨率寄存器(0x76和0x77)以更高的精度进行电压测量。每当读取扩展分辨率寄存器时,电压测量寄存器(0x20至0x24)中的相应数据将被锁定,直到读取其数据。也就是说,如果需要扩展分辨率,则必须首先读取扩展分辨率寄存器,紧接着读取相应的电压测量寄存器。
用于电压测量的附加ADC功能
在ADT776A上有许多其他功能可供系统设计者增加灵活性。
关闭平均值
对于从值寄存器中读取的每个电压/温度测量值,在内部读取了16个读数,并在将结果放入值寄存器之前取平均值。当需要更快的转换时,设置配置寄存器2的位4(0x73)将关闭平均值。这有效地使读取速度提高了16倍,但读取的声音可能会更大。默认循环周期时间为146.5毫秒。
旁路所有电压输入衰减器
配置寄存器2(0x73)的设置位5从2.5 V、VCCP、VCC、5 V和12 V输入中删除衰减电路。这允许用户直接连接外部传感器或为其他应用重新缩放模拟电压测量输入。不带衰减器的ADC的输入范围为0v到2.25v。
旁路单独电压输入衰减器
配置寄存器4(0x7D)的位[7:4]可用于绕过单个电压通道衰减器。
单通道ADC转换
虽然单通道模式是一种测试模式,可用于增加特定通道的采样时间,因此有助于更详细地分析该通道的性能,但它也可以有其他应用。
配置寄存器2(0x73)的设置位6将ADT7476A置于单通道ADC转换模式。在此模式下,ADT7476A只能读取一个电压通道。所选电压输入每0.7 ms读取一次。通过写入TACH1最小高字节寄存器(0x55)的位[7:5]来选择适当的ADC通道。
视频编码监控
ADT7476A有五个专用的电压ID(视频代码)输入。这些是数字输入,可通过VID/GPIO寄存器(0x43)读取,以确定所需的处理器电压或所使用的系统。五个视频代码输入支持VRM9.x解决方案。此外,Pin 21(12v输入)可以重新配置为第六个VID输入,以满足未来VRM的要求。
VID/GPIO寄存器(0x43)
[0]=视频0,反映引脚5的逻辑状态。[1]=VID1,反映引脚6的逻辑状态。
[2]=视频2,反映引脚7的逻辑状态。
[3]=视频3,反映引脚8的逻辑状态。
[4]=VID4,反映引脚19的逻辑状态。
[5]=第5段,可重新配置的12 V输入。当引脚21被配置为12 V输入时,该位读取0。这一点反映了逻辑当管脚配置为VID5时管脚21的状态。
视频编码输入阈值电压
VID码输入的切换阈值大约为1V。为了实现将来的兼容性,可以将VID代码输入阈值降低到0.6V。VID/GPIO寄存器(0x43)的位6(THLD)控制VID输入阈值电压。
VID/GPIO寄存器(0x43)
[6]THLD=0,VID开关阈值=1v,VOL<0.8v,VIH>1.7v,VMAX=3.3v。
[6]THLD=1,VID开关阈值=0.6V,VOL<0.4V,VIH>0.8V,VMAX=3.3V。
将引脚21重新配置为VID5输入
针21可以被重新配置为VRM10兼容系统的第六个VID码输入(VID5)。由于引脚配置为VID5,因此无法监控12 V电源。
VID/GPIO寄存器(0x43)的第7位确定引脚21的功能。系统或BIOS软件可以读取位7的状态,以确定系统是设计为监视12v还是第六个VID输入。
VID/GPIO寄存器(0x43)
[7]维德尔=0,引脚21用作12 V测量输入。软件可以读取这个位来确定有五个视频输入被监控。VID/GPIO寄存器(0x43)的第5位总是读回0。中断状态寄存器2(0x42)的位0反映12 V超出极限测量值。
[7]维德尔=1,引脚21用作第六个视频代码输入(VID5)。软件可以读取这个位来确定有六个视频输入被监控。寄存器0x43的位5反映了引脚21的逻辑状态。中断状态寄存器2(0x42)的位0反映VID代码的变化。
视频编码变化检测功能
ADT7476A具有VID码变化检测功能。当管脚21被配置为VID5输入时,VID代码的变化由中断状态寄存器2(0x42)的ADT7476A检测并报告。位0是12V/VC位,并且在设置时表示VID的变化。当VID输入的逻辑状态不同于之前的11μs时,设置VID码改变位。VID代码的更改用于生成SMBALERT中断。如果不需要SMBALERT中断,则设置中断掩码寄存器2(0x75)的位0时,会阻止在VID代码更改时发生SMBALERT。
中断状态寄存器2(0x42)
[0]12V/VC=0,如果引脚21被配置为VID5,逻辑0表示在最后11μs内VID代码没有变化。
[0]12V/VC=1,如果引脚21配置为VID5,则逻辑1表示在最后11μs。如果启用此功能,则生成SMBALERT。
编程GPIOS
ADT7476A遵循从ADM1027到ADT7476A的升级路径。为了保持版本之间的一致性,必须省略对GPIO5的引用。因此,有六个GPIO如下:GPIO0、GPIO1、GPIO2、GPIO3、GPIO4和GPIO6。
将配置寄存器5(0x7C)的位4设置为1将启用GPIO功能。这将配置为VID输入的所有管脚转换为通用输出。写入VID/GPIO寄存器(0x43)中的相应VID位,设置相应GPIO的极性。GPIO6可以使用配置寄存器5(0x7C)的位[3:2]作为输入或输出单独编程。
温度测量方法
局部温度测量
ADT7476A包含一个片上带隙温度传感器,其输出由片上10位ADC数字化。8位MSB温度数据存储在温度寄存器(地址0x25、0x26和0x27)中。由于可以测量正温度和负温度,因此温度数据以偏移64格式或双倍补码格式存储,如表10和表11所示。理论上,温度传感器和ADC可以以0.25°C的分辨率测量-63°C到+127°C(或扩展温度范围内的-61°C到+191°C)的温度。但是,这超出了设备的工作温度范围,因此在ADT7476A工作温度范围不可能。
远程温度测量
ADT7476A可以测量连接到引脚17和引脚18,或引脚15和引脚16的两个远程二极管传感器或二极管连接晶体管的温度。
在恒定电流下工作的二极管或二极管连接晶体管的正向电压显示出大约-2 mV/℃的负温度系数。不幸的是,V的绝对值因设备而异,需要单独校准以消除这一点。因此,这种技术不适合大规模生产。ADT7476A中使用的技术是测量在两种不同电流下操作装置时V的变化。
这是由:ΔV=KT/q×1n(N)
其中:
K是玻尔兹曼常数。q是载体上的电荷。
T是绝对温度,单位为开尔文。N是两个电流的比值。
图25显示了用于测量远程温度传感器输出的输入信号调节。此图显示了作为衬底晶体管的外部传感器,该晶体管安装在一些微处理器上,用于温度监测。它也可以是分立晶体管,如2N3904/2N3906。
如果使用分立晶体管,则集电极不接地并与底座相连。如果使用PNP晶体管,基极连接到D-输入,发射极连接到D+输入。如果使用NPN晶体管,发射器连接到D-输入,底座连接到D+输入。图26和图27显示了如何将ADT7476A连接到NPN或PNP晶体管以进行温度测量。为了防止接地噪声干扰测量,传感器的更负端不参考接地,而是通过D-输入处的内部二极管偏置在地上。
为了测量ΔV,传感器在I和N x I的工作电流之间切换。产生的波形通过65 kHz低通滤波器去除噪声,并通过斩波稳定放大器。放大器对波形进行放大和校正,以产生与ΔV成比例的直流电压。该电压由ADC测量,以10位2秒补码格式输出温度。为了进一步降低噪声的影响,通过平均16个测量周期的结果来执行数字滤波。成为成为远程温度测量通常需要38ms。
如表10所示,远程温度测量的结果以10位双补格式存储。温度测量的额外分辨率保存在扩展分辨率寄存器2(0x77)中。这将给出分辨率为0.25°C的温度读数。
噪声滤波
对于在噪声环境中工作的温度传感器,以前的做法是在D+引脚和D-引脚之间放置一个电容器,以帮助消除噪声的影响。然而,大电容影响温度测量的准确性,导致建议的最大电容值为1000 pF的。
这种电容器可以降低噪声,但不能消除噪声,这使得在噪声很大的环境中使用传感器变得困难。在大多数情况下,不需要电容器,因为差动输入本身就具有很高的抗噪声能力。
影响二极管精度的因素
遥感二极管
ADT7476A设计用于处理器中内置的衬底晶体管或离散晶体管。基片晶体管通常是PNP型,集极与基片相连。离散型可以是PNP或NPN晶体管作为二极管连接(基极对集电极短路)。如果使用NPN晶体管,则集极和基极连接到D+,发射极连接到D-。如果使用PNP晶体管,则集电极和基极连接到D-,发射极连接到D+。
为了减少由于衬底晶体管和分立晶体管的变化而产生的误差,应考虑以下几个因素:
晶体管的理想因子n是热二极管偏离理想行为的度量。ADT7476A被修剪为n值1.008。当使用n不等于1.008的晶体管时,使用以下公式计算温度T(℃)时引入的误差(n值见处理器的数据表):ΔT=(n−1.008)×(273.15 K+T)
要将此因素考虑在内,用户可以将ΔT值写入偏移寄存器。然后ADT7476A会自动将其加到温度测量值上或从中减去。
一些CPU制造商规定了衬底晶体管的高电流和低电流电平。ADT7476A的高电流电平为180μA,低电流电平为11μA。如果ADT7476A的电流电平与CPU制造商指定的电流电平不匹配,则可能需要消除偏移。CPU的数据表建议是否需要删除这个偏移量以及如何计算它。这个偏移量可以编程到偏移寄存器。需要注意的是,如果必须考虑多个偏移量,则必须将这些偏移量的代数和编程到偏移寄存器中。高低
如果离散晶体管与ADT7476A一起使用,则根据以下标准选择器件可获得最佳精度:
(1)、在最高工作温度下,基极发射极电压大于0.25 V(11μA)。
(2)、在最低工作温度下,180μA时基极发射极电压小于0.95 V。
(3)、基极电阻小于100Ω。
(4)、电流增益H(约50至150)的小变化,表明V特性的严格控制。铁成为晶体管,例如2N3904、2N3906或SOT-23封装中的等效器件,是适合使用的器件。
消除温度误差
由于CPU运行速度更快,在系统板周围路由D+/D-跟踪时,更难避免高频时钟。即使遵循了推荐的布局指南,一些温度误差仍然可以归因于耦合到D+/D-线上的噪声。恒定的高频噪声通常通过一个线性的恒定值来衰减或增加温度测量值。
ADT7476A具有用于远程1和远程2温度通道的温度偏移寄存器(0x70和0x72)。通过对系统进行一次性校准,用户可以确定由系统板噪声引起的偏移,并使用偏移寄存器将其调零。偏移寄存器自动向每个温度测量值添加两个8位读数。
更改配置寄存器5(0x7C)的位1会更改分辨率,因此,温度偏移的范围,可以是分辨率为1°C的-63°C至+127°C范围,也可以是分辨率为0.5°C的-63°C至+64°C范围。该温度偏移可用于补偿噪声引起的线性温度误差。
温度偏移寄存器
寄存器0x70,远程1温度偏移=0x00(默认为0°C)
寄存器0x71,本地温度偏移=0x00(默认为0°C)
寄存器0x72,远程2温度偏移=0x00(默认为0°C)
ADT7463/ADT7476A向后兼容模式
通过设置配置寄存器5(0x7C)的位0,所有温度测量值以两个补码存储在区域温度读取寄存器(0x25、0x26和0x27)中,补码范围为-63°C至+127°C。温度限值必须以两个补码重新编程。
如果输入低于-63°C的双秒补码温度,则温度被钳制为-63°C。在此模式下,二极管故障状态保持为-128°C=1000 0000,而在扩展温度范围(-63°C到+191°C)中,故障状态由-64°C=0000 0000表示。
温度读数寄存器
寄存器0x25,远程1温度
寄存器0x26,本地温度
寄存器0x27,远程2温度
寄存器0x77,扩展分辨率2=0x00默认值
[7:6]TDM2标准,远程2个温度LSB。
[5:4]LTMP公司,当地温度LSB。
[3:2]TDM1型,远程1温度LSB。
温度限制寄存器
与每个温度测量通道相关的是高限和低限寄存器。超过编程的上限或下限会设置相应的状态位。超过limit还可以生成SMBALERT中断(取决于中断掩码寄存器的编程方式和假设SMBALERT被设置为相应pin上的输出)。
寄存器0x4E,远程1温度下限=0x81默认值
寄存器0x4F,远程1温度上限=0x7F默认值
寄存器0x50,本地温度下限=0x81默认值
寄存器0x51,本地温度上限=0x7F默认寄存器0x52,远程2温度下限=0x81默认
寄存器0x53,远程2温度上限=0x7F默认值
从ADT7476A读取温度
需要注意的是,温度可以从ADT7476A读取为8位值(分辨率为1°C)或10位值(分辨率为0.25°C)。如果只需要1°C的分辨率,温度读数可以在任何时间以任何特定顺序读取。
如果需要10位测量,则每次测量需要读取一个2寄存器。应先读取扩展分辨率寄存器2(0x77)。这将导致所有温度读数寄存器冻结,直到从中读取所有温度读数寄存器为止。这将防止在读取MSB的两个lsb时更新MSB读取,反之亦然。
用于温度测量的附加ADC功能
在ADT776A上有许多其他功能可供系统设计者增加灵活性。
关闭平均值
对于从值寄存器中读取的每个温度测量值,在放入值寄存器之前,实际上已经在内部读取了16个读数,并将结果取平均值。有时需要快速测量。配置寄存器2(0x73)的设置位4关闭平均值。默认循环周期时间为146.5毫秒。
单通道ADC转换
配置寄存器2(0x73)的设置位6将ADT7476A置于单通道ADC转换模式。在此模式下,ADT7476A只能读取单个温度通道。通过写入TACH1最小高字节寄存器(0x55)的位[7:5]来选择适当的ADC通道。
超温事件
任何温度通道上的超温事件都可以在自动风扇转速控制模式下自动检测和处理。寄存器0x6A到寄存器0x6C是温度限制。当温度超过其温度极限时,所有PWM输出都以最大值运行。
脉宽调制占空比(寄存器0x38、寄存器0x39和寄存器0x3A)。这有效地以允许的最快速度运行风扇。
可以使用配置寄存器5(0x7C)的位[7:5]。THERM也可以通过以下方式禁用:
(1)、在偏移64模式下将-64°C写入适当的热温度限制。风扇以这种速度运转,直到温度降到低于热滞后。这可以通过在配置寄存器3(0x78)中设置位2(boost位)来禁用。热温度限值的滞后值是编程到滞后寄存器(0x6D和0x6E)中的值。默认滞后值为4°C。
(2)、以双秒补码模式将-128°C写入适当的热温度极限。
限制、状态寄存器和中断
极限值
与ADT7476A上的每个测量通道相关的是高限和低限。这些可以构成系统状态监视的基础;状态位可以针对任何超出限制的情况进行设置,并通过轮询设备进行检测。或者,可以生成SMBALERT中断,以将超出限制的条件标记为处理器或微控制器。
8位限制
下面是ADT7476A上8位限制的列表。
电压限制寄存器
寄存器0x44,2.5 V下限=0x00默认值
寄存器0x45,2.5 V上限=0xFF默认值
寄存器0x46,VCCP下限=0x00默认值
寄存器0x47,VCCP上限=0xFF默认值
寄存器0x48,VCC下限=0x00默认值
寄存器0x49,VCC上限=0xFF默认寄存器0x4A,5 V下限=0x00默认
寄存器0x4B,5 V上限=0xFF默认值
寄存器0x4C,12 V下限=0x00默认寄存器0x4D,12 V上限=0xFF默认
温度限制寄存器
寄存器0x4E,远程1温度下限=0x81默认值
寄存器0x4F,远程1温度上限=0x7F默认值
寄存器0x6A,远程1热限制=0x64默认值
寄存器0x50,本地温度下限=0x81默认值
寄存器0x51,本地温度上限=0x7F默认值
寄存器0x6B,本地热限制=0x64默认值
寄存器0x52,远程2温度下限=0x81默认值
寄存器0x53,远程2温度上限=0x7F默认值
寄存器0x6C,远程2热限制=0x64默认值
热定时器限位寄存器
寄存器0x7A,THERM Timer Limit=0x00默认值。
16位限制
风扇转速测量值为16位结果。风扇转速限制也是16位,由高字节和低字节组成。因为在速度或失速状态下运行的风扇通常是唯一感兴趣的条件,风扇转速只有高的限制。
因为实际测量的是风扇转速周期,超过此限值表示风扇缓慢或失速。
风扇限制寄存器
寄存器0x54,TACH1最小低字节=0xFF默认值
寄存器0x55,TACH1最小高字节=0xFF默认值
寄存器0x56,TACH2最小低字节=0xFF默认值
寄存器0x57,TACH2最小高字节=0xFF默认值
寄存器0x58,TACH3最小低字节=0xFF默认值
寄存器0x59,TACH3最小高字节=0xFF默认值
寄存器0x5A,TACH4最小低字节=0xFF默认值
寄存器0x5B,TACH4最小高字节=0xFF默认值
超出限制的比较
所有限值编程完成后,可以启用ADT7476A进行监控。ADT7476A以循环模式测量所有电压和温度测量值,并为超出限制条件设置适当的状态位。转速计测量不是循环周期的一部分。根据测量值是否与上限或下限进行比较,进行比较的方式有所不同。
上限:>进行比较
下限:≤进行比较
电压和温度通道使用窗口比较器进行误差检测,因此具有高限和低限。风扇转速测量仅使用低限值。此风扇限制仅在手动风扇控制模式下才需要。
模拟监控周期时间
当1写入配置寄存器1(0x40)的起始位(位0)时,模拟监视周期开始。ADC依次测量每个模拟输入,每次测量完成后,结果自动存储在相应的值寄存器。除非通过将配置寄存器1的0写入位0而禁用,否则此循环监视循环将继续。
由于ADC通常以这种方式自由运行,因此监视所有模拟输入所用的时间通常不重要,因为任何输入的最新测量值可以随时读出。
对于监视周期时间很重要的应用程序,可以很容易地进行计算。
测量的通道总数为
•四个专用电源电压输入
•电源电压(V引脚)科科斯群岛
•局部温度
•两个远程温度
如前所述,ADC执行循环转换,每次电压测量需要11 ms,本地温度读数需要12 ms,远程温度读数需要39 ms因此,平均电压和温度监测的总监测周期时间名义上是:(5×11)+12+(2×39)=145毫秒,风扇转速测量是并行进行的,与模拟测量不同步。
状态寄存器
极限比较的结果存储在中断状态寄存器1和中断状态寄存器2中。每个通道的状态寄存器位反映该通道上最后一次测量和限制比较的状态。如果测量值在限制范围内,则相应的状态寄存器位清除为0。如果测量超出限制,则相应的状态寄存器位设置为1。
通过串行总线读取状态寄存器,可以对各种测量通道的状态进行轮询。在中断状态寄存器1(0x41)的位7(OOL)中,1表示在中断状态寄存器2中标记了一个超出限制的事件。这意味着用户还需要读取中断状态寄存器2。或者,插脚10或插脚14可以配置为SMBALERT输出。
此硬中断自动通知系统主管超出限制条件。只要引起中断的错误条件被清除,读取状态寄存器就会清除相应的状态位。状态寄存器位是粘性的。无论何时设置状态位,指示超出限制条件,即使导致它的事件已消失(直到读取),它仍保持设置。
清除状态位的唯一方法是在事件消失后读取状态寄存器。中断屏蔽寄存器(0x74和0x75)允许屏蔽单个中断源导致SMBALERT。但是,如果其中一个屏蔽中断源超出限制,其相关的状态位将设置在状态寄存器中。
中断状态寄存器1(0x41)
位7(OOL)=1,表示中断状态寄存器2中的一位已设置,应读取中断状态寄存器2。
位6(R2T)=1,已超过远程2温度上限或下限。
位5(LT)=1,已超过本地温度上限或下限。
位4(R1T)=1,已超过远程1温度上限或下限。
位3(5 V)=1,已超过5 V高或低限值。
位2(VCC)=1,已超过V上限或下限。科科斯群岛
位1(VCCP)=1,已超过V上限或下限。中央对手方
位0(2.5 V)=1,已超过2.5 V高或低限值如果2.5 V输入配置为THERM,该位表示
热量状态。
中断状态寄存器2(0x42)
位7(D2)=1,表示D2+/D2-输入开路或短路。
位6(D1)=1,表示D1+/D1-输入开路或短路。
位5(F4P)=1,表示风扇4已降至最低值以下速度。或者,表示热极限。如果使用THERM功能,则超过。或者,指示GPIO6的状态。
位4(风扇3)=1,表示风扇3已降至最低转速以下。
位3(FAN2)=1,表示风扇2已降至最低转速以下。
位2(FAN1)=1,表示风扇1已降至最低转速以下。
位1(OVT)=1,表示已超过过热极限。
位0(12V/VC)=1,表示已超过12 V高或低限值。如果使用VID代码更改功能,此位表示VID0到VID4输入上的VID代码更改。
SMBALERT中断行为
可以对ADT7476A进行状态轮询,也可以为超出限制的条件生成SMBALERT中断。它是在编写中断处理程序软件时,注意SMBALERT输出和状态位的行为很重要。
图29显示了SMBALERT输出和粘性状态位的行为。一旦超过限制,相应的状态位将设置为1。状态位保持设置,直到错误条件消失并读取状态寄存器。状态位称为粘滞位,因为它们在被软件读取之前一直保持设置状态。这可确保如果软件定期轮询设备,则不会错过超出限制的事件。注意:
(1)、SMBALERT输出在读取超出限制的整个持续时间内保持低,直到读取状态寄存器。这对软件如何处理中断有影响。
(2)、过热事件不粘。它们在超温状态停止后立即复位。
处理SMBALERT中断
为了防止系统被中断服务所束缚,建议按如下方式处理SMBALERT中断:
1、检测SMBALERT断言。
2、输入中断处理程序。
3、读取状态寄存器以识别中断源。
4、通过在中断屏蔽寄存器(0x74和0x75)中设置适当的屏蔽位来屏蔽中断源。
5、对给定的中断源采取适当的操作。
6、退出中断处理程序。
7、定期轮询状态寄存器。如果中断状态位已清除,则重置相应的中断掩码位到0。这将导致SMBALERT输出和状态位的行为如图30所示。
屏蔽中断源
中断屏蔽寄存器1(0x74)和中断屏蔽寄存器2(0x75)允许屏蔽单个中断源,以防止SMBALERT中断。注意:屏蔽中断源只会阻止断言SMBALERT输出;正常设置适当的状态位。
中断屏蔽寄存器1(0x74)
位7(OOL)=1,为中断状态寄存器2中标记的任何警报条件屏蔽SMBALERT。
位6(R2T)=1,为远程2温度屏蔽SMBALERT。
位5(LT)=1,屏蔽本地温度的SMBALERT。
位4(R1T)=1,为远程1温度屏蔽SMBALERT。
位3(5 V)=1,屏蔽5 V通道的SMBALERT。
位2(VCC)=1,屏蔽V通道的SMBALERT。科科斯群岛
位1(VCCP)=1,屏蔽V通道的SMBALERT。中央对手方位0(2.5V)=1,屏蔽2.5V/THERM的SMBALERT。
中断屏蔽寄存器2(0x75)
位7(D2)=1,屏蔽二极管2错误的SMBALERT。位6(D1)=1,屏蔽二极管1错误的SMBALERT。
位5(风扇4)=1,屏蔽风扇4故障的SMBALERT。
如果使用TACH4引脚作为热输入,则该位屏蔽热事件的SMBALERT。如果TACH4引脚用作GPIO6,则设置此位将屏蔽与GPIO6相关的中断。
位4(风扇3)=1,屏蔽风扇3的SMBALERT。
位3(FAN2)=1,屏蔽风扇2的SMBALERT。
位2(FAN1)=1,屏蔽风扇1的SMBALERT。
位1(OVT)=1,屏蔽SMBALERT以防过热(超过热温度限制)。
位0(12V/VC)=1,根据使用的功能,屏蔽12 V通道或视频代码更改的SMBALERT。
启用SMBALERT中断输出
默认情况下,SMBALERT中断功能被禁用。插脚10或插脚14可以重新配置为SMBALERT输出,以发出超出限制条件的信号。
管脚分配热功能
ADT7476A上的引脚14有四种可能的功能:
SMBALERT、THERM、GPIO6和TACH4。用户通过设置配置寄存器4(0x7D)的位0和位1来选择所需的功能。
如果在位1上启用了THERM,则配置寄存器3(0x78):
(1)、引脚22变热。
(2)、如果引脚14配置为配置寄存器4(0x7D)的位0和位1上的THERM,则该引脚上启用THERM。
如果未启用THERM:
(1)、引脚22变为2.5 V测量输入。
(2)、如果引脚14配置为THERM,则此引脚上的THERM被禁用。
热量作为输入
当将THERM配置为输入时,用户可以在THERM pin上计时断言。这对于连接到CPU的PROCHOT输出以测量系统性能非常有用。
当外部驱动热管脚较低时,用户还可以设置ADT7476A,使风扇以100%的速度运行。粉丝们跑来跑去在热插销被拉低的时间内保持100%。
这是通过将配置寄存器3(0x78)中的BOOST位(位2)设置为1来完成的。仅当风扇已在运行(例如,在手动模式、当前占空比高于0x00时)或在温度高于T时处于自动模式时,此功能才起作用。最小值如果温度低于T或手动占空比最小值模式设置为0x00,外部拉低热量没有效果。有关更多信息,请参见图31。
热定时器
ADT7476A有一个内部计时器来测量热断言时间。例如,THERM输入可以连接到奔腾4 CPU的PROCHOT输出测量系统性能。热输入也可以连接到触发点温度传感器的输出。
定时器在ADT7476A的热量输入断言时启动,在热量被解除断言时停止。定时器累计计数热量次,即定时器继续计数关于下一个热断言。在读取计时器之前,THERM计时器继续累积THERM断言时间(如果清除),或直到达到满量程。如果计数器达到满刻度,则在该读数处停止,直至清除。
8位热定时器状态寄存器(0x79)的设计如下:
在第一个THERM断言中,位0被设置为1。一旦累计热量断言时间超过45.52 ms,设置热量计时器的位1,位0现在成为计时器的LSB,分辨率为22.76 ms(见图32)。
使用热量计时器时,请注意以下事项:热定时器读取后(0x79)
1、计时器的内容在读取时清除。
2、由于正在发生热量断言,因此热量计时器的位0设置为1。
3、热量计时器从零开始递增。
4、如果热定时器限制寄存器(0x7A)=0x00,则设置F4P位。
从热定时器事件生成SMBALERT中断
ADT7476A可以在可编程的已超过热定时器限制。这允许系统设计器在捕获较长的THERM计时器事件时忽略简短的、不常见的THERM断言。寄存器0x7A是热定时器限制寄存器。此8位寄存器允许在生成SMBALERT之前设置从0秒(第一个THERM断言)到5.825秒的限制。将THERM timer值与THERM timer limit寄存器的内容进行比较。如果热定时器值超过热定时器限制值,然后设置中断状态寄存器2的F4P位(位5),并生成SMBALERT。
注:取决于哪些管脚被配置为热电偶定时器,设置掩码寄存器2(0x75)或位0的F4P位(位5)掩码寄存器1(0x74)的如果超出计时器限制。
图33是热定时器的功能框图,限制和相关电路。将0x00值写入热定时器限制寄存器(0x7A)导致SMBALERT在第一个THERM断言上生成。热定时器限制值0x01累积生成一次SMBALERT热断言超过45.52ms。
配置相关的热行为
1、将所需的管脚配置为热定时器输入。
配置寄存器3(0x78)的设置位1(热定时器启用)启用热定时器监视功能。默认情况下,在针脚14和针脚22上禁用此功能。设置配置的位0和位1(PIN14FUNC)寄存器4(0x7D)启用热定时器输出功能在引脚22上(还必须设置配置寄存器3的位1,THERM)。销14也可用作转速计4。
2、为热定时器事件选择所需的风扇行为。
假设风扇正在运行,配置寄存器3(0x78)的设置位2(BOOST位)会导致所有风扇在断言THERM时以100%工作周期运行。这允许故障保护系统冷却。如果该位为0,则风扇以其当前设置运行,不受热事件的影响。如果在断言THERM时风扇尚未运行,则风扇不会全速运行。
3、选择THERM timer事件是否应生成SMBALERT中断。
设置掩码寄存器2(0x75)的第5位(F4P)或掩码寄存器1(0x74)的第0位(取决于哪些管脚配置为热定时器),在超过热定时器限制值时屏蔽SMBALERTs。如果需要基于THERM事件的SMBALERTs,则应清除此位。
4、选择合适的热极限值。
此值确定是在第一个THERM断言上生成SMBALERT,还是仅超出累积THERM断言时间限制。值0x00导致在第一个THERM断言上生成SMBALERT。
5、选择热监测时间。
此值指定操作系统或BIOS级别的软件检查THERM计时器的频率。例如,BIOS可以每小时读取一次THERM定时器来确定热断言时间。例如,如果总热量断言时间在第1小时<22.76 ms,在第2小时>182.08 ms,在第3小时>5.825 s,则系统性能正在下降重要的是因为THERM每小时断言的频率更高。或者,操作系统或BIOS级别的软件可以在系统已通电。如果由于超过THERM计时器限制而生成SMBALERT,则可以采用另一个时间戳。时间差可以计算为一个固定的热定时器限制时间。例如,如果超过2.914秒的热量定时器限制需要一周时间,而下一次只需要1小时,那么系统性能就会严重下降。
将THERM管脚配置为输出,除了监测作为输入的热,ADT7476A可以选择驱动热低作为输出。当PROCHOT是双向的时,可以使用THERM通过断言PROCHOT来限制处理器。用户可以预先编程系统临界热极限。如果温度超过热限值0.25°C,则热断言为低。如果温度仍然高于下一个监测周期的热极限,THERM保持在低位。在温度等于或低于热极限之前,热量保持在低位。因为该通道的温度在每个监测周期内只测量一次THERM声称,保证至少在一个监测周期内保持低水平。
如果远程1、本地或远程2热温度限制超过0.25°C,则热管脚可配置为断言低。热温度限制寄存器分别位于寄存器0x6A、寄存器0x6B和寄存器0x6C。配置寄存器5(0x7C)的设置位[5:7]启用远程1、本地和分别远程2个温度通道。图34显示了在发生临界超温。
禁用THERM的另一种方法是在偏移64模式下将THERM温度限值编程为-63°C或更低,或在双补模式下编程为-128°C或更低;即,对于分别小于-63°C或-128°C的THERM温度限值,THERM被禁用。
启用和禁用单个通道上的THERM
可以使用配置寄存器5(0x7C)的位[7:5]对温度通道的单个或组合启用/禁用THERM。
热滞后
配置寄存器7(0x11)的设置位0禁用热滞后。
如果启用了热滞后且禁用了热(配置寄存器4的位2,0x7D),则当发生热事件时,热管脚不会断言为低。如果禁用了热滞后,并且禁用了热(配置寄存器4 0x7D的位2),并且假设将适当的管脚配置为热,则当发生热事件时,热管脚断言为低。
如果热滞后和热滞后均已启用,则热输出将按预期断言。
手动模式下的热操作
在手动模式下,除非配置寄存器6(0x10)的位3设置为1,否则热事件不会导致风扇全速运行。
另外,配置寄存器4(0x7D)的位3可以是用于在THM事件(100%或最大PWM)上选择PWM速度。
可将配置寄存器4(0x7D)中的位2设置为禁用热事件对风扇的影响。
采用PWM控制的风扇驱动
ADT7476A使用脉冲宽度调制(PWM)来控制风扇转速。这依赖于改变施加在风扇上的方波的占空比(或开/关比)来改变风扇转速。使用PWM控制驱动风扇所需的外部电路非常简单。对于4线风扇,PWM驱动器可能只需要一个上拉电阻器。在许多情况下,4线风扇PWM输入有一个内置的上拉电阻器。
ADT7476A的脉宽调制频率可以设置为低频或单个高脉宽调制频率的选择。低频选项用于3线风扇,而高频选项通常用于4线风扇。
对于3线风扇,只需要一个N沟道MOSFET驱动装置。MOSFET的规格取决于被驱动的风扇所需的最大电流和FET的输入电容。由于必须使用10 kΩ(或更大)的电阻器作为PWM上拉,具有较大输入电容的FET会导致PWM输出失真并对风扇控制范围产生不利影响。只有在使用高频脉冲宽度调制模式时才需要这样做。
典型的笔记本电脑风扇的额定电流为170毫安,所以SOT设备可以用在需要考虑电路板空间的地方。在台式机中,风扇通常每台抽250毫安到300毫安。如果从一个PWM输出并行驱动多个风扇或驱动更大的服务器风扇,MOSFET必须处理更高的电流要求。唯一的其他规定是MOSFET应该具有栅极电压驱动,V<3.3 V,用于直接连接到PWM输出引脚。MOSFET还应该具有低导通电阻,以确保在FET两端没有显著的电压降,这将降低施加在风扇上的电压,从而降低风扇的最大运行速度。图35显示了如何使用脉宽调制控制驱动3线风扇。
图35使用10 kΩ上拉电阻器作为转速信号。这假设转速信号是来自风扇的开路收集器。在所有情况下,来自风扇的TACH信号必须保持在5.5 V以下,以防止损坏ADT776A。
图36显示了使用NPN晶体管(如通用MMBT2222)的风扇驱动电路。虽然这些器件价格低廉,但它们往往比mosfet具有更低的电流处理能力和更高的导通电阻。选择晶体管时,应注意确保它满足风扇的电流要求。确保选择了基极电阻,以便在风扇通电时晶体管饱和。
由于4线风扇中的风扇驱动电路没有像以前的PWM驱动/供电风扇那样打开或关闭,因此内部驱动电路始终打开,并将PWM输入用作信号而不是电源。这使得内部风扇驱动电路的性能优于3线风扇,特别是对于高频应用。
图37显示了4线风扇的典型驱动电路。
从PWM3驱动两个风扇
ADT7476A有四个转速计输入可用于风扇转速测量,但只有三个PWM驱动输出。如果系统中使用第四个风扇,则应与第三个风扇并联,从PWM3输出驱动。
图38显示了如何使用低成本NPN晶体管并行驱动两个风扇。图39显示了等效电路,因为MOSFET可以处理高达3.5a的电流,用户可以直接将另一个风扇与第一个风扇并联。在设计具有晶体管和FET的驱动电路时,应注意确保PWM输出不需要电流源,并且它们比数据表上规定的5毫安最大电流下沉。
从PWM3驱动最多三个风扇
风机转速测量与PWM通道;例如,TACH1与PWM1同步。TACH3和TACH4都与PWM3同步,因此PWM3可以驱动两个风扇。或者,可以对PWM3进行编程,使转速计2、转速计3和转速计4与PWM3输出同步。这允许PWM3驱动两个或三个风扇。在这种情况下,驱动电路看起来相同,如图38和图39所示。寄存器0x62中的同步位启用此功能。使用MOSFET。(同步)增强声学寄存器1(0x62)[4]同步=1,使转速计2、转速计3和转速计4与PWM3同步。
与4线风扇一起使用时,在高频模式下不需要同步。
布置3线风机
图40显示了如何为3线风扇布置公共电路。
转速计输入
引脚9、引脚11、引脚12和引脚14(当配置为转速计输入时)是用于风扇转速测量的高阻抗输入。
ADT7476A中的信号调节可调节风扇转速表典型输出的缓慢上升和下降时间。最大输入信号范围为0 V至5.5 V,即使V为3.3 V。在这些输入是从超过0 V至5.5 V的风扇输出提供的情况下,必须包括风扇信号的电阻衰减或二极管箝位,以将输入保持在可接受的范围内。
图41至图44显示了最常见风扇转速计输出的电路。
如果风扇转速表输出有一个电阻上拉至V,它可以直接连接到风扇输入,如图41所示。
如果风扇输出具有高达12V的电阻拉幅或大于5.5V的其他电压,则可以使用齐纳二极管钳制风扇输出,如图42所示。应选择齐纳二极管电压,使其大于转速计输入的V,但小于5.5 V,允许齐纳的电压公差。5 V和5.5 V之间的值是合适的。
如果风扇有一个强大的上拉(小于1kΩ)到12V或图腾极输出,可以添加一个串联电阻来限制齐纳电流,如图43所示。
或者,可以使用电阻衰减器,如图44所示。R1和R2的选择应确保:
2 V < VPULL-UP × R2 / (RPULL-UP+ R1 + R2) < 5.5 V
风扇输入对地的输入电阻名义上为160 kΩ,在计算电阻值时应将其考虑在内。
当上拉电压为12v,上拉电阻小于1kΩ时,R1和R2的合适值分别为100kΩ和40kΩ。这就产生了3.42V的高输入电压。
风扇计数器不直接计算风扇转速输出脉冲,因为风扇转速可能小于1000转/分,并且需要几秒钟来累积一个相当大且准确的计数。相反,风扇转速的周期是通过将一个90 kHz的片上振荡器选通到风扇转速输出的N个周期的16位计数器的输入来测量的(图45),因此累积的计数实际上与风扇转速周期成正比,与风扇转速成反比。
N个,计数的脉冲数由每转转速表脉冲寄存器(0x7B)的设置确定。该寄存器包含每个风扇的两位,允许计算一个、两个(默认)、三个或四个转速脉冲。
风扇转速计读取寄存器
风扇转速表读数为16位值,由从ADT7476A读取的2字节组成。
寄存器0x28,TACH1低字节=0x00默认值
寄存器0x29,TACH1高字节=0x00默认值
寄存器0x2A,TACH2低字节=0x00默认值
寄存器0x2B,TACH2高字节=0x00默认寄存器0x2C,TACH3低字节=0x00默认
寄存器0x2D,TACH3高字节=0x00默认值
寄存器0x2E,TACH4低字节=0x00默认值
寄存器0x2F,TACH4高字节=0x00默认值
从ADT7476A读取风扇转速
风扇转速的测量包括每次测量读取一个2寄存器。应该先读取低字节。这会导致高字节被冻结,直到高字节寄存器和低字节寄存器都被读取,从而防止错误的转速计读数。风扇转速表读数寄存器报告从第一个风扇转速表脉冲上升沿到第三个风扇转速表脉冲上升沿(假设每转两个脉冲被计数)选通到风扇速度计数器的11.11μs周期时钟(90 kHz振荡器)的数量。
因为该设备基本上是在测量风扇转速周期,所以计数值越高,风扇实际运行的速度就越慢。16位风扇转速表读数0xFFFF表示风扇已失速或运行非常缓慢(<100转/分)。
上限:>进行比较
由于正在测量实际的风扇转速周期,因此低于风扇转速限制1将设置适当的状态位和可用于生成SMBALERT。
测量风扇转速有以下注意事项:当ADT7476A启动时,转速测量锁定。实际上,已经对每个转速表输入进行了低字节的内部读取。其最终结果是,所有转速计读数都被锁定,直到从相应的转速计寄存器中读取高字节。在读取适当的高字节之前,所有与转速表相关的中断也将被忽略。
一旦相应的高字节被读取,转速计测量被解锁,中断被正常处理。
风扇转速限制寄存器
风扇转速限制寄存器是由两个字节组成的16位值。
寄存器0x54,TACH1最小低字节=0xFF默认值
寄存器0x55,TACH1最小高字节=0xFF默认值
寄存器0x56,TACH2最小低字节=0xFF默认值
寄存器0x57,TACH2最小高字节=0xFF默认值
寄存器0x58,TACH3最小低字节=0xFF默认值
寄存器0x59,TACH3最小高字节=0xFF默认寄存器0x5A,TACH4最小低字节=0xFF默认
寄存器0x5B,TACH4最小高字节=0xFF默认值
风扇转速测量率
风扇转速计读数通常每秒更新一次。
设置后,配置寄存器3(0x78)的快速位(位3)每250毫秒更新一次风扇转速计读数。
直流位
如果任何风扇不是由PWM信道驱动,而是由5v或12v直接供电,则应在配置寄存器3中设置它们的相关dc位。这使得直接连接到直流电源的风扇可以连续读取转速计读数。在4线风扇中启用高频模式后,无需设置直流位,因为这是在内部自动完成的。
计算风扇转速
假设风扇每转有两个脉冲,并且ADT7476A编程为每转测量两个脉冲,风扇速度通过
风扇转速(RPM)=(90000×60)/风扇转速表读数,其中风扇转速表读数是16位风扇转速表读数。
例子:
TACH1高字节(0x29)=0x17 TACH1低字节(0x28)=0xFF
风扇1转速是多少转/分?
风扇1转速读数=0x17FF=6143(十进制)
转速=(f×60)/风扇1转速读数
转速=(90000×60)/6143风扇转速=879转/分
转速脉冲/转
不同型号的风扇每转可输出一、二、三或四个转速脉冲。一旦确定了风扇转速脉冲的数量,就可以将其编程到每个风扇的转速脉冲寄存器(0x7B)中。或者,该寄存器可用于确定给定风扇每转输出的脉冲数。通过在每转不同脉冲设置下以100%速度绘制风扇转速测量值,波纹最小的最平滑图形确定正确的每转脉冲值。
每转风扇脉冲寄存器
[1:0]风扇1默认值=每转2个脉冲。
[3:2]风扇2默认值=每转2个脉冲。
[5:4]风扇3默认值=每转2个脉冲。
[7:6]风扇4默认值=每转2个脉冲。
00 =每转1个脉冲。
01 =每转2个脉冲。
10 =每转3个脉冲。
11 =每转4个脉冲。
风扇旋转
ADT7476A具有独特的风扇旋转功能。它以100%的脉宽调制占空比旋转风扇,直到在转速表输入端检测到两个转速表脉冲。一旦检测到两个转速脉冲,脉宽调制占空比将达到预期的运行值,例如33%。风扇具有不同的旋转特性,需要不同的时间来克服惯性。ADT7476A的优势在于,它运行风扇的速度足以克服惯性,并且在旋转时比编程设定为在给定时间内旋转的风扇更安静。
风扇启动超时
为了防止在风扇启动时产生假中断(因为它低于运行速度),ADT7476A包含风扇启动超时功能。在此期间,ADT7476A寻找两个转速脉冲。如果没有检测到两个转速脉冲,则会产生中断。
通过设置配置寄存器1(0x40)的位5(fspdi),可以禁用风扇启动超时。
PWM1、PWM2、PWM3配置(0x5C、0x5D、0x5E)
[2:0]旋转,PWM1=0x5C,PWM2=0x5D,PWM3=0x5E的启动超时。
<