ed1k <ed1k@humber.bay> wrote:
ek > In article <3FCC44FD.4010008@overbot.com>, nagle@overbot.com says…
We have a 500,000 baud serial port board from Sealevel
Systems, which we are are attempting to run in a
PC/104 stack. This device has 63-byte FIFOs, but it
looks like an ordinary 8250-compatible device.
We need to receive data from a real-time device that blasts
data at us at 500,000 baud. Almost all the traffic is
receive; we send only at startup. There’s no software flow
control.
We’ve started up the serial driver with
devc-ser8250 -T14 -t14 -I25000 -u3 -c 16000000/16 3e8,10 &
That appears to work. But the interrupt load is heavy.
Are those good settings? Can we make
the -t value bigger than 14, since we have a bigger hardware
FIFO?
ek > No. To turn on 64 byte FIFO you probably need a special trick which depends on chip you are actually
ek > using and devc-ser8250 is unaware of something special and more powerful than 16550 UART. Interrupt
ek > load should be heavy on such a speed. Actually, if you were able to set up 64 byte depth FIFO, you
ek > would get interrupts less often fired up, but processing (reading whole chunk of data byte by byte)
ek > inside interrupt would become more heavy, so interrupt handler will take much more time to execute.
ek > I agree it could give some advantage, but not too much.
ek > Eduard.
Yes, the number of bytes to transfer would be the same. The savings
are in fewer task swaps due to fewer interrupts. Yes, it is very worth
while doing.
The only advice I could give is to go grab the source to devc-8250,
find the relivant parts and modify them to work better with your chip.
Is the -I value reasonable?
[Why 500,000 baud. The SICK LMS laser rangefinder emits 500,000 baud
serial data. Unclear why they picked that baud rate. They sell
special ISA and PCI boards for that speed, but we’re using
a PC/104 stack.]
John Nagle
Team Overbot
–
Bill Caroselli – Q-TPS Consulting
1-(708) 308-4956 <== Note: New Number
qtps@earthlink.net