From: jones@pyrite.cs.uiowa.edu (Douglas W. Jones,201H MLH,3193350740,3193382879)
Subject: KL8/E (M8650) Technical Notes
Date: Wed, 24 Feb 1993 14:05:52 GMT

==========================================================================

Technical notes for the M8650 KL8E OMNIBUS asynchronous interface board

by Douglas Jones
jones@cs.uiowa.edu

The M8650 board supports asynchronous communications at a variety of
baud rates, with either an RS232 or a current loop interface.  The board
is, effectively, equivalent to a UART chip, but it is made with SSI and
MSI chips.  Most of the options that might be programmable in a modern
UART chip are available, but they are selected by jumpers or part
changes on the board.

General geography of the M8650 board:

      \\____//           \\____//          \\____//           \\____//
 ______||__||_____________||__||____________||__||_____________||__||_____
| o  ____        o   o              o  o    _         o   o   9 7531     o|
|   |_   |                         |_|     | |   _    _  o1_  o oooo  _   |
|     |  | |||||||| ||             [_]     | |  | |  | |Ho2 |   G 42 | |  |
|     |  |  O|||O|H H|                     |_|  | |  | | o| | o oooo | |  |
|     |  |  |   | H H             o1            |_|  |_| 3|_|10 86   |_|  |
|     | B|      + | |             2 _                                     |
|     | E|                _       o| |      _    _    _    _    _     _   |
|     | R|               | |      J| |     | |  | |  | |  | |  | |   | |  |
|    _| G|               | |      o|_|     | |  | |  | |  | |  | |   | |  |
|   |____|               |_|      3        |_|  |_|  |_|  |_|  |_|   |_|  |
|                                                                         |
|    _    _    _    _     _     _     _     _    _    _    _    _     _   |
|   | |  | |  | |  | |   | |   | |   | |   | |  | |  | |  | |  | |   | |  |
|   | |  | |  | |  | |   | |   | |   | |   | |  | |  | |  | |  | |   | |  |
|   |_|  |_|  |_|  |_|   |_|   |_|   |_|   |_|  |_|  |_|  |_|  |_|   |_|  |
|                                                                         |
|    _    _    _    _     _     _     _     _    _    _    _    _     _   |
|   | |  | |  | |  | |   | |   | |   | |   | |  | |  | |  | |  | |   | |  |
|   | |  | |  | |  | |   | |   | |   | |   | |  | |  | |  | |  | |   | |  |
|   |_|  |_|  |_|  |_|   |_|   |_|   |_|   |_|  |_|  |_|  |_|  |_|   |_|  |
|                                                                         |
|    _    _    _    _     _     _     _     _  oooooo _    _  oooooo  _   |
|   | |  | |  | |  | |   | |   | |   | |   | |       | |  | |        | |  |
|   | |  | |  | |  | |   | |   | |   | |   | | F E D | |  | | C B A  | |  |
|   |_|  |_|  |_|  |_|   |_|   |_|   |_|   |_|       |_|  |_|        |_|  |
|                                              oooooo         oooooo      |
|_                __||               _||               __||              |
  |              |   |              |  |              |   |              |
  |______________|   |______________|  |______________|   |______________|

Given an M8650 board, various optional parts and jumpers must be inspected
and possibly changed prior to any use of the board.  The following sections
treat the primary options that limit the range of baud rates supported,
that select a particular rate, and that select the I/O device addresses
used for the board.

1) General baud rate considerations

      \\____//           \\____//
 ______||__||_____________||__||___________
| o  ____        o   o              o  o
|   |_   |                         |_|
|     |  | |||||||| ||             [_]<Crystal
|     |  |  O|||O|H H|                    14.418 MHz for 110 baud
|     |  |  |   | H H                     19.6608 MHz for all others.
|     | B|      + | |                     (in the latter case, the
|     | E|      ^                         board is designated M8650 YA)
|     | R|  Unless the board is to be
|    _| G|  used with a 110 baud current  The CTS MP196 19.6608 MHz
|   |____|  loop interface, this 0.47 uf  crystal, sold by DigiKey as
            capacitor may be removed.     part CTX090 works here.
            If the board is to be used
            with a current loop interface
            at over 110 baud, this must
            be halved for every doubling
            of the baud rate, but it is
            usual to just remove it.


