SBC6502 → PROM 74188 burner.
(Dá sa použiť po úprave programu aj pre iné typy SBC.)
Počítač SBC6502 (spodná doska) + programátor PROM 74188 (horná doska).
Tak som sa predsa len pustil do tohoto projektu - programátor pre pamäte PROM 74188, ktorý spolupracuje z SBC6502 Erika0. Cca 20 kusov týchto pamätí mi už dlhú dobu doma ležalo v šuplíku - takže už bolo načase s nimi niečo konečne urobiť. Síce mi naozaj hodne dlho trvalo než som sa do toho pustil (na druhú stranu - mal som čas si poriadne premyslieť čo od takéhoto projektu očakávam, bolo to mimo iného dané aj tým že sa vždy našlo niečo na prácu čo v danom okamihu bolo dôležitejšie - tento stav asi poznáme všetci), stavba a celá realizácia vrátane napísania programového vybavenia mi zabrala viacero týždňov - vlastná doska zabrala stavbou asi tak 3 dni, zbytok času zabralo napísanie základného programového vybavenia. Trúfam si povedať že celé zapojenie je vlastná konštrukcia, dosť mi dalo zabrať programové vybavenie, keď som v ňom urobil jednu vec a dotiahol ju do konca tak mi hneď napadlo že ešte by tam bolo dobré zabudovať ďalší nápad atď., a nejako mi to potom akosi stále bobtnalo a bobtnalo ... až som si povedal dosť ! a teraz je to už v stave na uvoľnenie. Napísanie základného programu mi trvalo cca 1 mesiac, "odsedel" som to celkove asi tak na 14 pokračovaní, padlo na to naozaj pekných pár hodín. Nesedel som nad tým každý deň, čo zase bolo dobré lebo vždy ma niečo na nové, doplnkové napadlo a snažil som sa to potom do programu prepašovať, celkom sa zadarilo.
Pamäť PROM 74188 je síce kapacitou hodne, hodne malá (má púhych 32 Byte), ale výborne sa hodí na použitie napríklad ako konečný automat, dekodér adries, dekodér pre sedemsegmentovky zo spoločnou anódou, alebo spoločnou katódou, alebo je z nej pekný BCD dekodér z plným hexa výstupom zobrazenia (v jednom dekodéri pri piatich vstupných adresách krásne zobrazíte plný rozsah 0÷1Fh na jednej dvojitej sedemsegmentovke) a čo ja viem na čo ešte. Pamäte PROM 74188 sa stále dajú zohnať, pritom nie sú drahé a sem tam sa niečo objaví čo sa do nich naozaj oplatí naprogramovať.
Pred tými rokmi (roky osemdesiate) v našich končinách toto bola jediná možnosť ako sa pokúsiť nahradiť vtedy nedostupné GAL čipy (teda jasne - kombinačná logika nedosahuje možností GAL čipu, ale aj tak sa s tým dalo dosť urobiť - ak niekto vedel čo a ako). Lenže - najprv ste museli PROM 74188 zohnať. A následne si aj postaviť programátor, bez neho to akosi nedávalo zmysel, že áno. Celé to bolo plne v rámci vtedy veľmi zaužívaného (a plne využívaného) hesla USVS - Urob Si Všetko Sám. (Ešte aj výskumné ústavy si stavali vlastné programátory, pretože oficiálny programátor sa buď nedal kúpiť, alebo jeho cena dosahovala výšku nákupu vtedajšieho osobného automobilu - a to ešte nehovorím o dodacej dobe ...) Toto bolo pravdepodobne najväčším problémom pre nasadenie týchto PROM pamätí v praxi, inak by boli ešte viac používané. Výhodná je krátka prístupová doba, ktorá je omnoho kratšia (viac ako 3÷4x) ako má štandartná 150nS EPROM.
Pre neznalých - PROM 74188 je jednorázovo programovateľná pamäť, programuje sa jednotlivo bit po bite až je naprogramovaný celý byte a potom sa tento cyklus postupne opakuje pre všetky byte, zase pekne bit po bite, t.j. ak sa napríklad pri "dlapaní" na ručnom programátore pomýlite pri programovaní jedného jediného bitu, tak pokus musíte kompletne zopakovať - ale už iba s novou PROM, pretože tá prvá je vhodná už iba na vyhodenie ... a vtedajšia cena PROM 74188 bola všetko iné - len nie ľudová, dnešný stav je samozrejme omnoho lepší a tieto PROM sa dajú zohnať bež väčších problémov - a stále za slušnú cenu.
Platí: Raz už zapísaná hodnota bitu =1 sa nedá prepísať na nulu !
Bipolárne PROM sú programovateľné iba raz a nie je možné ich vymazať.
Dodatok ktorý z toho vyplýva:
Prázdna, nenaprogramovaná PROM 74188 obsahuje samé nuly, programuje sa do nej hodnota bitu=1, nuly sa neprogramujú.
Definoval som moje požiadavky na programátor PROM 74188:
č. 1 - aby táto doska fungovala (aj keď za cenu istých obmedzení - pre SBC6502 nie je
k dispozícii príkaz Load a Save) priamo v SBC6502 Erika0
č. 2 - programátor (jeho doska) sa bude priamo nasadzovať na SBC6502 Erika0
č. 3 - možnosť totálneho odpojenia dosky programátoru od SBC6502 Erika0, teda príde
k odpojeniu napájania (vypínač +5V a +12V) a tiež všetkých 3 portov 8255A aj pri
nasadenej doske programátoru (vtedy treba v zapojení použiť DIP spínače - ale
ukázalo sa že odpájanie portov na dosku programátoru nie je potrebné ... )
č. 4 - v zapojení nie sú použité žiadne exotické obvody
č. 5 - pripojenie bude realizované cez čip 8255A, teda cez jeho tri 8-bitové brány
(toto riešenie umožňuje tento hardware pripojiť aj k inému počítaču ktorý má v sebe
k dispozícii čip 8255A teda je tu možnosť práce programátoru aj s iným počítačom)
V zapojení na doske SBC6502 je použitý čip 8255A od firmy NEC , Mitsubishi, Intel
(pretože ich mám), iné ( napr. TESLA) som neskúšal.
č. 6 - príkazy v programe sú realizované priamo pomocou BASIC-u príkazmi POKE a PEEK
(programové vybavenie sa dá použiť s každým počítačom ktorý má k dispozícii čip
8255A, len bude potrebná úprava vlastného programového vybavenia)
č. 7 - chcem dôsledné oddelenie čipu 8255A od vlastného programovaného čipu 74188
(vďaka tomu je použitá väčšia obvodová zložitosť, to ale z hore uvedeného dôvodu
plne akceptujem)
č. 8 - pripojenie a odpájanie napätia čipu 74188 je pomocou DIP relátka, t.j. pri vkladaní
a výbere čipu nemá na sebe žiadne napätia, mimoriadna rýchlosť spínania a rozpínania
DIL relé je výborná, je možné bez problémov vkladať "pauzy" (t.j zotavenie čipu)
medzi jednotlivými programovými pulzami bez najmenších problémov
č. 9 - indikácia základných stavov programátoru sa robí pomocou LED, výborná vec ak sa
objaví problém (akýkoľvek), stačí znížiť rýchlosť prg. pulzov a hneď je vidieť čo sa
práve prevádza. (Naprosto parádna vec pri oživovaní ...)
č.10 - vytvoriť verziu s DIP vypínačmi a aj bez nich
(občas uvoľnenie vývodov čipu 8255A pre inú prídavnú dosku sa môže hodiť)
č.11 - použiť vlastné programové vybavenie ktoré sa bude postupne zdokonaľovať
č.12 - pre programátor treba 12V napájanie, ostatné potrebné napätia sa potom priamo
z neho odvodia ( +5V a +10.5V)
č.13 - v zapojení použiť vlastné zapojenie zdroja +10.5V pre programovanie čipu 74188
(dostupné zapojenia sa mi z viacerých príčin nepozdávajú)
č.14 - celé programovanie PROM 74188 "odmaká" samotný počítač SBC6502, (dosiahne sa
markantné zníženie možnosti chyby dát priprogramovaní oproti ručnému "dlapaniu"
údajov)
č.15 - pre zjednodušenie vlastného programu sa v jednom "ťahu" napaľuje všetkých 32byte,
až potom následne zbieha verifikácia, ak kontrola nesedí - tak sú tieto možnosti:
a. - program skúsi nanovo napáliť obsah (s rovnakou dĺžkou PGM pulzu), platí pre prvé
verzie programového vybavenia, ak je potom obsah v poriadku tak je PROM napálená
a prehlásená za naprogramovanú (O.K.), inak program skončí chybovou hláškou.
b. - obsah sa skúsi nanovo napáliť obsah (s nastaviteľnou dĺžkou druhého PGM pulzu),
platí pre novšie verzie programového vybavenia, ak je potom obsah v poriadku je PROM
napálená a prehlásená za naprogramovanú, inak program skončí chybovou hláškou.
c. - obsah sa pokúsi nanovo napáliť (pričom máme možnosť nastaviť základnú dĺžku
PGM pulzu a dĺžka PGM pulzu v druhom kole je napevno nastavená na 1.5x dĺžky
základného PGM pulzu), toto platí pre najnovšiu verziu programového vybavenia, ak je
potom obsah v poriadku je PROM napálená a prehlásená za naprogramovanú, inak program
skončí chybovou hláškou.
d. - v prípade že nesedí verifikácia ani po druhom kole napaľovania, tak až potom je PROM
74188 definitívne prehlásená za zlú a program ukončí svoju činnosť.
/Takto "nejako" by mal bežať vývoj prg. vybavenia, myslím tým tento konkrétny bod./
Takto to vyzeralo na úplnom začiatku, tu ešte ani nebol na doske pripravený konektor J5.
Vľavo na doske osadený konektor J4. Na ďalšom obrázku je už mimo iného J5 osadený.
Vpravo osadený konektor J5 - zatiaľ len návrh čo kde bude
postupne na doske programátoru umiestnené.
Tu je základné rozmiestnenie na doske programátoru, potom už len postupne pribúdali ďalšie a ďalšie súčiastky, v základnom prevedení sú použité 3x DIP prepínače ktoré umožňujú totálne odpojenie dosky programátoru od všetkých troch portov čipu 8255A bez toho aby bolo potrebné dosku programátoru vyberať z motherboardu SBC6502. Toto bola jedna z mojich požiadaviek, nakoniec ak som vybral DIP spínače z pätičiek tak som mohol pokojne merať na pätičkách či dostávam z portov potrebnú odozvu. (Celkom sa mi to pri oživovaní programátoru hodilo.) Jediná vec s ktorou sa treba zmieriť je to, že všetky DIP prepínače majú na sebe číslovanie v rozmedzí 1÷8, pritom ale robíme s bitmi 0÷7, s tým sa dá žiť, hlavne ak o tom "probléme" vieme. Proste pri základným meraniach pri oživovaní a testoch musíme vedieť na vývodoch prepínačov mierne rotovať zároveň s bitmi a reálnymi číslami na DIP-och a to priamo v hlave ...
Jediná vec ktorú som celkom dobre nezvládol - zapojenie vývodov na konektore J4 - aby mi to sedelo kde treba - musel som prekrížiť na doske prívody k DIP spínačom. Prekríženie je nakreslené v schéme, ale nie je to nič hrozného, miesto na prekríženie vodičov tam je - takže to len na vysvetlenie.
Doska programátoru PROM 74188. Tu je už tých súčiastok na doske programátoru osadených o niečo viac.
(Zatiaľ nie sú osadené čipy, DIP switche a DIP relay.)
Na všetkých fotografiách je verzia programátoru Full 1.
Programátor existuje v 2 verziách - (s DIP prepínačmi na doske a bez nich). Popíšem to podrobnejšie - je tu úplné odpájanie napájania PROM 74188 pomocou kontaktu DIP relé. DIP relé spína za 3ms, alebo preložené do slovenčiny spína už za 3 tisíciny sekundy, plná rýchlosť spínania relé v zapojení sa ale nevyužíva. Napriek tomu tá jeho rýchlosť v danom zapojení je naozaj výhodná, naozaj netreba dlho čakať ...
Oprava:
Nakoniec som na tomto mieste použil ešte rýchlejšie jazýčkové relé EDR201A1200 - spína za 1ms, vypne za 0.5ms - je teda 3x rýchlejšie oproti pôvodne nasadenému, dokáže spínať 1A namiesto 0.5A - bolo k dispozícii - tak prečo nie ?
Jazýčkové relé spína iba +5V pre napájanie PROM cez Schottky diódu, pripojenie programovacieho napätia +10.5V už prebieha pri zopnutom kontakte relé. Kontaktom relátka teda tečie väčší prúd pri programovaní iba v jeho zapnutom stave, potom sa zase odpojí programovacie napätie, až potom následne sa odpojí kontakt relé. Výhodou je to že potom vôbec neprichádza k opaľovaniu kontaktu, DIP relé je pritom naprosto tiché v prevádzka, nie je počuť žiadne "cvakanie", čo je podľa mňa veľké + (tichučko by ste ho počuli iba vtedy ak by ste si priložili ucho priamo na relé - čo ale zase nie je normálny prevádzkový stav mať hlavu položenú na programátore ... myslite na to ako by reagovalo Vaše okolie ak by Vás pri tom sledovalo ).
Ďalej je tu k dispozícii indikácia na prednom paneli pomocou LED, tiež je možné zasunutú dosku totálne odpojiť (teda odpojiť tri 8-bitové porty čipu 8255A od dosky programátoru) pomocou DIP spínačov - toto ale nie je celkom nutné, je to iba moje rozhodnutie, bez problémov je toto možné odpojovanie úplne vynechať - osobne len vypnem napájanie programátoru a DIL spínače sú trvale zapojené, zatiaľ som sa zo žiadnym problémom pri používaní nestretol. Použité zapojenie umožňuje po naprogramovaní jedného bitu úplne vypínať napájanie programovaného čipu PROM 74188 (odporúčané výrobcom - tento čas slúži na zotavenie čipu po programovom pulze), toto sa fakticky nikde na webe v publikovaných zapojeniach PROM programátorov nepoužíva, tu to mám kompletne vyriešené a programové vybavenie túto uvedenú možnosť skutočne naplno využíva, predĺženie samotnej doby programovania je pritom zanedbateľné a teda nevidel som dôvod aby som to nepoužil - ak to mám vďaka svojmu návrhu zariadenia priamo k dispozícii.
Kompletne osadená doska programátoru PROM 74188.
Funkcia LED na doske programátoru:
Zelená LED (x1) - indikácia napájania dosky programátoru
Modré LED (x2) - indikácia - čip 74188 je pod napätím (dané dostupnosťou púzdra iba na 2x2 pre LED)
Červená LED (x1) - indikácia programovacieho pulzu (zvýšenie Ucc z 5V→10.5V)
Vlastný počítač SBC6502 teraz beží na frekvencii =4MHz - mám urobené a pripravené programové vybavenie aj pre iné hodnoty x-talov - pre jednoduchosť používania som sa ale nakoniec rozhodol uverejňovať vždy kompletný program pre konkrétny x-tal.
Počítač SBC6502 (spodná doska) + programátor PROM 74188 (horná doska).
Teraz k vlastnému zapojeniu:
Programátor na svojej doske má 3 integrované obvody - 74LS00, ďalej čip 7417 (ešte lepšie je tu nasadiť obvod 74LS17 alebo 74LS07 - majú nižšiu záťaž na svojom vstupe - a popritom má aj menší vlastný odber) a nakoniec 74LS245 (alebo 74HCT245). Presne za ZIF pätičkou (je to pätička s nulovou prítlačnou silou) v strede na obrázku sa nachádza pomocné 12V DIP relé.
Jazýčkové relé spína priamo výstup +5V na napájanie čipu PROM, +10.5V programovací pulz už teda prechádza cez predtým zopnuté relé). Výhodou je to že pri vypnutí relé je pretekajúci prúd podstatne menší (jeho hodnota je cca 40÷50mA, teda iba vlastný odber PROM pri 5V), pretože vypína už iba +5V napájanie, t.j. riziko opaľovania kontaktu relé v tomto zapojení je skutočne minimálne a teda výdrž použitého relé je veľká, rozhodne vydrží veľmi dlho a v uvedenom zapojení ho len tak ľahko nezničíte. /Zatiaľ napálených už cca 40 obvodov bez najmenších problémov./
Ako som pozeral relé má garantovaných 100.000.000 zopnutí ... čiže nazaj tu nejaký čas vydrží.
Zapojenie vývodov tohoto konkrétneho DIP relé je podrobne nakreslené v schéme vlastného programátoru.
Čip 8255A nám dáva k dispozícii tri 8-portové brány (sú využité kompletne všetky 3 porty a na nich aj všetky bity), v programátore som ich použil nasledovne:
Výstup:
port A - bity 0,1,2,3,4 - vývody PROM 74188 adries A,B,C,D,E
0=A, 1=B, 2=C, 3=D, 4=E, /teda komplet 32byte/
bit 5 - ovládanie CS(neg.) PROM
bit 6 - ovládanie prog.pulzu z 5V/10.5V/5V
bit 7 - ovládanie relé na On/Off pre pin 16 (Ucc) PROM 74188
ovládanie sa prevádza pomocu príkazu POKE
Výstup:
port B - bity 0,1,2,3,4,5,6,7
ovládanie tranzistorov T1÷T8, ktoré spínajú výstupy portu B do 0 pri programovaní
pamäť PROM 74188 sa programuje postupne v rámci bytu iba jednotlivo po bitoch,
vždy je zopnutý v jednom okamžiku iba jeden bit, t.j. v jednom momente spína iba
jeden tranzistor BS170,
ovládanie sa prevádza pomocu príkazu POKE
Vstup:
port C - bity 0,1,2,3,4,5,6,7
čítanie obsahu PROM, čítanie obsahu PROM po naprogramovaní
ovládanie sa prevádza pomocu príkazu PEEK
Je načase zverejniť schémy - sú 2 verzie:
Full 1 - použité DIP switche
Full 2 - jediný rozdiel - v zapojení nie je použitý 3x DIP switch
Programátor PROM 74188 - zapojenie Full 1 verzie - v nízkom rozlíšení:
Programátor PROM 74188 - zapojenie Full verzie 1 - v plnom rozlíšení:
prom74188programmer_full_hires.PNG (70,91 kb)
_________________________________________________________________
Programátor PROM 74188 - zapojenie Full 2 verzie, ale už bez použitia 3x DIP switch - v nízkom rozlíšení:
Programátor PROM 74188 - zapojenie Full 2 verzie (no DIP switch) v plnom rozlíšení:
prom74188programmer_full_hires_no_switch.PNG (67,19 kb)
Upozornenie:
Na pôvodných obrázkoch zapojenia programátoru boli nedopatrením z mojej strany prehodené vývody na tranzistoroch BS170, (B7 bolo na mieste B0 atď. - už je to v schémach opravené.
Nakoniec som v zapojení použil 12V DIP relé typu EDR201A1200 (odpor cievky = 1000Ω). Má schopnosť spínať prúd 1A, je to viac ako treba, maximálny prúd cez kontakt sa očakáva 450mA /pritom tečie len v zopnutom stave a pri vypnutí relé je už tento prúd vypnutý, tj. relé nie je príliš zaťažené/ a samotné relé je aj mimoriadne rýchle. (Pôvodne som tu mal nasadené DIP relé pre prúd 0.5A ktoré malo v sebe integrovanú ochrannú diódu - zase tu raz platí že väčší je lepší ...)
DIP relé ktoré som nakoniec použil nemá v sebe integrovanú ochrannú diódu pripojenú paralelne k vinutiu a preto som zapojenie musel mierne upraviť - nová ochranná dióda D5 je umiestnená priamo v pätičke pod samotným relé - tu stačí použiť diódu 1N4148.
Ak máte aj Vy k dispozícii jazýčkové relé ktoré nemá v sebe integrovanú ochrannú diódu - tak si potom upravte zapojenie nasledovne:
V zapojení pri použití uvedeného relé pribudne ešte dióda D5 typu 1N4148,
ktorá je priamo pripojená na piny relé - a to na č.2 a č. 6.
Poznámka (28.11.2021):
Pôvodne som tu uverejneil 3 verzie zapojenia programátoru, zapojenie verzie Light som ale nakoniec úplne stiahol, pretože rozdiel v zložitosti bol zanedbateľný a výsledné uverejnené 2 verzie sú omnoho lepšie vybavené na sledovanie toho čo sa pri programovaní PROM 74188 deje. Schémy sa zjednotili a považujem to za dobré riešenie- takže odteraz sú len 2 verzie zapojenia.
Programové vybavenie je jednotné pre obidve uverejnené verzie programátoru.
_________________________________________________________________
Do ľavého spodného rohu ZIF pätičky som navŕtal malú dierku (pozor, len veľmi plytko - nie hlboko !) a dal som tam kvapku bielej farby - je to teraz také jednoduché označenie pinu č.1, PROM 74188 sa zakladá do pätičky rovnakým kľúčom tak ako sú osadené všetky ostatné použité čipy na doske. Páčka ZIF pätičky e umiestnená napravo, inak by na doske zavadzala (bol by k nej zlý prístup) - a tiež som nechcel aby páčka v dolnej polohe vyčnievala svojím obrysom mimo dosky programátoru, to by mohlo vadiť (napríklad pri preprave, ľahko by sa ňou potom o niečo zavadilo). Rozloženie súčiastok (a teda aj použitá dĺžka prívodov) nie je nejako kritické, rýchlosť programu v jazyku BASIC na doske SBC6502 dovoľuje rýchlosť zmeny stavov na portoch čipu 8255A niekde tesne pod hranicou 1msec (pri x-tale 1.8432MHz, pri x-tale 4.0000MHz to bude už hodnota o niečo menšia ako polovičná) a teda na prívodoch má čas sa všetko dostatočne ustáliť. Dá sa to postaviť aj podstatne menšie, ale ja som si na to vyhradil celú Euro doštičku 100x 160mm, pretože teraz to mám ako jeden z možných modulov ktorý sa dá priamo nasadiť na samotnú dosku SBC6502. Napravo celkom dolu (na ďalšom obrázku) je vidieť 8ks tranzistorov BS170 - ich výhoda je tá že netreba pri nich použiť predradné odpory na ich vstupoch. Na druhú stranu - pre ich náchylnosť na prerazenie statickou elektrinou som ich vstupy radšej natrvalo "prizemnil" 100k odpormi, je to istejšie (tým som výhodu nepoužitia odporov na vstupoch tranzistorov vo výsledku zase celkom úspešne eliminoval ). Ale zase už teraz tak silne nehrozí ich prieraz, takže ... ako vždy niečo za niečo.
Záťaž vstupov čipu 8255A je minimálna a ochrana pred statickou elektrinou funguje. Nakoniec, kde sa dalo som v zapojení použil združené odporové polia (alebo ak chcete odporové siete), šetrí to počet použitých potrebných vývodov (a teda aj počet výsledných prepojení na univerzálnej doske), naozaj užitočná vec.
Na tomto obrázku úplne vpravo tesne za DIP prepínačom je vidieť 8x 100k odporové pole ("čierny vankúšik") pre tranzistory BS170, ako som už spomenul zaberá to menej miesta. Vpravo DIP spínač pre port B (nad ním priamo sú tranzistory BS170 a ide sa už priamo na pätičky ZIF), v strede DIP spínač pre port A (z neho sa ide na čip 7417) a naľavo DIP spínač pre port C (ten berie údaje cez čip 74LS245) - toto rozmiestnenie na doske sa mi ukázalo ako najlepšie.
Veľký pozor na statickú elektrinu - tranzistory BS170 sú na to dosť chúlostivé. Mne sa osvedčilo ich vývody pri inštalácii skratovať kúskom drátiku, potom po osadení všetkých spomenutých tranzistorov v doske tieto drátiky odstrániť - nestretol som sa potom s tým že by sa mi niektorý z tranzistorov prerazil. Niekedy tie najjednoduchšie metódy sú najúčinnejšie - a najspoľahlivejšie.
(Na univerzálke sa tranzistory nevymieňajú práve najlepšie - smeruje k nim viacero vodičov - pri tejto stavbe som mal k dispozícii iba jednoduchú odsávačku, teraz som už podstatne lepšie vybavený.)
Ešte sa vrátim k napájaniu, už som to popisoval, privedené napájanie je cez konektor J5, na dosku priamo ide cez vypínač +5V a +12V (teraz oceňujem že som pri stavbe SBC6502 od začiatku trval na použitom napájaní 12V/DC, teraz sa mi to pre programátor výborne hodí, vytrvalosť v tomto smere sa nakoniec predsa len vyplatila). Samotný spínaný napájací zdroj dáva 12V/DC - je schopný dodať prúd 1.5A.
Pozorný čitateľ si iste všimol že na doske mám použitých celkom dosť jumperov - tieto slúžili výlučne na pripojenie a odpojenie jednotlivých častí pri ich skúšaní a testovaní, keď som to potom celé prepájal a oživoval do chodiaceho celku. Robil som celé zapojenie z hlavy a jednotlivé celky som oživoval postupne. V schéme je už všetko nakreslené tak ako je zapojené v reáli. Takže prosím - ešte raz zdôrazňujem - jumpre mi slúžili iba pri vlastnom oživovaní a testovaní vyvíjaného zapojenia, teraz ich už ignorujte a nehľadajte ich zapojenie niekde v schéme - nie sú tam zakreslené - nie sú totiž už potrebné, ďakujem ! Ak sú na obrázku zapojené tak slúžia na prepojenie jednotlivých častí do jednoho funkčného celku.
Priamo na prednej strane doštičky plošného spoja sa nachádzajú 2 menšie konektory - tie sú tak isto nevyužité, časom má byť na nich iba fyzicky zavesený predný kryt, neslúžia na nič iného - toľko na vysvetlenie.
Výkonový tranzistor BD140 som umiestnil na malý chladič - ten by stačil síce aj menší (alebo žiadny, tiež to bude fungovať, viď text ďalej), ale použitý chladič bol k dispozícii a na doštičku sa dal umiestniť na "ležato", t.j. tak že nikde neprečnieva a teda nezvyšuje konečnú stavebnú výšku. Tým pádom bolo rozhodnuté o jeho nasadení. Použitie chladiča nie je bezpodmienečne nutné - ak je všetko O.K. tranzistor v zapojení bezpečne "chodí" iba v spínacom režime, ale ak by bola založená do pätičky naozaj nejaká hodne "blbá" (t.j. pokazená PROM - a to sa nedá nikdy dopredu vylúčiť) - tak bez chladiča by asi nasledovala jeho tepelná deštrukcia a bola by potrebná jeho výmena. Umiestnenie a zapojenie výkonového tranzistoru BD140 je vyriešené tak, že je ho možné vymeniť priamo na doske a to bez akéhokoľvek pájkovania. Stačí iba dať preč šrób ktorý drží tranzistor v chladiči a tranzistor je možné priamo vytiahnuť z jeho pätičky. Trošku som sa "zapotil" pri tvorbe spínača 10.5V zdroja, tranzistory BC546 majú u mňa menšie odpory v báze ako v zapojení v AR (teraz sú tam odpory = 2k2). Moje použité BC546 majú h21e=380, ak máte doma tranzistory s rovnakou alebo vyššou hodnotou - použite ich. Dtto sa týka tranzistoru BD140 (použitý má h21e≥110), na jeho zatvorenie som zvolil odpor = 1k2, asi by tu vyhovela aj hodnota = 1k5. Odpor v kolektore tranzistoru BC546 má hodnotu 360Ω (sériovo zapojené dva odpory 180Ω), tu na tomto mieste by vyhovel v zapojení aj odpor 390Ω (toto som ale neskúšal, zase na druhú stranu rozloženie výkonu na 2 malé odpory je dobré - zbytočne nehrejú, alebo inak povedané - na každom z nich je iba polovičná záťaž). K dióde 1N4148 v zapojení zavesenej na bázu BC546 sa ešte vyjadrím - tu len dopredu naznačím že v skutočnosti v zapojení nie je potrebná. Po postavení programátoru som ju už z dosky nevyberal a tak tam zostala - a preto je nakreslená aj v schéme.
Prečo som v zapojení použil práve tranzistory BC546 ? - lebo ich mám doma - a dosť. Na ich mieste sa dajú použiť tak isto známe tranzistory typu 2N3904 (v našich končinách tiež veľmi rozšírené typy KC507 až 509, BC547, BC548, 2N2222 a i.). Dôležité je aby použité tranzistory mali povolený kolektorový prúd minimálne 100mA a h21e≥200, čo všetky spomenuté typy naprosto s prehľadom zvládajú.
Poznámka:
Kondenzátor 1uF pre časovanie oneskorenia som použil keramický (t.j. nepolarizovaný), na tomto mieste neodporúčam použiť elektrolytický kondenzátor (má väčší zvodový prúd). Kondenzátor uvedeného typu je bezproblémovo možné kúpiť, teda nie je dôvod ho nahradiť iným typom.
Všetky časti pri stavbe programátoru boli odsledované na dvojkanálovom digitálnom osciloskope s priamou možnosťou odčítania dĺžky generovaných pulzov.
Jasnačka, dá sa to celé postaviť aj bez digitálneho osciloskopu (meranie reálnej dĺžky pulzu na osciloskope je ale naozaj vec veľmi príjemná), výrazne mi pomáhali pri oživovaní osadené LED-ky, stačilo pri testovaní príslušne v programe spomaliť rýchlosť zápisu a pekne som na LED-kách videl čo sa postupne deje na výstupoch. Rozfázovanie (hodne pomalé) mi veľmi pomáhalo pri písaní programu. Potom už iba stačilo upraviť rýchlosti slučiek a programovacieho pulzu podľa teoretických výpočtov (boli to pritom výpočty iba z hlavy) a už som len jemne dolaďoval na presnejšie hodnoty. Celkom som sa trafil, teoretická hodnota ktorú som naozaj len odhadol (bez nejakých zložitých výpočtov) sa odlišovala o menej ako 8% od praktickej, takže som to len dostavil na správnu hodnotu a bolo vybavené. Toto bola tá najpríjemnejšia časť dolaďovania celého programu - všetko ostatné už fungovalo.
Tu je vidieť 1uF kondenzátor (keramická väčšia "kvapka" modrej farby hneď vedľa tranzistoru) na obrázku vľavo dole.
Ďalšia perlička - s ktorou som ale nerátal, ale veď to poznáte - keď sa "zadarí", tak to skutočne stojí za to ... - indikácia (červená LED) programovacieho napätia pre jednoduchosť zapojenia (použitý vlastný nápad) používa na vstupe 5.1V Zenerovu diódu (ZD) aby svietila až pri napätí na čipe =10.5V. Osadil som tam supersvietivú LED, lenže - akurát voľba tejto supersvietivej "potvory" spôsobila že sa aj pri napätí na vstupe =5V zbytkovým záverným prúdom zenerovej diódy už celkom intenzívne rozsvecovala (toto som fakt nečakal, možno to robila táto konkrétna ZD, život niekedy prináša nečakané prekvapenia), čiže to bolo v tom okamihu ako indikácia stavu fakticky nepoužiteľné. Na potlačenie zbytkového prúdu ZD ale stačilo k tejto červenej LED pridať paralelne zapojený odpor 1k÷1.2k, potom už naozaj nesvietila vtedy kedy nemala. Takže bacha na supersvietivé LED v tomto zapojení, tu na tomto mieste ich použitie môže nemilo prekvapiť. Našťastie stačil na vyrešenie problému spomínaný jediný pridaný odpor - a nemusel som "dolovať" dotyčnú ZD von z dosky a tak isto aj spomínanú LED. Následne sa to už správalo tak ako som potreboval (a ako som čakal od samého začiatku). Zase na druhú stranu - toto bol len druhý problém (prvým bolo prehodenie prívodov na jednom tranzistore, zle som si pamätal rozloženie nožičiek, zamenil som C s E, bolo to zaujímavé- robilo to fakt psie kusy ..., stratil som s tým našťastie len pár minät) ktorý sa mi pri stavbe programátoru v oblasti hardware vyskytol - s tým sa naozaj dá žiť. Len pripomínam že som to staval priamo z hlavy a výsledný nákres zapojenia som urobil až po oživení celého programátoru na univerzálke. V schéme je spomínaná úprava zapojenia už aplikovaná.
Vytvorenie potrebného zdroja programovacieho napätia +10.5V:
Programátor je napájaný z 12V/DC zdroja - zníženie napätia na potrebnú hodnotu je vyriešené dvojicou diód 1N4007 (1A typ) zapojenými v sérii, je zaujímavé že majú presne 0.75V úbytok na jednom kuse, teda na ich výstupe je presne požadovaných +10.5V pre programátor. Ako ich predzáťaž som zvolil odpor 1k2 voči zemi, ten možno nie je ani potrebný, ale jeden odpor v zapojení navyše ma už naozaj nezabil a nemám pocit že by som tým nejako nadmerne zvýšil zložitosť celého zapojenia. Týmto mi odpadlo zapojenie s odporom v sérii a 11V ZD, čo som kvitoval s povďakom, pretože práve toto mi na zapojení zdroja 10.5V v AR (Amatérske Rádio) vyslovene vadilo a bolo mi jasné že ak to tak nechám tak sa budem pri programovaní zo zápisným prúdom pohybovať u Alenky v ríši divov a nie v exaktnom prostredí.
(Ešte sa v popise k tomu čo sa mi nepáčilo na pôvodnom zapojení zdroja +10.5V z časopisu AR vrátim - a to v záverečnej 4.časti o programátore PROM).
Ďalšia úprava sa týka použitia Schottky diódy na mieste automatického prepínača 5V na 10.5V a naopak, je to také moje drobné vylepšenie jednej veci na programátore. Na tomto mieste sa často používa dióda 1N400x, z uvedeného vyplýva že potom to dá na čip PROM 74188 napájanie = iba 4.25V čo je už hodne málo. Ak by sa použil odporový delič medzi napájaním a zemou (data výstupy) tak ako je zapojený v časopisoch AR - počítajme - deľte 4.25V/2 a výsledných 2.125V na log.1 je už akosi primálo, preto som zapojenie s odporovými deličmi nepoužil a nasadil som 8x 3k9 voči +5V. Schottky dióda nám dáva minimálne 4.85V pri napájaní čipu PROM 74188, to je naozaj výrazne menší úbytok napätia na tejto dióde oproti typu 1N400x - a práve preto som ju použil v mojom programátore.
Čo sa týka hardware - to je asi tak to najdôležitejšie. Keďže sa všetko podarilo postaviť bez nejakých zásadných problémov, programátor je hotový - a tak som mohol pokračovať už vo vytváraní vlastného programového vybavenia.
Medzitým dostala doska programátoru na seba vlastný ochranný kryt (predsa len na doske sú - mimo iného - aj tranzistory citlivé na statickú elektrinu), nakoniec kryt je vždy - dobrá vec. Všetko mimo samotnej ZIF pätičky a DIL prepínačov je už zakryté. V neposlednom rade je krytom chránená tak isto aj vlastná páčka ZIF pätice - ak je sklopená dovnútra.
Miesto na polohovanie páčky tu je, tak isto na jej opätovné vyzdvihnutie, s tým som pri návrhu rátal,
nakoniec - páčka sa dá vyzdvihnúť aj zboku, je tam na to dostatok miesta. V hornom kryte je tiež
ponechaný dobrý prístup k DIP prepínačom.
No a keď sa už urobil kryt vrchný - tak som urobil aj kryt predný.
(Vsadil som na strohý industriálny vzhľad.)
V druhej časti bude popis programového vybavenia - alebo inak povedané - manuál - nech sa môžete zoznámiť s tým čo program dokáže.
Záverom dodám:
Pri testovaní som "obetoval" 3 kusy PROM 74188, pretože som chcel mať 100%-nú istotu že programátor robí všetko tak ako má - síce z toho boli 2 kusy ktoré mali v sebe už napálené nejaké tie bitíky, ale neľutujem to, síce priebehy na osciloskope boli také aké treba než som ich použil, ale reál programovania je reál ... stálo to za to ich obetovať.
___________________________________________________
Priama možnosť skočiť do ďalších častí:
SBC6502 - 34 - Programátor PROM 74188. PROM 74188 programmer. Part 2-4.
SBC6502 - 35 - Programátor PROM 74188. PROM 74188 programmer. Part 3-4.
SBC6502 - 36 - Programátor PROM 74188. PROM 74188 programmer. Part 4-4.
____________________________________________________________
Návrat do všetkých pokračovaní o SBC6502:
http://blog.3b2.sk/igi/post/Directory-SBC6502.aspx
____________________________________________________________
Vaše hodnotenie, Rate post: