Viser innlegg med etiketten RC2014. Vis alle innlegg
Viser innlegg med etiketten RC2014. Vis alle innlegg

onsdag 19. april 2017

RC2014 Prosessor

Dette er et innlegg relatert til byggingen av RC2014, se introduksjon, og vil mer eller mindre være mine egne notater relatert til denne spesifikke modulen.

Prosessor

Den enkleste av RC2014-modulene ettersom de fleste av støtte-funksjonene utføres av andre moduler, RC2014 Klokke håndterer klokke-signalet samt reset-funksjonalitet. Opprinnelig dokumentasjon for modulene er tilgjengelig på http://rc2014.co.uk/modules/cpu/.

Prosessoren som benyttes her er en noe nyligere produsert utgave av Zilog Z80-prosessoren, Z840010PEC (10 Mhz Z84). Den originale prosessoren ble først lansert i 1976 med en hastighet på 2,5 Mhz, men utover en firedobling av hastigheten og overgang til CMOS-teknologi (lavere energiforbruk) så er denne prosessoren tilnærmet identisk når det kommer til funksjonalitet.

Selve kretsen er relativt enkel i og med at det meste bare kobler de tilsvarende pin-ene på prosessoren til pin-ene mot hovedkortet. Opprinnelige instruksjoner markerer montering av pin-headere øverst til venstre som valgfritt, men foretrekker å ha muligheten til å gjøre endringer senere. I vanlig bruk må man sette jumpere (eller lodde en kobling mellom) for WAIT, BUSRQ og NMI. Alle koblinger i denne regionen vil, dersom koblet sammen, dra signalet høyt gjennom resistoren til 5V.


Adressering

I utgangspunktet - og slik man forsåvidt forventer det så er prosessoren hjernen i systemet. Derimot, når det kommer til adressering, uansett om det gjelder tilgang til en tilkoblet enhet (IO) eller minne (RAM / ROM), så er dette mer eller mindre implisitt - prosessoren angir en adresse, det er logikken rundt som avgjør hvem som svarer.

Logikken må ta høyde for at kun en enkelt enhet skriver til bussen til ethvert tidspunkt, dersom to enheter "skriver" til en eller flere linjer vil i beste fall deler av signalet gå til jord og i verste fall føre til at det samlede spenningsnivået på linjen overgår det en eller flere komponenter er i stand til å tåle (det vil si varmgang, gnistring og potensielt sett flammer dersom man ikke oppdager dette fort nok).

For å unngå slike kollisjoner refererte man til en oversikt over minnet for hvilke områder man dedikerte til hva. Zilog Z80-prosessoren til forskjell fra annen maskinvare jeg har arbeidet med, et logisk skille mellom minne (se RC2014 Memory Map) og IO (se RC2014 Device Map). Prosessoren indikerer hva vi er ute etter ved bruk av pin-ene MEMRQ og IORQ.

RC2014 Klokke

Dette er et innlegg relatert til byggingen av RC2014, se introduksjon, og vil mer eller mindre være mine egne notater relatert til denne spesifikke modulen.

Klokke

Dette er en relativt enkel komponent, men merk her at denne både implementerer en enkel krets for reset i tillegg til å være klokken for prosessoren. Klokken i denne sammenhengen benyttes for synkronisering av signaler mellom ulike integrerte komponenter (deriblant seriell IO), ikke klokke i tradisjonell forstand (disse refereres til som en RTC-krets). Opprinnelig dokumentasjon på http://rc2014.co.uk/modules/clock/.

Kretsen består av en 7,3728 Mhz krystall som ved hjelp av to kapasitatorer, 22 pF, skaper en svingning i det elektriske signalet. 74HCT04 benyttes for fjerne ujevnheter i signalet slik at vi får en tilnærmet ren firkantkurve. Resistorene benyttes for å sette et øvre og nedre tak for signalet som benyttes.

Reset-kretsen er også inkludert på dette kortet, denne vil sørge for å nullstille prosessoren og eventuelle andre tilkoblede integrerte kretser i maskinen. Z80-prosessoren benyttet av RC2014-maskinen benytter dette signalet, men i og med at denne funksjonen er aktivt lavt så dras signalet høyt gjennom pull-up resistor. Når knappen trykkes ned kortsluttes kretsen til jord, dermed dras signalet lavt. Den samme kretsen er også duplisert på hovedkortet, se RC2014 Backplane.