2) Jumpering for data format               \\____//           \\____//
                                   _________||__||_____________||__||_____
                                    o  o    _         o   o   9 7531     o|
                                   |_|     | |   _    _  o1_  o oooo  _   |
                                   [_]     | |  | |  | |Ho2 |   G 42 | |  |
                                           |_|  | |  | | o| | o oooo | |  |
                 Jumper group J > o1            |_|  |_| 3|_|10 86   |_|  |
                                  2 _                    ^
         The factory installed    o| |      Jumper group H
         jumper (a zero ohm       J| |
         resistor between lugs    o|_|  The factory installed jumper (zero
         2 and 3) gives 2 stop    3     ohm resistor) between lugs 1 and 2
         bits.  Cut it and solder       gives the same baud rate for transmit
         a jumper from lug 1 to 2       and receive.  Consult DEC's drawings
         for one stop bit.              For the effects of alternatives here.


3) Jumpering for a specific baud rate.     \\____//           \\____//
                                         ___||__||_____________||__||_____
                                                      o   o   9 7531     o|
       Jumper group G gives the baud rate        _    _  o1_  o oooo  _   |
                                                |E|  | |Ho2 |   G 42 |E|  |
       Only one jumper should be present in     |2|  | | o| | o oooo |0|  |
       this group!                              |2|  |_| 3|_|10 86   |5|  |

           7 to 8  --  110 baud or 150 baud (depending on crystal)
           5 to 6  --  300 baud
           3 to 4  --  600 baud
           1 to 2  -- 1200 baud
           9 to 10 -- 2400 baud

       The following "unofficial" jumperings between pins of E05 (the IC
       in the upper right corner of the board) and the adjacent trace can
       be used for higher baud rates.  Electrically, these are all parts
       of jumper group G.                                    \\
                                                       __ __  \\
           8  --   4800 baud                         =|1  14|= ||<jumper
           9  --   9600 baud                         =|     |= || to this
           12 --  19200 baud                         =|   12|= || trace.
           14 --  38400 baud                         =| E05 |= ||
                                                     =|     |= ||
       In addition, long jumpers from pins of E22    =|    9|= ||
       to lug number 9 of jumper group G can be      =|____8|= ||
       used for even higher nonstandard rates.                 ||
       With these high rates, special short cables may
       be required!  The 314400 baud rate is pushing the limits
       of the frequency divider circuitry by cutting out most of the
       synchronous counter in E22 and shunting a 9.8 MHz signal
       directly into asynchronous circuitry rated at 10 MHz.
                                                                   9   7 5
           6  --  78600 baud    __ __                              o   o o
           2  -- 157200 baud  =|     |=     __ __       __ __
           3  -- 314400 baud  =|2    |=    |     |     |     |         G
                              =|3    |=    |     |     |     |
                              =| E22 |=    |     |     |     |     o   o o
                              =|     |=    |     |     |     |    10   8 6
                              =|6    |=    |     |     |     |
                              =|     |=    |     |     |     |
                              =|_____|=    |_____|     |_____|

4) Jumpering for the device address.

Jumper groups F, E, D, C, B and A give      _  oooooo _    _  oooooo  _   |
the device addresses for the input and     | |       | |  | |        | |  |
output ports.                              | | F E D | |  | | C B A  | |  |
                                           |_|       |_|  |_|        |_|  |
Each jumper group is physically                oooooo         oooooo      |
set up as follows:                   _||               __||              |
                                       |              |   |              |
   2  1                                |______________|   |______________|
   o  o

   |  |  factory installed zero ohm resistors for the
   O  O <default address.  Although they look like they
   |  |  go from 2 to 4 and 1 to 3, they don't!

   o  o
   4  3     The layout of the lugs in each jumper group is almost random!
            Here it is, in detail:

            - r  - t  r -      r -  r -  t -    r = receive address bit
             F    E    D        C    B    A     t = transmit address bit
            MD5  MD6  MD7      MD8  MD3  MD4    - = set bit to zero
            t +  r +  + t      + t  + t  + r    + = set bit to one

