MediaWiki:Sitenotice:
2024-03-02: The wiki ran out of disk space, so things were not working. This has been resolved by adding another 5GB of quota ;-) Thanks to Tim Lindner for reporting the issues. 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

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Revision as of 22:39, 1 March 2009 by Cocomag (talk | contribs) (New page: {{NavTop}}<br /> '''UnderColor, Volume 1, Number 6, March 8, 1985''' * Title: The Data Gatherer Part IV * Author: Dennis Kitsz * Synopsis: A continuing project. * Page Scans: [[Undercolo...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

Article

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.

Listings

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