SBC6502 - 1. 7 chip computer. 32kB RAM.

By Administrator at January 11, 2016 18:00
Filed Under: SBC6502


 

SBC6502 - skúsim to bližšie definovať:


- pracovný takt =1.8432MHz
(je to 2x viac ako originál, kde to u Granta fičí na 0.9216MHz)

  (aby som bol spravodlivý - aj on tam tých 1.8432MHz má - ako možnosť ísť na dvojnásobok oproti 0.9216MHz)
- vstavaný Basic (upravený OSI Basic 8kB do novej 16kB Eprom)

   reálne veľkosť originálneho OSI basic dosahovala hodnotu =7906 byte
- komunikácia prebieha cez Hyperterminál, potrebné nastavenie:
 
(115.200 Bd, 8 bits, hardware handshake, no parity, 1 stop bit)
- veľkosť použitej ROM = 16KByte
- veľkosť použitej RAM = 32kByte
(RAM je možné zväčšiť na 40kB, alebo až na 46kB, zatiaľ nepoužité)

- zobrazenie:

  max. 80 znakov v riadku, 22 riadkov (Hyperterminál), počet znakov riadku sa dá programovo zmenšiť


Použité obvody:

- 1x procesor 65C02, alebo 6502C

   (beží tu aj procesor z malého Atari 14806 (otestované) len to potrebuje malú HW úpravu)
- 1x obvod 68B50
(ten je priamo na 2MHz, ale fungujú tak isto aj čipy 6850 určené na 1MHz  - overené)
- 2x 74LS00
- 1x Eprom 27128
(alebo po príslušnej úprave aj typ 27256)
- 1x RAM 32kByte 62256
- 1x obvod MAX232

- x-tal oscillator 1.8432MHz

____________

 

Ak sa následne použije rozširovacia doska s čipom 8255A (potom máme k dispozícii celkove 3x osembitové porty - toto pripojenie je vlastný návrh) treba ešte na dosku osadiť:


- 1x adresový dekodér 74LS138
- 1x obvod 8255A
- je potrebné "prekopať" reset a teda pribudne ešte 1x čip 555

________________

Celá "mašinka" beží na takte 1.8432MHz, použité komponenty v zapojení to naprosto v pohode stíhajú. V pôvodnej verzii to dokázalo za cenu ďalšieho čipu bežať na polovičnej frekvencii, ale myslím si že to je pre moje využitie zbytočné. Upozornenie pre skalných puristov - ak chcete fungovať skutočne na frekvencii necelých 1MHz čo je pôvodná rýchlosť -  navštívte stránky Searl Granta, treba ešte navyše deličku 2, čo zvládne 1/2 obvodu 74LS74. Ja som rád že je moja SBC6502 oproti pôvodnému originálu 2x rýchlejšia, toto mi vôbec, ale vôbec nevadí ... a celkom ma zaujíma kam až by sa to dalo "vyšróbovať", teda rýchlosť procesoru, hlavne preto že je to na univerzálke a zaujíma ma ako dobre som navrhol rozmiestnenie súčiastok (tak to sa ešte uvidí ...).

 

Doplnená poznámka - nakoniec som takt procesoru vyšróboval na hodnotu 6MHz.

 

Možno sa to nezdá, ale aj tých 32kB RAM je hodne veľké miesto pre software, tobôž ak sa tu nepoužíva grafika. (V ďalšom ešte budú uverejnená verzia s 40kB RAM a následne aj verzia pre 46kB RAM, toto už by malo naozaj stačiť každému ... síce to nie je 640kB, ale na druhú stranu - zase ja nie som Bill Gates ...)

 