The following are popular device address jumperings:

03/04       o-o  o o  o o      o o  o-o  o-o  Note that the wiring of the
  console   |    | |  | |      | |    |    |  split lugs doesn't match the
  default!  |    | |  | |      | |    |    |  apparent layout of the zero
            o o  o o  o o      o o  o o  o o  ohm resistors for the default.

40/41       o-o  o-o  o-o      o-o  o o  o-o
  usual     |    |      |           |      |
  second    |    |      |           |      |
  TTY       o o  o o  o o      o-o  o-o  o o

65/66       o-o  o o  o-o      o o  o o  o o
  usual     |      |           | |  |    |
  serial    |      |           | |  |    |
  printer   o o  o-o  o-o      o o  o-o  o-o

The KL8E board allows arbitrary addresses for transmit and receive, but
by convention, the receive address should always be one less than
the transmit address.


5) Cables

      \\____//
 ______||__||______
| o  ____        o
|   |_   |
|     |  |    The cable plugged into the Berg connector determines whether
|     |  |    the board uses a current loop interface or an RS 232 interface.
|     |  |
|     | B|    The following connector hardware will mate with the Berg
|     | E|    connector on the board (these are DigiKey part numbers):
|     | R|
|    _| G|        ASC40G-ND  40 pin gold socket connector
|   |____|        ASSR40-ND  strain relief for above
                  ASPT40-ND  pull tab to make it easy to unplug

For an RS232 interface, you need the equivalent of DEC's BC01V cable.  This
mates with the Berg connector at one end and has a male DB25 connector at
the other end, in conformance with the RS232 specification.

The BC01V cable supports most of the RS232 standard, but most devices don't
use more than 9 of the 25 pins in the standard.  The M8650 only requires
three of these, transmitted data (txd), received data (rxd), and ground
(gnd), but it provides support for request to send (rts) and data terminal
ready (dtr) both held high.  The following cable should work with any DEC
board that expects a BC01V cable, so it provides full support for all
9 commonly used signals.

