ts-7000
[Top] [All Lists]

[ts-7000] Accessing serial ports on pc104 expansion board with TS7800

To:
Subject: [ts-7000] Accessing serial ports on pc104 expansion board with TS7800
From: "bill.whiteley" <>
Date: Sat, 07 Feb 2009 19:11:22 -0000
I am hoping someone can help me troubleshoot an expansion board that I
added to the TS7800. The basic problem is that it has serial ports on
it and I am having trouble accessing them. It is a GPS module with a
UART interface. I can configure the base address and IRQ manually
through switches on the board and then I am supposed to be able to
access the GPS through a /dev/tty device. The uart on the GPS is a
xr16c2850 but is 16550A compatible. 

To start off I had these settings:

:eclipse# setserial -g /dev/ttyS*
/dev/ttyS0, UART: 16550A, Port: 0x0000, IRQ: 3
/dev/ttyS1, UART: 16550A, Port: 0x0000, IRQ: 4
/dev/ttyS2, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS3, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS4, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS5, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS6, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS7, UART: unknown, Port: 0x0000, IRQ: 0

:eclipse# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xF1012000 irq:3 tx:2069 rx:105 RTS|CTS|DTR|DSR|CD
1: uart:16550A mmio:0xF1012100 irq:4 tx:53 rx:0 RTS|DTR|DSR|CD
2: uart:unknown port:00000000 irq:0
3: uart:unknown port:00000000 irq:0
4: uart:unknown port:00000000 irq:0
5: uart:unknown port:00000000 irq:0
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0


I then added the module and ended up with these settings:

:eclipse# modprobe ts7800_isa16550

:eclipse# setserial -g /dev/ttyS*
/dev/ttyS0, UART: 16550A, Port: 0x0000, IRQ: 3
/dev/ttyS1, UART: 16550A, Port: 0x0000, IRQ: 4
/dev/ttyS2, UART: 16850, Port: 0x0000, IRQ: 70
/dev/ttyS3, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS4, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS5, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS6, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS7, UART: unknown, Port: 0x0000, IRQ: 0

:eclipse# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xF1012000 irq:3 tx:3178 rx:150 RTS|CTS|DTR|DSR|CD
1: uart:16550A mmio:0xF1012100 irq:4 tx:53 rx:0 RTS|DTR|DSR|CD
2: uart:XR16850 mmio:0xEE0003E8 irq:70 tx:0 rx:0
3: uart:unknown port:00000000 irq:0
4: uart:unknown port:00000000 irq:0
5: uart:unknown port:00000000 irq:0
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0

The interesting thing to note is that it seems that the module found
the uart on my GPS board because it identified it as a XR16850. It is
also interesting that it assigned it irq number 70, which my gps board
doesn't support. So I looked at the current interrupt assignments: 

:eclipse# cat /proc/interrupts 
           CPU0
  0:      27289          mv  Timer Tick
  3:        578          mv  serial
  4:          6          mv  serial
 12:          0          mv  ehci_hcd:usb2
 17:          0          mv  ehci_hcd:usb1
 21:          2          mv  eth0
 29:          0          mv  mvSata
 80:          0          mv  tsuart_uarts
 81:          0          mv  tsuart_uarts
 82:          0          mv  tsuart_uarts
 83:          0          mv  tsuart_uarts
 84:          0          mv  tsuart_uarts
 85:          0          mv  tsuart_uarts
 86:          0          mv  tsuart_uarts
 87:          0          mv  tsuart_uarts
 88:          0          mv  tsuart_uarts
 89:          0          mv  tsuart_uarts
Err:          0

I then picked an interrupt supported by the GPS board and changed the
device irq using setserial. I also made sure that the address selected
through switches on the GPS board was set to 0x3E8 and it was.

:eclipse# setserial /dev/ttyS2 irq 7

When I read and write to /dev/ttyS2 in my application it doesn't throw
any errors. The read always returns 0 characters received and the
write always returns the number of characters that I intended to send,
however the tx and rx fields never change int /proc/tty/driver/serial:

:eclipse# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xF1012000 irq:3 tx:4658 rx:212 RTS|CTS|DTR|DSR|CD
1: uart:16550A mmio:0xF1012100 irq:4 tx:53 rx:0 RTS|DTR|DSR|CD
2: uart:XR16850 mmio:0xEE0003E8 irq:7 tx:0 rx:0 <-----HERE

So I doubt that I am actually sending or receiving anything. 

Does any one have experience with getting serial ports to work on
expansion boards or have any idea what I am missing??

Thanks.

Bill

















------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU