SBC6502 - 2. 7 chip computer. 32kB RAM. Vlastná stavba.

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

Stavba SBC6502 7 čipová verzia, popis stavby.

 

 

Upozornenie:


Správne by mali byť popísané veci v tomto článku asi v opačnom poradí, ale nakoniec som sa rozhodol že to nechám tak ako to je, proste je to v poradí  ako som článok postupne napísal. Preto niektoré veci možno na prvý pohľad nedávajúv danom okamžiku zmysel, ja zase dúfam že to správne z popisu si v správnom poradí dokážete poskladať u seba v hlave - aj napriek popisu ktorý nie je systematický. Takže buďte zhovievaví, potom som to už nechcel redigovať, možno to osvetlí niektoré - hrdo to nazvem "myšlienkové pochody" pri tom ako som sa to snažil rozchodiť.

Ďakujem.


Napájací zdroj pre SBC6502 - napájanie z 12V, DC/DC menič 12V/5V:

Tak použitie DC/DC meniča 12V/DC/5V/DC sa ukázalo pri stavbe ako najväčšia "hovadina" z celého projektu. Použitý čip síce krásne vyrába potrebných 5V, ale pri použití vypínača na prívode od 12V tam boli také stavy (čo som zistil až dodatočne) že som až nadskakoval, pretože som ani vo sne netušil že to robí práve tento spínaný zdroj 12V/5V. Proste SBC6502 raz nabehla, potom trebárs nabehla ešte 10x po sebe a šlus ! Jednoducho 5 minút nenabehlo nič, vôbec nič. Vypol som, počkal trebárs 5 minút a zase všetko išlo akoby sa nič nedialo. No, stavy - pokúšal ma infarkt ... Tento stav som zo škrípaním zubov akceptoval pri 7 čipovej verzii, ale pri 10 čipovej verzii SBC6502 to proste naozaj kompletne prestalo rozumne chodiť. Hľadal som zo začiatku chybu všade inde, zdroj som ale nepodozrieval (sic!). Skúsil som aj zväčšiť kapacitu na vstupe meniča, pridal som ešte 1GB kondenzátor, ale nič sa nezmenilo. Myslel som si že mám problém niekde v drátkování prívodov, preto som konečne dosku umyl v liehu a - problém aj tak pretrval. Hľadal som problém tam kde nebol ... 


Prvé, problémové zapojenie DC/DC meniča 12V/5V

 

Nepomohol ani na novo postavený zložitejší reset, pretože som sa domnieval že ten "veľajednoduchý" pôvodný reset môže spôsobovať tieto problémy (omyl !, nebola to pravda, zase trefa vedľa) - tak som si dal 2 dni pauzu a potom ma napadlo prehodiť vypínač až na výstup 5V z meniča.

 


Bingo !


Všetky problémy zrazu zmizli. A dovtedy pri prepnutí a testoch absolútne nechodiaci a maximálne tvrdohlavo odolávajúci čip od Atari číslo popisné = 14806 tak isto poslušne "sklonil" hlavu a začal fungovať akoby po šibnutí čarovným prútikom a odvtedy funguje na jednotku v kuse. No, vydýchol som si.

 

Druhé, už bezproblémové zapojenie DC/DC zdroja

 

 

Takže poučenia z toho plynúce:

- že aj ten mnou podozrievaný superjednoduchý reset s jedným odporom bol na 100% funkčný 
- spínané zdroje vedia byť pekné "svine", škoda len ak to musíte zistiť na vlastnej koži
- môžete použiť priamo napájanie z USB (do 0.5A je ešte slušná rezerva) a teda nemusíte použiť ako

  ja spínaný zdroj
- alebo použite priamo iný pre Vás dostupný 5V zdroj

- alebo hľadajte iného výrobcu spínaného DC/DC meniča, ak nie potom použite vypínač na

  nakreslenom mieste ! (ušetríte si tým kopu času hľadaním hovadiny ...)


Mne to zabralo nájsť problém dobre cez týždeň, pretože som medzitým staval rozšírenie s 8255 a riešil som aj iné veci, proste tak nejako som dúfal že tým novým resetom sa problém "blbých" štartov vyrieši. Samozrejme - nevyriešil sa - musel som na to prísť pekne, postupne, ešteže ma z toho nekleplo ... nuž ak sa spoľahnete na to že zdroj je na 100% v poriadku a neskontrolujete si to - máte zarobené na problém ako som si zarobil ja.

A ako som nakoniec na to prišiel ? Síce som ten spínaný zdroj na 5V nemeral na zákmity, ale napadlo ma proste pripojiť to už priamo na iný 5V zdroj a naskočilo to bez najmenších problémov ...


Pri použití DC/DC meniča na 5V typu RECOM R-785.0-1.0 je povolené napájacie v rozsahu 6.5V-18V/DC, povolený výstupný prúd je do hodnoty 1A. To je dosť, hlavne
ak viem že aj pri použití Atari procesoru ideme zo spotrebou tak do hodnoty =200mA, ak nasadíme viacej pamäte tak vylezieme maximálne na hodnotu tak asi 240mA. Ak použijeme procesor 65C02 tak sa na hodnotu 200mA ani pri rozšírení pamäte určite nedostaneme. Z toho vyplýva, že stačí použiť menič s menším výstupným prúdom, konkrétne by stačil typ na prúd do hodnoty 0.5A. Jeho označenie je RECOM R-785.0-0.5, výhodou je väčší rozsah povoleného vstupného napätia, ktorý sa pohybuje v rozsahu 6.5V-34V/DC. Mal som doma verziu na 1A, tak tam išla tá silnejšia a ako som už spomínal mám doma dostatok 12V/DC zdrojov a teda ani povolené hodnoty vstupného napätia použitého meniča ma nijako neobmedzili. Až na tie trable pri zapínaní, no ale to sa podarilo tiež vyriešiť.

___________________________________________________________

Ešte predtým pri prvom základnom oživení bola ešte jedna vec čo mi spôsobovala "hodne veľké vrásky na čele":


U mňa bol ten vtip v tom, že som mal naraz 2 problémy, jeden čo robil zdroj som už popísal, ale problém bol ešte jeden a nevyriešený a predchádzal problému DC meniča:

Postavené, zapojené, skontrolované, prepískané a čo ja viem čo ešte, potom zapnuté - a nič ...

Nasledovalo znova kompletné premeranie a prepískanie - všetko sa ukazovalo O.K, ale mašina ani nepípla, no proste najlepší stav aký som si len mohol želať ... Odber dosahoval iba 42mA na 5V. Na nejaký totálny skrat to nevyzeralo, oscilátor bežal, sonda bola na adresných a dátových vodičoch svojím spôsobom nepoužiteľná, síce ukazovala že sa tam niečo deje, ale nedávalo to vôbec žiaden zmysel.

