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

By Administrator at januára 11, 2016 18:00
Filed Under: SBC6502


 

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


- základný pracovný takt =1.8432MHz
- k dispozícii je vstavaný Basic

  (upravený OSI Basic 8kB do 16kB Eprom)
- 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)

- zobrazenie:

   max. 80 znakov v riadku, 22 riadkov (Hyperterminál), počet znakov riadku sa dá

   programovo zmenšiť pomocou POKE 15,X- kde X môže mať hodnotu max.=80


Použité obvody:

- 1x procesor 65C02, alebo 6502C

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

- x-tal oscillator 1.8432MHz

____________

 

Ak sa následne použije aj rozširovacia doska s čipom 8255A (potom máme k dispozícii celkove 3x osembitové porty - pripojenie je vlastný návrh) tak 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 urobiť 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 toto sa ešte asi časom uvidí ...).

 

Neskôr doplnená táto poznámka - nakoniec som takt procesoru vyšróboval na hodnotu 6.00MHz.

 

Možno sa to nezdá, ale aj tých 32kB RAM je hodne veľké miesto pre software, tobôž ak sa 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 asi nemusím zdôrazňovať že je to 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 na začiatku nemal k dispozícii rýchlejšiu verziu - teraz už mám aj čipy 68B50

Takže teraz to už 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 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 aj tak 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 teda 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 Eprom pamäťou typu 27256 (tých mám doma podstatne viac, 27128 sú u mňa momentálne celkom nedostatkové zbožie) 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 takto ? 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 na hodnote 1/5 jeho povolenej záťaže (vlastne sa tu fláka ...). 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 kus "žravejší" - staršia technológia). S tými 12V počítam 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ť", teda akým zdrojom je na Vás.


- pridal som obvod 8255A, sú potom k dispozícii 3x brány 8bitov voľne programovateľné ako vstupné, alebo výstupné, na drobné riadenie je to ako stvorené, 24 bitov ktoré sú potom k dispozícii mi zatiaľ 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 procesoru, 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 som to niekedy staval od začiatku nanovo - tak by som zvolil o niečo ú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ť, proste viac by som tlačil osadenie súčiastkami smerom vľavo a bolo by nakoniec viac voľného miesta na doske napravo. Hja, po bitke je ale 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 je 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: - treba použiť null modemový káblik, pozor, maximálna odporúčaná dĺžka je cca 1.5m (prenos dát beží na 115.200Bd čo je už celkom slušný "cvrkot"), ale odskúšané mám že to bežalo aj na dlhšom 2m 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 som si musel pomôcť prevodníkom USB ↔ serial port. Na výstupe z prevodníku USB - RS232  je použitý 9 pinový CANNON 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. Ď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 tomuto budem venovať v niektorom z ďalších pokračovaní na tému SBC6502 - generátor prenosovej rýchlosti.

 

Použitie null modemového kábliku je nevyhnutné -  musí byť zapojený v ceste za prevodníkom 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 Cannon 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 tu 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 na tejto doske bastliť nechcem, síce 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 8bitové 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 2 typmi 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 pritom skutočne 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 priamo mám na doske aj 12V.

 

ň

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

mám totiž k dispozícii 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 datasheetovej

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

 

 Oscilátor 14 pin verzia v kovovom púzdre, 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

16. 6. 2018 18:56:36 #

trackback

Directory SBC6502

Directory SBC6502

Igi blog |

Info o autorovi

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

Rok, mesiac, počet článkov: