6502 CPU-kaart elektuur november 1983
Een zelfstandige single board computer op eurokaart-formaat. Dat is waarschijnlijk de beste omschrijving die we van deze CPU-kaart kunnen geven. De CPU-kaart is zodanig opgezet dat ze bijzonder universeel is. Met andere woorden: je kunt er alle kanten mee op. De keus van de 6502 microprocessor is daarbij niet vreemd: dit type is al lang bekend van de junior computer. Het voordeel daarvan is dat er direkt een hoop hardware en software (van de junior) beschikbaar is voor deze 6502 CPUkaart.
6502 CPU-kaart
11-36
De 6502 CPU-kaart kan zonder meer één van de meest veelzijdige kaarten uit het Elektuur-microprocessorprogramma worden genoemd. En dat beslist niet zonder reden. Voordat we de CPU-kaart nader gaan bekijken zullen we een aantal toepassingsmogelijkheden noemen. Dat geeft waarschijnlijk een goede indruk van de veelzijdigheid. Gebruik als single board besturingscomputer is mogelijk, bijvoorbeeld voor machinebesturing of procesbewaking. Of pas hem toe als morse-dekoder, telefoonkiezer, simulator-emulator, PROM/EPROM programmer, enzovoorts enzovoorts. Alleen gebrek aan fantasie kan ons hierin beperken. Verder kan de CPU-kaart worden gebruikt in kombinatie met andere pP-kaarten. De kombinatie van CPU-kaart met VDU-kaart levert bijvoorbeeld een universele terminal (elders beschreven in dit nummer), terwijl een CPU-kaart samen met een VDU-kaart, een dynamische RAM-kaart en een floppydisk interface een intelligente terminal vormt. Hiervoor verwijzen we ook naar het artikel van de VDU-kaart uit Elektuur september, waar een dergelijke opzet al besproken werd. Het blokschema Nu weer terug naar de CPU-kaart zelf. We zullen alle "features" hier niet nog eens opnoemen, die kunt u vinden in het kader aan het begin van dit artikel. Belangrijker is de totaalopzet van de CPU-kaart. Omdat het schema zelf nogal ondoorzichtig is zullen we eerst kijken naar het blokschema, weergegeven in figuur 1. Geheel rechts staat de microprocessor, een 6502 of de CMOS low power versie hiervan, de 65CO2 (zie oktober-nummer). Een klokgenerator levert de frekwenties 1, 2 en 4 MHz, zodat men de gewenste klokfrekwentie eenvoudig kan kiezen door het leggen van een draadbrug. Alle adreslijnen van de CPU zijn zowel gewoon als geïriverteerd beschikbaar en allemaal gebufferd. Ook voor de datalijnen zijn buffers aanwezig. De lijnen van de control-bus zijn niet gebufferd, maar dat is gewoonlijk ook niet nodig. Er zijn twee VIA's type 6522 (Versatile Interface Adapters) aanwezig. Voor meer bijzonderheden over de opbouw en werking van deze vrij komplexe IC's verwijzen we naar het VIA-boek. We vermelden hier alleen even dat elke VIA beschikt over twee bidirektionele poorten A en B, vier handshake-lijnen (met handshakelijnen wordt data-verkeer geregeld), twee zestien-bits counters/timers en een achtbits I/O-schuifregister. De 6551 ACIA (Asynchronous Communication Interface Adapter) is eveneens een zeer veelzijdig IC. In dit geval wordt de ACIA gebruikt voor de RS 232/ V24 interface. Het IC zorgt voor de baudrate, parallel/serie-omzetting, foutdetektie etc. etc. De ACIA zorgt dus voor de seriële data-overdracht. Tussen de ACIA en de RS 232 konnektor zijn nog wat poorten opgenomen die zorgen voor de noodzakelijke nivo-aanpassingen (RS 232 werkt met een positieve en een negatieve voedingsspanning).
6502 CPU-kaart elektuur november 1983
1
adres dekoder
> port A
parallel keyboard port A 1 handshake aansluiting
C CS
6522 VIA
.=•.} port B "...— S- handshake
Centronicsaansluiting
> port B
AO Al5
> port A
A0 ..A15
adresbus
1 port A f handshake
6522 VIA
port B : handshake
12V <
adresbus buffer
5V
ACIA + display programmering
> port B 12 V
0 AO Al5
0,
6551 ACIA
CPU
c
0 .5 0,
nivoaanpassing
6502 65CO2
—0 —0 —0 —0
—o
RS 232/V24 aansluiting
—0
I)
(1)
12V
co
adres dekoder RAM
databus buffer
12V
5516 5564 6116 6164
databus
2K*8 810.8
EPROM N klokgenerator
reset logika
/I-
Op de CPU-kaart is plaats voor één RAM-IC en één EPROM-IC. Voor de RAM heeft men de keuze tussen een 2 Kbyte en een 8 Kbyte CMOS-geheugen. Ook voor de EPROM zijn er diverse mogelijkheden:2 Kbyte, 4 Kbyte, 8 Kbyte en 16 Kbyte. De VIA's en de ACIA hebben een gemeenschappelijke en de geheugen-IC's elk een eigen adresdekoder. Verder zijn alle IC 's gekoppeld met de adres- en databus en (met uitzondering van de EPROM) met de control-bus. Een reset-schakeling zorgt ervoor dat de processor automatisch gereset wordt bij het inschakelen van de voedingsspanning. Door middel van de drukknop kan men ook een reset met de hand bewerkstelligen (manual reset). De kaart bezit een 64-polige konnektor voor aansluiting op de Elektuur-bus. Op deze konnektor zijn aangesloten: control-
2716 2732 2764 27128
6502 CPU-kaart features
2K*8 4K*8 8K*8 16K*8 83108 - 1
Figuur 1. Het blokschema van de 6502 CPU-kaart. Opvallend zijn de vele aansluitmogelijkheden.
6502/65CO2 CPU 2 x 6522 VIA 1 x 6551 ACIA 2 K of 8 K RAM 2 K, 4 K, 8 K of 16 K EPROM volledige adresdekodering geheel gebufferde data- en adresbus 64-polige Elektuur-bus DMA mogelijkheid 1, 2 en 4 MHz klokfrekwentie 4 8-bit ports 4 16-bit timers 2 seriële dataports 8 handshake-lijnen parallel keyboard aansluiting Centronics-aansluiting RS 232/V24-aansluiting alle 1/0-lijnen op konnektors uitgevoerd
11-37
6502 CPU-kaart elektuur november 1983
2a
5V
0 415
IC13 N35... N
7c
.12 V
17 4 15 6 13 8 1
((r
IC12
31161 51412111 1
12V
0
")~ 610
re: 0
5V
7
415
4
-4> .0
rj
40 —0 —0 —0 —0 —0 —0 —0 —0 —0 —0
A
>
, 17,
26o 40
40
04
•
—0 —0
E
5V
0
415 A 4B 415 051 C 071 0
/
zon
‘ . '/
5V
—0
0
—0
2
AR E 015 F 70 G 48 H 073
- -0
10 1 12 13 14 15 16 17 10 19 2 22 2324 25 ABO 4 IRO 40 RES • NMI NC7161 RDY 8 6,
1~.~. In~MMIEMI InZ~MM
—•=C NC,IAM./ • NCIOSCI SYNC
--0 —0 —0 —0 —0 —0
01115
081
R14 R1
GNO
41
550 IC2
015
104
414 51-4 Al
(65CO2)
DH
015
37 ; ,,,n o
Wei 34
v
A8 J
—0
EPROM 2716 2732 2764 27128 All 11.6
17 4 15 6 13 8 11
CD .
—0
IC6 op
R7 R6 R3 R5 R4 A02 17 4 15 6 13 8 11
15
1360 7 26
5419
1
4
PO
wo I. u vcc lo .
DO 67
—0 —0
1C14 ó 0 N43 .. N. 7
25
rnis isrg 7:7 RAM
5516 5564
J Pr 2 ' 23
o
412
(61 6116) 64 6 B 19 N 67
AI11 11 1 2 ,,
GD
4
4 27
\
DO \ —0 —0
-
—0
12V
J31 07
5V
0
0
SV 12Ve
RES
mg FF1 CLK
12.
,FF2
c
a
0
R18
Dl R 7
5V 154148
ot!
Cl
1=
C2 rn
51...56=1C7=74LSO4 FFI,FF2=IC8=74LS74 N7...N10=1C9=74LSO1 N11...N18=1C10=74LS240 N19...N26=1C11=74LS240 N27...534=1C12=74LS240 N35...N42=IC13=74LS240 N43...558=IC14=74LS245 N59 = IC15 =745133(74ALS133) N60=1C16.741530 561=IC17=74LS30 N69 ... N73 = 7/6 IC20 = 7415061741505/
0.12 0
5Ve
0.50
e
/000
12V®
240
5V
11111111411(5
IC7 IC8 IC9 IC10 IC11 IC12 IC13 IC14 IC15 IC16 IC17 IC20
44T4?4444449 bus, gebufferde adres- en databus, +12 V, +5V en —12 V. Tenslotte nog iets over de VIA-aansluitingen. Port A van de eerste VIA wordt gebruikt voor een parallel-keyboard-aansluiting en port B voor een Centronics-aansluiting. Port A en B van de tweede VIA worden gebruikt voor het programmeren (via kortsluitstekkertjes) van de ACIA, van het beeldformaat (alleen in kombinatie met de VDU-kaart) en nog enkele andere zaken. 11-38
83108 • 2a
Al deze mogelijkheden zijn vermeld in tabel 1. Het elektrische schema
Na de beschrijving van het blokschema zal het "echte" schema niet veel vragen meer oproepen. Hier zien we weer de processor IC1, met daarnaast de tri state buffers N11 . . . N58 voor de data- en adresbus. De kristalgenerator is opgezet met twee poor-
6502 CPU-kaart elektuur november 1983
2b
cm 0
CS2 CS1
632
N62 ... N64 = k IC18 = 1488 (SN75188) N65 ... N68 = IC19 = 1489 (SN 75189) 1C2
PA] CA2
Do 6522 D62
P80 efi
°
Clg
D7
12E,
11 12 3 4 15 16 P87 17
12 V R20 0
600 0—
0— 630
IflOFS 2
RES
RAN' jJ (1>2.
PL7 19
ACICMD DO
2
PA7
0— 0— 0— 0— 0—
D1...D8
20 21
9
10
22
D70
AC CTL 89...516
PA?
ig int+ AO
®12
PAO CAI CA2
V
+5v# OVØ_L® 012v
0
IC3 6522
18
CB1
16 15 14 13
12V
20
5V
c. 1
',00r,
P80
5V
P81 P82
P83 P84 P87 P86 P85
83108 • 2b
12V
ten, Nl en N2, gevolgd door twee delers FF1 en FF2. Via de kortsluitkonnektor PL14 kan men de gewenste frekwentie voor de processor instellen. Door de punten M en N door te verbinden worden de flipflops buiten spel gezet (bijvoorbeeld bij gebruik van een andere klok). Vlakbij de klokgenerator zien we ook de resetschakeling, waarvan N71, N72 en N73 deel uitmaken. Bij het inschakelen van de 5 V voedingsspanning zorgt de RC-kombinatie
R17/C1 ervoor dat de resetingang van de CPU pas na 0,5 sekonde wordt vrijgegeven. Op de punten P en Q kan men eventueel een drukknopschakelaar (verbreekkontakt) aansluiten voor "manual reset". De adresdekoder voor de VIA's IC2 en IC3 en de ACIA IC4 wordt gevormd door N59. De adresdekoder voor de RAM IC5 is N60 en de dekoder voor de EPROM IC6 is N61. Op de ACIA is een kristal aangesloten dat dient voor het opwekken van de verschil-
Figuur 2. Als men de blokken van het blokschema vervangt door de IC's, dan heeft men al bijna het hier afgebeelde "echte" schema. Door de vele verbindingslijnen lijkt het ingewikkelder.
11-39
6502 CPU-kaart elektuur november 1983
3
r•-.2.J~4~
soldeerzijde
13310E1-1
0 0 0 0 ~0 0 0 B 0 ~MI 0 0 0 0 0 ~0 0 / • 0 0 0 0~ 0 0.0
ee d • e s••
d
e•sa
r
\
s
19 4 s -a
a
_p~i ojr ~ " as,~as
2_1 *
0 0 0
OR/W' 412' AQ
Al 2A2 *A3 2
110 p
-12V a c 0,0
Figuur 3. De dubbelzijdige print waarop CPU, RAM, EPROM, klokgenerator en reset-logika zijn ondergebracht.
11-40
lende baudrates. N62 . . . N68 zijn RS 232 nivo-aanpassers. Zij vertalen de symmetrische signalen van de RS 232 lijnen naar asymmetrische (5 V) signalen voor de CPU en omgekeerd. Verder valt er niet veel te vertellen. Ja, misschien dat er vrij veel konnektors in het schema getekend zijn, maar dat is (helaas) noodzakelijk in verband met de universele opzet en de voorprogrammeringsmogelijkheden. De schakeling "trekt" in de normale uitvoering (alles "gewone" IC's) 100 mA bij
+ en —12 V en 1 . .. 1,5 A bij +5 V. Ook is het mogelijk om een CMOS-CPU te gebruiken en ook voor de perifere bouwstenen CMOS-exemplaren te nemen. Het stroomverbruik wordt dan gereduceerd tot 100 mA zodat het mogelijk wordt om de zaak uit batterijen of akku's te voeden.
Opbouw Figuur 3 en 4 tonen de printen voor de CPU-kaart. Twee printen voor een single board computer? Hoe valt dat te rijmen?
komponentenzijde
IC4 = 6551 (65C51) IC5 = 5516, 5564 (6116, Cl = 4711/6 V 6164) C20 = 100 n C2,C7 IC6 = 2716, 2732, 2764, C3 ... C6 = 1 n 27128 IC7 = 74LSO4 Halfgeleiders: IC8 = 74LS74 IC9 = 74LS01 Dl ... 016 = IN 4148 IC10 ... IC13 = 74LS240 IC1 = 6502 (65CO2) IC2,1C3 = 6522 (65C22) IC14 = 74LS245 Kondensatoren:
Onderdelenlijst Weerstanden: R1,R2,R11 ... R16 = 470 t R3 ... R10,R18,R19= 5k6 R17= 10 k R20 ... R23 = 39 k
PL6
Tabel 1.
konnektor doorverbinding
parallel-keyboard aansluiting
PL2
Centronics-aansluiting
PL3
PL4
PL5
zie tabel la
zie tabel la
ACI A-programmering: 5, 6, 7 of 8 databits 1, 1.5 of 2 stopbits interne/externe klok ACI A-programmeri ng: enable/disable-interrupt enable/disable I RQ-line transmitter-control normal/echo-mode even/odd/no panty mark/space-panty uitgevoerde port-lijnen en stuu rl ij nen
Helaas, door de universele opzet waardoor met kortsluitstekkers de kaart hardwarematig voorgeprogrammeerd kan worden moesten we wat water bij de wijn doen. Alles kon niet meer op één enkele print met eurokaart-formaat ondergebracht worden. Het is daarom een sandwich-konstruktie geworden van een grote (eurokaart) en een kleine print. Beide printen zijn dubbelzijdig, dus kontroleer vóór de montage van de onderdelen met een ohmmeter de doorgemetalliseerde
zie artikel universele terminal
beeldformaat, alleen in kombinatie met de V DU-kaart RS232 aansluiting
PL7
funktieomschrijving
PL1
64-polige konnektor volIC15 = 74S133 gens DIN 41612, male (74A LS133) konnektorstrips (zelf op IC16,1C17 = 74LS30 maat te maken) bijvoorIC18 = 1488 (SN 75188) beeld Molex IC19 = 1489 (SN 75189) IC20 = 74LS06 (74LS05) 2x 8624A-102 (10-891801) (40 x 2 kontakten) lx 8624A-102 (10-83Diversen: 1321) (16 x 2 kontakten) X1 = kristal 1,8432 MHz ± 25 kortsluitstekkertjes X2 = kristal 4 MHz nummer 7589
PL8
1-2 3-4
low speed modem high speed VT 52-terminal
PL9 PL10 PL13
toepassingsafhankelijk
RAM adresdekodering (zie voor voorbeeld artikelover universele terminal)
PL11 PL12
toepassingsafhankelijk
EPROM adresdekodering (zie b.v. universele terminal)
PL14 5-6 1-2 3-4 M-N P-Q
klokfrekwentie: 4 MHz 2 MHz 1 MHz doorverbinden bij gebruik van externe klok evt. verbreekschakelaar voor manu al reset, anders een draadbrug (auto power-on res.)
gaten. Is dit in orde bevonden dan kunnen alle weerstanden, kondensatoren, kristallen en voetjes voor de IC's op de printen worden gesoldeerd. Ook alle konnektoren (inklusief de 64 polige buskonnektor) kunnen worden gemonteerd. Heel goed bruikbaar zijn konnektoren van Fischer Metroplast, type SL2. Hievoor zijn namelijk kortsluitbrugjes CABO IZ verkrijgbaar. Zo kunnen op eenvoudige wijze, zonder dat men direkt naar de soldeerbout hoeft te grijpen, doorverbindingen gemaakt wor-
Tabel 1. De vele konnektors van de CPU-kaart met hun funktieomschrijving.
11-41
6502 CPU-kaart elektuur november 1983
4 soldeerzijde
r"— <(4ere 0 0 0 0 0 o" 00 000 000 C
000 00
_J
13310E1-2
.4" O 7 4: 7'e 4=aa • ,c
1 14
19
1 r
de 7 •
72
'S
Figuur 4. Deze print wordt boven op de grote print gemonteerd en bevat de twee VIA's en de ACIA met omringend kleingoed.
...... 016
den. Dergelijke konnektoren met kortsluitstekkers worden trouwens ook door verschillende andere fabrikanten geleverd. We noemen hier slechts één voorbeeld. Als alles is vastgesoldeerd kunnen de IC's in de voetjes op de grote print worden geplaatst. Bij gebruik van een 2716 of 2732 EPROM wordt het 24-pens IC "achter" in de 28-pens voet gestoken. Pen 1 van het IC komt dus in gat 3 van de voet. Dan worden, afhankelijk van de wensen van 11-42
de gebruiker en met behulp van tabel 1, de kortsluitverbindingen gemaakt. Vervolgens wordt de kleine print met gebruikmaking van drie afstandsbusjes op de grote gemonteerd en worden de nodige verbindingen tussen beide printen gemaakt met korte stukjes draad. Die verbindingen betreffen de punten DO . . . D7, AO . . .. A3, CSO, CS1, ZS2, (132', R/W', RES, IRQ, +12 V, —12 V, +5 V en 1. Tenslotte worden ook op de kleine print de IC's en
6502 CPU-kaart elektuur november 1983 komponenten-zijde
0000 0 0 0 0 0 0
00000000 00000000 ,y) 0 0 0 0 0 0 0 0 IIL=00,10 y/
Tabel la ACIA programmering
konnektor PL3
kontaktnummers
fu n ktieomschrijv ing
1-2 0 (= open) 1 (= gesloten)
aantal stopbits: 1 stopbit 2 stopbits (1.5 bij 5 bits woordlengte)
3-4 0 0 1 1
woordlengte: 8 bits 7 bits 6 bits 5 bits
5-6 0 1 0 1
7-8 0
baudrate-generator: extern intern
9-10 11-12 13-14 15-16 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1
baudrate: 50 baud 75 baud 109,92 baud 134,58 baud 150 baud 300 baud 600 baud 1200 baud 1800 baud 2400 baud 3600 baud
de kortsluitstekkers geplaatst. Passende konnektoren zoals een Centronics- of RS 232-konnektor kunen naar behoefte worden toegevoegd. Vergeet ook niet om de adresdekoder N59 met draadstukken aan te sluiten. Daarmee is de CPU-kaart helemaal klaar. De keuze van de geheugenkapaciteit van de EPROM en de RAM en het programma dat de EPROM zal bevatten hangt natuurlijk af van de toepassing en de totaalopzet van het
PL3 (vervolg) 1 1 1 1 0 PL4
1 1 1 1 0
0 0 1 1 0
0 1 0 1 0
4800 baud 7200 baud 9600 baud 19200 baud 16x externe klok
1-2 3-4 5-6 — — 0 0 0 1 0 1 1 1 0 1 1 1 1
pariteitsbit: geen (— = don't care) odd even mark space
7-8 0
mode: normal echo
9-10 11-12 0 0
transm itter-controls: transmitter interrupt disabled RTS-level high, transmit. off transmit. int. enabled RTS-level low, transmit. on transmit. int. disabled RTS-Ievel low, transmit. on transmit. int. disabled RTS-Ievel low, transmit. break
0
1
1
0
1
1
13-14 0
I R Q-interrupt: enabled disabled
15-16 0
receiver + interrupts: disable enable
systeem waarbinnen de CPU-kaart behoort te funktioneren. Tot slot wijzen we nog eens op tabel 1. Daarin is op overzichtelijke wijze aangegeven welke doorverbinding(en) gemaakt moeten worden voor een bepaalde toepassing. Bij een zo veelzijdige schakeling als de 6502 CPU-kaart is zo'n tabel heel belangrijk!
Tabel la. Nadere uitwerking van de ACIA-programmering die plaatsvindt door middel van kortsluitverbindingen in konnektor PL3 en PL4.
11-43