Functional Description (Continued)
•IRQ0-2: These are active low inputs from any type of
external interrupt source. If enabled via the Channel
Mode Register (16h) the INT# output will be activated
whenever these inputs are pulled low. Since there are no
dedicated ISR bits that correspond to the IRQ inputs, the
VID status bits can be read to determine which IRQ input
is active. Similarly, to mask off these inputs as interrupt
sources, they must be disabled via the Channel Mode
Register (16h).
•IRQ3-4: These are active high inputs from any type of
external interrupt source. If enabled via the Channel
Mode Register (16h) and Configuration Register 2 (4Ah),
the INT# output will be activated whenever these inputs
are driven high. Since there are no dedicated ISR bits
that correspond to the IRQ inputs, the VID status bits can
be read to determine which IRQ input is active. Similarly,
to mask off these inputs as interrupt sources, they must
be disabled via Configuration Register 2 (4Ah).
With the exception of the IRQ inputs and Hardware Tem-
perature errors, all interrupts are indicated in the two Inter-
rupt Status Registers. The INT#output has two mask regis-
ters, and individual masks for each Interrupt.As described in
Section 3.3, the hardware Interrupt line can also be enabled/
disabled in the Configuration Register.
The THERM#interrupt output is dedicated to temperature
and therefore is only related to internal and external tem-
perature readings, and the Low, High and Hardware tem-
perature limits.
9.1 INT# Interrupts
The INT# system combines several groups of error signals
together into a common output. These groups are; IRQ in-
puts, Voltage and Fan inputs, Temperature Values, and the
THERM# input. Each one of these groups or channels func-
tions a little differently.
The IRQ inputs provide the least complicated INT# opera-
tion. The IRQ input block is enabled by setting bit 7of the
Channel Mode Register (16h) to 0. Then the individual inputs
are enabled by setting the corresponding IRQ Enable bits to
1. If an IRQ input is enabled, and subsequently an input sig-
nal is asserted on that channel, the INT# output will be as-
serted. During the interrupt service routine, the INT# output
can be deasserted in a number of ways. The INT#_Clear bit
can be set during the ISR to prevent further interrupts from
occurring. Then the IRQ enable bit for the particular input
can be cleared to prevent that channel from causing further
interrupts. At this point the INT#_Clear bit can be cleared
and no further interrupts would be issued from this particular
IRQ input. Once the signal causing the IRQ has been re-
moved, the enable bit for that IRQ channel could be set
again.
Voltage, Fan, and Temperature High/Low errors are slightly
more complex in their generation of INT# outputs. All of
these error bits are stored in the Interrupt Status Registers at
43h, 44h and the Interrupt Status Mirror Registers at 4Ch
and 4Dh. These inputs are gated by the Interrupt Mask Reg-
isters and processed by the INT# state machine to generate
the INT# output.
Voltage and Fan error conditions are processed as follows.
Every time a round robin conversion cycle is completed, the
high/low limit comparisons for voltage and fan quantities are
updated. If a quantity is outside the limits, the appropriate In-
terrupt Status Register bit will be set. If the corresponding In-
terrupt Mask Register bit is 0, then the Status Bit will cause
the INT# output to be asserted. Reading the Interrupt Status
register will clear the Status Bit and cause the INT# output to
be deasserted. If the parameter is still outside the limits on
the next conversion, the status bit will again be set and it will
again cause an interrupt. If, on a subsequent conversion
cycle, the parameter returns within the High/Low limits be-
fore the Interrupt Status Registers are read, the Interrupt
Status bit will remain set and the INT# output will remain as-
serted.
Temperature High/Low errors are somewhat more compli-
cated. We will begin with the temperature value initially
within the High/Low limits and the corresponding Interrupt
Mask Bit = 0. If the temperature value rises above the high
limit, or below the low limit, the corresponding Interrupt Sta-
tus Register bit will be set. This will then cause an INT# to be
asserted. Reading the Interrupt Status Register will clear the
status bit and cause INT# to be deasserted. If the tempera-
ture value remains above the high limit during subsequent
conversion cycles, the Interrupt Status Bit will again be set,
but no new INT# will be generated from this source. INT#
may be reasserted if:
— The temperature then transitions up or down through
the opposite limit to that originally exceeded.
— The original limit crossed is programmed to a new
value and on a subsequent conversion cycle, the con-
verted temperature is outside the new limit. This would
cause the corresponding Interrupt Status Bit to be set,
causing a new INT# event.
— An interrupt is generated by any other source, includ-
ing any other temperature error or the THERM# pin
being pulled low by an external signal.
The third group of signals that will generate INT# outputs are
Hardware Temperature errors, caused by temperatures ex-
ceeding the hardware limits stored at 13h, 14h, 17h, and
18h. Again, we will assume that the temperature initially is
below the Hardware Temperature setpoints. If the tempera-
ture on a subsequent conversion is above any of the values
stored in the Hardware Temperature Limit registers, the INT#
output will be asserted. Errors caused by exceeding these
limits cannot be cleared by reading the Interrupt Status Reg-
isters, and the INT# condition can only be cleared by clear-
ing the Thermal INT# Enable bit, by setting the INT#_Clear
bit or by disabling INT# by clearing the INT#_Enable bit. The
final INT# source to consider is the THERM# input/output.
THERM# can be pulled low by an external source to gener-
ate an INT# output. Pulling THERM# low with external cir-
cuitry sets the corresponding THERM# Interrupt Status Bit. If
this bit is not masked, it will cause INT# to be asserted.
Reading the Interrupt Status Registers will clear the status
bit and will cause INT# to be deasserted. If the external sig-
nal continues to pull THERM# low, the Interrupt Status Bit
will be reset at the completion of the next conversion cycle.
This will again assert the INT# output. Note that if the exter-
nal circuitry pulls THERM# low, but this pin is already low
due to the THERM# output being active, this external signal
cannot be sensed, and the THERM# Interrupt Status Bit will
not be set.
Interrupt Status Registers: Reading a Status Register will
output the contents of the Register, and reset the Register. A
subsequent read done before the analog “round-robin” moni-
toring loop is complete will indicate a cleared Register. Allow
at least 600 ms to allow all Registers to be updated between
reads. In summary, the Interrupt Status Register clears upon
being read, and requires at least 300 ms to be updated.
LM87
www.national.com 20