Har ikke tidligere montert resistorer on-end slik som det forventes her, se bilde nedenfor. Fant ut at den enkleste måten å få dette til å se pent ut, sånn for oss perfeksjonister mellom, er å bøye lederen rundt kroppen av en annen resistor. DIP-modulene vil ha en markering både på komponenten og PCB-en for hvordan orienteringen skal være, på den måten unngår man å svi kretsen ved å sette dem inn feil vei.



søndag 16. april 2017

RC2014 Introduksjon

Med tøffe uttalelser angående forholdet vårt til elektronikk, så må man samtidig innrømme at til tross for en forholdsvis lang utdannelse innenfor datateknikk (føltes i alle fall lang) inkludert ørten timer med forelesninger over hvordan datamaskiner fungerer på så har jeg aldri bygd en selv. Jeg har satt sammen datamaskiner med utgangspunkt i ferdiglagde komponenter, men jeg har hverken designet eller egentlig bygd noen av komponentene på egen hånd.

Design får nok bli et prosjekt for den kommende høsten - sommer først selvsagt! Det å bygge dem skulle derimot vise seg å være langt enklere enn man først skulle tro, det viser seg å være store Internett-miljøer brakt sammen over kjærlighet til horribelt utdaterte datamaskiner. Man kan til og med å få tak i komplette byggesett for en forholdsvis billig penge (man må regne med en tusenlapp).

Hva?

Den jeg endte opp med å kjøpe inn var en maskin kalt RC2014 (se rc2014.co.uk). Maskinen er ikke ment å være en direkte gjenskapelse av noen spesifikk datamaskin fra starten av 80-tallet, men den skal likevel gi alt jeg håper folk husker fra de gode gamle maskinene som var i salg i perioden da jeg ble født (Spektrum ZX81, Apple I osv).


RC2014-maskinen har spesifikasjoner få hadde råd til da, men så må det være lov å kombinere følelsen av nostalgi og det å kunne eie noe man tidligere ikke hadde råd til. Her er spesifikasjonene for min maskin:
  • Zilog Z80 CPU 1 Mhz
  • 32 KB RAM
  • 8 KB ROM
Mer eller mindre tilsvarende Commodore 64-maskinen (ytelse, ikke teknologi) jeg og broren min var så heldig å få i gave fra foreldrene våre noen år senere.

Med utgangspunkt i den langt mer budsjett-orienterte datamaskinen jeg bruker for å skrive dette, så er den i stand til å utføre rundt gjettet 60 000 flere kalkulasjoner per sekund samt at den har noe slikt som 260 000 ganger mer minne!

Hvordan?

Byggesett av den elektriske variasjonen blir som oftest distribuert som et sett med ferdiglagde kretskort, selve komponentene i seg selv er ikke alltid inkludert eller i det hele tatt tilgjengelig fra den som lagde settet. Med andre ord må man potensielt handle disse inn selv, eventuelt håpe på at man allerede har noe av dette liggende i skuffen. RC2014-settet selges heldigvis med alternativer for å få hele settet, inkludert alt man måtte trenge av komponenter utover PCB-ene. Kommer derimot til å trenge en del utstyr for å komme noen vei.


Nødvendig utstyr:

LoddeboltAnbefales bruk av temperatur-regulert loddebolt ved lodding av kretskort, tilgang til en lettere fuktet svamp man kan bruke for å skrape av overflødig loddetinn på.
LoddetinnBlyfritt anbefales IKKE for amatører som meg. Økt bruk av giftige stoffer for å slippe bruk av bly høres ikke ut som en god ide.
TinnsugerHjelper når man har loddet feil ting på feil plass, brukes for å fjerne flytende tinn.
MultimeterHer trenger man et multimeter med kontinuitet, denne funksjonen hjelper en med å finne de plassene der man har koblet ting litt for mye ting sammen (eventuelt ikke i det hele tatt).
USB TTL seriell adapterDisse byggesettene kommer som regel ikke med mulighet for å koble til skjerm eller tastatur, når man skal kommunisere med maskinen vil må man bruke seriell-porten på en annen maskin - den som forsvant for 10 år siden.

Hvorfor?

I utgangspunktet så har hobbyer i seg selv ikke behov for begrunnelser, det relevante spørsmålet til en hobby er hva dette gir meg og ikke hvorfor? Dagens datamaskiner er langt mer komplekse, men like fullt er de bygd med de samme teknikkene i bunn - det å bygge en gammel utdatert datamaskin gir oss muligheten til å studere dem i detalj. Og, så er det veldig underholdende prosjekt (gitt at man har en sær interesse for datamaskiner)!