SBC6502 - 4. 7 chip computer. 32kB RAM+8255. Name:"Erika0". Stavba.

By Administrator at februára 08, 2016 18:18
Filed Under: SBC6502

(Netriedené poznámky zo stavby rozšírenia SBC6502 pomocou čipu 8255.)


Základná doska SBC 6502 verzia "Erika0"  - iba pätičky, nie sú osadené čipy.

Strana spojov je už "kapotovaná", kábliky kompletne zapojené.

___________________________________________________________

SBC6502 Activity indicator:
Na predný panel som mimo indikácie napájania (zelená LED) vyviedol ešte dve LED-ky - červenú a oranžovú. Červená slúži na indikáciu prenosu Tx - t.j. zo zariadenia smerom von, oranžová zase indikuje prenos Rx, .t.j. smerom do zariadenia. Pretože na obvode 68B50 je Tx a Rx v kľudovej polohe v log.1, treba použiť 2 hradlá obvodu 74LS00 na invertovanie signálu. Ak nahrávame program tak LED-ky veselo poblikávajú, pri posielaní údajov smerom von bliká iba červená LED. Je to celkom dobrá indikácia na sledovanie stavu zariadenia, netreba potom mať stále zapnutý monitor.

Pozor, komunikujeme na rýchlosti 115.200Bd ! čo sú celkom slušné "fofry".

Následne z toho plynie že doba indikácie je veľmi krátka = kratučké bliknutie LED. Stačí to, ale určite je pohodlnejšie použitie monostabilného klopného obvodu, ktorý impulzy predĺži a teda lepšie sa to zrakom sleduje - časom popíšem takéto riešenie v jednej z ďalších variant SBC6502. Napriek jednoduchosti activity indicatoru je to naozaj dobrá vizuálna pomôcka.
_____________________________________________________________

SBC6502 new reset, bavíme sa tu o verzii "Erika0", 32kb RAM + 8255A:

Jasné, SBC6502 v zostave 7 čipov - tam ten pôvodný fantasticky jednoduchý reset funguje ako víno (je zapojený len odpor 2k2 voči +5V a mikrospínač z pinu 40 voči zemi), ale ak chcete pripojiť 8255A-ku tak treba reset prekopať, chce to ešte jeden obvod (555) + 1 hradlo navyše = daň za pridanie 8255A-ky do systému. Totiž 8255A potrebuje pri zapnutí najprv log.1, potom má spadnúť do log.0. Procesor na pine 40 čo je už spomínaný reset potrebuje najprv log.0 a potom má skočiť do log.1, čiže presne naopak ako je to u 8255A-ky. Použil som známe zapojenie resetu s čipom 555, pretože je to veľmi dobre reprodukovateľné a hlavne sa tiež resetuje 8255A. Treba ešte jedno hradlo z 74LS00 (to bolo to posledné nepoužité hradlo, dve čo tam ešte zostali slúžia ako invertory pre LED-ky - Tx a Rx). Teraz je použitých všetkých 8 hradiel ktoré sú spolu v obidvoch obvodoch 74LS00.

 

Pri použití úplne nového resetu treba "prekopať" v zapojení pripojenie tlačítka reset a hlavne treba skutočne odpojiť pôvodné resetovacie tlačítko (!) a zapojiť ho podľa novej schémy. Ak necháte aj pôvodné tlačítko tak Vám zaručene po jeho stlačení odíde U7:74LS00, takže preč s jeho pôvodným zapojením! Nepodceňujte túto informáciu, pretože by ste si zbytočne mohli skomplikovať hľadanie závady, ktorú ste si ale vyrobili sami. 

 

Síce to teraz vyzerá že sa takýto kopanec podaril aj mne - ukľudnite sa, netešte sa zbytočne - mne sa sa to nestalo  (aj tak bolo dosť ostatných vecí ...)

 

