Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 | <html lang="en"><head> | |
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 | ||
11 | <title>Doug Jones's KL8JA Board Documentaiton</title> | |
12 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
13 | <meta name="Author" content="Douglas W. Jones"> | |
14 | <meta name="Language" content="English"> | |
15 | <meta name="editor" content="/usr/bin/vi"> | |
16 | ||
17 | ||
18 | ||
19 | <style type="text/css"> | |
20 | BODY { margin-left: 3%; margin-right: 3%; } | |
21 | H2.SQUAT { margin-top: 0.5em; margin-bottom: 0.4em; } | |
22 | H3.SQUAT { margin-top: 0.4em; margin-bottom: 0.3em; } | |
23 | H4.SQUAT { margin-top: 0.3em; margin-bottom: 0.2em; } | |
24 | P.SQUAT { margin-top: 0.3em; margin-bottom: 0.2em; } | |
25 | UL.SQUAT { margin-top: 0.3em; margin-bottom: 0.2em; } | |
26 | EM.O { font-style: normal; text-decoration: overline; } | |
27 | EM.U { font-style: normal; text-decoration: underline; } | |
28 | EM.S { font-style: normal; text-decoration: line-through; } | |
29 | A { text-decoration: none; } | |
30 | A.I { font-style: italic; text-decoration: none; } | |
31 | TD.BOX { border: solid; border-width: thin; } | |
32 | TD.SHADE { background: #CCCCCC; } | |
33 | CAPTION { padding-top: 6px; } | |
34 | DIV.HEADBOX { border: groove; border-width: 2px; background: #F0F0E0; padding-top: 1%; padding-bottom: 1%; padding-left: 5px; } | |
35 | DIV.HEADBOX P { margin-top: 0.8em; margin-bottom: 0.8em; } | |
36 | DIV.HEADBOX H1 { margin-top: 0.2em; margin-bottom: 0.4em; } | |
37 | DIV.HEADBOX H2 { margin-top: 0.2em; margin-bottom: 0.4em; } | |
38 | DIV.P25 { border: none; padding-left: 25%; } | |
39 | DIV.INVISIBLE { font-size: 3px; letter-spacing: -5px; color: white; background: white; } | |
40 | DIV.INVISIBLE A:link { color: white; } | |
41 | DIV.INVISIBLE A:visited { color: white; } | |
42 | DIV.INVISIBLE A:active { color: white; } | |
43 | DIV.invisible A:active { color: white; background: white; } | |
44 | </style> | |
45 | </head><body link="#0000cc" text="#000000" vlink="#880088" bgcolor="#ffffff" alink="#880088"> | |
46 | <div class="HEADBOX"> | |
47 | ||
48 | ||
49 | <h1>Notes on the KL8JA Asynchronous Interface</h1> | |
50 | ||
51 | ||
52 | <p> | |
53 | ||
54 | Part of <a href="http://www.cs.uiowa.edu/%7Ejones/pdp8/hard8e/index.html"> | |
55 | ||
56 | the PDP-8/E Hardware Documentation | |
57 | ||
58 | </a> | |
59 | <br> | |
60 | ||
61 | ||
62 | ||
63 | by | |
64 | <a href="http://www.cs.uiowa.edu/%7Ejones/">Douglas W. Jones</a> | |
65 | ||
66 | <br> | |
67 | ||
68 | ||
69 | <a href="http://www.uiowa.edu/"> | |
70 | T<small>HE</small> U<small>NIVERSITY</small> | |
71 | <small>OF</small> I<small>OWA</small></a> | |
72 | <a href="http://www.cs.uiowa.edu/">Department of Computer Science</a> | |
73 | ||
74 | </p> | |
75 | ||
76 | ||
77 | ||
78 | </div> | |
79 | ||
80 | ||
81 | ||
82 | ||
83 | <p> | |
84 | The M8655 KL8-JA OMNIBUS interface board supports asynchronous | |
85 | communications at a variety of baud rates, with either an RS232 or a | |
86 | current loop interface. Unlike the earlier KL8E, the board uses a | |
87 | UART chip, but most of the options that might be programmable in a | |
88 | more modern system are still selected by jumpers on the board. | |
89 | </p><p> | |
90 | In most respects, the M8655 board and the M8650 board are interchangable, | |
91 | but the M8655 can generate and detect parity, and it can support data | |
92 | widths from 5 to 8 bits, while the M8650 can support higher nonstandard | |
93 | baud rates and is thus more appropriate for high speed PDP-8 to PDP-8 | |
94 | links. There's also no way to send a break on an M8655, while this can | |
95 | be sent on an M8650 by jamming data into the transmit buffer while it is | |
96 | transmitting. | |
97 | </p><p> | |
98 | The following figure gives the General geography of the M8655 board: | |
99 | </p><pre> \\____// \\____// \\____// \\____// | |
100 | ______||__||_____________||__||____________||__||_____________||__||_____ | |
101 | | o ____ _ o _o _ o _o _ _ o _ o _ _ _ _ _ o| | |
102 | | |_ | | | | | | | o : : | | | | ..| | | | || | |
103 | | | | | | | | | | FIL : : | | | | | | | | | CAN | | |
104 | | | | |_| |_| |_| o :_: |_| |_| ..|_| |_| _ _ _ _ || | |
105 | | | | _ _ _ _ _ _ _ _ _ ___ | | |
106 | | | B| | | | | | | | | | | | | | | | | | | | | | | |
107 | | | E| | | | | | | | | | | | | | | | | | | |OSC| | | |
108 | | | R| .o |_| |_| |_| |_| |_| |_| |_| |_| |_| |___| | | |
109 | | _| G| TTY _ _ _ _ _ _ _ _ _ _ | | |
110 | | |____| .o | | | | | | | | | | | | | | | | | | | | | | |
111 | | | | | | | | | | | | | | | | | | . | | | | | | |
112 | | |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| | | |
113 | | . | | |
114 | | _ _ _ _ _ _ _ _ _ _ | | |
115 | | | | | | | | | | | | | | | | | | : : | | | | |
116 | | | | | | | | | | | | | | | | ____ | | : : | | | | |
117 | | |_| |_| |_| |_| |_| |_| |_| | | |_| :_: |_| | | |
118 | | _ _ _ _ _ _ _ | | _ ___ ___ | | |
119 | | | | | | | | | | | | | | | | | | | | | | | | | | |
120 | | | | | | | | | | | | | | | | | | o o | | | | | | | | |
121 | | |_| |_| |_| |_| |_| |_| |_| | | NP SB|_| |___| |___| | | |
122 | | _ _ _ _ _ _ _ | | o o _ XMIT RCV | | |
123 | | | | o | | | | | | | | | | | | |____| o o o| | | | | | | | |
124 | | | |SWD| | | | | | | | | | | | EVN 1 2| | | | | | | | |
125 | | |_|.o |_| |_| |_| |_| |_| |_| o o o|_| |_| |_| | | |
126 | | W3 | | |
127 | |_ . __|| _|| __|| | | |
128 | | | | | | | | | | |
129 | |______________| |______________| |______________| |______________| | |
130 | </pre> | |
131 | Given an M8655 board, various optional jumpers and switch settings must be | |
132 | inspected and possibly changed prior to any use of the board. The | |
133 | following sections treat the primary options that limit the range of baud | |
134 | rates supported, that select a particular rate, and that select the I/O | |
135 | device addresses used for the board. | |
136 | <p> | |
137 | </p><h2>Basic Communications Options</h2> | |
138 | <pre> \\____// \\____// \\____// \\____// | |
139 | ______||__||_____________||__||____________||__||_____________||__||_____ | |
140 | | o ____ _ o _o _ o _o _ _ o _ o _ _ _ _ _ o| | |
141 | | |_ | | | | | | | o : : | | | | ..| | | | || | |
142 | | | | | | | | | | FIL : : | | | |W5W2 | | | | CAN | | |
143 | | | | |_| |_| |_| o :_: |_| |_| ..|_| |_| _ _ _ _ || | |
144 | | | | _ | |
145 | | | B| | | | | | |
146 | | | E|W1 | | Null after Max baud | |
147 | | | R| .o |_| line feed. rate | |
148 | | _| G| TTY | |
149 | | |____| .o --- 110 baud | |
150 | </pre> | |
151 | The TTY jumper position (sometimes bridged by a zero-ohm resistor) is required | |
152 | for use at 110 baud with a current loop interface. At higher rates, this | |
153 | jumper (or zero-ohm resistor) should be removed. | |
154 | <p> | |
155 | The FIL jumper position, if jumpered, causes 4 nulls to be inserted after | |
156 | every linefeed transmitted. This provides the correct delay for the DEC VT05 | |
157 | terminal running at 2400 baud when powered from a 60 Hz line, and the wrong | |
158 | delay at almost any other baud rate or power environment for almost any | |
159 | terminal that requires a delay after linefeed. | |
160 | </p><p> | |
161 | A zero ohm resistor or wire jumper should be inserted at either W2 | |
162 | or W5, but not both. This selects the highest baud rate the board will | |
163 | support. | |
164 | </p><pre> W5 (left) - 19200 baud | |
165 | W2 (right) - 9600 baud | |
166 | </pre> | |
167 | The originl GI UART could only handle 9600 baud; the SMC COM 2017 UART | |
168 | used on later boards can handle either baud rate. | |
169 | <p> | |
170 | ||
171 | </p><h2>Jumpering for Error Reporting</h2> | |
172 | ||
173 | <pre>| _ _ | |
174 | | | | o | | | |
175 | | | |SWD| | | |
176 | | |_|.o |_| | |
177 | | W3 | |
178 | |_ . __| | |
179 | | | | |
180 | |______________| | |
181 | </pre> | |
182 | The split lugs marked SWD are in parallel with the jumper location W3. | |
183 | If no jumper is present in either location, the M8655 KL8-JA board will | |
184 | look, to software, exactly like an M8650 KL8E board. | |
185 | <p> | |
186 | If a jumper is present at this location, the board recognizes a new | |
187 | software option allowing reporting of the UART status word with each | |
188 | character read. The command to turn this option on and off is: | |
189 | </p><pre> KIE (6xx5) -- Bit 11 of AC is the interrupt enable bit, as usual; | |
190 | Bit 10 of AC is the status word report reqest bit. | |
191 | </pre> | |
192 | If the status report request bit is set, the data returned in AC by the | |
193 | KRS (6xx4) and KRB (6xx6) commands is formatted as follows: | |
194 | <pre> bit[0] -- error detected. | |
195 | bit[1] -- parity error detected in this character | |
196 | bit[2] -- framing error detected, this might not be a character | |
197 | bit[3] -- overrun error detected, previous character lost | |
198 | bits[4-11] -- the data read (as usual) | |
199 | </pre> | |
200 | ||
201 | <h2>Jumpering For Data Format</h2> | |
202 | ||
203 | <pre> _ _ _ | | |
204 | | | | | | | | | |
205 | | | . | | | | | | |
206 | |_| W4 |_| |_| | | |
207 | . | | |
208 | _ _ _ | | |
209 | | | : : | | | | |
210 | ____ | | : : | | | | |
211 | | | |_| :_: |_| | | |
212 | | | _ ___ ___ | | |
213 | | | | | | | | | | | |
214 | | | o o | | | | | | | | |
215 | | | NP SB|_| |___| |___| | | |
216 | | | o o _ XMIT RCV | | |
217 | |____| o o o| | | | | | | | |
218 | EVN 1 2| | | | | | | | |
219 | o o o|_| |_| |_| | | |
220 | | | |
221 | __|| | | |
222 | | | | | |
223 | |______________| |______________| | |
224 | </pre> | |
225 | There are 5 pairs of split lugs and one zero ohm | |
226 | resistor or jumper wire in this group. In general, | |
227 | if none of these are jumpered, the board will behave | |
228 | like an M8650. | |
229 | <dl> | |
230 | <dt>SB controls the number of stop bits. | |
231 | </dt><dt>W4 is a zero-ohm resistor in parallel with SB. | |
232 | </dt><dd> If either jumper SB or W4 is present, 1 stop bit will be appended to | |
233 | each character transmitted. | |
234 | <pp> | |
235 | </pp></dd><dt>NP controls parity generation and checking. | |
236 | </dt><dd> If the jumper is present, a parity bit will be appended to transmitted | |
237 | data and inspected on received data. | |
238 | <pp> | |
239 | </pp></dd><dt>EVN controls the sense of the parity bit. | |
240 | </dt><dd> If the jumper is present, even parity will be used; otherwise, odd parity | |
241 | will be used. | |
242 | <pp> | |
243 | </pp></dd><dt>NB1 and NB2 control the number of data bits per character. | |
244 | </dt><dd> | |
245 | <pre>NB1,NB2 | |
246 | 0 0 8 | |
247 | 1 0 7 0 = jumper absent | |
248 | 0 1 6 1 = jumper present | |
249 | 1 1 5 | |
250 | </pre> | |
251 | </dd></dl> | |
252 | ||
253 | <h2>Switch Settings</h2> | |
254 | ||
255 | <pre> ___ ___ | | |
256 | | | | | | | |
257 | | | | | | | |
258 | |___| |___| | | |
259 | XMIT RCV | | |
260 | | | | | | | |
261 | | | | | | | |
262 | |_| |_| | | |
263 | | | |
264 | | | | |
265 | | | | |
266 | |______________| | |
267 | </pre> | |
268 | The two DIP switches are divided logically into 2 groups of | |
269 | switches to control the baud rate and device addresses. | |
270 | The bottom 6 switches on each DIP switch cluster set the | |
271 | device addresses. The left switches handle the transmit | |
272 | address, the right handles the receive address. Both | |
273 | switch groups have the same format: | |
274 | <pre> | ==- | MD3 MSB of device address | |
275 | | ==- | MD4 | |
276 | | ==- | MD5 For all bits, | |
277 | | ==- | MD6 ON = 1, OFF = 0 | |
278 | | ==- | MD7 | |
279 | | ==- | MD8 LSB of device address | |
280 | |_______| | |
281 | </pre> | |
282 | The 3 baud rate bits, B1, B2, B3 give the baud rate: | |
283 | <pre> _______ _______ | |
284 | | | | | | |
285 | | ==- |B3 | ==- |B1 | |
286 | | ==- |R=150 | ==- |B2 | |
287 | ||
288 | B1 B2 B3 | |
289 | 0 0 0 = 110 baud | |
290 | 0 0 1 = 150 baud | |
291 | 0 1 0 = 300 baud On = 1, Off = 0 | |
292 | 0 1 1 = 600 baud | |
293 | 1 0 0 = 1200 baud | |
294 | 1 0 1 = 2400 baud | |
295 | 1 1 0 = 4800 baud | |
296 | 1 1 1 = 9600 or 19200 baud | |
297 | </pre> | |
298 | Jumpers W2 and W5 select which of the two highest baud rates is selected | |
299 | for by the final switch setting shown above. | |
300 | As a special case, if the R=150 switch is on, the receive baud rate is set | |
301 | to 150 baud; if this switch is off, the transmit and receive baud rates | |
302 | are the same. | |
303 | <p> | |
304 | ||
305 | </p><h2>Crystal or Integrated Oscillator</h2> | |
306 | ||
307 | <pre> \\____// | |
308 | ______||__||_____ | |
309 | o _ _ _ _ _ o| | |
310 | | | || | |
311 | | | | CAN | | |
312 | |_| _ _ _ _ || | |
313 | _ ___ | | |
314 | | | | | | | |
315 | | | |OSC| | | |
316 | |_| |___| | | |
317 | | | |
318 | </pre> | |
319 | As originally designed, the M8655 board used a large crystal can mounted over | |
320 | the large pad in the upper right corner of the board. This was not a | |
321 | satisfactory design, and DEC abandoned this can in later revisions | |
322 | of the board. Instead, the integrated circuit at position E4 (shown at | |
323 | OSC here) was replaced with a CTS 5.0688 MHZ oscillator | |
324 | (DigiKey part CTX110). This requires that the circuit traces connecting to | |
325 | pins 1 and 8 of E4 be cut (note that pins 7 and 14 were unused), and it | |
326 | requires that discrete components immediately above, below and to each side | |
327 | of E4 be removed (be careful not to remove the power supply decoupling | |
328 | capacitor below E4). 3 jumpers must then be installed: | |
329 | <ul> | |
330 | <li>From pin 7 to ground (the left end of a nearby decoupling capacitor). | |
331 | </li><li>From pin 14 to +5 (the right end of a nearby decoupling capacitor). | |
332 | </li><li>From pin 13 to pin 8. | |
333 | </li></ul> | |
334 | All these jumpers should be 30 gauge wire-wrap wire so that there is room | |
335 | to put the jumper in the same hole as other component leads. If your | |
336 | oscillator has a metal can, mount it with a plastic shim (DigiKey K266-ND, | |
337 | an OK Socket-Wrap ID tag, should work) so the case doesn't short to any | |
338 | traces on the board below it. | |
339 | <p> | |
340 | ||
341 | </p><h2>Unused sockets</h2> | |
342 | ||
343 | <p> | |
344 | The KL8-JA board contains two | |
345 | sockets that were apparently | |
346 | used in production line testing | |
347 | of the board. Nothing should | |
348 | be plugged into these sockets | |
349 | for normal operation. | |
350 | </p><pre> \\____// \\____// | |
351 | _________||__||_____________||__||_____ | |
352 | o _o _ _ o _ o _ _ _ _ _ o| | |
353 | : : | | | | ..| | | | || | |
354 | : : | | | | | | | | | CAN | | |
355 | :_: |_| |_| ..|_| |_| _ _ _ _ || | |
356 | | _ ___ | | |
357 | unused! | | | | | | |
358 | | | |OSC| | | |
359 | |_| |___| | | |
360 | _ _ | | |
361 | | | | | | | |
362 | | | | | | | |
363 | |_| |_| | | |
364 | | | |
365 | _ _ | | |
366 | : : | | | | |
367 | unused!--: : | | | | |
368 | :_: |_| | | |
369 | </pre> | |
370 | ||
371 | <h2>Cables</h2> | |
372 | ||
373 | <pre> \\____// | |
374 | ______||__||______ | |
375 | | o ____ o | |
376 | | |_ | | |
377 | | | | | |
378 | | | | | |
379 | | | | | |
380 | | | B| | |
381 | | | E| | |
382 | | | R| | |
383 | | _| G| | |
384 | | |____| | |
385 | </pre> | |
386 | For an RS232 interface, you need the equivalent of DEC's BC01V cable. This | |
387 | mates with the Berg connector at one end and has a male DB25 connector at | |
388 | the other end, in conformance with the RS232 specification. For a current | |
389 | loop interface, you need a 7008360 cable with a Mate-N-Lock connector at the | |
390 | far end. | |
391 | <p> | |
392 | The following connector hardware will mate with the Berg connector on the | |
393 | board (DigiKey part numbers for AMP parts): | |
394 | </p><pre> ASC40G-ND 40 pin gold socket connector | |
395 | ASSR40-ND strain relief for above | |
396 | ASPT40-ND pull tab to make it easy to unplug | |
397 | </pre> | |
398 | ||
399 | </body></html> |