AD ADM1031ARQ

a
Intelligent Temperature
Monitor and Dual PWM Fan Controller
ADM1031
FEATURES
Optimized for Pentium® III: Allows Reduced Guardbanding
Software and Automatic Fan Speed Control
Automatic Fan Speed Control Allows Control Independent 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 DESCRIPTION
The ADM1031 is an ACPI-compliant three-channel digital
thermometer and under/over temperature alarm, for use in
personal computers and thermal management systems. Optimized for the Pentium III, the higher 1°C accuracy offered
allows systems designers to safely reduce temperature guardbanding 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 measurements, 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.
FUNCTIONAL BLOCK DIAGRAM
VCC
ADD
ADM1031
SERIAL BUS
INTERFACE
SLAVE
ADDRESS
REGISTER
ADDRESS
POINTER
REGISTER
FAN FILTER
REGISTER
INT (SMBALERT)
FAN
CHARACTERISTICS
REGISTERS
PWM_OUT1
PWM
CONTROLLERS
PWM_OUT2
TACH2 /AIN2
TACH1 /AIN1
TACH SIGNAL
CONDITIONING
SDA
SCL
INTERRUPT
STATUS
REGISTERS
FAN SPEED
CONFIG
REGISTER
THERM
LIMIT
COMPARATOR
FAN SPEED
COUNTER
FAN_FAULT
VALUE AND LIMIT
REGISTERS
D1+
D1–
ANALOG
MULTIPLEXER
D2+
ADC
D2–
*Patents pending.
Pentium is a registered
trademark of Intel Corporation.
BANDGAP
TEMPERATURE
SENSOR
REV. 0
Information furnished by Analog Devices is believed to be accurate and
reliable. However, no responsibility is assumed by Analog Devices for its
use, nor for any infringements of patents or other rights of third parties
which may result from its use. No license is granted by implication or
otherwise under any patent or patent rights of Analog Devices.
2.5V
BANDGAP
REFERENCE
OFFSET
REGISTERS
CONFIGURATION
REGISTERS
GND
One Technology Way, P.O. Box 9106, Norwood, MA 02062-9106, U.S.A.
Tel: 781/329-4700
www.analog.com
Fax: 781/326-8703
© Analog Devices, Inc., 2001
ADM1031–SPECIFICATIONS1 (T = T
A
MIN
to TMAX, VCC = VMIN to VMAX, unless otherwise noted.)
Parameter
Min
Typ
Max
Unit
Test Conditions/Comments
POWER SUPPLY
Supply Voltage, VCC
Supply Current, ICC
3.0
3.30
1.4
32
5.5
3
50
V
mA
µA
Interface Inactive, ADC Active
Standby Mode
±1
0.25
± 0.5
± 0.5
0.125
180
11
±3
°C
°C
°C
°C
°C
µA
µA
TEMPERATURE-TO-DIGITAL CONVERTER
Local Sensor Accuracy
Resolution
Remote Diode1 Sensor Accuracy
Remote Diode2 Sensor Accuracy
Resolution
Remote Sensor Source Current
±1
± 1.75
60°C ≤ TD ≤ 100°C
60°C ≤ TD ≤ 100°C
High Level
Low Level
OPEN-DRAIN DIGITAL OUTPUTS
(THERM, INT, FAN_FAULT, PWM_OUT)
Output Low Voltage, VOL
High-Level Output Leakage Current, I OH
0.1
0.4
1
V
µA
IOUT = –6.0 mA; VCC = 3 V
VOUT = VCC; VCC = 3 V
OPEN-DRAIN SERIAL DATA BUS OUTPUT (SDA)
Output Low Voltage, VOL
High-Level Output Leakage Current, I OH
0.1
0.4
1
V
µA
IOUT = –6.0 mA; VCC = 3 V
VOUT = VCC
0.8
V
V
mV
SERIAL BUS DIGITAL INPUTS (SCL, SDA)
Input High Voltage, VIH
Input Low Voltage, VIL
Hysteresis
DIGITAL INPUT LOGIC LEVELS 2
(ADD, THERM, TACH1/2)
Input High Voltage, VIH
Input Low Voltage, VIL
DIGITAL INPUT LEAKAGE CURRENT
Input High Current, IIH
Input Low Current, IIL
Input Capacitance, CIN
2.1
500
2.1
0.8
µA
µA
pF
VIN = VCC
VIN = 0
±6
255
%
60°C ≤ TA ≤ 100°C
RPM
RPM
RPM
RPM
ms
Divisor
Divisor
Divisor
Divisor
kHz
ns
µs
µs
µs
µs
µs
µs
ns
ns
ns
ns
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
See Figure 1
5
4400
2200
1100
550
637
Conversion Cycle Time
SERIAL BUS TIMING3
Clock Frequency, fSCLK
Glitch Immunity, tSW
Bus Free Time, tBUF
Start Setup Time, tSU;STA
Start Hold Time, tHD;STA
Stop Condition Setup Time t SU;STO
SCL Low Time, tLOW
SCL High Time, tHIGH
SCL, SDA Rise Time, tR
SCL, SDA Fall Time, tF
Data Setup Time, tSU;DAT
Data Hold Time, tHD;DAT
1
–1
FAN RPM-TO-DIGITAL CONVERTER
Accuracy
Full-Scale Count
TACH Nominal Input RPM
10
100
50
4.7
4.7
4
4
1.3
4
50
1000
300
250
300
V
V
N
N
N
N
=
=
=
=
1,
2,
4,
8,
Fan
Fan
Fan
Fan
Count
Count
Count
Count
=
=
=
=
153
153
153
153
NOTES
1
Typicals are at T A = 25°C and represent most likely parametric norm. Shutdown current typ is measured with V CC = 3.3 V.
2
ADD is a three-state input that may be pulled high, low or left open-circuit.
3
Timing specifications are tested at logic levels of V IL = 0.8 V for a falling edge and V IH = 2.2 V for a rising edge.
Specifications subject to change without notice.
–2–
REV. 0
ADM1031
ABSOLUTE MAXIMUM RATINGS*
ORDERING GUIDE
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
Model
Temperature
Range
Package
Description
ADM1031ARQ
0°C to 100°C
16-Lead QSOP RQ-16
*Stresses above those listed under Absolute Maximum Ratings may cause permanent 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 CHARACTERISTICS
16-Lead QSOP Package
θJA = 105°C/W, θJC = 39°C/W
tLOW
tR
tF
tHD:STA
SCL
tHD:STA
tHD:DAT
tHIGH
tSU:STA
tSU:DAT
tSU:STO
SDA
tBUF
P
S
S
Figure 1. Diagram for Serial Bus Timing
REV. 0
–3–
P
Package
Option
ADM1031
PIN FUNCTION DESCRIPTIONS
Pin No.
Mnemonic
Description
1
PWM_OUT1
2
TACH1/AIN1
3
PWM_OUT2
4
TACH2/AIN2
5
6
7
GND
VCC
THERM
8
FAN_FAULT
9
D1–
10
11
12
13
14
D1+
D2–
D2+
ADD
INT (SMBALERT)
15
SDA
16
SCL
Digital Output (Open-Drain). Pulsewidth modulated output to control fan speed. Requires pullup resistor (10 kΩ typical).
Digital/Analog Input. Fan tachometer input to measure FAN1 fan speed. May be reprogrammed as
an analog input to measure speed of a 2-wire fan via a sense resistor (2 Ω typical).
Digital Output (Open-Drain). Pulsewidth Modulated output to control FAN2 fan speed.
Requires pull-up resistor (10 kΩ typical).
Digital/Analog Input. Fan tachometer input to measure FAN2 fan speed. May be reprogrammed as an analog input to measure speed of a 2-wire fan via a sense resistor (2 Ω typical).
System Ground.
Power. Can be powered by 3.3 V Standby power if monitoring in low power states is required.
Digital I/O (Open-Drain). An active low thermal overload output that indicates a violation of a
temperature set point (overtemperature). Also acts as an input to provide external fan control.
When this pin is pulled low by an external signal, a status bit is set, and the fan speed is set to
full-on. Requires pull-up resistor (10 kΩ).
Digital Output (Open-Drain). Can be used to signal a fan fault. Drives second fan to full speed
if one fan fails. Requires pull-up resistor (typically 10 kΩ).
Analog Input. Connected to cathode of first remote temperature-sensing diode. The temperaturesensing element is either a Pentium III substrate transistor or a general-purpose 2N3904.
Analog Input. Connected to anode of first remote temperature-sensing diode.
Analog Input. Connected to cathode of second remote temperature-sensing diode.
Analog Input. Connected to anode of second remote temperature-sensing diode.
Three-State Logic Input. Sets two lower bits of device SMBus address.
Digital Output (Open-Drain). Can be programmed as an interrupt (SMBus ALERT) output for
temperature/fan speed interrupts. Requires pull-up resistor (10 kΩ typical).
Digital I/O. Serial Bus Bidirectional Data. Open-drain output. Requires pull-up resistor
(2.2 kΩ typical).
Digital Input. Serial Bus Clock. Requires pull-up resistor (2.2 kΩ typical).
PIN CONFIGURATION
PWM_OUT1 1
16 SCL
TACH1/AIN1 2
15 SDA
PWM_OUT2 3
ADM1031
14 INT (SMBALERT)
13 ADD
TOP VIEW
GND 5 (Not to Scale) 12 D2+
TACH2/AIN2 4
VCC 6
11 D2–
THERM 7
10 D1+
FAN_FAULT 8
9
–4–
D1–
REV. 0
Typical Performance Characteristics–ADM1031
110
15
90
80
5
DXP TO GND
READING – ⴗC
REMOTE TEMPERATURE ERROR – ⴗC
100
10
0
DXP TO VCC (3.3V)
–5
–10
70
60
50
40
30
20
–15
10
–20
0
1
3.3
10
30
LEAKAGE RESISTANCE – M⍀
0
100
TPC 1. Temperature Error vs. PCB Track Resistance
13
11
9
7
5
3
VIN = 200mV p-p
–1
0
500k
2M
4M
6M
10M
FREQUENCY – Hz
100M
400M
1
TPC 2. Temperature Error vs. Power Supply Noise
Frequency
90
100
110
2.2
3.3
10
4.7
DXP – DXN CAPACITANCE – nF
22
47
110
100
6
90
5
SUPPLY CURRENT – ␮A
REMOTE TEMPERATURE ERROR – ⴗC
60
40
50
70
80
PIII TEMPERATURE – ⴗC
TPC 5. Temperature Error vs. Capacitance between
D+ and D–
7
4
3
VIN = 40mV p-p
2
1
80
70
VCC = 5V
60
50
40
30
VCC = 3.3V
20
0
10
VIN = 20mV p-p
–1
0
100k
1M
300M
100M 200M
FREQUENCY – Hz
400M
0
500M
0
TPC 3. Temperature Error vs. Common-Mode Noise
Frequency
REV. 0
30
1
0
–1
–2
–3
–4
–5
–6
–7
–8
–9
–10
–11
–12
–13
–14
–15
–16
REMOTE TEMPERATURE ERROR – ⴗC
REMOTE TEMPERATURE ERROR – ⴗC
VIN = 100mV p-p
1
20
TPC 4. Pentium III Temperature Measurement vs.
ADM1031 Reading
17
15
10
1
5
10
75 100 250
25
50
SCLK FREQUENCY – kHz
500
750 1000
TPC 6. Standby Current vs. Clock Frequency
–5–
ADM1031
7
0.08
0
6
–0.08
5
–0.16
4
ERROR – ⴗC
REMOTE TEMPERATURE ERROR – ⴗC
VIN = 30mV p-p
3
2
–0.24
–0.32
–0.40
–0.48
–0.56
1
–0.64
VIN = 20mV p-p
0
–0.72
–1
0
1M
100k
300M
100M 200M
FREQUENCY – Hz
400M
–0.80
500M
0
TPC 7. Temperature Error vs. Differential-Mode Noise
Frequency
200
1.30
180
1.25
60
80
85
100
TEMPERATURE – ⴗC
105
120
1.20
SUPPLY CURRENT – mA
SUPPLY CURRENT – ␮A
40
TPC 10. Remote Temperature Sensor Error
160
140
120
100
80
ADD = Hi-Z
60
ADD = GND
40
ADD = VCC
1.15
1.10
1.05
1.00
0.95
20
0.90
0
0.85
–20
0
1.1
1.3
1.5
1.7
1.9
2.1
SUPPLY VOLTAGE – V
2.5
2.9
0.80
2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0
SUPPLY VOLTAGE – V
4.5
TPC 8. Standby Supply Current vs. Supply Voltage
TPC 11. Supply Current vs. Supply Voltage
0.08
120
0
110
–0.08
100
–0.16
90
TEMPERATURE – ⴗC
ERROR – ⴗC
20
–0.24
–0.32
–0.40
–0.48
–0.56
80
70
60
50
40
30
–0.64
20
–0.72
10
–0.80
0
20
40
60
80
85
100
TEMPERATURE – ⴗC
105
0
120
0
TPC 9. Local Sensor Temperature Error
1
2
3
4
5
6
TIME – Sec
7
8
9
10
TPC 12. Response to Thermal Shock
–6–
REV. 0
ADM1031
GENERAL DESCRIPTION
The ADM1031 is a temperature monitor and dual PWM fan
controller for microprocessor-based systems. The device communicates 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).
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 Table
ADD Pin
GND
No Connect
V CC
INTERNAL REGISTERS OF THE ADM1031
A brief description of the ADM1031’s principal internal registers is given below. More detailed information on the function
of each register is given in Table XII to Table XXIX.
Configuration Register
Provides control and configuration of various functions on
the device.
Address Pointer Register
This 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 Registers
These registers provide status of each limit comparison.
Value and Limit Registers
The results of temperature and fan speed measurements are
stored in these registers, along with their limit values.
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:
1. 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 determines 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 Acknowledge 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.
This register is used to program the PWM duty cycle for each fan.
Offset Registers
Fan Characteristics Registers
These registers are used to select the spin-up time, PWM frequency, and speed range for the fans used.
THERM Limit Registers
These registers contain the temperature values at which THERM
will be asserted.
TMIN/TRANGE Registers
These 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 determines the temperature at which the fan will run at full speed.
SERIAL BUS INTERFACE
Control 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.
The ADM1031 has a 7-bit serial bus address. When the device
is powered up, it will do so with a default serial bus address.
The five MSBs of the address are set to 01011, the two LSBs
are determined by the logical state of Pin 13 (ADD). This is a
REV. 0
A0
0
0
1
If ADD is left open-circuit, the default address will be 0101110.
Fan Speed Config Register
Allows 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 subtracted 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.
A1
0
1
0
2. 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.
3. When all data bytes have been read or written, stop conditions 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
bus in one operation, but it is not possible to mix read and write
in one operation, because the type of operation is determined at
the beginning and cannot subsequently be changed without
starting a new operation.
–7–
ADM1031
In the case of the ADM1031, write operations contain either
one or two bytes, and read operations contain one byte, and
perform the following functions.
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.
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 operation contains a second data byte that is written to the register
selected by the address pointer register.
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.
2. 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.
NOTES
1. Although 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.
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:
2. 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.
1. 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
3. The ADM1031 also supports the Read Byte protocol, as
described in the System Management Bus specification.
1
9
9
1
SCL
0
SDA
1
0
1
1
A0
A1
D6
D7
R/W
D4
D5
D2
D3
D1
D0
ACK. BY
ADM1031
START BY
MASTER
ACK. BY
ADM1031
FRAME 1
SERIAL BUS ADDRESS BYTE
FRAME 2
ADDRESS POINTER REGISTER BYTE
1
9
SCL (CONTINUED)
D7
SDA (CONTINUED)
D4
D5
D6
D2
D3
D1
D0
ACK. BY
ADM1031
STOP BY
MASTER
FRAME 3
DATA BYTE
Figure 2a. Writing a Register Address to the Address Pointer Register, then Writing Data to the Selected Register
1
9
9
1
SCL
SDA
0
1
0
1
1
A1
A0
D7
R/W
D6
D5
D4
D3
D2
D1
D0
ACK. BY
ADM1031
ACK. BY
ADM1031
START BY
MASTER
FRAME 1
SERIAL BUS ADDRESS BYTE
STOP BY
MASTER
FRAME 2
ADDRESS POINTER REGISTER BYTE
Figure 2b. Writing to the Address Pointer Register Only
1
9
9
1
SCL
SDA
0
1
0
1
1
A1
A0
D7
R/W
D6
D5
D4
D3
D2
D1
FRAME 1
SERIAL BUS ADDRESS BYTE
D0
STOP BY
NO ACK.
BY MASTER MASTER
ACK. BY
ADM1031
START BY
MASTER
FRAME 2
DATA BYTE FROM ADM1031
Figure 2c. Reading Data from a Previously Selected Register
–8–
REV. 0
ADM1031
ALERT RESPONSE ADDRESS
Alert 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:
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 temperature monitoring on some microprocessors, but it could equally
well be a discrete transistor.
VDD
I
NⴛI
IBIAS
1. SMBALERT pulled low.
2. 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.
3. 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 interrogated in the usual way.
4. 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.
5. 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 Measurement
The ADM1031 contains an on-chip bandgap temperature sensor. 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.
REMOTE
SENSING
TRANSISTOR
TO
ADC
BIAS
DIODE
D–
VOUT–
LOW-PASS
FILTER
fC = 65kHz
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)
External Temperature Measurement
The 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.
N is ratio of the two currents.
REV. 0
VOUT+
D+
–9–
Temperature (ⴗC)
Digital Output
–128°C
–125°C
–100°C
–75°C
–50°C
–25°C
–1°C
0°C
+1°C
+10°C
+25°C
+50°C
+75°C
+100°C
+125°C
+127°C
1000
1000
1001
1011
1100
1110
1111
0000
0000
0000
0001
0011
0100
0110
0111
0111
0000
0011
1100
0101
1110
0111
1111
0000
0001
1010
1001
0010
1011
0100
1101
1111
ADM1031
Table III. Remote Sensor Extended Temperature Resolution
Extended
Resolution (ⴗC)
Remote Temperature
Low Bits
0.000
0.125
0.250
0.375
0.500
0.625
0.750
0.875
000
001
010
011
100
101
110
111
GND
10MIL
D+
D–
0.00
0.25
0.50
0.75
00
01
10
11
GND
Figure 4. Arrangement of Signal Tracks
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.
5. Place a 0.1 µF bypass capacitor close to the ADM1031.
6. 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.
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 chopperstabilized amplifier that performs the functions of amplification
and rectification of the waveform to produce a dc voltage proportional 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.
7. 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 unconnected 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 capacitance should not exceed 1000 pF.
Cable resistance can also introduce errors. 1 Ω series resistance
introduces about 0.5°C error.
ADDRESSING THE DEVICE
ADD (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.
LAYOUT CONSIDERATIONS
Digital boards can be electrically noisy environments and care
must be taken to protect the analog inputs from noise, particularly when measuring the very small voltages from a remote
diode sensor. The following precautions should be taken:
THE ADM1031 INTERRUPT SYSTEM
1. Place the ADM1031 as close as possible to the remote sensing 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.
3. Use wide tracks to minimize inductance and reduce noise pickup. 10 mil track minimum width and spacing is recommended.
10MIL
4. Try 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.
To 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.
2. 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.
10MIL
10MIL
Table IV. Local Sensor Extended Temperature Resolution
Local Temperature
Low Bits
10MIL
10MIL
The 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.
Extended
Resolution (ⴗC)
10MIL
The 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 cannot 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
limit above which the overtemperature THERM pin will be
–10–
REV. 0
ADM1031
asserted low. The behavior of the high limit and THERM limit
is as follows:
fan is no longer at Alarm Speed. Bit 1 (Fan Fault) is set whenever a fan tach failure is detected.
1. Whenever the temperature measured exceeds the high temperature limit, the INT pin is asserted low.
Once cleared, it will reassert on subsequent fan tach failures.
Bits 2 and 3 of Status Registers 1, 2 are the Remote 1, 2 Temperature 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 Register 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.
2. 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 continues 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.
THERM LIMIT
5ⴗ
TEMP
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.
THERM
Although the ADM1031 does not have a dedicated Interrupt
Mask Register, clearing the appropriate enable bits in Configuration 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.
INT
USING THERM AS AN INPUT
The 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 whenever 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.
INT REARMED
STATUS REG. READ
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 OPERATION
The ADM1031 has four different modes of operation. These
modes determine the behavior of the system.
1. Automatic Fan Speed Control Mode.
STATUS REGISTERS
All 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
will not be reasserted on the next monitoring cycle even if the
condition still persists. This bit may be reasserted only if the
REV. 0
2. Filtered Automatic Fan Speed Control Mode.
3. PWM Duty Cycle Select Mode (directly sets fan speed under
software control).
4. RPM Feedback Mode.
–11–
ADM1031
The Automatic Fan Speed Control Loop is shown in Figure 6.
SPIN-UP FOR TWO SECONDS
=
40
ⴗC
C
73
RA
NG
E
80
66
T
HOW DOES THE CONTROL LOOP WORK?
87
T
PWM DUTY CYCLE – %
93
RANG =
E 10ⴗC
RA
NG
E =2
0ⴗ
100
T
The 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).
TRANG = 5ⴗC
E
AUTOMATIC FAN SPEED CONTROL
60
E
NG
53
C
0ⴗ
=8
T RA
MAX
47
40
33
FAN
SPEED
0
TMIN
5
10
20
40
60
80
TMAX = TMIN + TRANGE
TEMPERATURE – ⴗC
Figure 7. PWM Duty Cycle vs. Temperature Slopes (TRANGE)
MIN
TMIN
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.
TMAX = TMIN + TRANGE
TEMPERATURE
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.
100
1. 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.
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.
40
ⴗC
E =
E =
T
RA
NG
NG
RA
T
NG
66
60
40
ⴗC
40
ⴗC
E =
73
53
47
3. TMAX. The temperature at which the fan will be at its maximum 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 temperature is close to TMIN. The fan will continue to run until
such time as the temperature drops 5°C below TMIN.
80
RA
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.
87
T
PWM DUTY CYCLE – %
93
40
33
0
TMIN
20
40
60
80
TMAX = TMIN + TRANGE
TEMPERATURE – ⴗC
Figure 8. Effect of Increasing TMIN Value on Control Loop
FAN SPIN-UP
As was previously mentioned, once the temperature being measured 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
8 seconds. Bits <2:0> of Fan Characteristics Registers 1 and
2 (Register 0x20, 0x21) program the fan spin-up times.
–12–
REV. 0
ADM1031
Table V. Fan Spin-Up Times
93
=4
0ⴗ
C
87
80
RA
NG
E
200 ms
400 ms
600 ms
800 ms
1 sec
2 secs (Default)
4 secs
8 secs
73
T
000
001
010
011
100
101
110
111
100
PWM DUTY CYCLE – %
Bits 2:0
Spin-Up Time
(Fan Characteristics Registers 1, 2)
66
60
53
47
Once 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.
40
33
0
40
60
TMAX = TMIN + TRANGE
LOCAL TEMPERATURE – ⴗC
a.
Table VI. Auto Mode Fan Behavior
100
Control Operation (Config Register 1)
93
00
Remote Temp 1 Controls Fan 1. Remote Temp 2
Controls Fan 2.
Remote Temp 1 Controls Fans 1 and 2.
Remote Temp 2 Controls Fans 1 and 2.
Maximum Speed Calculated by Local and Remote
Temperature Channels Controls Fans 1 and 2.
87
PWM DUTY CYCLE – %
Bits 6, 5
01
10
11
20
TMIN
80
73
66
GE
AN
=
ⴗC
80
TR
60
53
When Bits 5 and 6 of Config Register 1 are both set to 1, it offers
47
increased flexibility. The local and remote temperature channels
can have independently programmed control loops with different
40
control parameters. Whichever control loop calculates the fastest fan
33
0
20
40
70
80
speed based on the temperature being measured, drives the fans.
TMAX = TMIN + TRANGE
TMIN
Figure 9 shows how the fan’s PWM duty cycle is determined by
REMOTE TEMPERATURE – ⴗC
two independent control loops. This is the type of Auto Mode Fan
b.
Behavior seen when Bits 5 and 6 of Config Register 1 are set to 11.
Figure 9. Max Speed Calculated by Local and Remote
Figure 9a shows the control loop for the Local Temperature chanTemperature Control Loops Drives Fan
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.
PROGRAMMING THE AUTOMATIC FAN SPEED
Figure 9b shows the control loop for the Remote Temperature chanCONTROL LOOP
nel. Its TMIN value has been set to 0°C, while its TRANGE = 80°C.
1. Program a value for TMIN.
Therefore, the Remote Temperature’s TMAX value will be 80°C.
2.
Program a value for the slope TRANGE.
Consider if both temperature channels measure 40°C. Both control
loops will calculate a PWM duty cycle of 66%. Therefore, the fan
3. TMAX = TMIN + TRANGE.
will be driven at 66% duty cycle.
4. Program a value for Fan Spin-up Time.
If both temperature channels measure 20°C, the local channel will
5. Program the desired Automatic Fan Speed Control Mode
calculate 33% PWM duty cycle, while the Remote 1 channel will
Behavior, i.e., which temperature channel controls the fan.
calculate 50% PWM duty cycle. Thus, the fans will be driven at
6. Select Automatic Fan Speed Control Mode by setting Bit 7
50% PWM duty cycle. Consider the local temperature measuring
of Configuration Register 1.
60°C while the Remote 1 temperature is measuring 70°C. The
PWM duty cycle calculated by the local temperature control loop
OTHER CONTROL LOOP PARAMETERS
will be 100% (since the temperature = TMAX). The PWM duty cycle
Having programmed all the above loop parameters, are there
calculated by the Remote 1 temperature control loop at 70°C will
any other parameters to worry about?
be approximately 90%. So the fan will run full-speed (100% duty
cycle). Remember, that the fan speed will be based on the fastest
TMIN was defined as the temperature at which the fan switched
speed calculated, and is not necessarily based on the highest
on and ran at minimum speed. This minimum speed is 33% duty
temperature measured. Depending on the control loop paramcycle by default. If the minimum PWM duty cycle is programmed
eters programmed, a lower temperature on one channel, may
to 33%, the fan control loops will operate as previously described.
actually calculate a faster speed, than a higher temperature on
the other channel.
REV. 0
–13–
ADM1031
The temperature at which the fan will run full-speed (100%
duty cycle) is given by:
It 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%.
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).
100
TRANGE
93
= PWM Duty Cycle versus Temperature Slope.
Example 1
87
40
ⴗC
TMIN
=
80
RA
NG
E
73
= 0°C, TRANGE = 40°C
Min DC = 53% = 8 Decimal (Table VII)
Calculate TMAX.
T
PWM DUTY CYCLE – %
TMAX = TMIN + ((Max DC – Min DC) × TRANGE /10)
66
TMAX
= TMIN + ((Max DC – Min DC) × TRANGE/10)
53
TMAX
= 0 + ((100% DC – 53% DC) × 40/10)
47
TMAX
= 0 + ((15 – 8) × 4) = 28
40
TMAX
= 28ⴗC (As seen on Slope 2 of Figure 10)
60
33
Example 2
0
TMIN
16
28
40
60
TEMPERATURE – ⴗC
Calculate TMAX.
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.
Decimal Value
PWM Duty Cycle
00
01
02
03
04
05
06
07
08
09
10 (0x0A)
11 (0x0B)
12 (0x0C)
13 (0x0D)
14 (0x0E)
15 (0x0F)
0%
7%
14%
20%
27%
33% (Default)
40%
47%
53%
60%
67%
73%
80%
87%
93%
100%
= 0°C, TRANGE = 40°C
Min DC = 73% = 11 Decimal (Table VII)
Figure 10. Effect of Changing Minimum Duty Cycle on
Control Loop with Fixed TMIN and TRANGE Values
Table VII. Programming PWM Duty Cycle
TMIN
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 3
TMIN
= 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
–14–
REV. 0
ADM1031
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 0x24 Local Temperature T MIN/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 temperature 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 T MIN/TRANGE
<7:3> Remote Temperature TMIN. Sets the temperature at
which the fan will switch on based on Remote X Temperature Readings.
00000 = 0°C
00001 = 4°C
00010 = 8°C
00011 = 12°C
|
|
01100 = 48°C
|
|
11110 = 120°C
11111 = 124°C
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.
REV. 0
<2:0> Remote Temperature TRANGE. This nibble sets the temperature 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
–15–
ADM1031
FILTERED CONTROL MODE
The 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 proximity. 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.
READ
TEMPERATURE
CALCULATE
NEW PWM
DUTY CYCLE
IS NEW
PWM VALUE >
PREVIOUS
VALUE?
There are two means by which to apply filtering to the Automatic 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 Mode
Bits <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 subdivided 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.
NO
DECREMENT
PREVIOUS
PWM VALUE
BY RAMP
RATE
YES
INCREMENT
PREVIOUS PWM
VALUE BY RAMP
RATE
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 decremented 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_OUT
PWM_OUT
33% DUTY
CYCLE
80 TIME
SLOTS
160 TIME
SLOTS
PWM OUTPUT
(ONE PERIOD) =
240 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.
Ramp Rate
PWM Duty Cycle Change
1
2
4
8
0.416%
0.833%
1.66%
3.33%
So 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 increasing 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
very rapidly, the fan gradually ramps up to full speed.
–16–
REV. 0
ADM1031
100
RTEMP – ⴗC
80
80
60
60
PWM DUTY CYCLE
40
40
PWM DUTY CYCLE – %
100
RTEMP
120
0
0
0
12
TIME – s
Figure 13. Filtered Mode with Ramp Rate = 8
140
RTEMP
100
RTEMP – ⴗC
80
80
60
PWM DUTY CYCLE
60
40
40
20
PWM DUTY CYCLE – %
120
110
20
0
0
0
RTEMP
100
80
80
60
60
PWM DUTY CYCLE
40
40
20
Figure 14 shows how changing the ramp rate from 8 to 4 affects
the control loop. The overall response of the fan is slower. Since
the ramp rate is reduced, it takes longer for the fan to achieve full
running speed. In this case, it took approximately 22 seconds for
the fan to reach full speed.
120
120
110
20
20
140
20
0
0
0
112
TIME – s
Figure 16. Filtered Mode with Ramp Rate = 1
As can be seen from Figures 13 through 16, the rate at which
the fan will react to temperature change is dependent on the
ramp rate selected in the Fan Filter Register. The higher the
ramp rate, the faster the fan will reach the newly calculated
fan speed.
Figure 17 shows the behavior of the PWM output as temperature varies. As the temperature is rising, the fan speed will ramp
up. Small drops in temperature will not affect the ramp-up
function since the newly calculated fan speed will still be higher
than the previous PWM value. The Filtered Mode allows the
PWM output to be made less sensitive to temperature variations. This will be dependent on the ramp rate selected and
the ADC sample rate programmed into the Fan Filter Register.
22
90
Figure 14. Filtered Mode with Ramp Rate = 4
80
Figure 15 shows the PWM output response for a ramp rate of
2. In this instance the fan took about 54 seconds to reach full
running speed.
70
70
60
60
120
120
RTEMP
80
80
60
60
PWM DUTY CYCLE
40
40
PWM DUTY CYCLE – %
100
100
RTEMP – ⴗC
PWM DUTY CYCLE – %
TIME – s
140
0
50
80
50
RTEMP
40
40
30
30
20
20
10
10
0
Figure 17. How Fan Reacts to Temperature Variation in
Filtered Mode
54
TIME – s
Figure 15. Filtered Mode with Ramp Rate = 2
REV. 0
PWM DUTY CYCLE
TIME – s
0
0
90
0
20
20
RTEMP – ⴗC
120
Finally, Figure 16 shows how the control loop reacts to temperature with the slowest ramp rate. The ramp rate is set to 1,
while all other control parameters remain the same. With the
slowest ramp rate selected it took 112 seconds for the fan to
reach full speed.
RTEMP – ⴗC
120
PWM DUTY CYCLE – %
140
–17–
ADM1031
Effect of ADC Sample Rate on Filtered Mode
The second means by which to change the Filtered Mode characteristics is to adjust the ADC sample rate. The faster the ADC
sample rate, the more temperature samples are obtained per second. One way to apply filtering to the control loop is to slow down
the ADC sampling rate. This means that the number of iterations
of the Filtered Mode algorithm per second is effectively reduced.
If the number of temperature measurements per second is
reduced, how often the PWM_OUT signal controlling the fan is
updated is also reduced.
Bits <4:2> of the Fan Filter Register (Reg 0x23) set the ADC
sample rate. The default ADC sample rate is 1.4 kHz. The ADC
sample rate is selectable from 87.5 Hz to 11.2 kHz. Table IX
shows how many temperature samples are obtained per second,
for each of the ADC sample rates.
Table IX. Temperature Updates per Second
PROGRAMMING THE FILTERED AUTOMATIC FAN
SPEED CONTROL LOOP
1. Program a value for TMIN.
2. Program a value for the slope TRANGE.
3. TMAX = TMIN + TRANGE.
4. Program a value for Fan Spin-up Time.
5. Program the desired Automatic Fan Speed Control Mode
Behavior, i.e., which temperature channel controls the fan.
6. Program a ramp rate for the filtered mode.
7. Program the ADC sample rate in the Fan Filter Register.
8. Set Bit 0 to enable fan filtered mode for Fan 1.
9. Set Bit 1 to enable the fan filtered mode for Fan 2.
10. Select Automatic Fan Speed Control Mode by setting Bit 7
of Configuration Register 1.
ADC Sample Rate
Temperature Updates/Sec
PWM DUTY CYCLE SELECT MODE
87.5 Hz
175 Hz
350 Hz
700 Hz
1.4 kHz
2.8 kHz
5.6 kHz
11.2 kHz
0.0625
0.125
0.25
0.5
1 (Default)
2
4
8
The ADM1031 may be operated under software control by
clearing Bit 7 of Configuration Register 1 (Register 0x00). This
allows the user to directly control PWM duty cycle for each fan.
Clearing Bits 5, 6 of Configuration Register 1 allows fan control
by varying PWM duty cycle. Values of duty cycle between 0% to
100% may be written to the Fan Speed Config Register (0x22)
to control the speed of each fan. Table X shows the relationship
between hex values written to the Fan Speed Configuration
Register and PWM duty cycle obtained.
RELEVANT REGISTERS FOR FILTERED AUTOMATIC
FAN SPEED CONTROL MODE
Table X. PWM Duty Cycle Select Mode
In addition to the registers used to program the normal Automatic Fan Speed Control Mode, the following register needs to
be programmed.
Register 0x23 Fan Filter Register
<7>
Spin-up Disable :- when this bit is set to 1, fan spin-up
is disabled. (Default = 0)
<6:5> Ramp Rate: these bits set the ramp rate for filtered mode.
00 = 1 (0.416% Duty Cycle Change)
01 = 2 (0.833% Duty Cycle Change)
10 = 4 (1.66% Duty Cycle Change)
11 = 8 (3.33% Duty Cycle Change)
<4:2> ADC Sample Rate
000 = 87.5 Hz
001 = 175 Hz
010 = 350 Hz
011 = 700 Hz
100 = 1.4 kHz (Default)
101 = 2.8 kHz
110 = 5.6 kHz
111 = 11.2 kHz
<1>
Fan 2 Filter Enable: when this bit is set to 1, it enables
filtering on Fan 2. Default = 0.
<0>
Fan 1 Filter Enable: when this bit is set to 1, it enables
filtering on Fan 1. Default = 0.
Hex Value
PWM Duty Cycle
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
0%
7%
14%
20%
27%
33%
40%
47%
53%
60%
67%
73%
80%
87%
93%
100%
Bits <3:0> set the PWM duty cycle for Fan 1; Bits <7:4> set the PWM duty
cycle for Fan 2.
–18–
REV. 0
ADM1031
RPM FEEDBACK MODE
Example 1:
The second method of fan speed control under software is RPM
Feedback Mode. This involves programming the desired fan
RPM value to the device to set fan speed. The advantages include
a very tightly maintained fan RPM over the fan’s life, and virtually no acoustic pollution due to fan speed variation.
If the desired value for RPM Feedback Mode is 5000 RPM,
what value needs to be programmed for Count?
Fans typically have manufacturing tolerances of ± 20%, meaning
a wide variation in speed for a typical batch of identical fan
models. If it is required that all fans run at exactly 5000 RPM,
it may be necessary to specify fans with a nominal fan speed of
6250 RPM. However, many of these fans will run too fast and
make excess noise. A fan with nominal speed of 6250 RPM
could run as fast as 7000 RPM at 100% PWM duty cycle. RPM
Mode will allow all of these fans to be programmed to run at the
desired RPM value.
Clearing Bit 7 of Configuration Register 1 (Reg 0x00) to 0
places the ADM1031 under software control. Once under software control, the device may be placed in to RPM Feedback
Mode by writing to Bits 5, 6 of Configuration Register 1. Writing
a 1 to Bits 5, 6 selects RPM Feedback Mode for each fan. Once
RPM Feedback Mode has been selected, the required fan RPM
may be written to the Fan Tach High Limit Registers (0x10,
0x11). The RPM Feedback Mode function allows a fan RPM
value to be programmed into the device, and the ADM1031 will
maintain the selected RPM value by monitoring the fan tach
and speeding up the fan as necessary, should the fan start to
slow down. Conversely, should the fan start to speed up due to
aging, the RPM feedback will slow the fan down to maintain the
correct RPM speed. The value to be programmed into each Fan
Tach High Limit Register is given by:
Count = (f × 60)/R × N
where:
Count = (f × 60)/R × N
Since the desired RPM value, R, is 5000 RPM, the value for
Count is:
N = 2:
Count = (11250 × 60)/5000 × 2
Count = 675000/10000
Count = 67 (assumes 2 tach pulses/rev).
Example 2:
If the desired value for RPM Feedback Mode is 3650 RPM,
what value needs to be programmed for Count?
Count = (f × 60)/R × N
Since the desired RPM value, R, is 3650 RPM, the value for
Count is:
N = 2:
Count = (11250 × 60)/3650 × 2
Count = 675000/7300
Count = 92 (assumes 2 tach pulses/rev).
Once the count value has been calculated, it should be written
to the Fan Tach High Limit Register. It should be noted that in
RPM Feedback Mode, there is no high limit register for underspeed detection that can be programmed as there are in the
other fan speed control modes. The only time each fan will
indicate a fan failure condition is whenever the count reaches
255. Since the speed range, N, = 2, the fan will fail if its speed
drops below 1324 RPM.
Programming RPM Values
f = 11.25 kHz
R = desired RPM value
N = Speed Range; MUST be set to 2
The speed range, N, really determines what the slowest fan speed
measured can be before generating an interrupt. The slowest fan
speed will be measured when the Count value reaches 255.
Since speed range, N, = 2,
Count = (f × 60)/R × N
R = (f × 60)/Count × N
R = (11250 × 60)/255 × 2
R = (675000)/510
R = 1324 RPM, fan fail detect speed.
Programming RPM Values in RPM Feedback Mode
Rather than writing a value such as 5000 to a 16-bit register, an
8-bit count value is programmed instead. The count to be programmed is given by:
Count = (f × 60)/R × N
where:
1. Choose the RPM value to be programmed.
2. Set speed range value, N, = 2.
3. Calculate count value based on RPM and speed range values
chosen. Use Count Equation to calculate Count Value.
4. Clear Bit 7 of Configuration Register 1 (Reg. 0x00) to place
the ADM1031 under software control.
5. Write a 1 to Bit 5 of Configuration Register 1 to place the
device in RPM Feedback Mode.
6. Write the calculated Count value to the Fan Tach High
Limit Register (Reg. 0x10). The fan speed will now go to the
desired RPM value and maintain that fan speed.
RPM Feedback Mode Limitations
RPM feedback mode only controls Fan RPM over a limited fan
speed range of about 75% to 100%. However, this should be
enough range to overcome fan manufacturing tolerance. In practice, however, the program must not function at too low an RPM
value for the fan to run at, or the RPM Mode will not operate.
To find the lowest RPM value allowed for a given fan, do the
following:
f = 11.25 kHz
R = desired RPM value
N = Speed Range = 2
REV. 0
–19–
ADM1031
1. Run the fan at 53% PWM duty cycle in Software Mode. Clear
Bits 5 and 7 of Configuration Register 1 (Reg 0x00) to enter
PWM duty cycle mode. Write 0x08 to the Fan Speed Config
Register (Reg 0x22) to set the PWM output to 53% duty cycle.
+V
3.3V
10k⍀
TYPICAL
TACH/AIN
2. Measure the fan RPM. This represents the fan RPM below
which the RPM mode will fail to operate. Do NOT program a
lower RPM than this value when using RPM Feedback mode.
ADM1031
TACH
5V OR 12V
FAN
3.3V
10k⍀
TYPICAL
3. Ensure that Speed Range, N, = 2 when using RPM Feedback mode.
Q1
NDT3055L
PWM_OUT
Fans come in a variety of different options. One distinguishing
feature of fans is the number of poles that a fan has internally.
The most common fans available have four, six, or eight poles.
The number of poles the fan has generally affects the number of
pulses per revolution the fan outputs.
If the ADM1031 is used to drive fans other than 4-pole fans that
output 2 tach pulses/revolution, then the fan speed measurement
equation needs to be adjusted to calculate and display the correct fan speed, and also to program the correct count value in
RPM Feedback Mode.
Figure 18. Interfacing the ADM1031 to a 3-Wire Fan
The NDT3055L n-type MOSFET was chosen since it has 3.3 V
gate drive, low on-resistance, and can handle 3.5 A of current.
Other MOSFETs may be substituted based on the system’s fan
drive requirements.
+V
5V OR 12V
FAN
3.3V
FAN SPEED MEASUREMENT EQUATIONS
For a 4-pole fan (2 tach pulses/rev):
10k⍀
TYPICAL
Fan RPM = (f × 60)/Count × N
PWM_OUT
TACH
Q1
NDT3055L
For a 6-pole fan (3 tach pulses/rev):
ADM1031
Fan RPM = (f × 60)/(Count × N × 1.5)
For an 8-pole fan (4 tach pulses/rev):
TACH/AIN
Fan RPM = (f × 60)/(Count × N × 2)
0.01␮F
RSENSE
(2⍀ TYPICAL)
If in doubt as to the number of poles the fans used have, or the
number of tach output pulses/rev, consult the fan manufacturer’s
data sheet, or contact the fan vendor for more information.
FAN DRIVE USING PWM CONTROL
The external circuitry required to drive a fan using PWM control is extremely simple. A single NMOS FET is the only drive
transistor required. The specifications of the MOSFET depend
on the maximum current required by the fan being driven.
Typical notebook fans draw a nominal 170 mA, and so SOT
devices can be used where board space is a constraint. If driving
several fans in parallel from a single PWM output, or driving
larger server fans, the MOSFET will need to handle the higher
current requirements. The only other stipulation is that the
MOSFET should have a gate voltage drive, VGS < 3.3 V, for
direct interfacing to the PWM_OUT pin. The MOSFET should
also have a low on-resistance to ensure that there is not significant voltage drop across the FET. This would reduce the
maximum operating speed of the fan.
Figure 18 shows how a 3-wire fan may be driven using
PWM control.
Figure 19. Interfacing the ADM1031 to a 2-Wire Fan
Figure 19 shows how a 2-wire fan may be connected to the
ADM1031. This circuit allows the speed of the 2-wire fan to be
measured even though the fan has no dedicated Tach signal. A
series RSENSE resistor in the fan circuit converts the fan commutation pulses into a voltage. This is ac-coupled into the ADM1031
through the 0.01 µF capacitor. On-chip signal conditioning
allows accurate monitoring of fan speed. For typical notebook
fans drawing approximately 170 mA, a 2 Ω RSENSE value is
suitable. For fans such as desktop or server fans that draw
more current, RSENSE may be reduced. The smaller RSENSE is,
the better, since more voltage will be developed across the fan,
and the fan will spin faster. Figure 20 shows a typical plot of
the sensing waveform at the TACH/AIN pin. The most important
thing is that the negative-going spikes are more than 250 mV
in amplitude. This will be the case for most fans when RSENSE
= 2 Ω. The value of RSENSE can be reduced as long as the voltage spikes at the TACH/AIN pin are greater than 250 mV. This
allows fan speed to be reliably determined.
–20–
REV. 0
ADM1031
T
Tek PreVu
CLOCK
⌬: 250mV
@: –258mV
T
CONFIG 2
REG. BIT 2
1
FAN
INPUT
START OF
MONITORING
CYCLE
FAN
MEASUREMENT
PERIOD
Figure 21. Fan Speed Measurement
4
CH1 100mV
CH3 50.0mV
CH2 5.00mV
CH4 50.0mV
M 4.00ms A CH1
–2.00mV
Figure 20. Fan Speed Sensing Waveform at TACH/AIN Pin
FAN SPEED MEASUREMENT
The fan counter does not count the fan tach output pulses directly,
because the fan speed may be less than 1000 RPM and it would
take several seconds to accumulate a reasonably large and accurate count. Instead, the period of the fan revolution is measured
by gating an on-chip 11.25 kHz oscillator into the input of an
8-bit counter. The fan speed measuring circuit is initialized
on the rising edge of a PWM high output if fan speed measurement is enabled (Bit 2, 3 of Configuration Register 2 = 1). It
then starts counting on the rising edge of the second tach pulse
and counts for two fan tach periods, until the rising edge of the
fourth tach pulse, or until the counter overranges if the fan tach
period is too long. The measurement cycle will repeat until
monitoring is disabled. The fan speed measurement is stored in
the Fan Speed Reading register at address 0x08, 0x09.
The fan speed count is given by:
Count = (f × 60)/R × N
where:
f = 11.25 kHz
R = Fan Speed in RPM.
N = Speed Range (Either 1, 2, 4, or 8)
The frequency of the oscillator can be adjusted to suit the
expected running speed of the fan by varying N, the Speed
Range. The oscillator frequency is set by Bits 7 and 6 of Fan
Characteristics Registers 1, 2 (0x20, 0x21) as shown in Table
XI. Figure 21 shows how the fan measurements relate to the
PWM_OUT pulse trains.
Table XI. Oscillator Frequencies
Bit 7
0
0
1
1
REV. 0
Bit 6
N
Oscillator
Frequency (kHz)
0
1
0
1
1
2
4
8
11.25
5.625
2.812
1.406
In situations where different output drive circuits are used for
fan drive, it may be desirable to invert the PWM drive signal.
Setting Bit 3 of Configuration Register 1 (0x00) to 1, inverts the
PWM_OUT signal. This makes the PWM_OUT pin high for
100% duty cycle. Bit 3 of Configuration Register 1 should generally be set to 1, when using an n-MOS device to drive the fan.
If using a p-MOS device, Bit 3 of Configuration Register 1
should be cleared to 0.
FAN FAULTS
The FAN_FAULT output (Pin 8) is an active-low, open-drain
output used to signal fan failure to the system processor. Writing
a Logic 1 to Bit 4 of Configuration Register 1 (0x00) enables the
FAN_FAULT output pin. The FAN_FAULT output is enabled
by default. The FAN_FAULT output asserts low only when
five consecutive interrupts are generated by the ADM1031 device
due to the fan running underspeed, or if the fan is completely
stalled. Note that the Fan Tach High Limit must be exceeded
by at least one before a FAN_FAULT can be generated. For
example, if we are only interested in getting a FAN_FAULT if
the fan stalls, then the fan speed value will be 0xFF for a failed
fan. Therefore, we should make the Fan Tach High Limit =
0xFE to allow FAN_FAULT to be asserted after five consecutive fan tach failures.
Figure 22 shows the relationship between INT, FAN_FAULT,
and the PWM drive channel. The PWM_OUT channel is driving a fan at some PWM duty cycle, say 50%, and the fan’s tach
signal (or fan current for a 2-wire fan) is being monitored at the
TACH/AIN pin. Tach pulses are being generated by the fan,
during the high time of the PWM duty cycle train. The tach is
pulled high during the off time of the PWM train because the
fan is connected high-side to the n-MOS device.
Suppose the fan has twice previously failed its fan speed measurement. Looking at Figure 22, PWM_OUT is brought high
for two seconds, to restart the fan if it has stalled. Sometime
later a third tach failure occurs. This is evident by the tach signal
being low during the high time of the PWM pulse, causing the Fan
Speed Reading register to reach its maximum count of 255.
Since the tach limit has been exceeded, an interrupt is generated on the INT pin. The Fan Fault bit (Bit 1) of Interrupt
Status Register 1 (Register 0x02) will also be asserted. Once
the processor has acknowledged the INT by reading the status
register, the INT is cleared. PWM_OUT is then brought high
for another two seconds to restart the fan. Subsequent fan failures cause INT to be reasserted and the PWM_OUT signal is
brought high for two seconds (fan spin-up default) each time to
restart the fan. Once the fifth tach failure occurs, the failure is
deemed to be catastrophic and the FAN_FAULT pin is asserted
low. PWM_OUT is brought high to attempt to restart the fan.
–21–
ADM1031
The INT pin will continue to generate interrupts after the assertion of FAN_FAULT since tach measurement continues even
after fan failure. Should the fan recover from its failure condition, the FAN_FAULT signal will be negated, and the fan will
return to its normal operating speed.
PWM_OUT
Figure 23 shows a typical application circuit for the ADM1031.
Temperature monitoring can be based around a CPU diode or
discrete transistor measuring thermal hotspots. Either 2- or
3-wire fans may be monitored by the ADM1031, as shown.
2 SECS
2 SECS
FULL SPEED
2 SECS
TACH/AIN
3RD TACH
FAILURE
5TH TACH
FAILURE
4TH TACH
FAILURE
INT
STATUS REG READ TO
CLEAR INTERRUPT
CONTINUING
TACH FAILURE
FAN_FAULT
Figure 22. Operation of FAN_FAULT and Interrupt Pins
5V
FAN2
2-WIRE
FAN
5V MAX
(DO NOT CONNECT
5V
TO 12V)
10k⍀
TYP
FAN1*
3-WIRE
FAN
TACH
3.3V 3.3V
2.2k⍀
2.2k⍀
SCL
3.3V
NDT3055L
(N-MOS)
10k⍀
TYP PWM_OUT1
NDT3055L
(NMOS)
TACH1/AIN1
3.3V
10k⍀
TYP
RSENSE
PWM_OUT2
TACH2/AIN2
GND
0.01␮F
THERM
SIGNAL TO
THROTTLE
CPU CLOCK
FAN_FAULT
TO SIGNAL
FAN FAILURE
CONDITION
3.3V
3.3V
10k⍀
TYP
VCC
THERM
SDA
1
16
2
15
3
14
4
13
ADM1031
5
12
6
11
7
10
8
9
FAN_FAULT
3.3V
SCL
SDA
INT (SMBALERT)
3.3V
10k⍀
TYP
CPU INTERRUPT
ADD
D2+
2N3904 OR PENTIUM III
CPU THERMAL DIODE
D2–
D1+
D1–/NTI
2N3904 OR PENTIUM III
CPU THERMAL DIODE
10k⍀
TYP
*IN ACTUAL APPLICATION, BOTH FANS MUST BE 2-WIRE OR 3-WIRE TYPE. A SINGLE BIT
CONTROLS WHETHER TACH1/AIN1 AND TACH2/AIN2 ARE ANALOG OR DIGITAL INPUTS.
Figure 23. Typical Application Circuit
–22–
REV. 0
ADM1031
Table XII. Registers
Register Name
Address A7–A0
in Hex
Value Registers
Device ID Register
0x08–0x1E
0x3D
Company ID
0x3E
THERM Behavior/Revision
0x3F
Configuration Register 1
Configuration Register 2
Status Register 1
Status Register 2
Manufacturer’s Test Register
0x00
0x01
0x02
0x03
0x07
Fan Characteristics Register 1
Fan Characteristics Register 2
Fan Speed Configuration Register
Fan Filter Register
Local Temperature TMIN/TRANGE
Remote 1 Temperature TMIN/TRANGE
Remote 2 Temperature TMIN/TRANGE
0x20
0x21
0x22
0x23
0x24
0x25
0x26
Comments
See Table XIII.
This location contains the device identification number. Since this
device is the ADM1031, this register contains 0x31. This register is
read only.
This location contains the company identification number (0x41).
This register is read only.
This location contains the revision number of the device. The lower
four bits reflect device revisions [3:0]. Bit 7 of this register is the
THERM-to-fan enable bit. See Table XXII.
See Table XIV. Power-on value = 1001 0000.
See Table XV. Power-on value = 0111 1111.
See Table XVI. Power-on value = 0000 0000.
See Table XVII. Power-on value = 0000 0000.
This register is used by the manufacturer for test purposes only. This
register should not be read from or written to in normal operation.
See Table XIX. Power-on value = 0101 1101.
See Table XX. Power-on value = 0101 1101.
See Table XXI. Power-on value = 0101 0101.
See Table XXII. Power-on value = 0101 0000.
See Table XXIII. Power-on value = 0100 0001.
See Table XXIV. Power-on value = 0110 0001.
See Table XXV. Power-on value = 0110 0001.
Table XIII. Value Registers
Address
Read/Write
Description
0x06
0x08
0x09
0x0A
0x0B
0x0C
0x0D
0x0E
0x0F
0x10
Read/Only
Read/Write
Read/Write
Read/Only
Read/Only
Read/Only
Read/Write
Read/Write
Read/Write
Read/Write
0x11
Read/Write
0x14
0x15
0x16
0x18
0x19
0x1A
0x1C
0x1D
0x1E
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Extended Temperature Resolution (see Table XVIII).
Fan 1 Speed—this register contains the value of the Fan 1 tach measurement.
Fan 2 Speed—this register contains the value of the Fan 2 tach measurement.
Local Temperature Value—this register contains the 8 MSBs of the local temperature measurement.
Remote 1 Temperature Value—this register contains the 8 MSBs of the Remote 1 temperature reading.
Remote 2 Temperature Value—this register contains the 8 MSBs of the Remote 2 temperature reading.
Local Temperature Offset—See Table XXVII. (Power-On Default = 00h.)
Remote 1 Temperature Offset—See Table XXVIII. (Power-On Default = 00h.)
Remote 2 Temperature Offset—See Table XXIX. (Power-On Default = 00h.)
Fan 1 Tach High Limit—this register contains the limit for the Fan 1 tach measurement. Since the
tach circuit counts between pulses, a slow fan will result in a large measured value, so exceeding the
limit is the way to detect a slow or stalled fan. (Power-On Default = FFh.)
Fan 2 Tach High Limit—this register contains the limit for the Fan 2 tach measurement. Since the
tach circuit counts between pulses, a slow fan will result in a large measured value, so exceeding the
limit is the way to detect a slow or stalled fan. (Power-On Default = FFh.)
Local Temperature High Limit (Power-On Default 60°C).
Local Temperature Low Limit (Power-On Default 0°C).
Local Temperature Therm Limit (Power-On Default 70°C).
Remote 1 Temperature High Limit (Power-On Default 80°C).
Remote 1 Temperature Low Limit (Power-On Default 0°C).
Remote 1 Temperature Therm Limit (Power-On Default 100°C).
Remote 2 Temperature High Limit (Power-On Default 80°C).
Remote 2 Temperature Low Limit (Power-On Default 0°C).
Remote 2 Temperature Therm Limit (Power-On Default 100°C).
REV. 0
–23–
ADM1031
Table XIV. Register 0x00 Configuration Register 1 Power-On Default 90h
Bit
Name
R/W
Description
0
MONITOR
Read/Write
1
INT Enable
Read/Write
2
TACH/AIN
Read/Write
3
4
PWM Invert
Fan Fault Enable
Read/Write
Read/Write
6–5
PWM Mode
Read/Write
7
Auto/SW Ctrl
Read/Write
Setting this bit to a “1” enables monitoring of temperature and enables measurement of
the fan tach signals. (Power-Up Default = 0.)
Setting this bit to a “1” enables the INT output.
1 = Enabled 0 = Disabled (Power-Up Default = 0.)
Clearing this bit to “0” selects digital fan speed measurement via the TACH pins. Setting
this bit to “1” configures the TACH pins as analog inputs that can measure the speed of
2-wire fans via a sense resistor. (Power-Up Default = 0.)
Setting this bit to “1” inverts the PWM signal on the output pins. (Power-Up Default = 0.)
Logic 1 enables FAN_FAULT pin; Logic 0 disables FAN_FAULT output. (Power-Up
Default = 1.)
These two bits control the behavior of the fans in Auto Fan Speed Control Mode.
00 = Remote Temp 1 controls Fan 1; Remote Temp 2 controls Fan 2.
01 = Remote Temp 1 controls Fan 1 and Fan 2.
10 = Remote Temp 2 controls Fan 1 and Fan 2.
11 = Max of Local Temp and Remote Temp 1 and 2 drives Fans 1 and 2.
These two bits have the following effect in Software Control Mode.
00 = Program PWM duty cycles for Fans 1 and 2.
11 = Program RPM Speeds for Fans 1 and 2.
Logic 1 selects Automatic Fan Speed Control; Logic 0 selects SW control. (Power-Up
Default = 1) When under software control, PWM duty cycle or RPM values may be
programmed for each fan.
Table XV. Register 0x01 Configuration 2 Power-On Default = 7FH
Bit
Name
R/W
Description
0
1
2
3
4
5
PWM 1 En
PWM 2 En
TACH 1 En
TACH 2 En
Loc Temp En
Remote 1 Temp En
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
Read/Write
6
Remote 2 Temp En
Read/Write
7
SW Reset
Read/Write
Enables Fan 1 PWM output when this bit is a “1.”
Enables Fan 2 PWM output when this bit is a “1.”
Enables Tach 1 input when set to “1.”
Enables Tach 2 input when set to “1.”
Enables Interrupts on Local Temperature Channel when set to “1.”
Enables Interrupts on Remote 1 Channel when set to “1.” Default is normally
enabled, except when a diode fault is detected on power-up.
Enables Interrupts on Remote 2 Channel when set to “1.” Default is normally
enabled, except when a diode fault is detected on power-up.
When set to “1,” resets the device. Self-clears. Power-Up Default = 0.
–24–
REV. 0
ADM1031
Table XVI. Register 0x02 Status Register 1 Power-On Default = 00H
Bit
Name
R/W
Description
0
Alarm 1 Speed
Read Only
1
2
Fan 1 Fault
Remote 1 High
Read Only
Read Only
3
Remote 1 Low
Read Only
4
Remote 1 Therm
Read Only
5
Remote Diode 1 Error
Read Only
6
Local Temp High
Read Only
7
Local Temp Low
Read Only
This bit is set to “1” when fan is running at alarm speed. Once read, this bit
will not reassert on next monitoring cycle, even if the fan is still running at
alarm speed.
This bit is set to “1” if Fan 1 becomes stuck or is running under speed.
“1” indicates Remote 1 high temperature limit has been exceeded. If the
temperature is still outside the Remote 1 Temp High Limit, this bit will reassert on next monitoring cycle.
“1” indicates Remote 1 low temperature limit exceeded (below). If the temperature is still outside the Remote 1 Temp Low Limit, this bit will reassert
on next monitoring cycle.
“1” indicates Remote 1 temperature Therm limit has been exceeded. This bit
is cleared on a read of Status Register 1.
This bit is set to “1” if a short or open is detected on the Remote 1 temperature channel. This test is only done on power-up, and if set to 1 cannot be
cleared by reading the Status Register 1.
“1” indicates Local Temp High Limit has been exceeded. If the temperature
is still outside the Local Temp High Limit, this bit will reassert on next
monitoring cycle.
“1” indicates Local Temp Low Limit has been exceeded (below). If the temperature is still outside the Local Temp Low Limit, this bit will reassert on
next monitoring cycle.
Table XVII. Register 0x03 Status Register 2 Power-Up Default = 00H
Bit
Name
R/W
Description
0
Alarm 2 Speed
Read Only
1
2
Fan 2 Fault
Remote 2 High
Read Only
Read Only
3
Remote 2 Low
Read Only
4
Remote 2 Therm
Read Only
5
Remote Diode 2 Error
Read Only
6
Local Therm
Read Only
7
THERM
Read Only
This bit is set to “1” when Fan 2 is running at alarm speed. Once read, this
bit will not reassert on next monitoring cycle, even if the fan is still running at
alarm speed.
This bit is set to “1” if Fan 2 becomes stuck or is running under speed.
“1” indicates Remote 2 high temperature limit has been exceeded. If the
temperature is still outside the Remote 2 Temp High Limit, this bit will reassert on the next monitoring cycle.
“1” indicates Remote 2 low temperature limit exceeded (below). If the temperature is still outside the Remote 2 Temp Low Limit, this bit will reassert
on the next monitoring cycle.
“1” indicates Remote 2 temperature Therm limit has been exceeded. This bit
is cleared on reading Status Register 2.
This bit is set to “1” if a short or open is detected on the Remote 2 temperature channel. This test is only done on power-up, and if set to 1 cannot be
cleared by reading Status Register 2.
“1” indicates Local temperature Therm limit has been exceeded. This bit
clears on a read of Status Register 2.
Set to “1” when THERM is pulled low as an input. This bit clears on a read
of Status Register 2.
Table XVIII. Register 0x06 Extended Temperature Resolution Power-On Default = 00H
Bit
Name
R/W
Description
<2:0>
<5:3>
<7:6>
Remote Temp 1
Remote Temp 2
Local Temp
Read Only
Read Only
Read Only
Holds extended temperature resolution bits for Remote 1 channel.
Holds extended temperature resolution bits for Remote 2 channel.
Holds extended temperature resolution bits for Local Temperature channel.
REV. 0
–25–
ADM1031
Table XIX. Register 0x20 Fan Characteristics Register 1 Power-On Default = 5DH
Bit
Name
R/W
Description
<2:0>
Fan 1 Spin-up
Read/Write
<5:3>
PWM 1 Frequency
Read/Write
<7:6>
Speed Range, N
Read/Write
These bits contain the Fan Spin-up time to allow Fan 1 to overcome its own
inertia.
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
These bits allow programmability of the nominal PWM 1 output frequency
driving Fan 1. (Default = 31 Hz.)
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
Speed Range
00 = 1
01 = 2
10 = 4
11 = 8
Table XX. Register 0x21 Fan Characteristics Register 2 Power-On Default = 5DH
Bit
Name
R/W
Description
<2:0>
Fan 2 Spin-up
Read/Write
<5:3>
PWM 2 Frequency
Read/Write
<7:6>
Speed Range, N
Read/Write
These bits contain the Fan Spin-up time to allow Fan 2 to overcome its own
inertia.
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
These bits allow programmability of the nominal PWM 2 output frequency
driving Fan 2. (Default = 31 Hz.)
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
Speed Range
00 = 1
01 = 2
10 = 4
11 = 8
–26–
REV. 0
ADM1031
Table XXI. Register 0x22 Fan Speed Config Register Power-On Default = 55H
Bit
Name
R/W
Description
<3:0>
Normal/Min Spd 1
Read/Write
<7:4>
Normal/Min Spd 2
Read/Write
This nibble contains the normal speed value for Fan 1. When in Automatic
Fan Speed Control Mode, this nibble contains the minimum speed at which
Fan 1 will run. Default is 0x05 for 33% PWM duty cycle.
This nibble contains the normal speed value for Fan 2. When in Automatic
Fan Speed Control Mode, this nibble contains the minimum speed at which
Fan 2 will run. Default is 0x05 for 33% PWM duty cycle.
Table XXII. Register 0x23 Fan Filter Register Power-On Default = 50H
Bit
Name
R/W
Description
<7>
<6:5>
Spin-Up Disable
Ramp Rate
Read/Write
Read/Write
<4:2>
ADC Sample Rate
Read/Write
<1>
<0>
Fan 2 Filter En
Fan1 Filter En
Read/Write
Read/Write
When set to 1, disables fan spin-up.
These bits set the ramp rate.
00 = 1
01 = 2
10 = 4 (Default)
11 = 8
These bits set the sampling rate for the ADC.
000 = 87.5 Hz
001 = 175 Hz
010 = 350 Hz
011 = 700 Hz
100 = 1.4 kHz (Default)
101 = 2.8 kHz
110 = 5.6 kHz
111 = 11.2 kHz
This bit enables fan filtering for Fan 2.
This bit enables fan filtering for Fan 1.
Table XXIII. Register 0x24 Local Temp T MIN/TRANGE Power-On Default = 41H
Bit
Name
R/W
Description
<7:3>
Local Temp TMIN
Read/Write
<2:0>
Local Temp TRANGE
Read/Write
Contains the minimum temperature value for Automatic Fan Speed Control
based on Local Temperature Readings. TMIN can be programmed to positive
values only in 4°C increments. Default is 32°C.
00000 = 0°C
00001 = 4°C
00010 = 8°C
00011 = 12°C
|
|
01000 = 32°C (Default)
|
|
|
11110 = 120°C
11111 = 124°C
This nibble contains the temperature range value for Automatic Fan Speed
Control based on the Local Temp Readings.
000 = 5°C
001 = 10°C (Default)
010 = 20°C
011 = 40°C
100 = 80°C
REV. 0
–27–
ADM1031
Table XXIV. Register 0x25 Remote 1 Temp T MIN/TRANGE Power-On Default = 61H
Bit
Name
R/W
Description
<7:3>
Remote 1 Temp TMIN
Read/Write
<2:0>
Remote 1 Temp TRANGE
Read/Write
Contains the minimum temperature value for Automatic Fan Speed Control
based on Remote 1 Temperature Readings. TMIN can be programmed to
positive values only in 4°C increments. Default is 48°C.
00000 = 0°C
00001 = 4°C
00010 = 8°C
00011 = 12°C
|
|
01100 = 48°C (Default)
|
|
|
11110 = 120°C
11111 = 124°C
This nibble contains the temperature range value for Automatic Fan Speed
Control based on the Remote 1 Temp Readings.
000 = 5°C
001 = 10°C (Default)
010 = 20°C
011 = 40°C
100 = 80°C
Table XXV. Register 0x26 Remote 2 Temp T MIN/TRANGE Power-On Default = 61H
Bit
Name
R/W
Description
<7:3>
Remote 2 Temp TMIN
Read/Write
<2:0>
Remote 2 Temp TRANGE
Read/Write
Contains the minimum temperature value for Automatic Fan Speed Control
based on Remote 2 Temperature Readings. TMIN can be programmed to
positive values only in 4°C increments. Default is 48°C.
00000 = 0°C
00001 = 4°C
00010 = 8°C
00011 = 12°C
|
|
01100 = 48°C (Default)
|
|
11110 = 120°C
11111 = 124°C
This nibble contains the temperature range value for Automatic Fan Speed
Control based on the Remote 2 Temp Readings.
000 = 5°C
001 = 10°C (Default)
010 = 20°C
011 = 40°C
100 = 80°C
Table XXVI. Register 0x3F Therm Behavior/Revision Power-On Default = 80H
Bit
Name
R/W
Description
<7>
Therm-to-Fan En
Read/Write
<3:0>
Revision
Read Only
Setting this bit to 1, enables the fan to run full-speed when THERM is
asserted low. This allows the system to be run in performance mode. Clearing this bit to 0 disables the fan from running full-speed whenever THERM
is asserted low. This allows the system to run in silent mode. (Power-On
Default = 1).
This nibble contains the revision number for the ADM1031.
–28–
REV. 0
ADM1031
Table XXVII. Register 0x0D Local Temp Offset Power-On Default = 00H
Bit
Name
R/W
Description
<7>
Sign
Read/Write
<3:0>
Local Offset
Read/Write
When this bit is 0, the local offset will be added to the Local Temp Reading.
When this bit is set to 1, the local offset will be subtracted from the Local
Temp Reading.
These four bits are used to add an offset to the Local Temperature Reading.
These bits allow an offset value of up to ± 15°C to be added to or subtracted
from the temperature reading.
Table XXVIII. Register 0x0E Remote 1 Temp Offset Power-On Default = 00H
Bit
Name
R/W
Description
<7>
Sign
Read/Write
<6.4>
<3:0>
Unused
Remote 1 Offset
Read/Write
Read/Write
When this bit is 0, the remote offset will be added to the Remote 1 Temp
Reading. When this bit is set to 1, the remote offset will be subtracted from
the Remote 1 Temp Reading.
Unused. Read back 0.
These four bits are used to add an offset to the Remote 1 Temperature
Reading. These bits allow an offset value of up to ± 15°C to be added to or
subtracted from the temperature reading, depending on the sign bit.
Table XXIX. Register 0x0F Remote 2 Temp Offset Power-On Default = 00H
Bit
Name
R/W
Description
<7>
Sign
Read/Write
<6.4>
<3:0>
Unused
Remote 2 Offset
Read/Write
Read/Write
When this bit is 0, the remote offset will be added to the Remote 2 Temp
Reading. When this bit is set to 1, the remote offset will be subtracted from
the Remote 2 Temp Reading.
Unused. Read back 0.
These four bits are used to add an offset to the Remote 2 Temperature Reading.
These bits allow an offset value of up to ± 15°C to be added to or subtracted
from the temperature reading, depending on the sign bit.
REV. 0
–29–
ADM1031
OUTLINE DIMENSIONS
Dimensions shown in inches and (mm).
16-Lead QSOP Package
(RQ-16)
0.197 (5.00)
0.189 (4.80)
16
9
0.244 (6.20)
0.228 (5.79)
0.157 (3.99)
0.150 (3.81)
1
8
PIN 1
0.059 (1.50)
MAX
0.010 (0.25)
0.004 (0.10)
0.025
(0.64)
BSC
0.069 (1.75)
0.053 (1.35)
8ⴗ
0.012 (0.30)
0ⴗ
SEATING 0.010 (0.20)
0.008 (0.20) PLANE
0.007 (0.18)
–30–
0.050 (1.27)
0.016 (0.41)
REV. 0
–31–
–32–
PRINTED IN U.S.A.
C02402–2.5–4/01(0)