ADM1031ARQ ,Intelligent Temperature Monitor and Dual PWM Fan ControllerSpecifications subject to change without notice.–2– REV. 0ADM1031ABSOLUTE MAXIMUM RATINGS* ORDERING ..
ADM1031ARQ-REEL ,Complete, ACPI Compliant, Dual Channel ±1°C Remote Thermal Monitor with Integrated Fan Controller for two Independent Fans, ...CHARACTERISTICSINTERRUPTREGISTERSSTATUS THERMREGISTERSPWMFAN SPEEDPWM_OUT1CONTROLLERSCONFIGLIMITREG ..
ADM1031ARQ-REEL7 ,Complete, ACPI Compliant, Dual Channel ±1°C Remote Thermal Monitor with Integrated Fan Controller for two Independent Fans, ...SPECIFICATIONS A MIN MAX CC MIN MAXParameter Min Typ Max Unit Test Conditions/CommentsPOWER SUPPLYS ..
ADM1031ARQZ ,Complete, ACPI Compliant, Dual Channel ±1°C Remote Thermal Monitor with Integrated Fan Controller for two Independent Fans, ...FEATURES PRODUCT DESCRIPTION®Optimized for Pentium III: Allows Reduced Guardbanding The ADM1031 is ..
ADM1031ARQZ-R7 , Intelligent Temperature Monitor and Dual PWM Fan Controller
ADM1031ARQZ-REEL ,Complete, ACPI Compliant, Dual Channel ±1°C Remote Thermal Monitor with Integrated Fan Controller for two Independent Fans, ...Specifications subject to change without notice.–2– REV. AADM1031ABSOLUTE MAXIMUM RATINGS* ORDERING ..
AH173 , INTERNAL PULL-UP HALL EFFECT LATCH FOR HIGH TEMPERATURE
AH173-WG-7-A , INTERNAL PULL-UP HALL EFFECT LATCH FOR HIGH TEMPERATURE
AH173-WL-7-A , INTERNAL PULL-UP HALL EFFECT LATCH FOR HIGH TEMPERATURE
AH173-WL-7-B , INTERNAL PULL-UP HALL EFFECT LATCH FOR HIGH TEMPERATURE
AH173WLA-A , Internal Pull-up Hall Effect Latch For High Temperature
AH174 , Inverted Output Hall Effect Latch For High Temperature
ADM1031ARQ
Intelligent Temperature Monitor and Dual PWM Fan Controller
REV.0
Intelligent Temperature
Monitor and Dual PWM Fan Controller
FUNCTIONAL BLOCK DIAGRAM
ADD
SDA
SCL
GND
INT (SMBALERT)
THERM
FAN_FAULT
PWM_OUT1
TACH1/AIN1
D1+
D1–
VCC
TACH2/AIN2
PWM_OUT2
D2+
D2–
FEATURES
Optimized for Pentium® III: Allows Reduced Guardbanding
Software and Automatic Fan Speed Control
Automatic Fan Speed Control Allows Control Indepen-
dent of CPU Intervention after Initial Setup
Control Loop Minimizes Acoustic Noise and Battery
Consumption
Remote Temperature Measurement Accurate to 1�C
Using Remote Diode (Two Channels)
0.125�C Resolution on External Temperature Channels
Local Temperature Sensor with 0.25�C Resolution
Pulsewidth Modulation Fan Control (PWM) for Two Fans
Programmable PWM Frequency
Programmable PWM Duty Cycle
Tach Fan Speed Measurement (Two Channels)
Analog Input To Measure Fan Speed of 2-Wire Fans
(Using Sense Resistor)
2-Wire System Management Bus (SMBus) with ARA
Support
Overtemperature THERM Output Pin for CPU Throttling
Programmable INT Output Pin
Configurable Offsets for Temperature Channels
3 V to 5.5 V Supply Range
Shutdown Mode to Minimize Power Consumption
Limit Comparison of All Monitored Values
APPLICATIONS
Notebook PCs, Network Servers and Personal Computers
Telecommunications Equipment
PRODUCT DESCRIPTIONThe ADM1031 is an ACPI-compliant three-channel digital
thermometer and under/over temperature alarm, for use in
personal computers and thermal management systems. Opti-
mized for the Pentium III, the higher 1°C accuracy offered
allows systems designers to safely reduce temperature guard-
banding and increase system performance. Two Pulsewidth
Modulated (PWM) Fan Control outputs control the speed of
two cooling fans by varying output duty cycle. Duty cycle values
between 33%–100% allow smooth control of the fans. The speed
of each fan can be monitored via TACH inputs. The TACH
inputs may be reprogrammed as analog inputs, allowing fan
speeds for 2-wire fans to be measured via sense resistors. The
device will also detect a stalled fan. A dedicated Fan Speed
Control Loop provides control even without the intervention of
CPU software. It also ensures that if the CPU or system locks up,
each fan can still be controlled based on temperature measure-
ments, and the fan speed adjusted to correct any changes in
system temperature. Fan speed may also be controlled using
existing ACPI software. Two inputs (four pins) are dedicated to
remote temperature-sensing diodes with an accuracy of ±1°C,
and an on-chip temperature sensor allows ambient temperature
to be monitored. The device has a programmable INT output
to indicate error conditions. There is a dedicated FAN_FAULT
output to signal fan failure. The THERM pin is a fail-safe output
for overtemperature conditions that can be used to throttle a
CPU clock.
*Patents pending.
Pentium is a registered
trademark of Intel Corporation.
ADM1031–SPECIFICATIONS1(TA = TMIN to TMAX, VCC = VMIN to VMAX, unless otherwise noted.)NOTES
1Typicals are at TA = 25°C and represent most likely parametric norm. Shutdown current typ is measured with VCC = 3.3 V.
2ADD is a three-state input that may be pulled high, low or left open-circuit.
3Timing specifications are tested at logic levels of VIL = 0.8 V for a falling edge and VIH = 2.2 V for a rising edge.
ABSOLUTE MAXIMUM RATINGS*Positive Supply Voltage (VCC) . . . . . . . . . . . . . . . . . . . . .6.5 V
Voltage on Any Input or Output Pin . . . . . . . . –0.3 V to +6.5 V
Input Current at Any Pin . . . . . . . . . . . . . . . . . . . . . . . ±5 mA
Package Input Current . . . . . . . . . . . . . . . . . . . . . . .±20 mA
Maximum Junction Temperature (TJMAX) . . . . . . . . . . 150°C
Storage Temperature Range . . . . . . . . . . . . –65°C to +150°C
Lead Temperature, Soldering
Vapor Phase 60 sec . . . . . . . . . . . . . . . . . . . . . . . . . . 215°C
Infrared 15 sec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200°C
ESD Rating All Pins . . . . . . . . . . . . . . . . . . . . . . . . . . 2000 V
*Stresses above those listed under Absolute Maximum Ratings may cause perma-
nent damage to the device. This is a stress rating only; functional operation of the
device at these or any other conditions above those indicated in the operational
section of this specification is not implied. Exposure to absolute maximum rating
conditions for extended periods may affect device reliability.
THERMAL CHARACTERISTICS16-Lead QSOP Package
θJA = 105°C/W, θJC = 39°C/W
ORDERING GUIDEFigure 1.Diagram for Serial Bus Timing
ADM1031
PIN FUNCTION DESCRIPTIONS
PIN CONFIGURATION
TPC 1.Temperature Error vs. PCB Track Resistance
TPC 2.Temperature Error vs. Power Supply Noise
Frequency
TPC 3.Temperature Error vs. Common-Mode Noise
Frequency
TPC 4.Pentium III Temperature Measurement vs.
ADM1031 Reading
TPC 5.Temperature Error vs. Capacitance between
D+ and D–
TPC 6.Standby Current vs. Clock Frequency
ADM1031TPC 7.Temperature Error vs. Differential-Mode Noise
Frequency
TPC 8.Standby Supply Current vs. Supply Voltage
TPC 9.Local Sensor Temperature Error
TPC 10.Remote Temperature Sensor Error
TPC 11.Supply Current vs. Supply Voltage
TPC 12.Response to Thermal Shock
GENERAL DESCRIPTIONThe ADM1031 is a temperature monitor and dual PWM fan
controller for microprocessor-based systems. The device com-
municates with the system via a serial System Management Bus.
The serial bus controller has a hardwired address pin for device
selection (Pin 13), a serial data line for reading and writing
addresses and data (Pin 15), and an input line for the serial
clock (Pin 16). All control and programming functions of the
ADM1031 are performed over the serial bus. The device also
supports Alert Response Address (ARA).
INTERNAL REGISTERS OF THE ADM1031A brief description of the ADM1031’s principal internal regis-
ters is given below. More detailed information on the function
of each register is given in Table XII to Table XXIX.
Configuration RegisterProvides control and configuration of various functions on
the device.
Address Pointer RegisterThis register contains the address that selects one of the other
internal registers. When writing to the ADM1031, the first byte
of data is always a register address, which is written to the
Address Pointer Register.
Status RegistersThese registers provide status of each limit comparison.
Value and Limit RegistersThe results of temperature and fan speed measurements are
stored in these registers, along with their limit values.
Fan Speed Config RegisterThis register is used to program the PWM duty cycle for each fan.
Offset RegistersAllows the temperature channel readings to be offset by a 5-bit
two’s complement value written to these registers. These values
will automatically be added to the temperature values (or sub-
tracted from if negative). This allows the systems designer to
optimize the system if required, by adding or subtracting up to
15°C from a temperature reading.
Fan Characteristics RegistersThese registers are used to select the spin-up time, PWM fre-
quency, and speed range for the fans used.
THERM Limit RegistersThese registers contain the temperature values at which THERM
will be asserted.
TMIN/TRANGE RegistersThese registers are read/write registers that hold the minimum
temperature value below which the fan will not run when the
device is in Automatic Fan Speed Control Mode. These registers
also hold the temperature range value that defines the range
over which auto fan control will be provided, and hence deter-
mines the temperature at which the fan will run at full speed.
SERIAL BUS INTERFACEControl of the ADM1031 is carried out via the SMBus. The
ADM1031 is connected to this bus as a slave device, under the
control of a master device, e.g., the 810 chipset.
three-state input that can be grounded, connected to VCC, or left
open-circuit to give three different addresses. The state of the
ADD pin is only sampled at power-up, so changing ADD with
power on will have no effect until the device is powered off, then
on again.
Table I.ADD Pin Truth TableADD Pin
GND
No Connect
VCC
If ADD is left open-circuit, the default address will be 0101110.
The facility to make hardwired changes at the ADD pin allows
the user to avoid conflicts with other devices sharing the same
serial bus; for example, if more than one ADM1031 is used in
a system.
The serial bus protocol operates as follows:The master initiates data transfer by establishing a START
condition, defined as a high-to-low transition on the serial
data line SDA while the serial clock line SCL remains high.
This indicates that an address/data stream will follow. All
slave peripherals connected to the serial bus respond to the
START condition, and shift in the next 8 bits, consisting
of a 7-bit address (MSB first) plus an R/W bit that deter-
mines the direction of the data transfer, i.e., whether data
will be written to or read from the slave device.
The peripheral whose address corresponds to the transmitted
address responds by pulling the data line low during the low
period before the ninth clock pulse, known as the Acknowl-
edge Bit. All other devices on the bus now remain idle while
the selected device waits for data to be read from or written
to it. If the R/W bit is a 0, the master will write to the slave
device. If the R/W bit is a 1, the master will read from the
slave device.Data is sent over the serial bus in sequences of nine clock
pulses, eight bits of data followed by an Acknowledge Bit
from the slave device. Transitions on the data line must
occur during the low period of the clock signal and remain
stable during the high period, as a low-to-high transition
when the clock is high may be interpreted as a STOP signal.
The number of data bytes that can be transmitted over the
serial bus in a single READ or WRITE operation is limited
only by what the master and slave devices can handle.When all data bytes have been read or written, stop condi-
tions are established. In WRITE mode, the master will pull
the data line high during the tenth clock pulse to assert a
STOP condition. In READ mode, the master device will
override the acknowledge bit by pulling the data line high
during the low period before the ninth clock pulse. This is
known as No Acknowledge. The master will then take the
data line low during the low period before the tenth clock
pulse, then high during the tenth clock pulse to assert a
STOP condition.
Any number of bytes of data may be transferred over the serial
ADM1031In the case of the ADM1031, write operations contain either
one or two bytes, and read operations contain one byte, and
perform the following functions.
To write data to one of the device data registers or read data
from it, the Address Pointer Register must be set so that the
correct data register is addressed; data can then be written into
that register or read from it. The first byte of a write operation
always contains an address that is stored in the Address Pointer
Register. If data is to be written to the device, the write opera-
tion contains a second data byte that is written to the register
selected by the address pointer register.
This is illustrated in Figure 2a. The device address is sent over
the bus followed by R/W set to 0. This is followed by two data
bytes. The first data byte is the address of the internal data
register to be written to, which is stored in the Address Pointer
Register. The second data byte is the data to be written to the
internal data register.
When reading data from a register there are two possibilities:If the ADM1031’s Address Pointer Register value is unknown
or not the desired value, it is first necessary to set it to the
correct value before data can be read from the desired data
register. This is done by performing a write to the ADM1031
as before, but only the data byte containing the register address
is sent, as data is not to be written to the register. This is
shown in Figure 2b.
A read operation is then performed consisting of the serial bus
address, R/W bit set to 1, followed by the data byte read from
the data register. This is shown in Figure 2c.If the Address Pointer Register is known to be already at the
desired address, data can be read from the corresponding
data register without first writing to the Address Pointer
Register, so Figure 2b can be omitted.
NOTESAlthough it is possible to read a data byte from a data register
without first writing to the Address Pointer Register, if the
Address Pointer Register is already at the correct value, it is
not possible to write data to a register without writing to the
Address Pointer Register, because the first data byte of a
write is always written to the Address Pointer Register.In Figures 2a to 2c, the serial bus address is shown as the
default value 01011(A1)(A0), where A1 and A0 are set by
the three-state ADD pin.The ADM1031 also supports the Read Byte protocol, as
described in the System Management Bus specification.
Figure 2a.Writing a Register Address to the Address Pointer Register, then Writing Data to the Selected Register
Figure 2b.Writing to the Address Pointer Register Only
ALERT RESPONSE ADDRESSAlert Response Address (ARA) is a feature of SMBus devices
that allows an interrupting device to identify itself to the host
when multiple devices exist on the same bus.
The INT output can be used as an interrupt output or can be used
as an SMBALERT. One or more INT outputs can be connected
to a common SMBALERT line connected to the master. If a
device’s INT line goes low, the following procedure occurs:SMBALERT pulled low.Master initiates a read operation and sends the Alert
Response Address (ARA = 0001 100). This is a general call
address that must not be used as a specific device address.The device whose INT output is low responds to the Alert
Response Address, and the master reads its device address.
The address of the device is now known and can be interro-
gated in the usual way.If more than one device’s INT output is low, the one with
the lowest device address will have priority, in accordance
with normal SMBus arbitration.Once the ADM1031 has responded to the Alert Response
Address, it will reset its INT output; however, if the error
condition that caused the interrupt persists, INT will be
reasserted on the next monitoring cycle.
TEMPERATURE MEASUREMENT SYSTEM
Internal Temperature MeasurementThe ADM1031 contains an on-chip bandgap temperature sen-
sor. The on-chip ADC performs conversions on the output of
this sensor and outputs the temperature data in 10-bit two’s
complement format. The resolution of the local temperature
sensor is 0.25°C. The format of the temperature data is shown
in Table II.
External Temperature MeasurementThe ADM1031 can measure the temperatures of two external
diode sensors or diode-connected transistors, connected to Pins
9 and 10 and Pins 11 and 12.
These pins are dedicated temperature input channels. The
function of Pin 7 is as a THERM input/output and is used to
flag overtemperature conditions.
The forward voltage of a diode or diode-connected transistor,
operated at a constant current, exhibits a negative temperature
coefficient of about –2 mV/°C. Unfortunately, the absolute
value of VBE, varies from device to device, and individual
calibration is required to null this out, so the technique is
unsuitable for mass production.
The technique used in the ADM1031 is to measure the change
in VBE when the device is operated at two different currents.
This is given by:
∆VBE = KT/q × ln (N)
where:
K is Boltzmann’s constant.
q is charge on the carrier.
T is absolute temperature in Kelvins.
Figure 3 shows the input signal conditioning used to measure
the output of an external temperature sensor. This figure shows
the external sensor as a substrate transistor, provided for tempera-
ture monitoring on some microprocessors, but it could equally
well be a discrete transistor.
Figure 3.Signal Conditioning
If a discrete transistor is used, the collector will not be grounded,
and should be linked to the base. If a PNP transistor is used, the
base is connected to the D– input and the emitter to the D+
input. If an NPN transistor is used, the emitter is connected to
the D– input and the base to the D+ input.
One LSB of the ADC corresponds to 0.125°C, so the ADM1031
can theoretically measure temperatures from –127°C to +127.75°C,
although –127°C is outside the operating range for the device.
The extended temperature resolution data format is shown in
Tables III and IV.
Table II.Temperature Data Format (Local Temperature
and Remote Temperature High Bytes)
ADM1031
Table III.Remote Sensor Extended Temperature ResolutionThe extended temperature resolution for the local and remote
channels is stored in the Extended Temperature Resolution
Register (Register 0x06), and is outlined in Table XVIII.
Table IV.Local Sensor Extended Temperature ResolutionTo prevent ground noise interfering with the measurement, the
more negative terminal of the sensor is not referenced to ground,
but biased above ground by an internal diode at the D– input. If
the sensor is used in a very noisy environment, a capacitor of
value up to 1000 pF may be placed between the D+ and D–
inputs to filter the noise.
To measure ∆VΒΕ, the sensor is switched between operating
currents of I and N × I. The resulting waveform is passed through
a 65 kHz low-pass filter to remove noise, then to a chopper-
stabilized amplifier that performs the functions of amplification
and rectification of the waveform to produce a dc voltage pro-
portional to ∆VBE. This voltage is measured by the ADC to give
a temperature output in 11-bit two’s complement format. To
further reduce the effects of noise, digital filtering is performed
by averaging the results of 16 measurement cycles. An external
temperature measurement nominally takes 9.6 ms.
LAYOUT CONSIDERATIONSDigital boards can be electrically noisy environments and care
must be taken to protect the analog inputs from noise, particu-
larly when measuring the very small voltages from a remote
diode sensor. The following precautions should be taken:Place the ADM1031 as close as possible to the remote sens-
ing diode. Provided that the worst noise sources such as clock
generators, data/address buses, and CRTs are avoided, this
distance can be 4 to 8 inches.Route the D+ and D– tracks close together, in parallel, with
grounded guard tracks on each side. Provide a ground plane
under the tracks if possible.Use wide tracks to minimize inductance and reduce noise pick-
Figure 4.Arrangement of Signal TracksTry to minimize the number of copper/solder joints, which
can cause thermocouple effects. Where copper/solder joints
are used, make sure that they are in both the D+ and D–
path and at the same temperature.
Thermocouple effects should not be a major problem as 1°C
corresponds to about 200 µV, and thermocouple voltages are
about 3 µV/°C of temperature difference. Unless there are two
thermocouples with a big temperature differential between
them, thermocouple voltages should be much less than 200 µV.Place a 0.1 µF bypass capacitor close to the ADM1031.If the distance to the remote sensor is more than 8 inches, the
use of twisted pair cable is recommended. This will work up
to about 6 to 12 feet.For really long distances (up to 100 feet) use shielded twisted
pair such as Belden #8451 microphone cable. Connect the
twisted pair to D+ and D– and the shield to GND close to
the ADM1031. Leave the remote end of the shield uncon-
nected to avoid ground loops.
Because the measurement technique uses switched current
sources, excessive cable and/or filter capacitance can affect the
measurement. When using long cables, the filter capacitor C1
may be reduced or removed. In any case the total shunt capaci-
tance should not exceed 1000 pF.
Cable resistance can also introduce errors. 1 Ω series resistance
introduces about 0.5°C error.
ADDRESSING THE DEVICEADD (Pin 13) is a three-state input. It is sampled, on power-up
to set the lowest two bits of the serial bus address. Up to three
addresses are available to the systems designer via this address
pin. This reduces the likelihood of conflicts with other devices
attached to the System Management Bus.
THE ADM1031 INTERRUPT SYSTEMThe ADM1031 has two interrupt outputs, INT and THERM.
These have different functions. INT responds to violations of
software programmed temperature limits and is maskable
(described in more detail later).
THERM is intended as a “fail-safe” interrupt output that can-
not be masked. If the temperature is below the low temperature
limit, the INT pin will be asserted low to indicate an out-of-limit
condition. If the temperature exceeds the high temperature limit,
the INT pin will also be asserted low. A third limit; THERM
limit, may be programmed into the device to set the temperature
asserted low. The behavior of the high limit and THERM limit
is as follows:Whenever the temperature measured exceeds the high tem-
perature limit, the INT pin is asserted low.If the temperature exceeds the THERM limit, the THERM
output asserts low. This can be used to throttle the CPU
clock. If the THERM-to-Fan Enable bit (Bit 7 of THERM
behavior/revision register) is cleared to 0, the fans will not
run full-speed. The THERM limit may be programmed at
a lower temperature than the high temperature limit. This
allows the system to run in silent mode, where the CPU can
be throttled while the cooling fan is off. If the temperature
continues to increase, and exceeds the high temperature limit,
an INT is generated. Software may then decide whether the
fan should run to cool the CPU. This allows the system to
run in SILENT MODE.
3. If the THERM-to-Fan Enable bit is set to 1, the fan will run
full-speed whenever THERM is asserted low. In this case,
both throttling and active cooling take place. If the high
temperature limit is programmed to a lower value than the
THERM limit, exceeding the high temperature limit will
assert INT low. Software could change the speed of the fan
depending on temperature readings. If the temperature con-
tinues to increase and exceeds the THERM limit, THERM
asserts low to throttle the CPU and the fan runs full-speed.
This allows the system to run in PERFORMANCE MODE,
where active cooling takes place and the CPU is only throttled
at high temperature.
Using the high temperature limit and the THERM limit in this
way allows the user to gain maximum performance from the system
by only slowing it down, should it be at a critical temperature.
Although the ADM1031 does not have a dedicated Interrupt
Mask Register, clearing the appropriate enable bits in Configu-
ration Register 2 will clear the appropriate interrupts and mask
out future interrupts on that channel. Disabling interrupt bits
will prevent out-of-limit conditions from generating an interrupt
or setting a bit in the Status Registers.
USING THERM AS AN INPUTThe THERM pin is an open-drain input/output pin. When
used as an output, it signals overtemperature conditions. When
asserted low as an output, the fan will be driven full-speed if the
THERM-to-Fan Enable bit is set to 1 (Bit 7 of Register 0x3F).
When THERM is pulled low as an input, the THERM bit (Bit 7)
of Status Register 2 is set to 1, and the fans are driven full-speed.
Note that the THERM-to-Fan Enable bit has no effect when-
ever THERM is used as an input. If THERM is pulled low as
an input, and the THERM-to-Fan Enable bit = 0, the fans will
still be driven full-speed. The THERM-to-Fan Enable bit only
affects the behavior of THERM when used as an output.
STATUS REGISTERSAll out-of-limit conditions are flagged by status bits in Status
Registers 1 and 2 (0x02, 0x03). Bits 0 and 1 (Alarm Speed, Fan
Fault) of Status Register 1, once set, may be cleared by reading
Status Register 1. Once the Alarm Speed bit is cleared, this bit
fan is no longer at Alarm Speed. Bit 1 (Fan Fault) is set when-
ever a fan tach failure is detected.
Once cleared, it will reassert on subsequent fan tach failures.
Bits 2 and 3 of Status Registers 1, 2 are the Remote 1, 2 Tem-
perature High and Low status bits. Exceeding the high or low
temperature limits for the external channel sets these status bits.
Reading the status register clears these bits. However, these bits
will be reasserted if the out-of limit condition still exists on the next
monitoring cycle. Bits 6 and 7 are the Local Temperature High
and Low status bits. These behave exactly the same as the Remote
Temperature High and Low status bits. Bit 4 of Status Regis-
ter 1 indicates that the Remote Temperature THERM limit
has been exceeded. This bit gets cleared on a read of Status
Register 1 (see Figure 5). Bit 5 indicates a Remote Diode Error.
This bit will be a 1 if a short or open is detected on the Remote
Temperature channel on power-up. If this bit is set to 1 on
power-up, it cannot be cleared. Bit 6 of Status Register 2 (0x03)
indicates that the Local THERM limit has been exceeded. This bit
is cleared on a read of Status Register 2. Bit 7 indicates that
THERM has been pulled low as an input. This bit can also
be cleared on a read of Status Register 2.
Figure 5.Operation of THERM and INT Signals
Figure 5 shows the interaction between INT and THERM.
Once a critical temperature THERM limit is exceeded, both
INT and THERM assert low. Reading the Status Registers
clears the interrupt and the INT pin goes high. However, the
THERM pin remains asserted until the measured temperature
falls 5°C below the exceeded THERM limit. This feature can be
used to CPU throttle or drive a fan full speed for maximum
cooling. Note, that the INT pin for that interrupt source is not
rearmed until the temperature has fallen below the THERM
limit –5°C. This prevents unnecessary interrupts from tying up
valuable CPU resources.
MODES OF OPERATIONThe ADM1031 has four different modes of operation. These
modes determine the behavior of the system.Automatic Fan Speed Control Mode.Filtered Automatic Fan Speed Control Mode.PWM Duty Cycle Select Mode (directly sets fan speed under
software control).RPM Feedback Mode.
ADM1031
AUTOMATIC FAN SPEED CONTROLThe ADM1031 has a local temperature channel and two remote
temperature channels, which may be connected to an on-chip
diode-connected transistor on a CPU. These three temperature
channels may be used as the basis for an automatic fan speed
control loop to drive fans using Pulsewidth Modulation (PWM).
HOW DOES THE CONTROL LOOP WORKThe Automatic Fan Speed Control Loop is shown in Figure 6.
Figure 6.Automatic Fan Speed Control
In order for the fan speed control loop to work, certain loop
parameters need to be programmed into the device.TMIN. The temperature at which the fan should switch on
and run at minimum speed. The fan will only turn on once
the temperature being measured rises above the TMIN value
programmed. The fan will spin up for a predetermined time
(default = 2 secs). See Fan Spin-Up section for more details.
2. TRANGE. The temperature range over which the ADM1031
will automatically adjust the fan speed. As the temperature
increases beyond TMIN, the PWM_OUT duty cycle will be
increased accordingly. The TRANGE parameter actually defines
the fan speed versus temperature slope of the control loop.
3. TMAX. The temperature at which the fan will be at its maxi-
mum speed. At this temperature, the PWM duty cycle driving
the fan will be 100%. TMAX is given by TMIN + TRANGE.
Since this parameter is the sum of the TMIN and TRANGE
parameters, it does not need to be programmed into a
register on-chip.
4. A hysteresis value of 5°C is included in the control loop to
prevent the fan continuously switching on and off if the tem-
perature is close to TMIN. The fan will continue to run until
such time as the temperature drops 5°C below TMIN.
Figure 7 shows the different control slopes determined by the
TRANGE value chosen, and programmed into the ADM1031.
TMIN was set to 0°C to start all slopes from the same point. It
can be seen how changing the TRANGE value affects the PWM
duty cycle versus temperature slope.
Figure 7.PWM Duty Cycle vs. Temperature Slopes (TRANGE)
Figure 8 shows how, for a given TRANGE, changing the TMIN
value affects the loop. Increasing the TMIN value will increase
the TMAX (temperature at which the fan runs full speed) value,
since TMAX = TMIN + TRANGE. Note, however, that the PWM
Duty Cycle vs Temperature slope remains exactly the same.
Changing the TMIN value merely shifts the control slope. The
TMIN may be changed in increments of 4°C.
TEMPERATURE – �C
PWM DUTY CYCLE
TMIN406080
TMAX = TMIN + TRANGEFigure 8.Effect of Increasing TMIN Value on Control Loop
FAN SPIN-UPAs was previously mentioned, once the temperature being mea-
sured exceeds the TMIN value programmed, the fan will turn on
at minimum speed (default = 33% duty cycle). However, the
problem with fans being driven by PWM is that 33% duty cycle
is not enough to reliably start the fan spinning. The solution is
to spin the fan up for a predetermined time, and once the fan
has spun up, its running speed may be reduced in line with the
temperature being measured.
The ADM1031 allows fan spin-up times between 200 ms and
Table V.Fan Spin-Up Times
Bits 2:0Once the Automatic Fan Speed Control Loop parameters have been
chosen, the ADM1031 device may be programmed. The ADM1031
is placed into Automatic Fan Speed Control Mode by setting Bit 7
of Configuration Register 1 (Register 0x00). The device powers up
in Automatic Fan Speed Control Mode by default. The control
mode offers further flexibility in that the user can decide which
temperature channel/channels control each fan.
Table VI.Auto Mode Fan BehaviorWhen Bits 5 and 6 of Config Register 1 are both set to 1, it offers
increased flexibility. The local and remote temperature channels
can have independently programmed control loops with different
control parameters. Whichever control loop calculates the fastest fan
speed based on the temperature being measured, drives the fans.
Figure 9 shows how the fan’s PWM duty cycle is determined by
two independent control loops. This is the type of Auto Mode Fan
Behavior seen when Bits 5 and 6 of Config Register 1 are set to 11.
Figure 9a shows the control loop for the Local Temperature chan-
nel. Its TMIN value has been programmed to 20°C, and its TRANGE
value is 40°C. The local temperature’s TMAX will thus be 60°C.
Figure 9b shows the control loop for the Remote Temperature chan-
nel. Its TMIN value has been set to 0°C, while its TRANGE = 80°C.
Therefore, the Remote Temperature’s TMAX value will be 80°C.
Consider if both temperature channels measure 40°C. Both control
loops will calculate a PWM duty cycle of 66%. Therefore, the fan
will be driven at 66% duty cycle.
If both temperature channels measure 20°C, the local channel will
calculate 33% PWM duty cycle, while the Remote 1 channel will
calculate 50% PWM duty cycle. Thus, the fans will be driven at
50% PWM duty cycle. Consider the local temperature measuring
60°C while the Remote 1 temperature is measuring 70°C. The
PWM duty cycle calculated by the local temperature control loop
will be 100% (since the temperature = TMAX). The PWM duty cycle
calculated by the Remote 1 temperature control loop at 70°C will
be approximately 90%. So the fan will run full-speed (100% duty
cycle). Remember, that the fan speed will be based on the fastest
Figure 9.Max Speed Calculated by Local and Remote
Temperature Control Loops Drives Fan
PROGRAMMING THE AUTOMATIC FAN SPEED
CONTROL LOOPProgram a value for TMIN.Program a value for the slope TRANGE.TMAX = TMIN + TRANGE.Program a value for Fan Spin-up Time.Program the desired Automatic Fan Speed Control Mode
Behavior, i.e., which temperature channel controls the fan.Select Automatic Fan Speed Control Mode by setting Bit 7
of Configuration Register 1.
OTHER CONTROL LOOP PARAMETERSHaving programmed all the above loop parameters, are there
any other parameters to worry about
TMIN was defined as the temperature at which the fan switched
ADM1031It should be noted however, that changing the minimum PWM
duty cycle affects the control loop behavior.
Slope 1 of Figure 10 shows TMIN set to 0°C and the TRANGE chosen
is 40°C. In this case, the fan’s PWM duty cycle will vary over the
range 33% to 100%. The fan will run full-speed at 40°C. If the
minimum PWM duty cycle at which the fan runs at TMIN is changed,
its effect can be seen on Slopes 2 and 3. Take Case 2, where
the minimum PWM duty cycle is reprogrammed from 33%
(default) to 53%.
Figure 10.Effect of Changing Minimum Duty Cycle on
Control Loop with Fixed TMIN and TRANGE Values
The fan will actually reach full speed at a much lower temperature;
28°C. Case 3 shows that when the minimum PWM duty cycle was
increased to 73%, the temperature at which the fan ran full speed
was 16°C. So the effect of increasing the minimum PWM duty cycle,
with a fixed TMIN and fixed TRANGE, is that the fan will actually
reach full speed (TMAX) at a lower temperature than TMIN + TRANGE.
How can TMAX be calculated
In Automatic Fan Speed Control Mode, the register that holds the
minimum PWM duty cycle at TMIN, is the Fan Speed Config
Register (Register 0x22). Table VII shows the relationship between
the decimal values written to the Fan Speed Config Register and PWM
duty cycle obtained.
Table VII.Programming PWM Duty CycleThe temperature at which the fan will run full-speed (100%
duty cycle) is given by:
TMAX = TMIN + ((Max DC – Min DC) × TRANGE/10)
where,
TMAX=Temperature at which fan runs full-speed.
TMIN=Temperature at which fan will turn on.
Max DC=Maximum Duty Cycle (100%) = 15 decimal.
Min DC=Duty Cycle at TMIN, programmed in to Fan Speed
Config Register (default = 33% = 5 decimal).
TRANGE=PWM Duty Cycle versus Temperature Slope.
Example 1TMIN=0°C, TRANGE = 40°C
Min DC=53% = 8 Decimal (Table VII)
Calculate TMAX.
TMAX=TMIN + ((Max DC – Min DC) × TRANGE/10)
TMAX=0 + ((100% DC – 53% DC) × 40/10)
TMAX=0 + ((15 – 8) × 4) = 28
TMAX=28�C (As seen on Slope 2 of Figure 10)
Example 2TMIN=0°C, TRANGE = 40°C
Min DC=73% = 11 Decimal (Table VII)
Calculate TMAX.
TMAX=TMIN + ((Max DC – Min DC) × TRANGE/10)
TMAX=0 + ((100% DC – 73% DC) × 40/10)
TMAX=0 + ((15 – 11) × 4) = 16
TMAX=16�C (As seen on Slope 3 of Figure 10)
Example 3TMIN=0°C, TRANGE = 40°C
Min DC=33% = 5 Decimal (Table VII)
Calculate TMAX.
TMAX=TMIN + ((Max DC – Min DC) × TRANGE/10)
TMAX=0 + ((100% DC – 33% DC) × 40/10)
TMAX=0 + ((15 – 5) × 4) = 40
TMAX =40�C (As seen on Slope 1 of Figure 10)In this case, since the Minimum Duty Cycle is the default 33%,
the equation for TMAX reduces to:
TMAX=TMIN + ((Max DC – Min DC) × TRANGE/10)
TMAX=TMIN + ((15 – 5) × TRANGE/10)
TMAX=TMIN + (10 × TRANGE/10)
TMAX=TMIN + TRANGE
RELEVANT REGISTERS FOR AUTOMATIC FAN SPEED
CONTROL MODE
Register 0x00 Configuration Register 1<7>Logic 1 selects Automatic Fan Speed Control, Logic 0
selects software control (Default = 1).
<6:5>00 = Remote Temp 1 controls Fan 1, Remote Temp 2
controls Fan 2.
01 = Remote Temp 1 controls Fans 1 and 2
10 = Remote Temp 2 controls Fans 1 and 2
11 = Fastest Calculated Speed controls Fans 1 and 2
Register 0x20, 0x21 Fan Characteristics Registers 1, 2<2:0>Fan X Spin-Up Time
000 = 200 ms
001 = 400 ms
010 = 600 ms
011 = 800 ms
100 = 1 sec
101 = 2 secs (Default)
110 = 4 secs
111 = 8 secs
<5:3>PWM Frequency Driving the Fan
000 = 11.7 Hz
001 = 15.6 Hz
010 = 23.4 Hz
011 = 31.25 Hz (Default)
100 = 37.5 Hz
101 = 46.9 Hz
110 = 62.5 Hz
111 = 93.5 Hz
<7:6>Speed Range N; defines the lowest fan speed that can be
measured by the device.
00 = 1: Lowest Speed = 2647 RPM
01 = 2: Lowest Speed = 1324 RPM
10 = 4: Lowest Speed = 662 RPM
11 = 8: Lowest Speed = 331 RPM
Register 0x22 Fan Speed Configuration Register<3:0> Min Speed: This nibble contains the speed at which the
fan will run when the temperature is at TMIN. The default is
0x05, meaning that the fan will run at 33% duty cycle
when the temperature is at TMIN.
<7:4>Min Speed: Determines the minimum PWM cycle for
Fan 2 in Automatic Fan Speed Control Mode.
Register 0x24 Local Temperature TMIN/TRANGE<7:3> Local Temperature TMIN. These bits set the temperature
at which the fan will turn on when under Auto Fan Speed
Control. TMIN can be programmed in 4°C increments.
00000 = 0°C
00001 = 4°C
00010 = 8°C
00011 = 12°C
|
|
01000 = 32°C (Default)
|
|
11110 = 120°C
11111 = 124°C
<2:0>Local Temperature TRANGE. This nibble sets the tem-
perature range over which Automatic Fan Speed Control
takes place.
000 = 5°C
001 = 10°C
010 = 20°C
011 = 40°C
100 = 80°C
Register 0x25, 0x26 Remote 1, 2 Temperature TMIN/TRANGE<7:3>Remote Temperature TMIN. Sets the temperature at
which the fan will switch on based on Remote X Tem-
perature Readings.
00000 = 0°C
00001 = 4°C
00010 = 8°C
00011 = 12°C
|
|
01100 = 48°C
|
|
11110 = 120°C
11111 = 124°C
<2:0>Remote Temperature TRANGE. This nibble sets the tem-
perature range over which the fan will be controlled
based on Remote Temperature readings.
000 = 5°C
001 = 10°C
010 = 20°C
011 = 40°C
100 = 80°C
ADM1031
FILTERED CONTROL MODEThe Automatic Fan Speed Control Loop reacts instantaneously
to changes in temperature, i.e., the PWM duty cycle will respond
immediately to temperature change. In certain circumstances,
we may not want the PWM output to react instantaneously to
temperature changes. If significant variations in temperature
were found in a system, this would have the effect of changing
the fan speed, which could be obvious to someone in close prox-
imity. One way to improve the system’s acoustics would be to
slow down the loop so that the fan ramps slowly to its newly
calculated fan speed. This also ensures that temperature transients
will effectively be ignored, and the fan’s operation will be smooth.
There are two means by which to apply filtering to the Auto-
matic Fan Speed Control Loop. The first method is to ramp the
fan speed at a predetermined rate, to its newly calculated value
instead of jumping directly to the new fan speed. The second
approach involves changing the on-chip ADC sample rate, to
change the number of temperature readings taken per second.
The filtered mode on the ADM1031 is invoked by setting Bit 0
of the Fan Filter Register (Register 0x23) for Fan 1 and Bit 1
for Fan 2. Once the Fan Filter Register has been written to, and
all other control loop parameters (TMIN, TRANGE, etc.) have
been programmed, the device may be placed into Automatic
Fan Speed Control Mode by setting Bit 7 of Configuration
Register 1 (Register 0x00) to 1.
Effect of Ramp Rate on Filtered ModeBits <6:5> of the Fan Filter Register determine the ramp rate in
Filtered Mode. The PWM_OUT signal driving the fan will have
a period, T, given by the PWM_OUT drive frequency, f, since
T = 1/f. For a given PWM period, T, the PWM period is subdi-
vided in to 240 equal time slots. One time slot corresponds to
the smallest possible increment in PWM duty cycle. A PWM
signal of 33% duty cycle will thus be high for 1/3 × 240 time
slots and low for 2/3 × 240 time slots. Therefore, 33% PWM
duty cycle corresponds to a signal which is high for 80 time slots
and low for 160 time slots.
Figure 11.33% PWM Duty Cycle Represented in Time
Slots
The ramp rates in Filtered Mode are selectable between 1, 2,
4, and 8. The ramp rates are actually discrete time slots. For
example, if the ramp rate = 8, then eight time slots will be added to
the PWM_OUT high duty cycle each time the PWM_OUT duty
cycle needs to be increased. Figure 12 shows how the Filtered
Mode algorithm operates.
Figure 12.Filtered Mode Algorithm
The Filtered Mode algorithm calculates a new PWM duty cycle
based on the temperature measured. If the new PWM duty cycle
value is greater than the previous PWM value, the previous
PWM duty cycle value is incremented by either 1, 2, 4, or 8
time slots (depending on the setting of bits <6:5> of the Fan
Filter Register). If the new PWM duty cycle value is less than
the previous PWM value, the previous PWM duty cycle is dec-
remented by 1, 2, 4, or 8 time slots. Each time the PWM
duty cycle is incremented or decremented, it is stored as the
previous PWM duty cycle for the next comparison.
So what does an increase of 1, 2, 4, or 8 time slots actually mean
in terms of PWM duty cycle
A Ramp Rate of 1 corresponds to one time slot, which is 1/240
of the PWM period. In Filtered Auto Fan Speed Control Mode,
incrementing or decrementing by 1 changes the PWM output
duty cycle by 0.416%.
Table VIII.Effect of Ramp Rates on PWM_OUTSo programming a ramp rate of 1, 2, 4, or 8 simply increases
or decreases the PWM duty cycle by the amounts shown in
Table VIII, depending on whether the temperature is increas-
ing or decreasing.
Figure 13 shows remote temperature plotted against PWM duty
cycle for Filtered Mode. The ADC sample rate is the highest
sample rate; 11.25 kHz. The ramp rate is set to 8 which would
correspond to the fastest ramp rate. With these settings it took
approximately 12 seconds to go from 0% duty cycle to 100%
duty cycle (full-speed). The TMIN value = 32°C and the TRANGE
= 80°C. It can be seen that even though the temperature increased