Serial Ports

I just added a PC/104 4-port serial port daughterboard to my QNX RTP
embedded (STD32) CPU. In my /etc/rc.d/rc.local file, I have the
following line:

devc-8250 -b 9600 0x03f8,4 0x02f8,3 -u 5 0x0300,5 0x0308,7 0x0310,9
0x0318,10 &

When my app tries to connect to ser1 and ser2 it works, but when I try
to connect to ser5 (or any of the others, I assume) it doesn’t. I
originally tried this without the “-u 5” and got the same behavior.

My question is: Is there a program/utility I can use to see the
configuration and/or test the operation of my serial ports to debug
this?

Also, is there a way to kill the existing devc-8250 (for the standard 2
serial ports) before I start my own devc-8250 (as above)?

Thanks!

Neville

I use a blueheat multiport serial IO card from connecttech. They have a
wrapper that starts devc-ser8250 with the appropriate settings. To make it
work, I added the following entires to my startup /etc/rc.d/rc.local:

echo “Starting connectech multi-port serial card”
slay devc-ser8250
sleep 1
devc-blueheatw -u1 3f8,4 -u2 2f8,3 -u3 -zd /sbin/devc-ser8250
waitfor /dev/ser3
stty baud=9600</dev/ser3
waitfor /dev/ser4
stty baud=9600</dev/ser4
waitfor /dev/ser5
stty baud=9600</dev/ser5
waitfor /dev/ser6
stty baud=9600</dev/ser6
waitfor /dev/ser7
stty baud=9600</dev/ser7
waitfor /dev/ser8
stty baud=9600</dev/ser8
waitfor /dev/ser9
stty baud=9600</dev/ser9
waitfor /dev/ser10
stty baud=9600</dev/ser10

stty can be used to determine the configuration of each of your ports.

“qtalk -m /dev/serXX” can be used to talk to an individual port.

For testing, I loop a null modem cable between two ports, run qtalk on each
port and make sure that what I type in one window appears in the other
window (and vice versa).


Randy Aeberhardt
<raeberhardt@tantalus-systems.com>
<www.tantalus-systems.com>

Ok, using Randy’s suggestions below, I made some progress, but I’m not quite
there yet…

Using qtalk, I can type in one window (ser1) and see it in another
window(ser2).

However, if I run qtalk on any of the other 4 ports (i.e. ser3-6), I can only
transmit (i.e. I type in ser3 and see it in ser2, but when I type in ser2, I
can’t see it in ser3). In other words, it seems as if the ports on my 4-port
card are somehow unidirectional…does that make any sense? Is this a hardware
or a software issue? How do I fix this?

Any suggestions would really help! Thanks!

Neville


Randy Aeberhardt wrote:

I use a blueheat multiport serial IO card from connecttech. They have a
wrapper that starts devc-ser8250 with the appropriate settings. To make it
work, I added the following entires to my startup /etc/rc.d/rc.local:

echo “Starting connectech multi-port serial card”
slay devc-ser8250
sleep 1
devc-blueheatw -u1 3f8,4 -u2 2f8,3 -u3 -zd /sbin/devc-ser8250
waitfor /dev/ser3
stty baud=9600</dev/ser3
waitfor /dev/ser4
stty baud=9600</dev/ser4
waitfor /dev/ser5
stty baud=9600</dev/ser5
waitfor /dev/ser6
stty baud=9600</dev/ser6
waitfor /dev/ser7
stty baud=9600</dev/ser7
waitfor /dev/ser8
stty baud=9600</dev/ser8
waitfor /dev/ser9
stty baud=9600</dev/ser9
waitfor /dev/ser10
stty baud=9600</dev/ser10

stty can be used to determine the configuration of each of your ports.

“qtalk -m /dev/serXX” can be used to talk to an individual port.

For testing, I loop a null modem cable between two ports, run qtalk on each
port and make sure that what I type in one window appears in the other
window (and vice versa).


Randy Aeberhardt
raeberhardt@tantalus-systems.com
www.tantalus-systems.com

I just added a PC/104 4-port serial port daughterboard to my QNX RTP
embedded (STD32) CPU. In my /etc/rc.d/rc.local file, I have the
following line:

