Ports
May 20, 2013, 08:44:43 am *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: SMF - Just Installed!
 
   Home   Help Search Login Register  
Welcome to the PORTS Forum. Please post your questions, answers, and comments relating to USB and other hardware interfaces in the appropriate forums below. - Jan
Pages: [1]
  Print  
Author Topic: Need help adding WinXP support for on-board ISA serial ports  (Read 1268 times)
LatencyMachine
Member
*
Posts: 2


« on: August 02, 2011, 11:56:28 am »

Hello,
We are developing an energy industry product that makes use of a WinXP embedded PC (ETX) plugged into a carrier board that contains various hardware peripherals, including 8 serial ports (RS232, RS485, and RS422) that are connected to the ISA bus.  They are not PnP.  They are at fixed bus addresses.  The IRQs are dealt with in an 8-bit interrupt status register, which itself is tied to the PC's IRQ6 line.  The UARTs are 16550 compatible.

We'd like to be able to utilize these ports from within our applications that run under Windows.  From what I have been able to find, it seems that the built-in Windows serial.sys driver should be able to control these ports, including making use of the interrupt status register.

I'm thinking what I need is an INF file that will configure Windows on the specifics and get these ports installed as hardware devices.  And that's where I need help.  So, can anyone provide information (perhaps examples!) or suggest some other approach I should be taking?

I will also mention that we are willing to pay for the development of the INF file and/or any other mechanism that will allow us to utilize these ports, if that is permissible under the policies of this forum.
Logged
Jan Axelson
Administrator
Frequent Contributor
*****
Posts: 1625


WWW
« Reply #1 on: August 02, 2011, 08:43:37 pm »

Maybe this will help:

http://msdn.microsoft.com/en-us/library/ff546509%28VS.85%29.aspx

Jan
Logged
LatencyMachine
Member
*
Posts: 2


« Reply #2 on: August 09, 2011, 09:49:33 am »

Thanks, that info got me going.  Didn't realize it could be that easy.  I created a .reg file and after some tweaking my built-in COM ports are working great.  I'll share the content of my .reg file in case it may be helpful to anyone else coming across this thread.  NOTE:  It turns out that the UARTs on my board are clocked faster than the default assumed by serial.sys, so that is why I have to specify the ClockRate value.  YMMV, and you can likely omit it.

Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial2]
"DosDevices"="COM3"
"Interrupt"=dword:00000006
"InterruptStatus"=dword:00000580
"MaskInverted"=dword:00000000
"PortIndex"=dword:00000001
"PortAddress"=dword:00000600
"ClockRate"=dword:E10000
"LegacyDiscovered"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial3]
"DosDevices"="COM4"
"Interrupt"=dword:00000006
"InterruptStatus"=dword:00000580
"MaskInverted"=dword:00000000
"PortIndex"=dword:00000002
"PortAddress"=dword:00000608
"ClockRate"=dword:E10000
"LegacyDiscovered"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial4]
"DosDevices"="COM5"
"Interrupt"=dword:00000006
"InterruptStatus"=dword:00000580
"MaskInverted"=dword:00000000
"PortIndex"=dword:00000005
"PortAddress"=dword:00000620
"ClockRate"=dword:E10000
"LegacyDiscovered"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial5]
"DosDevices"="COM6"
"Interrupt"=dword:00000006
"InterruptStatus"=dword:00000580
"MaskInverted"=dword:00000000
"PortIndex"=dword:00000006
"PortAddress"=dword:00000628
"ClockRate"=dword:E10000
"LegacyDiscovered"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial6]
"DosDevices"="COM7"
"Interrupt"=dword:00000006
"InterruptStatus"=dword:00000580
"MaskInverted"=dword:00000000
"PortIndex"=dword:00000007
"PortAddress"=dword:00000630
"ClockRate"=dword:E10000
"LegacyDiscovered"=dword:00000000
Logged
Jan Axelson
Administrator
Frequent Contributor
*****
Posts: 1625


WWW
« Reply #3 on: August 09, 2011, 09:55:31 am »

Thank you for sharing your solution!

Jan
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!