Sometimes, the cause of internal PC cards not working is the result of conflicts with IRQ (Interrupt Request Line), I/O (Input/Output) Addresses, or DMA (Direct Memory Access) channels. Two (or more) cards may be trying to simultaneously use the same IRQ, I/O address, or DMA channels. The net result is that the cards interfere with each others' operation at the hardware, or driver, level, typically making the cards work badly (for example, "glitches" in digital audio playback/recording, system crashes, or excessive latency). These hardware conflicts need to be corrected before drivers and software programs will work with the cards.

Most motherboards also have built-in components that use IRQ, I/O addresses, and even DMA channels. For example, IRQ 7 is used by the parallel port upon most motherboards. So, your computer's limited resources are also used by components upon your motherboard.

One good sign that you may have an IRQ conflict with your sound/MIDI card is when MIDI playback works fine, but MIDI recording doesn't. Many cards do not use the IRQ for playback (ie, polled output) but most all do use the IRQ for recording (ie, interrupt-driven input).


Plug and Play (PnP)

The very first IBM PC cards that came out were designed to be plugged into ISA bus slots. Later, PCI and AGP bus slots were added to motherboards for newer PCI and AGP cards.

The ISA bus was much more primitive than PCI and AGP, and therefore the configuration of ISA cards was less automatic and more troublesome. Typically, you had to manually set "jumpers" or DIP switches on an ISA card to determine the IRQ, I/O address, and DMA channels that you wished the card to use.