Nejako extra nemusím zdôrazňovať že je to celé postavené na univerzálnej doske kde sa mi s tým celkom dobre robí, káblikov na prepojenie nie je až tak veľa. Pretože mi stačí iba 1 kus SBC6502 tak som sa nesnažil vymyslieť aj plošný spoj = pre 1 kus na otestovanie či to naozaj funguje je to zbytočná robota.
Obvody 6850 čo mám k dispozícii síce majú deklarovanú rýchlosť iba na 1MHz, ale tu to v pohode stíhajú. Searl Grant na svojich stránkach tvrdí že čip 6850 ide bez najmenších problémov na 1.8432MHz, môžem to potvrdiť, vyskúšal som v SBC6502 4 kusy spomenutých čipov - všetky fičali na jedničku. U mňa to vlastne bola z núdze cnosť, pretože som nemal k dispozícii rýchlejšiu verziu - teraz už 68B50 mám. 

Takže už to teraz tvrdím aj ja. Laughing

 

Takto to vyzerá po zapnutí, následne stlačenie Cold,

+ potvrdenie  Enter pre  Memory Size,

+ potvrdenie Enter pre Terminal With.


Najprv som ešte pred stavbou rozmýšľal že postavím jeden kus 100%-ne rovnaký ako originál od Searl Granta, ale potom som si povedal že to už priamo pri stavbe predsa len trošku "poohýbam" a prerobím priamo k "obrazu svojmu", nech je v tom aj kúsok môjho ja:

- obvod 74LS74 v mojom zapojení vôbec nepoužívam, pretože nepotrebujem aby procesor bežal na najpomalšej frekvencii 0.9216MHz, puristi si ho určite do zapojenia pridajú (síce ten necelý 1MHz môže byť zaujímavý z hľadiska spotreby, ale nejedná sa o nejaké veľké odbery, takže toto je pre mňa vedľajšie a naozaj to neriešim, som radšej ak to ide rýchlejšie - ak to vybavenie a procesor dovolí)


- x-tal a hradlá pre oscilátor som zamenil priamo za x-talový oscilátor 1.8432MHz (ušetrím tým 3 hradlá typu 74LS04, TTL x-talové oscilátory pri 5V majú povolené zaťaženie 10 vstupmi TTL čo bohate postačuje, my tu máme záťaž max. 3 vstupy TTL)


- upravené zapojenie dokáže priamo použiť x-talové oscilátory v púzdre 14 pin, alebo 8 pin - obidva druhy oscilátorov mám, tak som urobil zapojenie pre tieto typy oscilátorov na pripojenie iba v jednej 14 pinovej pätičke, občas sa takáto univerzálnejšia možnosť osadenia hodí

 

- nahradil som Eprom pamäť 27128 za Eprom pamäť typu 27256 (tých mám doma podstatne viac, 27128 sú celkom nedostatkové zbožie - teda aspoň v mojich zásobách Epromiek) a tak dokážem prepínať medzi pôvodným a upraveným OS, takto je k dispozícii 2x 16kB priestor Eprom (v schéme uvádzam zapojenie iba na typ 27128 pretože postačuje). Pre začiatočné testy som do Eprom 27256 nahral OS 2x za sebou t.j. teraz je jedno ktorých 16kB z jej obsahu je zvolených a teda funkčných


- zamenil som pôvodne použitý obvod 74LS04 a namiesto neho som použil druhý obvod 74LS00 (používam o jeden typ súčiastok menej, to sa hodí), z prvého IO 74LS00 1/4 (U6:A) sa robí invertor pre obvod 6850 (68B50), pridaný odpor 2k2 je potrebný, pretože IRQ výstup obvodu 6850 (68B50) je typu open collector, 2/4 74LS00 (U7:B) slúži ako invertor pre správnu funkciu Reset obvodu 8255A. Hradlá 3/4 (U7:C) a 4/4 (U7:D) druhého obvodu 74LS00 sú nezapojené, slúžia ako rezerva (nakoniec som ich neskôr pri rozširovaní použil tiež pre indikáciu komunikácie Tx a Rx)


- pre dekódovanie adries EPROM pamäte som použil 1/4 74LS00 (U7:A)


- pre dekódovanie adresného priestoru obvodu 8255A je potrebné použiť obvod 74LS138, ktorý je pridaný navyše (vďaka dekodéru 74LS138 viem pripojiť maximálne napríklad 8 periférií typu 6520A, 8255A a pod., doma v šuplíku bola voľná 8255A (ľahko sa programuje) takže voľba použitého čipu bola jasná ...)


- nastala celková zmena Resetu, hlavne kvôli obvodu 8255A, pridal som čip 555 pre generovanie nového Resetu (až ak použijete pripojenie 8255A)


- pridal som obvody na indikáciu sériovej komunikácie a pripojenia napájacieho napätia (nie sú za každú cenu potrebné, ale určite uľahčujú oživovanie)


- zvolil som napájanie 12V, potrebných 5V sa vyrába zo spínaného DC/DC meniča, ktorý je umiestnený na základnej doske. Prečo ? Pretože tých 12V sa mi hodí pre moje ďalšie experimentovanie (neskôr sa mi to naozaj hodilo že som s takýmto napájaním počítal od začiatku). A je podstatne príjemnejšie ak Vám stačí jeden zdroj a nemáte na stole čo ja viem - 5V, 9V, 12V a tak ďalej nie ? Môj spínaný DC/DC zdroj priamo na doske SBC6502 dodá pri 5V/1A, základná spotreba je asi tak 1/5 jeho povolenje záťaže (fláka sa ...). Samozrejme môžete zvoliť napájanie SBC6502 priamo z 5V, alebo pomocou USB kábliku. Odber nepresiahne ani v rozšírenej verzii cez 0.2A (ani pri použití procesoru 14806 od Atari ktorý je skutočne o poriadny kus "žravejší" - staršia technológia). A ja s tými 12V počítame pre neskoršie využitie, ak sa pustím do stavby nejakých doplnkov tak sa mi to bude určite hodiť. Takže toto rozhodnutie čím to "kŕmiť" je na Vás.


- pridal som obvod 8255A, sú potom k dispozícii 3x brány po 8 bitov voľne programovateľné ako vstupné, alebo výstupné, na drobné riadenie je to ako stvorené, 24 bitov mi zatiaľ skutočne postačuje


- zapojenie som priamo modifikoval na doske tak, aby sa dal vymeniť procesor 65C02 (ktorých mám pár doma k dispozícii) za procesor 14806 od Atari (vyriešil som to tak, že teraz na to prepínanie použitých procesorov stačí prepínať iba jeden jediný jumper)

 

- ak bude čas skúsim ešte experimentovať s rýchlosťou hodín procesora, bolo by celkom zaujímavé, ak by to vedelo fičať rýchlejšie, to už by bolo naozaj hodne, hodne zaujímavé (procesor 65C02 čo mám ide do 4MHz, 8255A mi ide do 5MHz), (neskoršia, dodatočná poznámka - síce mi to trvalo, ale nakoniec som sa k zvýšeniu taktu predsa len dokopal, skončil som na takte 6MHz !)


Na ľavej strane v strede je 14 pinová pätička a v nej je založený

malý x-talový oscilátor 1.8432MHz, ktorý má iba 8 pinov.

 

Doska je na prvý pohľad relatívne veľká (euroformát 100 x 160mm), ale vďaka tomu nie je žiaden problém pri návrhu rozmiestnenia čipov na doske. Ak by somtoniekedy staval od začiatku nanovo - tak by som zvolil úspornejšie osadzovanie dosky - dosiahol by som väčšiu hustotu osadenia a teda ešte nejaký ten čip by na základnú dosku bolo možné pridať. Hja, po bitke je každý generál ...
___________________________________________________________


Dôležité rozhodnutia:

- zvolené napájanie 12V/DC, motherboard potom beží z DC/DC meniča 12V/5V

  (teraz sa mi tých 12V na doske naozaj hodí ... pozn. 26.09.2019)

- vypínač je vyvedený na zadnej strane
- konektor napájania je vyvedený na zadnej strane
- RS232 konektor bude vyvedený na zadnej strane

- na prednej strane je vyvedený systémový Reset, je to praktické

- indikácia LED na prednej strane:

  LED (zelená)       = napájanie

  LED (červená)    = indikácia prenosu dát smerom von z SBC6502

  LED (oranžová) = indikácia prenosu dát smerom do SBC6502


Nasleduje moje zapojenie SBC6502, ktoré sa bude postupne meniť podľa jednotlivých verzi, verzia 1.0 je základná:

SBC6502ver1_0n.PNG (65,39 kb)

 

Potrebný súbor do Eprom pamäte nájdete tu:

http://searle.x10host.com/6502/osi_bas.zip

(tu je dôležitý súbor osi_bas.bin (alebo  ROM.HEX, podľa toho čo berie Vaša napaľovačka Eprom ako zdrojový súbor), ktorý treba napáliť do Eprom pamäte typu 27128)

______________________________________________________________________________

 

Aby ste počítač vedeli pripojiť a komunikovať s ním potrebujete si zabezpečiť ešte jednu vec: - potrebujeme null modemový káblik, pozor, maximálna odporúčaná dĺžka je cca 1.5m (prenos dát beží na 115.200Bd čo je celkom slušný "cvrkot"), ale bežalo mi to aj na dlhšom kábli. Používam prevodník USB - RS232 typu Prolific, pretože je naprosto bezproblémový pri automatickej inštalácii a aj pri následnej prevádzke - používam Win7 a Hyperterminál a notebooky ako vieme už dlhšiu dobu nemajú v sebe k dispozícii priamo sériový port a tak si musím pomôcť prevodníkom USB ↔ serial port. Na výstupe z prevodníku USB - RS232  je použitý 9 pinový CANON konektor (male, samec). Niektoré prevodníky majú cca 1.5m USB káblik a až potom nasleduje RS232 konektor - tu sa potom použitá vzdialenosť predlžuje na bezproblémové 3 metre (1.5m USB káblik a na ňom prevodník + RS232 káblik, dlhý tak isto max.1.5m). Ďalšie predĺženie komunikačnej vzdialenosti sa dá dosiahnuť iba znížením prenosovej rýchlosti, napr. na hodnotu 38.400Bd alebo na 19.200Bd, podrobnejšie sa tomu budem venovať v niektorom z ďalších pokračovaní na tému SBC6502 - generátor prenosovej rýchlosti.

 

Použitie tohoto kábliku je nevyhnutné -  musí byť zapojený medzi prevodník USB - RS232, teda nedá sa prevodník pripojiť priamo !

Na toto nezabudnite, potom Vás (možno ...) Tongue out nečakajú žiadne záludnosti.


 

Tu sa na to isté môžete pozrieť v prehľadnej tabuľke

(ak sa to nezdá jasné z predchádzajúceho obrázku):

Jediné nepoužité a teda nezapojené zostávajú

na obidvoch konektoroch Canon iba piny číslo 9.

 

Ak môžem odporučiť, šetrite s miestom na motherboarde ak chcete postupne ešte rozširovať funkcie - kto to pozná, vie o čom točím. Ale ako to býva, už som hneď špekuloval že by to časom aj niečo mohlo riadiť a ovládať ... ale dnes to bude iba samotný počítač vo verzii 7 čipov. V ďalšom nasledujú vždy kompletné zapojenia nových verzií. A sám by som už asi volil ešte úspornejšie rozmiestnenie súčiastok, pretože by som potom bezproblémovo na túto dosku dostal ďalšie 2 čipy 74LS138 a čip RAM 6264 (8kB) a teda SBC6502 by mal už priamo v základnej verzii celkom pekných 40kB RAM. Trošku predbieham, pretože som tam "narval" iné čipy a teda v základe som s možnosťou mať 40kB RAM vôbec nerátal. No - ono tých 32kB RAM je pre SBC6502 viac ako dosť, ale tak nejako to aj napriek tomu človeka ťahá pridať tomu ešte nejaké tie bajtíky navyše ... Znova opakujem - 32kB RAM je naprosto postačujúcich - a prvá verzia dosky svojím rozmiestnením súčiastok mi už ďalšie rozšírenie RAM neumožňuje (piggyback, teda umiestnenie dvoch RAM čipov na seba - 62256 + 6264 - tak takto tu na tejto doske bastliť nechcem, dá sa to, ale ja to tak nerobím).

 

