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

By Administrator at February 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.

___________________________________________________________

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é 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 vyplýva že aj doba prenosu 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 tiež takéto riešenie v jednej z ďalších variant SBC6502.
_____________________________________________________________

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

Jasné, SBC6502 v zostave 7 čipov - tam ten pôvodný fantasticky jednoduchý reset funguje ako víno (len odpor 2k2 voči +5V a mikrospínač z pinu 40 voči zemi), ale ak chcete pripojiť 8255-ku tak treba reset kompletne, ale naozaj kompletne prekopať (na to som prišiel pri pokusoch že to nijako neoblbnem a ani neobídem), chce to ešte jeden obvod navyše = daň za pridanie 8255-ky do systému. Totiž 8255 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 8255-ky. Použil som celkom známe zapojenie resetu s čipom 555, pretože je to veľmi dobre reprodukovateľné a hlavne najprv sa resetuje 8255 a s oneskorením daným prechodom signálu cez hradlo 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 ní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. 


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 je to preklep), 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 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 65C02 a 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 výrazne dlhšia a tak teda zariadenie štartuje bez nejmenších problémov. Kto chce o tom vedieť viac - naštudujte si datasheet.


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

74LS138 (16 pin pätička), ktorý mi pripravil "nové zážitky".

 

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

Založil som následne 8255-ku a jednoduchý reset odvodený z pinu 40 procesora 6502 cez hradlo 74LS00 na čip 8255-ky fungoval. Pridal som adresový dekodér a založil som do pätičky aj 8255-ku - a všetko sa seklo a ani bohovi nešlapalo. Celé to zmrzlo a nebežalo. Aby som bol presný, správalo sa to ako by bolo natvrdo skratované tlačítko Reset. Isteže tam problém nebol (občas to dokonca nabehlo), ale pripomínalo to staré časy.(Obľúbená zábava skratovať reset 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. Nanovo kompletne všetko premerané a - a zase nič, len sem tam sa to náhodou rozbehlo.

Zase 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 odložené v šuplíku pekných pár rokov, dnes dostalo príležitosť ...
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 ďalšie "psie kusy". A sem tam to dokonca medzitým aj išlo. Takéto hovadiny sa hľadajú najhoršie.
Takže pôvodne použitý čip 74LS138 od TI letel velikáááááááánskym oblúkom do koša (najprv som mu s chuťou uštípal nožičky ...) a je tam teraz nasadený čip 74HCT138. A všetko funguje tak ako má.
____________________________________________________________

"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.)

 

Pretože staviam na univerzálke, tak je tam dosť veľké množstvo drátikov, ktoré sa dajú pri manipulácia 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. nehrozí skrat. Ešte som k tomu pridal gumené nožičky nech to má na čom stáť. Medzera medzi kapotou a vlastným plošným spojom stačí 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 to potom zospodu vyzerá vidíte na obrázku.


Záverom tejto časti - dnešný úvodný snímok je tak isto už zo spodnej strany "kapotovaný", stačí sa bližšie pozrieť.

_____________________________________________________________________________

SBC6502 Erika0 extension - 8255:

Rozhodnutie prečo práve je použitá práve 8255-ka je dosť jednoduché - pretože ju mám voľnú v šuplíku a 3 brány oproti 6520 kde sú brány iba 2 (+ čosi navyše) je dosť rozdiel. A na jej nastavenie a naprogramovanie stačí naozaj pár POKE príkazov. A práve jednoduchosť ovládania som volil čip 8255.

________________

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

 

- na ZX81 som pripojil 8255-ku (zrealizované)

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

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

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

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

- na MCS52 bude tak isto pripojená 8255-ka (toto ešte len budem riešiť)

 

Takže to berte 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 8255 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 8255:


Pridané sú čipy 74HC138 (74LS138), 8255 od Intelu, TLC5555 v obvode resetu. Na vysvetlenie - čip 8255 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 8255 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).
Adresový dekodér vyberá adresu 8000H a ďalej ide pekne po 1kB, teda môžete pripojiť 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 8255. 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 8255

 

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:

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading