Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

multiport serial card problem - help needed

41 views
Skip to first unread message

sksundar

unread,
Apr 1, 1998, 3:00:00 AM4/1/98
to

hi,

I have a multiport serial card. I used the Windows NT control panel -
ports
applet to configure NT to detect all the ports in the multiport serial
card. I am able to
connect only to one port at a time(all ports share the same IRQ). When I
try to connect to more than one port GetLastError returns this message.
---
unable to open a device that was sharing an interrupt request(IRQ) with
other devices.At least one other device that uses that IRQ was already
opened.
---


Is this normal behaviour ?? or am I doing some thing wrong in setting up
the device?

thanks a lot

sksundar

Darcy Roberts

unread,
Apr 1, 1998, 3:00:00 AM4/1/98
to sksundar


You need to add a few more parameters to each port in
the registry. I'd suggest looking through the NT resource
kit, since the parameters depend on the mechanism that the
multiport board uses for interrupt determination. I've successfully
used the built in serial support for one of my own designs,
a multiport modem.

Here is a brief summary:

Summary for NT 4 and multiport serial card support. 19-Jan-98

Registry Path:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Serial\Parameters

These five entries must be set for each serial port.

Registry Entry Kind Description

PortAddress REG_DWORD base address in hex of serial port
Interrupt REG_DWORD actual interrupt that the card uses
InterruptStatus REG_DWORD address of the interrupt status port
PortIndex REG_DWORD value 1..number of ports on card
DosDevices REG_SZ name of port IE "COM5" "COM6"

These appear to affect operation, but actual function needs more
research.

BreakOnEntry REG_DWORD
DebugLevel REG_DWORD
ForceFIFOEnable REG_DWORD
RxFIFO REG_DWORD
TxFIFO REG_DWORD
PermitShare REG_DWORD
LogFIFO REG_DWORD

MaskInverted REG_DWORD set to '1' if a bit in the master
interrupt status register is a '0'
to indicate a port needs service.
This is a per port entry.

The following entries are present in the driver and are read by the
driver from the registry, but the pre-programmed defaults should work
fine.

BusNumber REG_DWORD for machine with multiple IO busses
BusType REG_DWORD typically eisa, mca, isa
ClockRate REG_DWORD (1843200, 3072000,4233600,8000000)
(This is the input clock rate to the UART. The default is 1843200.)

Indexed REG_DWORD set for digi type of port encoding
(0=bit map, 1=priority encoded)
InterruptMode REG_DWORD ?
AddressSpace REG_DWORD io or memory
InterruptLevel REG_DWORD ?
FirmwareFound REG_DWORD ?
DisablePort REG_DWORD ?

The driver assumes that bit 0 in the Master Interrupt Status Register
(MISR) corresponds to port 1 as defined by 'PortIndex'. The PortIndex
value is used to build a mask to isolate the bits in the MISR when an
interrupt is received.

Example:

Board located at 0x100 (100, 108, 110, 118), MISR located at
address 0x500 using Interrupt 7

(assume that com1,com2 and com3 are already installed)

serial4 subkey

PortAddress = REG_DWORD 0x100
Interrupt = REG_DWORD 7
DosDevices = REG_SZ COM4
InterruptStatus = REG_DWORD 0x500
PortIndex = REG_DWORD 1

serial5 subkey

PortAddress = REG_DWORD 0x108
Interrupt = REG_DWORD 7
DosDevices = REG_SZ COM5
InterruptStatus = REG_DWORD 0x500
PortIndex = REG_DWORD 2

serial6 subkey

PortAddress = REG_DWORD 0x110
Interrupt = REG_DWORD 7
DosDevices = REG_SZ COM6
InterruptStatus = REG_DWORD 0x500
PortIndex = REG_DWORD 3

serial7 subkey

PortAddress = REG_DWORD 0x118
Interrupt = REG_DWORD 7
DosDevices = REG_SZ COM7
InterruptStatus = REG_DWORD 0x500
PortIndex = REG_DWORD 4

regards,
darcy roberts
h t watt and associates ltd.

Mel Stober

unread,
Apr 1, 1998, 3:00:00 AM4/1/98
to

What brand card are you using ? Is it an intelligent card, or non-intelligent
card ? Are you using the manufacture's hardware device driver ?

0 new messages