From: jones@pyrite.cs.uiowa.edu Subject: KL8JA (M8655) notes Date: Mon, 15 Mar 1993 22:46:07 GMT Technical notes for the M8655 KL8-JA OMNIBUS asynchronous interface board by Douglas Jones jones@cs.uiowa.edu The M8655 board supports asynchronous communications at a variety of baud rates, with either an RS232 or a current loop interface. The board uses a UART chip, but most of the options that might be programmable in a more modern system are selected by jumpers on the board. In most respects, the M8655 board and the M8650 board are interchangable, but the M8655 can generate and detect parity, and it can support data widths from 5 to 8 bits, while the M8650 can support higher nonstandard baud rates and is thus more appropriate for high speed PDP-8 to PDP-8 links. There's also no way to send a break on an M8655, while this can be sent on an M8650 by jamming data into the transmit buffer while it is transmitting. General geography of the M8655 board: \\____// \\____// \\____// \\____// ______||__||_____________||__||____________||__||_____________||__||_____ | o ____ _ o _o _ o _o _ _ o _ o _ _ _ _ _ o| | |_ | | | | | | | o : : | | | | ..| | | | || | | | | | | | | | FIL : : | | | | | | | | | CAN | | | | |_| |_| |_| o :_: |_| |_| ..|_| |_| _ _ _ _ || | | | _ _ _ _ _ _ _ _ _ ___ | | | B| | | | | | | | | | | | | | | | | | | | | | | | E| | | | | | | | | | | | | | | | | | | |OSC| | | | R| .o |_| |_| |_| |_| |_| |_| |_| |_| |_| |___| | | _| G| TTY _ _ _ _ _ _ _ _ _ _ | | |____| .o | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . | | | | | | |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| | | . | | _ _ _ _ _ _ _ _ _ _ | | | | | | | | | | | | | | | | | | : : | | | | | | | | | | | | | | | | | | ____ | | : : | | | | |_| |_| |_| |_| |_| |_| |_| | | |_| :_: |_| | | _ _ _ _ _ _ _ | | _ ___ ___ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o o | | | | | | | | |_| |_| |_| |_| |_| |_| |_| | | NP SB|_| |___| |___| | | _ _ _ _ _ _ _ | | o o _ XMIT RCV | | | | o | | | | | | | | | | | | |____| o o o| | | | | | | | | |SWD| | | | | | | | | | | | EVN 1 2| | | | | | | | |_|.o |_| |_| |_| |_| |_| |_| o o o|_| |_| |_| | | W3 | |_ . __|| _|| __|| | | | | | | | | | |______________| |______________| |______________| |______________| Given an M8655 board, various optional jumpers and switch settings 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) Jumpering to set-up basic communications options. \\____// \\____// \\____// \\____// ______||__||_____________||__||____________||__||_____________||__||_____ | o ____ _ o _o _ o _o _ _ o _ o _ _ _ _ _ o| | |_ | | | | | | | o : : | | | | ..| | | | || | | | | | | | | | FIL : : | | | |W5W2 | | | | CAN | | | | |_| |_| |_| o :_: |_| |_| ..|_| |_| _ _ _ _ || | | | _ | | B| | | ^ ^^ | | E|W1 | | A jumper between A zero ohm resistor or | | R| .o |_| these split lugs wire jumper should be | _| G| TTY will insert 4 inserted at either W2 | |____| .o nulls after each or W5, but not both. linefeed. (This This selects the highest ^ is needed for the baud rate the board will A jumper between the DEC VT05 at 2400 support. TTY split lugs or baud at 60 Hz. a zero ohm resistor This is a poor W5 (left) = 19200 baud at W1 is required design; it does W2 (right) = 9600 baud for 110 baud current not give enough loop operation, both delay at 50 Hz, The originl GI UART could must be absent for and it is overkill only do 9600 baud. The higher baud rate at 600 and 1200 SMC COM 2017 can do both. current loop service. baud.) 2) Jumpering for error reporting on received data. | _ _ The split lugs marked SWD are in parallel with the | | | o | | jumper location W3. If no jumper is present in either | | |SWD| | location, the M8655 KL8JA board will look, to software, | |_|.o |_| exactly like an M8650 KL8E board. | W3 |_ . __| If a jumper is present at this location, the board | | recognizes a new software option allowing reporting |______________| of the UART status word with each character read. The command to turn this option on and off is: KIE (6xx5) -- Bit 11 of AC is the interrupt enable bit, as usual; Bit 10 of AC is the status word report reqest bit. If the status report request bit is set, the data returned in AC by the KRS (6xx4) and KRB (6xx6) commands is formatted as follows: bit[0] -- error detected. bit[1] -- parity error detected in this character bit[2] -- framing error detected, this might not be a character bit[3] -- overrun error detected, previous character lost bits[4-11] -- the data read (as usual) 3) Jumpering for data format: _ _ _ | | | | | | | | There are 5 pairs of split lugs and one zero ohm | | . | | | | | resistor or jumper wire in this group. In general, |_| W4 |_| |_| | if none of these are jumpered, the board will behave . | like an M8650. _ _ _ | | | : : | | | SB -- number of stop bits ____ | | : : | | | W4 -- jumper in parallel with SB lugs | | |_| :_: |_| | jumper present - 1 stop bit | | _ ___ ___ | jumper absent - 2 stop bits | | | | | | | | | | | o o | | | | | | | NP -- parity generation and checking | | NP SB|_| |___| |___| | present - 1 parity bit. | | o o _ XMIT RCV | absent - no parity bits. |____| o o o| | | | | | | EVN 1 2| | | | | | | EVN -- sense of parity bit o o o|_| |_| |_| | absent - parity = odd(bitcount(data) | present - parity = even(bitcount(data) __|| | | | | NB1,NB2 -- number of data bits |______________| |______________| 0 0 8 1 0 7 0 = jumper absent 0 1 6 1 = jumper present 1 1 5 4) Switch settings: ___ ___ | The two DIP switches are divided logically into 2 groups of | | | | | switches to control the baud rate and device addresses. | | | | | |___| |___| | The bottom 6 switches on each DIP switch cluster set the XMIT RCV | device addresses. The left switches handle the transmit | | | | | address, the right handles the receive address. Both | | | | | switch groups have the same format: |_| |_| | | | ==- | MD3 MSB of device address | | | ==- | MD4 | | | ==- | MD5 For all bits, |______________| | ==- | MD6 ON = 1, OFF = 0 | ==- | MD7 _______ _______ | ==- | MD8 LSB of device address | | | | |_______| | ==- |B3 | ==- |B1 | ==- |R=150 | ==- |B2 The 3 baud rate bits, B1, B2, B3 give the baud rate: B1 B2 B3 0 0 0 = 110 baud As a special case, if the 0 0 1 = 150 baud R=150 switch is on, the 0 1 0 = 300 baud On = 1, Off = 0 receive baud rate is set 0 1 1 = 600 baud to 150 baud. Normally, 1 0 0 = 1200 baud the transmit and receive 1 0 1 = 2400 baud baud rates are the same. 1 1 0 = 4800 baud 1 1 1 = 9600 or 19200 baud (see part 1, jumpers W2 and W5) 5) Discrete crystal versus integrated oscillator. \\____// ______||__||_____ As originally designed, the M8655 board used a large o _ _ _ _ _ o| crystal can mounted over the large pad in the upper | | || right corner of the board. This was not a satisfactory | | | CAN | design, and DEC abandoned this can in later revisions |_| _ _ _ _ || of the board. Instead, the integrated circuit at position _ ___ | E4 (shown at OSC here) was replaced with a CTS 5.0688 MHZ | | | | | oscillator (DigiKey part CTX110). This requires that the | | |OSC| | circuit traces connecting to pins 1 and 8 of E4 be cut |_| |___| | (note that pins 7 and 14 were unused), and it requires that | discrete components immediately above, below and to each side of E4 be removed (be careful not to remove the power supply decoupling capacitor below E4). 3 jumpers must then be installed: From pin 7 to ground (the left end of a nearby decoupling capacitor). From pin 14 to +5 (the right end of a nearby decoupling capacitor). From pin 13 to pin 8. All these jumpers should be 30 gauge wire-wrap wire so that there is room to put the jumper in the same hole as other component leads. If your oscillator has a metal can, mount it with a plastic shim (DigiKey K266-ND, an OK Socket-Wrap ID tag, should work) so the case doesn't short to any traces on the board below it. 6) 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 (DigiKey part numbers for AMP parts): | | 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. For a current loop interface, you need a 7008360 cable with a Mate-N-Lock connector at the far end.