Male DB25 connector                                    Female 40 pin plug
 as seen from back                                      as seen from back

   ---1                                                      A   B
  |       14                      This jumper configures
  |   2-----------.               the M8650 for RS232 use    C   D
  |       15       \                                  \
  |   3---------.   \                                   -----E  ,F  <txd
  |       16     \   \                           ,-----|-------'
  |   4-------.   \   \                         /      |     H  ,J  >rxd
  |       17   \   \   \    ,-----cts>------   /   ,---|-------'
  |   5---------\---\---\--'                 \/   /    |     K   L
  |       18     `---\---\-------<rts------. /\  /     |
  |   6-------.       \   \                 X  \/       -----M   N
  |       19   \       \   `-----<txd------' \ /\
   ---7---------\---.   \                     X  \           P   R
          20--.  \   `---\--------gnd--------/-\--\--.
      8-----.  \  \       \                 /   \  \  \      S  ,T  >cts
          21 \  \  \       `------rxd>-----'     \  `--\-------'
      9       \  \  \                             \     \    U  ,V  <rts
          22   \  `--\-----------<dtr----------.   `-----|-----'
      10        \     \                         \        |   W   X
          23     \     `----------dsr>-----------\--.    |
      11          \                               \  \   |   Y  ,Z  >dsr
          24       `--------------rsd>---------.   \  `--|-----'
      12                                        \   \    |   AA ,BB >rsd
          25                The cable should     `---\---|-----'
      13                    be 25 feet long.          \  |   CC ,DD <dtr
                                                       `-|-----'
8 conductor modular telephone cable works very           |   EE  FF
well for this, assuming that you do not have a           |
high noise environment.                                  |   HH  JJ
                                                         |
The order of conductors shown in the cable above         |   KK  LL
provides some noise immunity by routing the data         |
lines adjacent to the ground line and by surrounding     |   MM  NN
the data by other signal lines that rarely see much      |
use but are likely to be terminated at one end or the    |   PP  RR
other.                                                   |
                                                         |   SS  SS
A DB25 solder cup connector, with individually placed    |
wires works well for the 25 pin connector.               |   UU ,VV
                                                          -----'
At the M8650 end, an insulation displacement connector
such as the DigiKey connector cited above works well with modular telephone
cable, as long as each wire is carefully pressed into the contact forks
by hand (fingernails are useful here!) and as long as appropriate strain
relief is used (the strain relief bar that comes with the connector,
augmented by a cable tie holding the end of the sheathed cable in place).

In cross section, the connector, cable and pull tab are assembled as
follows:
                                                 Free side of the connector
                                       wires
                 ___________________    ||    crimp bar
               |                 ___ \  ||    /  _______
                \        Strain |   | | || -- __|       | Socket
                 \       relief |   | | |||  |__|       | body
                  \              ---  | || -- |||_______|
                    ------------------  ||____||
             Pull tab                    ------   Board side of the connector


   \\        \\____//
    \\  ______||__||______
     \\| o  ____        o
      \\  _|_   |
  ---------| |  |    This shows the finished cable installed on the M8650
 |         | |  |    card.  Note that the pull tab extends beyond the card
 |         H |  |    edge, and note that the cable has been routed through
 |         H | B|    the hollow of the pull tab to a cable-tie at location
 |         H | E|    EE that binds the end of the cable sheath to the
  ---------H | R|    strain relief bar.  The column of H characters shows
       | EEH_| G|    the route of the unsheathed conductors up the side
       |  -|____|    of the connector until they disappear between the
                     strain relief and the crimp bar.  Note that the strain
                     relief has one slightly hollow side.  This should face
                     the PC board to allow clearance for the cable tie
                     between the board and the connector.


6) Null Modems

When used with the BC01V cable, the M8650 conforms to the RS232
specification by having a male 25 pin connector on the far end, configured
as DTE (data terminal equipment).  Assuming the correct baud rate, this
may be plugged into any DCE (data communications equipment) connector,
since these are supposed to be female connectors.

Modems are usually configured as DCE devices, but essentially all other
RS232 devices such as terminals or other computers are usually configured
as DTE devices.  To connect one DTE device to another, for example, to
connect your M8650 to a terminal or another M8650, a null modem is required.

DEC's documentation for the M8650 specifies the H312 null modem.  INMAC
sells an H312A equivalent as part number H298-2, for $25.  You can build
one as follows from a pair of female DB25 connectors, a pair of 1.5 inch
4-40 threaded standoffs, and a few scraps of wire and screws.

           1--------------------------1        Protective ground
      14                         14
           2---------. .--------------2      < Transmitted data (txd)
      15              X          15
           3---------' `--------------3      > Received data (rxd)
      16                         16
   --------4                          4---   < Request to send (rts)
  |   17                         17       |
   --------5--------.   ,-------------5---   > Clear to send (cts)
      18             \ /         18
   --------6          X               6---   > Data set ready (dsr)
  |   19             / \         19       |
  |        7--------/---\-------------7   |    Signal ground
  |   20-----------/-. ,-\-------20       |  < Data terminal ready (dtr)
  |        8------'   X   `-----------8   |  > Received signal detect (rsd)
  |   21             / \         21       |
  |        9        /   \             9   |
   ---22-----------'     `-------22-------   > Ring indicator (rng)
           10                         10
      23                         23
           11                         11  (Note that in this wiring diagram,
      24                         24        all places where 4 wires seem to
           12                         12   meet are really places where two
      25                         25        wires cross without touching!)
           13                         13

The theory behind this is as follows:

 a) txd from one device becomes rxd to the other.
 b) rts from one device becomes cts for that device and rsd for the other.
 c) dtr from one device becomes dsr and rng for the other.

Parts b and c only really matter for devices that use EIA flow control.
Such devices lower dtr to stop the flow of incoming data, and they await
dsr before they send outgoing data.  In addition, they raise rts when
ready to transmit, and they await cts before transmitting.