Až asi po ďalšom cca 2 hodinovom hľadaní (kedy som to celé kompletne multimetrom prepískal minimálne 3x bez rozumného výsledku - vrŕŕŕŕŕrŕŕŕŕ (samozrejme bola kontrola schémy vodič po vodiči - aj s obkresľovaním prepískanej trasy), potom zase nasledovala krátka pauza - ale aj tak som nebol schopný problém nájsť, až nakoniec ma napadlo prehodiť prívody pri meraní od multimetru (teda zmenil som polaritu káblov pri meraní) a potom som zistil že adresné vodiče A14 a A15 (na pätičke procesora 65C02, ten stav tam bol aj keď som procesor z pätičky vybral) majú medzi sebou odpor 42 Ohmov, ak som multimeter priložil s opačnou polaritou (tak som meral predtým) tak tam bol nekonečný odpor. Dióda ako vyšitá ... jeden môj známy týmto javom hovorí:

"Laik žasne, odborník je v prdeli." (Môj prípad.)

No a ja som to dovtedy stále meral s priloženou opačnou polaritou t.j. práve toto prepojenie mi vždy ukazovalo s nekonečným odporom - meral som to zjavne práve s tou opačnou polaritou ktorá neukázala chybu. Aby som to  vysvetlil a aby som nezabudol - bolo vtedy práve piatok 13-teho, čo by mnohé vysvetľovalo. A potom neverte na dátumy ...Laughing
Nezostalo nič iné ako zapojiť túto časť znova - v podstate bolo treba zlikvidovať "skrat" na adress bus medzi A14 a 15 a toto už vysvetľovalo prečo mi to nebežalo - prívody som nanovo pre istotu prepájkoval - stav zotrval - a tak mi nezostalo už nič iného - odpájkoval som tie 2 konkrétne adresové vodiče a dal som tam nové kábliky. Následne zase premerané - O.K, tak som založil procesor a zapol som to.

A mašina naskočila ... no čo si budem nahovárať, vždy je to dobrý pocit keď niečo postavíte a tá potvora ožije.

____________________________________________________________

Ktorý vodič z tých 2 kusov robil tú diódu, tak to dodnes neviem pretože som ich okamžite zahodil do koša, rozumné vysvetlenie na celý jav skutočne dodnes nemám -a to ani s odstupom času - a to som si myslel že ma len tak nejaká vec neprekvapí. V živote som sa nikdy s niečím takýmto nestretol. Zjavne som tu mal k dispozícii celkom nový polovodič (možno to ale bol dvoj-polovodič), pomenoval by som ho ako 2-SBC polovodič, vzhľadom k jeho likvidácii ale nie je možné tento stav niekde ešte nanovo zopakovať a tento teda objav asi nenávratne zanikne, pretože bol pozorovaný len mojou osobou. Zase raz Slovensku Nobelovka unikla o vlások, teda bacha - poučte sa a nehádžte takéto objavy oblúkom ľahkovážne do koša tak ako ja ... 


Wink Wink Wink

Doplňujúca a vysvetľujúca poznámka:


Až po nejakom čase som si poskladal čo to vlastne bolo a čo sa to tam porobilo. Merania som robil tak že som vytiahol mikroprocesor (aby som mal dobrý prístup). Ostaté čipy som nechal osadené. Áno asi už začínate šípiť kde bol problém. Čip 74LS138 ... Prepájkoval som nanovo prívody - A14 a A15 na čip priamo idú, nič sa ale na prvýkrát nezmenilo - to som už spomínal. Nakoniec som A14 a A15 vodiče k nemu vymenil - idú priamo z procesoru. Druhé nové spájkovania čip z nejakých mne neznámych príčin na čas nejako asi tepelne "nakoplo" a chvíľu sa správal normálne. Odkedy som čip 74LS138 vymenil je všetko O.K. Ten čip mal v sebe skutočne tak nenormálne prepojené "vodivé" cesty že sa divím že nenarobil viac škody ako to že to iba blblo. Keby som nebol lenivý vybrať všetky čipy pri meraní tak som si pri SBC 6502 ušetril pekných pár hodín ... Jedna hovadina, poriadna - ale fakt ma potrápila.
Takže Nobelovka nehrozí ani náhodou ...

_________________________________________________________________________________

Po správnom zapojení a pripojení napájania sa objaví na termináli nasledovná správa:

Cold [C] or warm [W] start?

Stlač C.
Následne sa vypíše:

MEMORY SIZE?

Stlač [Enter] , vtedy sa použije maximálna veľkosť dostupnej RAM
Po cca 1 sekunde (beží memory test) sa objaví hláška:

TERMINAL WIDTH?

Stlač [Enter] pre default (72 znakov na riadok) , inak maximálna hodnota =80.
Potom už nasleduje základný startup message:

 32255 BYTES FREE


OSI 6502 BASIC VERSION 1.0 REV 3.2
COPYRIGHT 1977 BY MICROSOFT CO.

OK

Bums ! A ste v tom až po uši - tak ako ja ...

Poznámky:
Ak na hlášku Memory size? reagujete napísaním A + Enter vyskočí na Vás Easter eggs - objaví sa meno autora Basicu, ktorý ho "preklonoval" z verzie pre procesor 8080 na procesor 6502.
Pri Warm (reštarte) máte vo výsledku o celé 2 byte RAM menej k dispozícii - ale zase je kompletný Basic program stále v pamäti (t.j. aj po resete).
___________________________
Poďme na celkovú spotrebu - vlastná SBC6502 doska, použitý procesor 65C02 (má nižšiu spotrebu - na rozdiel od 6502C) - teda zapojenie čo používa 7 čipov (teda bez rozšírenia):

- odber 53,6mA na 12V, t.j 12x 0,053A = 643mW = celková spotreba
- odber 97mA na 5V, t.j. 5x 0,097A = 485mW - vlastná spotreba SBC 6502, reálne je to ale ešte menej:

              !  !  !

/Indikácia na prednom paneli je urobená 5mm zelenou  LED na 20mA, takže 100mW z vlastnej spotreby SBC 6502 si kľudne ešte môžete odrátať, potom to už začína byť fakt zaujímavo malý odber celej dosky./

 

Bez LED je vlastná spotreba SBC6502 iba 385mW.

Dokončím:

Preložené do slovenčiny rozdiel 643-485= 158mW je vlastná réžia DC/DC meniča
___________________________

BASIC TEST RAM 31kB:


Pridám sem krátky Basicový program, ktorý dokáže otestovať celých 31kByte RAM (spodných 1kB RAM potrebuje SBC6502 pre vlastnú činnosť - a je tam aj testovací program - ten sa predsa musí niekam tiež zmestiť, nie ?), test trvá pár minút (použitý x-tal = 1.8432MHz, ak ideme na polovičnej frekvencii tak sa ten čas úmerne predĺži). Každá bunka pamäte (byte) je otestovaná na zápis a prečítanie postupne číslami: 0, 55, AA, FF hexa. Takto sú otestované všetky bity jednotlivých byte v rámci 31kByte RAM na kombináciu núl a jedničiek. V prípade chyby (ak sa zápis líši od následne prečítanej hodnoty) sa vypíše adresa a jej obsah - dekadicky, následne program ukončí svoju činnosť.

Ak je všetko v poriadku program zbehne a na konci vypíše: Complete !

 

Poznámka:

Program nesmie presiahnuť určitú veľkosť, inak už zasiahne adresu 1024h od ktorej testuje RAM smerom nahor. Takže ak chcete program upraviť - dávajte pozor na výslednú veľkosť testovacieho programu ! Riadky 17 a 18 nie je možné spojiť do jednoho (ako je to urobené v riadku 16), pretože výsledná dĺžka presiahne veľkosť ktorú SBC6502 dokáže "zobrať" - rozdiel v dĺžke je už 8 znakov a to je už v jednom riadku viac znakov ako SBC6502 dokáže zobrať. Preložené do slovenčiny, alebo do reči SBC6502 - potom proste "ureže" z tejto dĺžky riadku - maximálna dĺžka riadku je na pomedzí 72 znakov. To len na vysvetlenie prečo je to takto a nie inak. Takže nesnažte sa nacpať do jednoho riadku všetko - inak narazíte. Nie je to nejaké strašné obmedzenie, stačí na to len pri tvorbe programu pamätať a niekedy to čo treba urobiť treba iba rozložiť do pár samostatných riadkov. Ak na to zabudnete - SBC6502 dĺžku riadku ustrihne a pri spustení programu Vám to potom chodí chybu.

 

Spôsob postupného testovania bytov RAM pamäte:

jednotlivé bity

00000000            -     zapisuje sa 00h

01010101            -     zapisuje sa 55h

10101010            -     zapisuje sa AAh

11111111            -     zapisuje sa FFh

 

A tu je vlastný Basic program:

 10 ? CHR$(12):G=1024:K=2:REM SBC6502 32kB RAM version
 12 ? " SBC 6502 SHORT 31kB RAM MEMORY TEST"
 13 ? " (c)2017 Igi":? " I do not test the first 1kb of RAM"
 14 ? " Controlled";K;"kB"
 15 FOR F=G TO G+1023
 16 POKE F,0:IF PEEK(F)<>0 THEN 22:POKE F,85:IF PEEK(F)<>85 THEN 22
 17 POKE F,170:IF PEEK(F)<>170 THEN 22
 18 POKE F,255:IF PEEK(F)<>255 THEN 22
 19 NEXT F
 20 G=G+1024:K=K+1:IF K=33 THEN 23
 21 GOTO 14
 22 ? "Problem at:":? "  adress - data":? F, PEEK(F):GOTO 24
 23 ? "Complete !"
 24 ? "End":END

______________________________________________________

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