Today's PCI and AGP cards have a feature called Plug and Play (ie, PnP) that lets the computer itself configure the cards to resolve all hardware conflicts. So you don't have to manually set any jumpers or DIP switches for PnP cards, nor inevitably worry about hardware conflicts... at least in theory. This assumes that the card wasn't cheaply made to support only a limited set of the possible IRQ numbers. (ie, Some manufacturers will make PnP sound cards which only allow a choice of the most common IRQs used by sound cards; 5, 7, or 9. They do this to save a few pennies. But this can be really bad if you happen to have a few other cards that only support these same few IRQs). Furthermore, some older motherboard BIOSes have bugs in their PnP code such that conflicts aren't properly resolved. (In this case, either update your BIOS, or if using an OS that supports PnP, see if you can disable your BIOS handling of PnP and let the OS setup the cards' IRQs and base addresses). So, it's still possible (but rare) to see hardware conflicts with PnP cards.


IRQ Sharing

A PCI card is supposed to be designed to share an IRQ with another card/device. If you install more cards than there are IRQ lines, your motherboard may force two or more cards to use the same IRQ number. But in order to support this, a card's driver also needs to be properly designed. Frankly, I've encountered lots of buggy drivers that do not properly share an IRQ. In such a case, the two cards will likely interfere with each others' operation. If this happens, you can do a couple things. First, you should get into your computer's BIOS screen, and disable any devices you don't use. For example, if you have COM (serial) ports, or a parallel port you don't use, disable them. If your disable enough unneeded devices, your computer may not need to force any remaining devices to share IRQs. (If you're using a PnP OS, you can typically instead disable devices in your OS. For example, Windows Device Manager lets you disable any device. But, I've found the BIOS to often be more reliable at resolving IRQ conflicts).

If you still have too many enabled devices, such that 2 uncooperative devices are (badly) sharing an IRQ, then get into your BIOS PnP screen, and see if it allows you to manually assign IRQs to specific devices. In this way, you can make sure those 2 devices each get a different IRQ. (Your computer may then force 2 other devices to share, but hopefully those 2 will cooperate better). Some cheaper motherboards may not allow such manual IRQ assignment. Often such boards will dole out IRQs among its PCI slots such that, if you install a card in different PCI slots, the card will get different IRQs. So you may be able to change a card's IRQ by moving it to a different slot. Again, a PnP OS may alternately allow you to assign IRQs, such as Windows Device Manager.


Windows Device Manager

Windows is a PnP aware operating system. This means Windows can not only determine (and display for you) what IRQs, I/O addresses, and DMA channels are in use by all of your cards, Windows can also let you change what IRQs, I/O addresses, and DMA channels are used by each PnP card. You may be able to easily resolve any conflicts just by using the Windows utility that controls IRQ, I/O Address, and DMA channel assignments. That utility is the Device Manager (of Control Panel's System utility).

Here's what you do to get a listing of what IRQ's are being used for what on your system. Go into Control Panel, run the System utility, turn to the Hardware page, and run Device Manager. Under Device Manager's View menu, select Resources by type. You'll get a listing that has a section labeled Interrupt request (IRQ). Expanding this section will show you which devices are using which IRQs.

If you've got IRQ sharing, you'll see two cards listed using the same IRQ. For example, here my motherboard's sound chip shares an IRQ with my IDE controller:

   (PCI) 17  Microsoft UAA Bus Driver for High Definition Audio
   (PCI) 17  Standard Dual Channel PCI IDE Controller

You may also want to check the "Input/Output (IO)" section to make sure that no 2 cards have address ranges that encompass the same values.

Incidentally, that small yellow exclamation mark (or red X) you see next to a device name in Device Manager indicates something is wrong with the device's response, or you haven't yet installed a driver for the device. If this is a device you disabled in your BIOS, then Windows will typically mark it as being unresponsive just because the BIOS reports the device as existing (but Windows doesn't realize the device is disabled in the BIOS). It's ok to ignore this.

All of the hardware conflicts often can be resolved just by using Device Manager. You won't even have to open your computer case, or go into the BIOS. (But you should make sure that you have the latest version drivers for those cards. Sometimes, updated drivers solve what appear to be hardware problems with PnP cards). Merely go through Device Manager's IRQ, I/O Address, and DMA channels lists to note any resource conflicts, and then use Device Manager to change the Properties of any conflicting cards and set them to use unique IRQ, I/O Address, and DMA channels. For PnP cards, you can change a device's IRQ or I/O Address Range by clicking on the device's name in the Device Manager list, clicking the Properties button, and turning to the Resources page. Uncheck the "Use automatic settings" box. Now you can click on any individual "Interrupt Request" or "Input/Output Range" setting to change its IRQ or I/O Address respectively. Click on the "Change Setting" button to pick a new value for that setting.


Driver issues

Another, even more common problem concerns software drivers. The fact of the matter is that programmers do write buggy software, and there's a chance that any problem which seems hardware-related may actually be due to some bug in the card's driver. Check with the card's manufacturer that you have the latest drivers. Ask if there have been any problems reported that may be applicable to your own setup.

And definitely don't rule out the possibility that you may have configured the driver's setup (ie, "Properties" in Microsoft-speak) incorrectly. If you use Windows, read the FAQ "MIDI/Audio under Windows".


Solving conflicts

In conclusion, here is a list of things to do to solve hardware conflicts:

  1. Make sure that your motherboard's BIOS is the latest version of that BIOS. Check the web site of the motherboard manufacturer for any BIOS update for your motherboard. They may have an updated BIOS to download, plus a utility that installs it, and instructions how to install it.
  2. Go into the BIOS setup screen. (This is usually done by pressing the Delete key while the computer is just starting to boot). Disable any unneeded devices. Note that your mouse may not work in selecting items in the BIOS setup, so you typically have to use the arrow keys to move between selections, and the Page UP and Page DOWN keys to change the value of a selection.
  3. If you have uncooperative devices sharing an IRQ, go into the BIOS PnP configuration page. Choose a manual setup (rather than an automatic one). Select different IRQs for those devices. Alternately, use a PnP-aware operating system such as Windows. Use Device Manager to check for any hardware conflicts, and to change the resources so that sharing is resolved.
  4. Make sure that you have the latest versions of all drivers for your cards. Check the web site of each card's manufacturer for any driver update for that card. They may have an updated driver to download, plus instructions how to install it.