2020: NameSpaces are going to be implemented this year to better separate content. OS-9 Al (talk) 11:18, 15 April 2020 (CDT)
2020-05-17: If a page gives you an error about some revision not being found, just EDIT the page and the old page should appear in the editor. If it does, just SAVE that and the page should be restored. OS-9 Al (talk) 12:22, 17 May 2020 (CDT)
Undercolor/850106/The Data Gatherer Part IV
Home Articles Companies Publications Hardware People Software Timeline ... Emulators Internet Resources
(Don't see something listed? Click "edit" and add it! Together we can build this database. When making a new info page, refer to this InfoBox Template for guidelines.)
UnderColor, Volume 1, Number 6, March 8, 1985
- Title: The Data Gatherer Part IV
- Author: Dennis Kitsz
- Synopsis: A continuing project.
- Page Scans: Link
lf you have a parallel printer, or wish to have digital input/output lines available for experimentation, you should install the printer module.
The printer module consists of one 6821 peripheral interface adapter (U3, a PIA) and a connector. Use a socket for U3. According to Fig. 1, wire the eight data lines from the computer. along with A0, A1, R/W*, E*, and RESET*. CS2 comes from the decoder module. Be sure to include the decoupling capacitor C3, plus power and ground. The connector l suggest is a "3M type" latching connector, similar to the printer connector used in some of Radio Shack’s other computers such as the Model 100. I chose a 34-pin type for
later off-board expansion for other projects.
Install U3 in the socket. After construction, turn on the power and quickly re-examine the system; try the clock test listing once again. This module will be tested fully next time when the DGOS software is published.
The D/A Converter Module
You've arrived at the "deep breathing" section of construction. Take a break before continuing, and start fresh.
There is something special about this module: it isn't all digital. I'm repeating the obvious because construction here demands a little rethinking and a lot of care. Not only must
you be careful to wire correctly (that D/A converter sure is expensive!), but how you wire affects how accurate a result you’ll get. Try to think small, get a good light and a magnifying glass, plus a glass of anything that helps you work comfortably.
Use a small piece of fiberglass perfboard for construction, and a high-quality socket for the AD667 digital-to-analog converter U4. Leave room for the board for the variable resistors, a jumper, and for the later installation of U13 and its associated components.
Wire the 6821 PIA (U2) according to Fig. 2; use a socket for U2. Next place a 28-pin socket for D/A converter U4 within about 1 inch of the 40-pin socket for U2. Place the left side of U2 facing the right side of U4; that is, pins 1-20 of U2 should face pins 15-28 of U4. This is very important, because these are the digital signal lines, which must be kept as far as possible from the analog lines to prevent their noisy activity from influencing the accuracy of the D/A converter. (Remember, a 12-bit D/A converter like this one can provide an output accurate to within .0012 volts!)
Now wire only pins 11-15 and 17-28 of the U4 socket to their respective pins on the U2 socket. Double-check their accuracy, then wire U4 pin 16 (ground), pin 8 +(12 volts) and pin 10 (-12 volts). Keep these wires very short, and keep clear of the area of U4 pins 1-7 and 9.
Place C25, VR1, VR2, R2 and R3 close to the body of the U4 socket and wire them as shown. Keep the wires very short (ideally, bend over the leads of the parts themselves). Use good solder and clean this section with flux remover when you're done. Apply power and measure pins 8 and 10 with a voltmeter to make sure they are receiving the proper +12 and -12 volts. Temporarily jumper pin 1 to pin 2, and hook pin 9 to a digital voltmeter. Finally, run analog ground pin 5 to a small metal shield, and place this shield under the five components you’ve just assembled, plus the far end of the shield to the digital ground on pin 16 (be careful not to short any parts with the shield).
After a thorough double-check, install U2 (6821) and U4 (AD667), apply the power, and enter and run Listing 1. As this test runs you should observe the voltage slowly rise (in .0025 volt increments). Ideally, you should be examining this rise with a storage oscilloscope to observe any jumps or dips in the output; a miswiring in the least-significant-bit area can be invisible on an ordinary meter, but result in spurious results at the output. (The proceeding statement brought to you courtesy of Personal Experience, Inc.)
An accurate, smoothly rising output from the D/A converter qualifies you to proceed with . . .
The Analog Multlplexer Module
As the Firesign Theatre once said, "It’s all downhill from here." The analog multiplexer’s purpose is to permit one of 16 possible analog signals to cross into the Data Gatherer, and Fig. 3 tells the tale.
U3, half of which has already been used for the printer port, is connected to open-collector buffer U9, and each output of U9 is "pulled up" to +12 volts with a resistor. U9 is called "open collector" because its outputs have an unconnected transistor inside. The pull-up resistors permit current to flow through U9’s output transistor from the power source of your choice rather than from U9’s own +5 volt power supply. This is necessary because U5 and U6 will be run on the +12 volt power supply—this lets signals of up to 10 volts pass through to the analog-to-digital converter section. Be sure to use those pull-up resistors to +12 volts, or analog multiplexers U5 and U6 won’t respond!
Definitely use sockets for U5 and U6, and be very careful with them. Like the clock/calendar, these are static-sensitive CMOS integrated circuits, and must be handled in a static-free environment. Don’t forget that these two integrated circuits are powered by +12 volts.
Connect a digital voltmeter to U5 or U6 pin 9 or 10 (they are all connected together), hook a known voltage from 0-10 volts to each of the sixteen inputs, and run the Listing 2 to test your installation.
The voltage appearing at each input should be passed in turn to the output of the multiplexers. The unusual data
statements in the listing, by the way, can be examined in binary form—c’mon, do it!—to see how they switch inputs A, B, SX and SY.
The Voltage Comparator
The final module is the voltage comparator, which compares the known voltage output by the D/A converter with the unknown voltage traveling in from the multiplexer. It is shown in Fig. 4.
This is another sensitive analog circuit, so keep connections short and clean. All the parts should be quite close to the body of U13, particularly C2 and C20, which must be soldered right to the socket pins. Use a small (10mm) trimmer for VR3 if possible, or its offset balancing purpose will be defeated.
Place the comparator module between the D/A converter and the analog multiplexer, and keep interconnection wires short. Hook a known voltage from 0-10 volts to input 2, set VR3 to its center position, and run Listing 3.
Your know voltage should appear on the screen after the slow Basic program finds a match. Examine Listing 3 at your leisure, and notice how the channel is selected, how the PIAs are set up to accept the output voltage to the D/A converter, and how the 12-bit value itself is broken into two pieces for the 8-bit Color Computer to use. Make a note of how long this process takes; consider that the assembly language conversion takes just 1.6 milliseconds!
Next time: Final alignment, plus the Data Gatherer Operating System (DGOS). (end)
Reminder: Data Gatherer assembled, kit, or parts are available from Green Mountain Micro, Bathory Road,
Roxbury, Vermont 05669, 802-485-6112. Assembled, $330. Kit, $220. DGOS EPROM, $35. PC Board, $35. Documentation, $15. Board, documentation, software, $80. Board, documentation, software, hard-to-get parts, $180. Individual parts sold separately.
Listing 1. D/A convener test slowly outputs a rising voltage through the converter. 1 X=&HFF50 :'DAC PORT 2 LS = &H34 :'LO STROBE 3 HS = &H3C :'HI STROBE 4 POKE X+1,&H38 :'OPEN PORT 5 POKE X ,&HFF :'8 OUTPUTS 6 POKE X+1,HS :'SHUT PORT 7 POKE X+3,&H38 :'OPEN PORT 8 POKE X+2,&HFF :'8 OUTPUTS 9 POKE X+3,HS :'SHUT PORT 10 FOR VH = 0 TO 15 :'M.S. BYTE 11 FOR VL = 0 TO 255 :'L.S. BYTE 12 VX = 0 :'TEMP. VH 13 POKE X,VL :'SEND LSB 14 VX = VH OR &H80 :'1000 XXXX 15 POKE X+2,VX :'SEND MSB 16 POKE X+1,HS :'HI STROBE 17 POKE X+1,LS :'LO STROBE 18 POKE X+1,HS :'HI STROBE 19 VX = VX OR &HF0 :'1111 XXXX 20 POKE X+2,VX :'SEND MSB 21 VX = VX AND &H7F :'0111 XXXX 22 POKE X+2,VX :'2nd RANK 23 POKE X+1,HS :'HI STROBE 2Q POKE X+1,LS :'LO STROBE 25 POKE X+1,HS :'HI STROBE 26 NEXT VL :'NEXT LSB 27 NEXT VH :'NEXT MSB Listing 2. Switch test cycles through all 16 inputs, permitting voltage to flow through the multlplexers. 1 DIMA(16):X=&HFF54:POKEX+1,&H38 2 POKEX,&H3F:POKEX+1,&H3C 3 DATA00,01,11,21,31,02,12,22 4 DATA32,04,14,24,34,08,18,28,38 5 FORX=0TO16 6 READA$:A(x)=VAL("&H"+A$) ;NEXT 7 FORX=OTO16 8 AS=INKEY$:IFA$=""THEN8 9 POKEX,A(X):PRINTX;:NEXT Listing 3. A/D conversion test works its way from zero until it finds a match to the unknown voltage. 10 CLS:X=&HFF50:LS=&H34:HS=&H3C 11 POKEX+5,&H38:POKEX+&,&H3F 12 POKEX+5,HS:POKEX+&,&H11 13 A$="#.###":T=X+1:POKET,&H38 14 POKEX,&HFF:POKET,HS 15 POKEX+3,&H38:POKEX+2,&HFF 16 POKEX+3,HS 17 FORVH=0TO1$:FORVL=0TO255 18 VX=0:POKEX,VL:VX=VH OR&H80 19 POKET+1,VX:POKET,HS:POKET,LS 20 POKET,HS:VX=VX OR&HF0 21 POKET+1,VX:VX=VX AND&H7F 22 POKET+1,VX:POKET,HS:POKET,LS 23 POKET,HS:I=&H80:D=409.6 24 1F(PEEK(X+4)ANDI)=1 THEN26 25 NEXT:NEXT:GOTO17 26 PRINT"VOLTAGE ="; 27 PRINTUSINGA$;(VH*256+VL)/D 28 GOTO17