V zapojení nového resetovacieho obvodu funguje bez problémov aj starý čip NE555 (ten má spotrebu cca 20mA) aj TLC5555 čo je CMOS verzia čipu (táto CMOS verzia "papá" z 5V celých 0.3mA - nie, nie je to preklep skutočne je to správny údaj), proste dáte tam čo máte, ak treba - neskôr zameníte. 10uF kondenzátor som použil tantalový (malý zvod = dobrá opakovateľnosť doby nabíjania = konštantná doba resetu - reset bude trvať cca 0.5 sekundy, čo bohate stačí na to aby sa zariadenie dostalo do správneho východzieho stavu. (Stačí aj 0.1 sekundy.)  Dosť často sa spomína že prvé verzie čipu 6502 mali problémy ak reset trval viac ako 0.1 sec (niečo v čipe začalo kúriť až sa prehrial, neskôr už tento problém odstránili, mne neblbne ani procesor 65C02 a neblbne ani Atari 14806 čip).

Nechcem to tu nejako do hĺbky rozvádzať a pitvať, ale procesor 6502 (65C02, 6502C) pre svoju činnosť potrebuje aby reset v log.0 pri zapnutí trval dlhšie ako 6 taktov hodinového kmitočtu, až potom je schopný zahájiť svoju správnu činnosť. Doba resetu je u mňa výrazne dlhšia a tak teda zariadenie štartuje bez najmenších problémov. Kto chce o tom vedieť viac - naštudujte si datasheet použitého procesora.


Na tomto snímku je to "ešte rozpracované",  nie je tam nový reset s čipom 555 a nie je naľavo od

Eprom osadený čip 74LS138 od TI (16 pin pätička), ktorý mi tak isto pripravil "nové zážitky".

 

Chcel som vlastný počítač SBC 6502 rozšíriť. O.K, 74LS138 ako adresový dekodér, 8255A ako V/V zariadenie a nový reset popísaný v predchádzajúcom odstavci.

Založil som následne 8255A-ku a jednoduchý reset odvodený z pinu 40 procesora 6502 cez hradlo 74LS00 na čip 8255A-ky fungoval. Pridal som adresový dekodér a založil som do pätičky aj 8255A-ku a ... všetko sa seklo a ani bohovi nešlapalo. Celé to zamrzlo a nebežalo. Aby som bol presný, správalo sa to ako by bolo natvrdo skratované tlačítko Reset. Občas mi to síce dokonca celé nabehlo, ale pripomínalo to staré časy - obľúbená zábava skratovať reset v PC u IT-čkárov pred mnohými, mnohými rokmi a potom sa bádalo kdeže je pes zakopaný že počítač nie a nie naštartovať.

Nepotešilo ma to. Zase nanovo kompletne všetko premerané a - a zase nič, len sem tam sa to náhodou rozbehlo, zobral som si voľno a nechal som to tak, hlava na nové nápady úplne prázdna, žiaden nápad ktorý by ma niekam pohol dopredu. Potreboval som voľno.

Našťastie nasledovala 2 dňová pauza, pretože som bol cez víkend mimo domu. Dnes som konečne hajzlíkovi vypálil rybník a našiel som chybu. Zlý obvod 74LS138. Doteraz som v ňom chybu nehľadal, pretože stačilo vybrať obvod 8255 a SBC sa spokojne rozbehol. Do pekla to sa dejú veci ! Ako som na to prišiel ? Natvrdo som dal pre 8255-ku Reset do log.1 a proste tak isto to nešlo. Vybral som teda obvod 8255 a našťastie to nefungovalo tak isto. Takže sa išlo na adresový dekodér ...

Logicky som následne z pätičky vybral 74LS138-ku a zrazu to išlo ... a ide aj po výmene tohoto obvodu za iný čip od iného výrobcu. Zlaté pätičky ... Texas Instruments 74LS138 originál dnes sklamal na celej čiare. Pffffffff - kurvítko bolo odložené v šuplíku pekných pár rokov a keď dostalo nádhernú príležitosť ... využilo ju naplno.
Ufff, nejako ma tá SBC6502 skúša, ide to oživovať len po krôčkoch, nie a nie sa poriadne rozbehnúť.
Ale nakoniec ma potešilo že som na tú hlúpu chybu prišiel. (Obvod mal zrazu tvrdý skrat medzi pinmi 16 a 15, t.j. nedokázal hodiť do 0 chipselect pre 8255-ku a zjavne to v systéme robilo aj ďalšie "psie kusy". A sem tam to dokonca medzitým aj išlo. Čiže občas to bolo O.K, väčšinou to ale bolo nahov...o. Takéto hovadiny sa hľadajú najhoršie - pri meraní sa to tvárilo že je všetko O.K, po odpojení merákov a sondy z toho bol zase iný a hlavne zase totálne pošahaný stroj. Potvora, dalo to naozaj zabrať.
A čo už iného ako že pôvodne použitý čip 74LS138 od TI letel velikáááááááánskym
oblúkom do koša (najprv som mu ale s chuťou uštípal všetky nožičky, mrňa jedna !, zaslúžil si ...).

Teraz som tam nasadil novší čip 74HCT138 - a všetko funguje tak ako má. Ufffffffffff ...
____________________________________________________________

"Zakapotovanie" spodnej strany plošného spoja:

 

Obrázok ako to vyzerá ak je SBC6502 "Erika0" postavená na univerzálnej doske ... (Odstránený spodný kryt, konečné zadrátkovanie, plne funkčný počítač, nakoniec nie je to až taká "divočina" na zapojenie na univerzálnej doske.) Hrubší medený "zvonkový" vodič = napájacie rozvody.

 

Pretože staviam na univerzálke, tak je tam dosť veľké množstvo drátikov, ktoré sa dajú pri manipulácii odtrhnúť a teda hľadať neskôr nejaký problém v drátikoch sa mi už naozaj nechce tak som spodnú stranu univerzálnej dosky ako konečné riešenie zakryl. Použil som cuprextitovú doštičku ktorá je obojstranne nastriekaná farbou (4x) a následne ešte bezfarebným matným lakom (2x). Strana s medeným povrchom je potom umiestnená na spodnej strane, t.j. smerom preč od vodičov takže nehrozí skrat. Ešte som na spodnú stranu pridal gumené nožičky nech to má na čom stáť. Medzera medzi kapotou a vlastným plošným spojom stačí ak je na výšku matičky M3 (mne sa tam vošli na túto výšku všetky prepojenia). Aby to celé bolo dostatočne pevné a nekrútilo sa to, pridal som ešte dva pomocné šróby, ktoré majú na sebe tiež 3mm matičku ktorá vymedzuje správnu výšku medzi doskami.


Ako potom zospodu vyzerá takáto homemade "kapotáž" vidíte na obrázku.


Záverom tejto časti - dnešný úvodný snímok bez osadených čipov je tak isto už zo spodnej strany "kapotovaný", stačí sa bližšie pozrieť. A fakt to dobre chráni kábliky pre nežiadaným mechanickým zásahom.

_____________________________________________________________________________

SBC6502 Erika0 extension - 8255A:

Rozhodnutie prečo práve je v zapojení použitý práve obvod 8255A-ka je dosť jednoduché - pretože ho mám voľný v šuplíku a 3 brány oproti 6520 kde sú brány iba 2 (+ čosi navyše) je celkom dosť rozdiel. A na jej nastavenie a naprogramovanie (a používanie) stačí naozaj pár POKE a PEEK príkazov. A práve pre túto jednoduchosť ovládania som volil čip 8255A. A ešte jedna neznedbateľná vec - a to ak budem chcieť skúšať SBC6502 pretaktovať - tak ak by som použil obvod 6520 (teda jeho 2MHz verziu) by som sa asi smerom nahor v rýchlosti príliš nedostal.

(Kedysi som mal postavený programátor pre Eprom pamäte s 2x 6520 a teda mal som k dispozícii 4x 8bitové porty, no už po tom doma nemám ani škrt, možno by som našiel schému zapojenia, programové vybavenie zaručene už k dispozícii nemám. Prvý port boli riadiace signály, 2 porty zabrala adresová zbernica a posledný port boli data.)

________________

A aby som vysvetlil prečo som práve týmto čipom 8255A "prebehol" ku konkurencii (Intel), priznám sa že ja ten pocit vôbec nemám, skôr v tom mám akúsi postupnú kontinuitu:

 

- na ZX81 som po prvýkrát pripojil 8255-ku (zrealizované)

  (v roku 1986 som mal na túto tému uverejnený článok v časopise VTM, čiže rovných 30 rokov, sic!)

- na Atari som tak isto pripojil 8255-ku (zrealizované, rok 1990)

- na SBC6502 som pripojil 8255A-ku (zrealizované pred pár týždňami a tu uverejnené)

- na NCB85 je pripojená 8255-ka (práve riešim)

 

Takže to berte z mojej strany ako vrodenú úchylku - nič sa s tým v mojom prípade nedá robiť - i keď priznám sa, mám tam nejaké trošku väčšie časové pauzy v jednotlivých realizáciach, ale to sa stáva aj v lepších rodinách. Sealed


Samozrejme nikomu nebránim pripojiť si tam namiesto tu použitého čipu 8255A a nahradiť ho čipom 6520, skúste to, prečo nie, bude to tak isto fungovať, akurát to chce iné zapojenie v schéme a aj iné ovládanie čipu.

________________
A naspäť zase k už spomínanému resetu a 8255A:


Pridané sú čipy 74HC138 (74LS138), 8255A od Intelu, TLC5555 v obvode resetu. Na vysvetlenie - čip 8255A potrebuje mať pri zapnutí Reset=log.1, ktorý za chvíľu padne do log.0, teda presne opačné hodnoty ako na svojom resetovacom vstupe potrebuje procesor 6502. Podrobnejšie je to popísané v časti o novom resete.
Pomocou tohoto rozšírenia máme k dispozícii 3 brány po 8bitov, kde programovo môžeme voliť ktoré brány budú vstupné a ktoré výstupné, prípadne môžu byť niektoré aj obojsmerné.
Pre výber čipu 8255A na správnej voľnej adrese je použitý adresový dekodér 74LS138 (74HC138 a pod.), v totálnom stave núdze dá sa použiť aj obvod 3205 (ale naozaj iba v stave absolútnej núdze - ale potom sa nedivte ak dekodér bude sám osebe mať spotrebu pomaly toľko ako zbytok celého zariadenia, 3-ková rada čipov sa vyznačovala neuveriteľne veľkou žravosťou príkonu.
Adresový dekodér vyberá adresu 8000H a ďalej ide pekne po 1kB, teda môžete pripojiť až 8 zariadení s adresáciou po 1kB. Ja používam len tú prvú adresáciu a teda ešte sa dá pripojiť ďalších 7 zariadení. Tu sa využívajú z celého zvoleného 1kB rozsahu len adresy 8000H (dec.32768) až 8003H (dec.32771) - teda tieto 4 byty nám stačia pre prácu s obvodom 8255A. Je to síce slušné plytvanie adresným priestorom, ale tu to nevadí pretože v tomto priestore nič nie je a v pôvodnom zapojení SBC6502 sa táto adresná časť vôbec nepoužíva - čiže stručne zhrnuté - všetko je v poriadku.

____________________________________________________________

V ďalšom bude zase popis mojich nápadov pre SBC6502 "Erika0", kde bude vysvetlené:

(všetky popisované nápady sa dajú použiť aj pre verzie 40kB a 46kB RAM)

 

- ako zapojiť do dosky SBC6502 procesor od Atari 14806, teda prepínač,

   ktorý umožní vymieňať procesory 65C02 a Atari 14806 medzi sebou

- ako zapojiť namiesto Eprom 27128 (16kB) typ 27256 (32kB) a mať tak k dispozícii 2x OS

  (jeden OS = pôvodný a v druhom je potom možné použiť vlastné nápady - hlavný dôvod je

  ten že čip 27256 je podstatne lepšie dostupný a keď tam bude - tak to treba využiť)

- zapojenie pre 2 rozličné x-talové oscilátory v jednej použitej 14 pinovej pätičke

- špeciálny Baud generator, ktorý umožňuje zmenu použitých rýchlostí

- doska s externými LED na ovládanie pomocou portu A čipu 8255A

 

Na dnešok stačí, tieto veci popíšem podrobne zase v ďalších pokračovaniach. Ono to zase "niekto" musí do počítača "nadlapať", nakresliť, pofotiť a následne uverejniť. Proste chce to nejaký čas, ktorého mám katastrofálne málo. Ale v rámci možností sa snažím.

____________________________________________________________

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:34 #

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: