[comp.sys.sun] TTY Sun terminal Crashes: WANTED fix if available

elel@cbnewsd.att.com (eric.edberg) (01/12/90)

Our Sun hosts (or rather some of them) are connected to ASCII terminals
rather than the typical Sun console.  A well known problem occures if the
BREAK key is depressed or the terminal is powered down: the system will
crash.  At one time I heard someone talk about a fix (circuit board) that
might prevent the crashes from occuring.  Does such a device exist ??  Is
there really a solution to this problem ??  Just checking for solutions.
Please post results as many would be interested.

Eric Edberg
att!ihlpa!elel
att!iexist!elel
(708)713-5231

beau@uunet.uu.net (01/30/90)

In article <4335@brazos.Rice.edu> elel@cbnewsd.att.com (eric.edberg) writes:
>X-Sun-Spots-Digest: Volume 9, Issue 10, message 17 of 22
>
>Our Sun hosts (or rather some of them) are connected to ASCII terminals
>rather than the typical Sun console.  A well known problem occures if the
>BREAK key is depressed or the terminal is powered down: the system will
>crash.  At one time I heard someone talk about a fix (circuit board) that
>might prevent the crashes from occuring.  Does such a device exist ??  Is
>there really a solution to this problem ??  Just checking for solutions.
>Please post results as many would be interested.

The system does NOT crash.  The BREAK key on an ASCII console, powering UP
(not down) an ASCII console, and plugging IN the Sun keyboard (not
unplugging) all have the same effect.  These actions cause the serial
input chip to detect a framing error on the serial input line, and report
that to the kernel with an interrupt.

The serial port driver for the console serial port treats a framing error
as equivalent to the "L1-a" combination on the Sun keyboard.  The driver
aborts Unix (SunOS) and transfers control to the PROM monitor.  (The
"L1-a" combination is actually detected by the keyboard driver, one level
higher.)

At that point, one can continue the system using the "c" PROM monitor
command.

While it's easy to recover from the situation, the power-on part can be
annoying.  One "fix" for that is to install a small resistor (about 4.5k,
1/4-watt) between ground and receive data pin inside the terminal cable
connector, at the CPU end of the cable.  This "fix" also works to
eliminate the noise that causes garbage logins to appear, when a very long
terminal cable runs out to a powered-down ASCII terminal.  -- 

Beau James				beau@Ultra.COM
Ultra Network Technologies		{sun,ames}!ultra.com!beau

perl@uunet.uu.net (Robert Perlberg) (02/02/90)

The circuit to keep a Sun from halting when the console generates a break
accidentally (like powering the terminal off or disconnecting the cable)
was described in sun-spots v5n45, by Malcolm Harper
<mkh%prg.oxford.ac.uk@nss.cs.ucl.ac.uk>, way back in Sep. 87.  If our
moderator is willing to send it out again to everyone rather than having
interested parties retrieve it from the archives, I have appended it to
the end of this message.  I have never tried this circuit.

Steve Jay                       domain: shj@ultra.com
Ultra Network Technologies	Internet: ultra!shj@ames.arc.nasa.gov
101 Daggett Drive               uucp: ...ames!ultra!shj
San Jose, CA 95134		
408-922-0100

>Date:    Fri, 25 Sep 87 17:23:06 bst
>From:    Malcolm Harper <mkh%prg.oxford.ac.uk@nss.cs.ucl.ac.uk>
>Subject: Re: Sun-3 ASCII console problem (2)

The circuit we use to prevent the Watchdog Reset which normally happens when
the terminal is unplugged from the Sun Console port (ttya/ttyb) is as follows.

To terminal                                                             To Sun

pin 3 <----:-----------------------------------------------------------< pin 2
           |    ________      _________________         ____________
           |   |        |    |                 |       | 2200uf 16v |
           :---| 470ohm |----| <- IN4002 diode |---:---| capacitor  |--- pin 7
               |________|    |_________________|   |   |____________|
                ________      _________________    |    -ve      +ve
               |        |    |                 |   |
           :---| 470ohm |----| <- IN4002 diode |---:
           |   |________|    |_________________|   |    Types of diodes and
           |    ________      ___________________  /    transistor, and values
           |   |        |   b|                   |/c    of capacitor, are not
pin 2 >----+---| 4K7ohm |----| BC212L transistor |      critical.
           |   |________|    |___________________|\e
           |                  _________________    \
           |                 |                 |   |
           :-----------------| IN4002 diode -> |---:-------------------> pin 3
           |                 |_________________|
           |    ________      _________________    
           |   |        |    |                 |   
           :---| 22Kohm |----| IN4002 diode -> |----------------------- pin 25
               |________|    |_________________|   

pin 7 ------------------------------------------------------------------ pin 7

We use only three wire connections, so connect pins 5, 6, 8 and 20
together at the Sun end, and appropriate control line connections at the
terminal end.  This circuit is permanently connected to the Sun end; any
disconnection must be at the terminal end.

If the terminal is unplugged, the transistor is turned on by the negative
reference voltage present at pin 25 of the Sun serial port, and hence
pulls pin 3 of the Sun port negative.  This causes the Sun to believe
there is still a terminal plugged in.

Acknowledgements to Andrew Newman and Paul Williams who designed and built it.