Subject: Re: SCN driver
To: None <jonb@metronet.com>
From: Ian Dall <Ian.Dall@dsto.defence.gov.au>
List: port-pc532
Date: 12/03/1996 15:37:03
Jon Buller <jonb@metronet.com> writes:

  > Ian Dall <Ian.Dall@dsto.defence.gov.au> writes:
  >> process quick enough. The scn2681 family doesn't deassert RTS until
  >> the fifo is full *and* it has received the start bit for the next
  >> character. That means the other end has one character time to detect
  >> the CTS before it sends the next character.

  > Not so good.  It would be better if it would assert when the fifo
  > fills, rather than waiting for a start bit to signal.  Even better
  > if it could accept a character or two after flow control was
  > asserted.

Yep. The only way I can think of doing this is to toggle the RTS line
from software. This could be made to work except for the other problem
I mentioned - that rxintr's can be blocked out due to scsi activity
and so you couldn't rely on being able to toggle RTS in time. (And I'd
sooner have a few serial port overruns than a corrupted disk!)

The only total solution is *really* on the nose. Control RTS in
software and when the scsi IO starts its block transfer, pre-emptively
de-assert RTS for all open serial lines. I told you it stank :-).
Actually, if it weren't for the violation of modularity, this wouldn't
be so bad. A routine to write to one register in each of 4 duarts would
run pretty quick, especially if you put pre-calculated addresses and mask
values in some table. If you want to test for lines being open and
CRTSCTS then that would slow it down a bit...


Ian