devc-8250 -b 9600 0x03f8,4 0x02f8,3 -u 5 0x0300,5 0x0308,7 0x0310,9
0x0318,10 &

When my app tries to connect to ser1 and ser2 it works, but when I try
to connect to ser5 (or any of the others, I assume) it doesn’t. I
originally tried this without the “-u 5” and got the same behavior.

My question is: Is there a program/utility I can use to see the
configuration and/or test the operation of my serial ports to debug
this?

Also, is there a way to kill the existing devc-8250 (for the standard 2
serial ports) before I start my own devc-8250 (as above)?

Thanks!

Neville

Off the top of my head I’m guessing that you have an interrupt problem. You
don’t need to successfully process an interrupt to send a byte, but you do
need to process interrupts to receive a byte (unless you are polling).

From your first post your other ports are using ints 5, 7, 9, & 10. Make
sure that these are all available (not conflicting with any other hardware).
Make sure that your BIOS is mapping those interrupts to the correct bus.

Also, is the card hardware configured to use those same interrupts? Often
these boards will map all ports through the same interrupt.


Bill Caroselli – 1(530) 510-7292
Q-TPS Consulting
QTPS@EarthLink.net


“Neville Bonwit” <neville@erg.sri.com> wrote in message
news:3BF45EF9.330D8D79@erg.sri.com

Ok, using Randy’s suggestions below, I made some progress, but I’m not
quite
there yet…

Using qtalk, I can type in one window (ser1) and see it in another
window(ser2).

However, if I run qtalk on any of the other 4 ports (i.e. ser3-6), I can
only
transmit (i.e. I type in ser3 and see it in ser2, but when I type in ser2,
I
can’t see it in ser3). In other words, it seems as if the ports on my
4-port
card are somehow unidirectional…does that make any sense? Is this a
hardware
or a software issue? How do I fix this?

Any suggestions would really help! Thanks!

Neville


Randy Aeberhardt wrote:

I use a blueheat multiport serial IO card from connecttech. They have a
wrapper that starts devc-ser8250 with the appropriate settings. To make
it
work, I added the following entires to my startup /etc/rc.d/rc.local:

echo “Starting connectech multi-port serial card”
slay devc-ser8250
sleep 1
devc-blueheatw -u1 3f8,4 -u2 2f8,3 -u3 -zd /sbin/devc-ser8250
waitfor /dev/ser3
stty baud=9600</dev/ser3
waitfor /dev/ser4
stty baud=9600</dev/ser4
waitfor /dev/ser5
stty baud=9600</dev/ser5
waitfor /dev/ser6
stty baud=9600</dev/ser6
waitfor /dev/ser7
stty baud=9600</dev/ser7
waitfor /dev/ser8
stty baud=9600</dev/ser8
waitfor /dev/ser9
stty baud=9600</dev/ser9
waitfor /dev/ser10
stty baud=9600</dev/ser10

stty can be used to determine the configuration of each of your ports.

“qtalk -m /dev/serXX” can be used to talk to an individual port.

For testing, I loop a null modem cable between two ports, run qtalk on
each
port and make sure that what I type in one window appears in the other
window (and vice versa).


Randy Aeberhardt
raeberhardt@tantalus-systems.com
www.tantalus-systems.com

I just added a PC/104 4-port serial port daughterboard to my QNX RTP
embedded (STD32) CPU. In my /etc/rc.d/rc.local file, I have the
following line:

devc-8250 -b 9600 0x03f8,4 0x02f8,3 -u 5 0x0300,5 0x0308,7 0x0310,9
0x0318,10 &

When my app tries to connect to ser1 and ser2 it works, but when I try
to connect to ser5 (or any of the others, I assume) it doesn’t. I
originally tried this without the “-u 5” and got the same behavior.

My question is: Is there a program/utility I can use to see the
configuration and/or test the operation of my serial ports to debug
this?

Also, is there a way to kill the existing devc-8250 (for the standard 2
serial ports) before I start my own devc-8250 (as above)?

Thanks!

Neville

Well, I’ve narrowed the problem further…it seems that only one of my ports
(the first one, at 0x0300 and IRQ 5) can’t receive. Upon repeated and more
thorough tests, all other ports seem to be working.

Perhaps that first port has an IRQ problem (by the way, the board I’m using uses
user-selectable IRQs)…maybe I mis-configured one of them. Thanks for all your
help!

Bill Caroselli wrote:

Off the top of my head I’m guessing that you have an interrupt problem. You
don’t need to successfully process an interrupt to send a byte, but you do
need to process interrupts to receive a byte (unless you are polling).

From your first post your other ports are using ints 5, 7, 9, & 10. Make
sure that these are all available (not conflicting with any other hardware).
Make sure that your BIOS is mapping those interrupts to the correct bus.

Also, is the card hardware configured to use those same interrupts? Often
these boards will map all ports through the same interrupt.


Bill Caroselli – 1(530) 510-7292
Q-TPS Consulting
QTPS@EarthLink.net

“Neville Bonwit” <> neville@erg.sri.com> > wrote in message
news:> 3BF45EF9.330D8D79@erg.sri.com> …
Ok, using Randy’s suggestions below, I made some progress, but I’m not
quite
there yet…

Using qtalk, I can type in one window (ser1) and see it in another
window(ser2).

However, if I run qtalk on any of the other 4 ports (i.e. ser3-6), I can
only
transmit (i.e. I type in ser3 and see it in ser2, but when I type in ser2,
I
can’t see it in ser3). In other words, it seems as if the ports on my
4-port
card are somehow unidirectional…does that make any sense? Is this a
hardware
or a software issue? How do I fix this?

Any suggestions would really help! Thanks!

Neville


Randy Aeberhardt wrote:

I use a blueheat multiport serial IO card from connecttech. They have a
wrapper that starts devc-ser8250 with the appropriate settings. To make
it
work, I added the following entires to my startup /etc/rc.d/rc.local:

echo “Starting connectech multi-port serial card”
slay devc-ser8250
sleep 1
devc-blueheatw -u1 3f8,4 -u2 2f8,3 -u3 -zd /sbin/devc-ser8250
waitfor /dev/ser3
stty baud=9600</dev/ser3
waitfor /dev/ser4
stty baud=9600</dev/ser4
waitfor /dev/ser5
stty baud=9600</dev/ser5
waitfor /dev/ser6
stty baud=9600</dev/ser6
waitfor /dev/ser7
stty baud=9600</dev/ser7
waitfor /dev/ser8
stty baud=9600</dev/ser8
waitfor /dev/ser9
stty baud=9600</dev/ser9
waitfor /dev/ser10
stty baud=9600</dev/ser10

stty can be used to determine the configuration of each of your ports.

“qtalk -m /dev/serXX” can be used to talk to an individual port.

For testing, I loop a null modem cable between two ports, run qtalk on
each
port and make sure that what I type in one window appears in the other
window (and vice versa).


Randy Aeberhardt
raeberhardt@tantalus-systems.com
www.tantalus-systems.com

I just added a PC/104 4-port serial port daughterboard to my QNX RTP
embedded (STD32) CPU. In my /etc/rc.d/rc.local file, I have the
following line:

devc-8250 -b 9600 0x03f8,4 0x02f8,3 -u 5 0x0300,5 0x0308,7 0x0310,9
0x0318,10 &

When my app tries to connect to ser1 and ser2 it works, but when I try
to connect to ser5 (or any of the others, I assume) it doesn’t. I
originally tried this without the “-u 5” and got the same behavior.

My question is: Is there a program/utility I can use to see the
configuration and/or test the operation of my serial ports to debug
this?

Also, is there a way to kill the existing devc-8250 (for the standard 2
serial ports) before I start my own devc-8250 (as above)?

Thanks!

Neville

Does anyone know how to check what IRQs are in use on my machine (fresh QNX RTP
install as of about 3 weeks ago)?

I tried running ‘sin interrupts’ and it said ‘sin: warning: interrupts not
implemented(?) yet’ (I can’t quite remember the error message). Does that mean I’m
out of luck, or is there possibly a newer version of ‘sin’ that displays interrupt
information? Thanks.

By the way, I checked the jumper in question on my serial i/o card and it was
correct (set to 5), so it’s probably a software issue.

Neville


Neville Bonwit wrote:

Well, I’ve narrowed the problem further…it seems that only one of my ports
(the first one, at 0x0300 and IRQ 5) can’t receive. Upon repeated and more
thorough tests, all other ports seem to be working.

Perhaps that first port has an IRQ problem (by the way, the board I’m using uses
user-selectable IRQs)…maybe I mis-configured one of them. Thanks for all your
help!

Bill Caroselli wrote:

Off the top of my head I’m guessing that you have an interrupt problem. You
don’t need to successfully process an interrupt to send a byte, but you do
need to process interrupts to receive a byte (unless you are polling).

From your first post your other ports are using ints 5, 7, 9, & 10. Make
sure that these are all available (not conflicting with any other hardware).
Make sure that your BIOS is mapping those interrupts to the correct bus.

Also, is the card hardware configured to use those same interrupts? Often
these boards will map all ports through the same interrupt.


Bill Caroselli – 1(530) 510-7292
Q-TPS Consulting
QTPS@EarthLink.net

“Neville Bonwit” <> neville@erg.sri.com> > wrote in message
news:> 3BF45EF9.330D8D79@erg.sri.com> …
Ok, using Randy’s suggestions below, I made some progress, but I’m not
quite
there yet…

Using qtalk, I can type in one window (ser1) and see it in another
window(ser2).

However, if I run qtalk on any of the other 4 ports (i.e. ser3-6), I can
only
transmit (i.e. I type in ser3 and see it in ser2, but when I type in ser2,
I
can’t see it in ser3). In other words, it seems as if the ports on my
4-port
card are somehow unidirectional…does that make any sense? Is this a
hardware
or a software issue? How do I fix this?

Any suggestions would really help! Thanks!

Neville


Randy Aeberhardt wrote:

I use a blueheat multiport serial IO card from connecttech. They have a
wrapper that starts devc-ser8250 with the appropriate settings. To make
it
work, I added the following entires to my startup /etc/rc.d/rc.local:

echo “Starting connectech multi-port serial card”
slay devc-ser8250
sleep 1
devc-blueheatw -u1 3f8,4 -u2 2f8,3 -u3 -zd /sbin/devc-ser8250
waitfor /dev/ser3
stty baud=9600</dev/ser3
waitfor /dev/ser4
stty baud=9600</dev/ser4
waitfor /dev/ser5
stty baud=9600</dev/ser5
waitfor /dev/ser6
stty baud=9600</dev/ser6
waitfor /dev/ser7
stty baud=9600</dev/ser7
waitfor /dev/ser8
stty baud=9600</dev/ser8
waitfor /dev/ser9
stty baud=9600</dev/ser9
waitfor /dev/ser10
stty baud=9600</dev/ser10

stty can be used to determine the configuration of each of your ports.

“qtalk -m /dev/serXX” can be used to talk to an individual port.

For testing, I loop a null modem cable between two ports, run qtalk on
each
port and make sure that what I type in one window appears in the other
window (and vice versa).


Randy Aeberhardt
raeberhardt@tantalus-systems.com
www.tantalus-systems.com

I just added a PC/104 4-port serial port daughterboard to my QNX RTP
embedded (STD32) CPU. In my /etc/rc.d/rc.local file, I have the
following line:

devc-8250 -b 9600 0x03f8,4 0x02f8,3 -u 5 0x0300,5 0x0308,7 0x0310,9
0x0318,10 &

When my app tries to connect to ser1 and ser2 it works, but when I try
to connect to ser5 (or any of the others, I assume) it doesn’t. I
originally tried this without the “-u 5” and got the same behavior.

My question is: Is there a program/utility I can use to see the
configuration and/or test the operation of my serial ports to debug
this?

Also, is there a way to kill the existing devc-8250 (for the standard 2
serial ports) before I start my own devc-8250 (as above)?

Thanks!

Neville

IRQ5 is typically assigned to a parallel port (printer).

Does your CPU board have a parallel port? Does it have a BIOS? If so check
for peripheral configuration and IRQ routing in the BIOS.

Also check whether devc-par is running, although this shouldn’t be an issue
since the docs say it doesn’t use the interrupt at all.

