Specifications

ESS Technology, Inc. SAM0025A-062397 17
ES1879 DATA SHEET
INTERRUPTS
PRELIMINARY
A second use of the IMR is within an interrupt handler. The
first thing the interrupt handler can do is mask all of the
interrupt sources mapped to the interrupt handler. The ISR
can then be polled to decide which sources to process.
Just before exiting the interrupt handler, the IMR can be
restored. If an unprocessed interrupt remains active, it
generates an interrupt request because the interrupt pin
was low during the masked period and then went high
when the interrupt sources were unmasked. While the
interrupts are masked, the individual interrupt sources can
change state any number of times without generating a
false interrupt request.
Interrupt Edge Generator
The interrupt logic has a feature that makes sharing of
interrupts easier. If more than one interrupt source shares
an interrupt request pin, the interrupt pin is normally the
logical OR of the shared interrupt requests. However, if
any one interrupt request goes from high to low, circuitry
inside the ES1879 will hold the interrupt request pin low
briefly to generate a clock edge if one of the other interrupt
sources is also high.
Sharing Interrupts
Plug and Play does not support sharing of interrupts in its
resource assignment decision making. If a device tries to
share an interrupt with another device that has been
assigned an interrupt by PnP, the first device cannot
request an interrupt for itself.
A logical device that supports interrupts can be assigned
to an interrupt after the PnP sequence is generated by the
Windows driver. In this case, the logical device would
typically be forced to share an interrupt with the first audio
interrupt. For most cases, this is done simply by
programming the appropriate PnP register (70h or 72h) for
the selected device.
A special case is the hardware volume interrupt. This
interrupt source can be assigned to an interrupt through
Vendor-Defined Card-Level register 28h, bits 7:4.
A second special case is the MPU-401 interrupt. The
MPU-401 device is either part of the audio device or its
own logical device. If it is part of the audio device, the
interrupt can be assigned by writing to Vendor-Defined
Card-Level register 28h, bits 3:0. If the MPU-401 device is
its own logical device, it is assigned an interrupt by either
Vendor-Defined Card-Level register 28h or LDN 3 register
70h.