Ak sa použije rozširovacia doska s 8255A - teda potom máme k dispozícii celé 3x osembitové porty, práve preto potom treba na doske ešte miesto na ďalšie čipy - toto pripojenie je môj návrh:

- pribudne adresový dekodér 74LS138
- obvod 8255A
- je potrebné "prekopať" reset a teda pribudne ešte čip 555

V ďalšom článku bude počítač rozšírený na 10 čipov, čiže je tam už pripojená 8255A-ka, dnes sa ale týmto rozšírením nebudem zaoberať. Celé sa to dá postupne pohodlne rozšíriť o tú 8255A-ku.

 

Na tomto snímku je 8 pinový oscilátor v 14 pinovej pätičke.

 

2x  jumpery na snímku slúžia na nasledovné:


- u mňa som na doske použil Eprom 27256, pretože tých mám dostatok, 27128 sú naopak dosť vzácne, v schéme ale kreslím zapojenie pre Eprom 27128 - aby to bolo jasné od začiatku, čiže jedným jumperom volím buď spodných 16kB alebo horných 16kB

- druhý jumper som použil pre prepínanie medzi typmi 2 procesorov, môžete tam založiť procesor 65C02 (6502, 6502C) alebo špeciál Atari procesor 14806, v schéme to zatiaľ nekreslím, aby som nikoho nezblbol, potom ako je to vyriešené nakreslím dodatočne (keď som začínal len som dúfal že by to mohlo fungovať aj-aj a skutočne, funguje to !) Prerábka na nasadenie Atari procesoru je maximálne jednoduchá.


Na fotke je tiež osadený DC/DC menič z 12V/5V ktorý mi pripravil pri oživovaní naozaj

pár bezsenných nocí .. kedy som nie a nie prísť na to kde je zašitý problém. Ale teraz

som rád že som to nevzdal a mám na doske aj 12V.

 

ň

Na tomto snímku je osadený 14 pinový oscilátor 1.8432MHz,

mám totiž obidva typy. Zapojenie bude popísané postupne

podrobnejšie.

 

Detailnejší pohľad.

 

Dtto.

 

Tu je použitý oscilátor v 8 pinovom púzdre, vpravo DC/DC menič, zatiaľ použitý obvod pre sériovú

komunikáciu 6850 (1MHz verzia). Napriek tomu šlape ako víno aj na dvojnásobku povolenej

datasheetovej frekvencie. Že to funguje na jednotku aj takto - je jedno veľké +.

 

 Oscilátor 14 pin verzia, detail.

 

V ďalšom článku bude popis vlastnej stavby (čo ešte bude treba) a nejakých tých problémov pri vlastnej stavbe SBC6502. Ono treba zobrať do úvahy to že som si najprv potreboval otestovať či rozbehám základnú verziu SBC6502 a až potom má zmysel skúšať k tomuto už fungujúcemu základu "prilepiť" nejaké tie ďalšie čipy.

______________________________________________________

Návrat do všetkých pokračovaní o SBC6502:

http://blog.3b2.sk/igi/post/SBC6502-0-UvodIntroduction.aspx

______________________________________________________

Vaše hodnotenie, Rate post:

Comments

6/16/2018 6:56:36 PM #

trackback

Directory SBC6502

Directory SBC6502

Igi blog |

Comments are closed

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Blog je o mojich záujmoch - som už na dôchodku, predtým som pracoval ako IT špecialista na počítačové siete a redakčné systémy vo viacerých denníkoch - až som pred rokmi nakoniec zakotvil v jednom denníku kde som to potiahol až do konca mojej profesnej kariéry.