Rob Rutherford


“Neville Bonwit” <neville@erg.sri.com> wrote in message
news:3BF4664D.60BE155D@erg.sri.com

Well, I’ve narrowed the problem further…it seems that only one of my
ports
(the first one, at 0x0300 and IRQ 5) can’t receive. Upon repeated and
more
thorough tests, all other ports seem to be working.

Perhaps that first port has an IRQ problem (by the way, the board I’m
using uses
user-selectable IRQs)…maybe I mis-configured one of them. Thanks for
all your
help!

Bill Caroselli wrote:

Off the top of my head I’m guessing that you have an interrupt problem.
You
don’t need to successfully process an interrupt to send a byte, but you
do
need to process interrupts to receive a byte (unless you are polling).

From your first post your other ports are using ints 5, 7, 9, & 10.
Make
sure that these are all available (not conflicting with any other
hardware).
Make sure that your BIOS is mapping those interrupts to the correct bus.

Also, is the card hardware configured to use those same interrupts?
Often
these boards will map all ports through the same interrupt.


Bill Caroselli – 1(530) 510-7292
Q-TPS Consulting
QTPS@EarthLink.net

“Neville Bonwit” <> neville@erg.sri.com> > wrote in message
news:> 3BF45EF9.330D8D79@erg.sri.com> …
Ok, using Randy’s suggestions below, I made some progress, but I’m not
quite
there yet…

Using qtalk, I can type in one window (ser1) and see it in another
window(ser2).

However, if I run qtalk on any of the other 4 ports (i.e. ser3-6), I
can
only
transmit (i.e. I type in ser3 and see it in ser2, but when I type in
ser2,
I
can’t see it in ser3). In other words, it seems as if the ports on my
4-port
card are somehow unidirectional…does that make any sense? Is this a
hardware
or a software issue? How do I fix this?

Any suggestions would really help! Thanks!

Neville


Randy Aeberhardt wrote:

I use a blueheat multiport serial IO card from connecttech. They
have a
wrapper that starts devc-ser8250 with the appropriate settings. To
make
it
work, I added the following entires to my startup
/etc/rc.d/rc.local:

echo “Starting connectech multi-port serial card”
slay devc-ser8250
sleep 1
devc-blueheatw -u1 3f8,4 -u2 2f8,3 -u3 -zd /sbin/devc-ser8250
waitfor /dev/ser3
stty baud=9600</dev/ser3
waitfor /dev/ser4
stty baud=9600</dev/ser4
waitfor /dev/ser5
stty baud=9600</dev/ser5
waitfor /dev/ser6
stty baud=9600</dev/ser6
waitfor /dev/ser7
stty baud=9600</dev/ser7
waitfor /dev/ser8
stty baud=9600</dev/ser8
waitfor /dev/ser9
stty baud=9600</dev/ser9
waitfor /dev/ser10
stty baud=9600</dev/ser10

stty can be used to determine the configuration of each of your
ports.

“qtalk -m /dev/serXX” can be used to talk to an individual port.

For testing, I loop a null modem cable between two ports, run qtalk
on
each
port and make sure that what I type in one window appears in the
other
window (and vice versa).


Randy Aeberhardt
raeberhardt@tantalus-systems.com
www.tantalus-systems.com

I just added a PC/104 4-port serial port daughterboard to my QNX RTP
embedded (STD32) CPU. In my /etc/rc.d/rc.local file, I have the
following line:

devc-8250 -b 9600 0x03f8,4 0x02f8,3 -u 5 0x0300,5 0x0308,7 0x0310,9
0x0318,10 &

When my app tries to connect to ser1 and ser2 it works, but when I
try
to connect to ser5 (or any of the others, I assume) it doesn’t. I
originally tried this without the “-u 5” and got the same behavior.

My question is: Is there a program/utility I can use to see the
configuration and/or test the operation of my serial ports to debug
this?

Also, is there a way to kill the existing devc-8250 (for the
standard 2
serial ports) before I start my own devc-8250 (as above)?

Thanks!

Neville

I had similar problems which got solved when I disabled
the floppy drive and parallel port in BIOS, releasing their
IRQ:s.