SBC6502 - 36 - Programátor PROM 74188. PROM 74188 programmer. Part 4-4.

By Administrator at December 26, 2019 09:30
Filed Under: SBC6502

PROM 74188 BURNER - poznámky zo stavby.


 

Ako to celé vlastne začalo - pozeral som na webe aké sú dostupné zapojenia schém programátoru pre pamäte PROM 74188 a teda je to celkom bieda - dostupné sú zapojenia hlavne tzv. "ručného" programovania, niečo je už mierne zautomatizované (speccy). Nič mi priamo nevyhovovalo, nezostalo nič iného - navrhol som si to teda sám, postupne som to staval, keď som to postavil tak som ešte doplnil obvody indikácií stavov a až následne som začal kresliť schému zapojenia. A potom som to začal programovo oživovať. Aj tak sa dá, nič nenormálneho v zapojení nie je. Nakoniec na webe si môžete čo je momentálne k dispozícii pozrieť a porovnať.


Dostupné zapojenia - dve zapojenia z AR (Amatérske rádio) majú zdroj 10.5V mierne povedané dosť zvláštny. Cez odpor 10Ω sa ide na ZD na 11V, potom nasleduje vlastný spínač.

Na prvý pohľad vyzerá že je to v poriadku - ale čip pri 10.5V má odber 450mA (TESLA datasheet, TI datasheet hovorí až o 750 mA ...), teda počítajte so mnou - na odpore potom bude strata 4.5V (TESLA) a čip pri programovaní ide skutočne mimo stanovených parametrov (mal by mať na sebe 10.5V). Dtto sa týka aj predradného odporu ktorý sa zavesí priamo na 12V - a ešte je väčší, teda jeho hodnota (= 22Ω, zapojenie speccy) a to je tam ďalší, rovnaký odpor zavesený proti zemi. To že to aj takto funguje je síce pravda, ale že to funguje aj napriek zjavným kiksom v zapojení, tak to nepovažujem za výhru. Sú to podľa mňa zapojenia vcelku "naprd", preto som tie zapojenia ako celok zavrhol, niečo (ale naozaj len niečo) z časti spínača 10.5V je O.K. (nakoniec, bolo to tam určené na "ručné dlapanie", nie na automatiku) použil som iné typy tranzistorov, to si zase vyžiadalo zmeny hodnôt odporov (a teda následne aj nejaké to laborovanie a aj zmeny). Výsledné zapojenie mojej verzie zdroja 10.5V už poznáte z uverejnenej schémy.
A ako to už býva až následne som začal hľadať na webe ako má vyzerať programovací pulz. Síce som programátor (ručný) pred už naozaj strašnými rokmi (35...) postavil a teda predstavu o dĺžke pulzov rozhodne mám (vtedy som použil 10msec napaľovací pulz), len som si to chcel overiť. A dosť som narazil než som našiel rozumný datasheet (nie od Tesly, ten je k dispozícii bez problémov). No a teraz som postavil programátor pre počítač ktorý slávi 42 rokov. Takže takto ...Smile


Našiel som v katalógu TI (Texas Instruments) z roku 1975 (mám ho doma) že 74188 odporúčajú programovať 10msec pre CS=1 a nasleduje 700ms programovací pulz, potom zase CS=1, toto už ale potom nie je napaľovanie ale priamo barbecue v priamom prenose, škoda že už nepíšu koľko potom trvá blackout aby sa pamäť ochladila a spamätala ... no, je tam tých rozporuplných údajov viac ako dosť. Takže od toho som dal radšej ruky preč. TESLA uvádza v katalógu už podstatne prijateľnejšie údaje. (Pozri speccy.)

TI katalóg z roku 1976 už ponúka o poznanie rozumnejšie informácie a z tých aj vychádzam (vybrané informácie z datasheetu sú uverejnené na konci tohtoto článku).


 

Na tomto obrázku pripomeniem ako teraz vyzerá počítač SBC6502 Erika0, ktorý obsluhuje dosku programátoru pre PROM 74188. Pri sériovom konektore sa nachádza malá doska oscilátorov pre procesor (=1.8432MHz alebo =4.00MHz), tesne nad konektorom prívodu napájania 12V je jumper ktorým je možné prepínať rýchlosť procesoru. (5.00MHz oscilátor som bohužiaľ zatiaľ nezohnal v tomto prevedení.) Poloha jumperu smerom ku konektoru 12V = 4.00MHz, ak je jumper umiestnený bližšie ku CANON konektoru = 1.8432MHz.

___________________________________________________________


Teraz sa pozrime na to ako som uvažoval ako na to - a úplne (odlišne) na samom začiatku projektu:

 

 

Takto vyzeral prvotný návrh dosky s použitím DIL relé, súčiastky sú len voľne založené do základnej dosky (bolo to iba v štádiu rozvrhu kde by boli súčiastky, DIP prepínač mal vedieť vyradiť ovládanie relé, prívod portov A, B a C mal ísť cez predný konektor), takto nejako vyzeral môj prvotný pôvodný základ návrhu kde by to zvládalo mimo svojej základnej funkcie aj naprogramovať PROM 74188. Malo to mať smerom von dostupné 2 porty - jeden by obsluhoval 8 relé (výstupy pravá strana foto), druhý mal slúžiť ako vstupný, to je tých 9 vstupov v strede dolu, 8x vstup + zem. Ak by bolo treba dal sa pridať aj tretí port, s ním som v tomto riešení na vonkajšie použitie nerátal. Ako vidieť - od tejto cesty vytvorenia programátoru som nakoniec upustil a zvolil som úplne iné riešenie.

Ako už viete predný konektor na SBC6502 Erika0 som úplne zrušil a zapojil som všetky 3 porty 8255A priamo na vývody konektoru J4 (pinov je tam dosť), tým sa otvorila cesta pre postavenie uverejneného programátoru ktorý túto cestu nasadenia 9 relé opustil a v zapojení sa používa iba jeden jediný kus.

___________________________________________________________


Použitie tranzistorov BS170 v zapojení programátoru PROM 74188 bolo inšpirované pred časom stretnutím s Martinom Lukáškom na Foreveri a rozhovorom na danú tému, za "nakopnutie" správnym smerom mu dodatočne ďakujem. Predtým som uvažoval nad použitím 8x DIP relé na spínanie (viď foto nad týmto textom v predošlom odstavci), pretože tam by sa to dalo použiť tiež na priame ovládanie relé (len by to chcelo navyše ďalší prepínač na dvojité použitie - programátor, alebo samostatné ovládanie relé).  Akurát by to ale vo výsledku zvyšovalo zložitosť dosky (a hlavne - mne dostupné jazýčkové relé nemajú potrebný prepínací kontakt - aby to bolo naozaj univerzálne), nakoniec som si povedal že doska s relé tak isto bude, s výkonnejšími kontaktami (a teda budú tam aj prepínacie kontakty) ale bude to riešené ako samostatná doska, nie na tomto programátore a tak teda prišlo na použitie spomínaných tranzistorov. Výmenný systém hornej dosky na SBC6502 mi takéto riešenie umožňuje.

 

Kto má chuť si naštudovať datasheet tak som to tu nachystal, sú tam aj ďalšie PROM, extra som nevypichol 74188, takže tých pár stránok si treba prejsť a vybrať si to čo Vás zaujíma a čo pre seba potrebujete:

(Obsahuje datasheet PROM 74188 s presným popisom programovacieho pulzu:)

Programmable ROM 74188 TTL memory.pdf (2,90 mb)

Poznámka:

Aby som nezabudol, existujú ekvivalenty tejto PROM:

K155RE3 = N8223N = 74188 = SN74188N

____________________________________________________________


Ako som už spomínal, hardware a aj program sa dá úspešne preniesť na iný typ 8-bitu, ktorý má k dispozícii voľný čip 8255A. Toto sa dá urobiť aj pre Atari (popísal som pripojenie 8255A + Atari v samostatnom článku), PMD-85 má čip 8255A k dispozícii priamo. Jediná vec ktorú bude treba urobiť bude sa treba "pohrať" s vytvorením programovacieho pulzu (teda jeho dĺžky) v riadku 3750. A to sa mi až taká veľká robota nezdá, popritom obidva spomínané typy počítačov dokážu priamo ukladať aj vytvorené DATA. Pre Atari priamo vyhovuje program s rýchlosťou x-talu = 1.8432MHz, pričom programovací pulz v riadku 3750 treba skrátiť o 30%, čiže slučka FOR-NEXT v uvedenom riadku by bola v tvare FOR F=0 TO 11:NEXT F (na vysvetlenie, Atari síce beží na 1.79MHz ale zobrazovanie ho o cca 30% spomaľuje). Dtto sa dá urobiť (skrátiť ich dobu o 30%) s programovými riadkami 2010, 2050 a 2100, ale bude to fungovať aj keď tu už zo slučkami nič neurobíte a necháte ich v pôvodnom stave.

Ďalšia možnosť je v Atari vypnúť zobrazovanie počas programovania a potom netreba už robiť žiadnu úpravu v programe, teda tých 30% rýchlosti získame práve vypnutím zobrazovania.

____________________________________________________________

 

Poznámka:

(Niekde doma mám založený hodne starý programátor na 74188 postavený pred mnohými rokmi (vlastný návrh), ale je to skutočná "ručná dlapačka", všetko sa nastavuje prepínačmi, adresa - tak isto aj jednotlivé bity v rámci byte, je to pri používaní dosť pomalé a je tam veľká možnosť chyby pri zadávaní. Má to 5 prepínačov ktorými sa nastavuje konkrétna adresa (binárne váha 16, 8, 4, 2, 1), jeden vodič a 8 kolíkov do ktorých sa pripne vodič - sú určené pre nastavenie programovacieho bitu. Tiež som 74188 použil ako dekodér z BCD kódu na sedemsegmentovky LED - kedysi sa nedali zohnať dekodéry D146 a D147, zato 74188-ky áno. A ak som ich chcel použiť musel som si postaviť na ne programátor - klasická cesta za socializmu, urob si sám čo potrebuješ - aj tak to bolo rýchlejšie ako tie dekodéry niekde skúsiť zohnať. Nechcem to tu nejako ďalej rozoberať ale chcel som sa už jeho používaniu vyhnúť a ísť na niečo modernejšieho, myslím si že sa to podarilo.) Ako to bolo postavené dnes už naozaj nemá zmysel do hĺbky pitvať, len spomeniem že to pracovalo v takte hodín =1ms, bol tam dekodér 1 zo 16 (74154), hnal to čip 7493 a dekodér vyberal postupne cez maticu diód to čo sa malo v daný okamžik robiť (programovací pulz bol =10ms). Čiže bolo tam ešte pár diód, 2x čip 7400 a tranzistory na spínanie 10.5V, zdroj dodával 5V a 10.5V. Fungovalo to a asi by to fungovalo aj dnes, len to nemám chuť používať, zautomatizovaný programátor (aj používanie) to predsa len posúva niekde inam. Je to založené niekde v pivnici a než by som to našiel tak som si radšej postavil niečo čo je modernejšie. No a teraz som si to zautomatizoval na počítač ktorý je ešte o nejaký ten rok starší (1977) ako môj pôvodný návrh ručného programátoru, na teraz už 43 ročný počítač - teda keď sa to tak vezme - vlastne je to mašina v najlepších rokoch.


Ešte zdôrazním nasledovné - povolená záťaž PROM 74188 na jednotlivom výstupe =12.5mA, teda netreba čip zbytočne zaťažovať nad túto hodnotu, ak to dodržíte tak životnosť napálenej PROM bude naozaj výborná.


Poznámka:
Tu by som rád upozornil na to že som pri vývoji programátoru naďabil na jednu 8255A ktorá na takte =5.00MHz blbla, jednoducho nefungoval správne výstup na port A (porty B a C pritom na  5.00 MHz fungovali - no problem), po znížení na takt 4.00MHz ale šváb išiel ako víno, takže bacha - sem-tam sú čipy ktoré môžu pripraviť celkom nečakané a o to nepríjemnejšie prekvapenie ! (Na rozdiel od ostatných 8255A ktoré dávali na výstupe log.1 =3.98V tak tento konkrétny "v rýchlosti odpadlík" dával na log.1 =3.78V, teda o celých 0.2V menej.) Takže ak sa Vám niečo nezdá - merať, merať, merať. Spomínaný čip 8255A čo robil problémy bol  pritom "zahraničák". Ostané čipy 8255A mi v pohode išli aj na 6.00MHz. (Nakoniec išiel do inej mašiny kde "fičí" síce na púhych na 2MHz - ale tam je skutočne naprosto bezproblémový.)

 

K použitiu čipu 74xx245 v tomto programátore ma inšpirovalo zapojenie ktoré som uverejnil v tomto článku :

http://blog.3b2.sk/igi/post/SBC6502-32-Hardware-Part2.aspx

_________________________________________________________

P.S.1:

Čo ma hodne pobavilo - (pozri datasheet TESLA a pokec o čipe MH74188)  - citujem:

"Za dobré sa považuje ak sa podarí bez problémov napáliť 90% čipov"  ... husté, fakt husté.

Mne sa zatiaľ darí dodržovať úspešnosť napálenia = 100% pri čipoch TESLA MH74188 (iné nemám), fakt je že som ich doteraz na tomto programátore napálil asi tak 40 kusov, čo síce nie je až tak veľa, ale štatistika by sa asi už zákonite mala začať prejavovať - alebo mám teraz postavený lepší programátor ako vtedy mala k dispozícii samotná TESLA ...

_________________________________________________________

P.S.2:

Teraz menej vážne - o jednej drobnosti ktorú som si uvedomil po postavení a pri následnom meraní na osciloskope:


Dióda 1N4148 v zapojení je určená na rýchle vybitie kapacity 1uF - lenže v uverejnenej schéme je v podstate nefunkčná - pri otvorenom tranzistore je tam na kapacite napätie cca 0.7V a ide sa vybíjať cez kremíkovú diódu ktorá má na sebe rovnaký úbytok ..., no je to tiež poviem diplomaticky "hodne nedokonalé". Toto som prevzal zo zapojenia v AR ... (a nefunguje to presne tak isto ako to nemohlo fungovať ani v zapojení z AR) - došlo mi to až po postavení, niekedy mám dlhé vedenie ako sa patrí, uff. Patrila by tam dióda zo zlatým hrotom (OA9 alebo niečo podobné) alebo germániová dióda, tie majú napätie na prechode niekde okolo 0.25V, Schottkyho dióda sa na toto miesto príliš nehodí (veľký záverný prúd, asi by ovplyvňovala aj to čo netreba). Na osciloskope bolo potvrdené že to napriek tomu aj tak funguje dobre (vybitie kapacity prebehne v správnom časovaní - to zabezpečí zmenšený odpor na hodnotu 2k2) v rozsahu testovaných hodnôt hodín SBC6502 a to platí pre 1.8432MHz, 2.4576MHz, 4.00MHz a tak isto aj 5.00MHz (obrázky k tomuto sú uverejnené v 3 časti, kde je dobre vidieť že sa kondenzátor 1uF nabíja a vybíja v správnych časových úsekoch).

 

Každé správne zapojenie má mať v sebe zabudované nejaké kurvítko - tak tu je to práve táto dióda. Ak ju tam necháte - nič sa tým nepokazí a pritom žiadnu prácu neodvedie - ale ak ju odoberiete tak to celé nakoniec zaručene nebude fungovať - a tak som diódu 1N4148 radšej v zapojení nechal.

 Foot in mouth

Teraz môžem smelo tvrdiť že to celé funguje aj napriek jej prítomnosti. Proste dokonalé kurvítko v praxi. Pekné, nie ?

_________________________________________________________

P.S.3:

Ako to už v živote býva - o niekoľko dní neskôr (cca 1 týždeň) po postavení uvedeného hardware a napísaní programového vybavenia ma napadlo ako skombinovať do jedného - "All In One" programátor pre pamäte PROM 74188 (32x 8bit), PROM 74S287 (256x 4bity) a aj PROM 74S571 (512x 4bity). Síce by si to vyžiadalo zmeny v hardware a kompletné prepísanie programového vybavenia - ale dá sa to, schému ako na to už mám v hlave vymyslenú. Neviem či do toho pôjdem, pretože som nikdy nemal pamäte PROM 74S287 a PROM 74S571 - a ani teraz ich nemám k dispozícii. Ale ak by bol záujem, mohol  by som sa do toho pustiť, stále mi stačia na ovládanie 3 brány čipu 8255A a bolo by to teda 3v1. Ale či bude záujem, to je asi málo pravdepodobné.

(Doplnené - 03.01.2020)

____________________________________________________________

 

Priama možnosť skočiť do ďalšej časti:

SBC6502 - 33 - Programátor PROM 74188. PROM 74188 programmer. Part 1-4.

SBC6502 - 34 - Programátor PROM 74188. PROM 74188 programmer. Part 2-4.

SBC6502 - 35 - Programátor PROM 74188. PROM 74188 programmer. Part 3-4.

 

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

12/26/2019 9:39:18 AM #

trackback

Directory SBC6502

Directory SBC6502

Igi blog |

12/28/2019 1:57:51 PM #

Radim Polasek

hezke poctenicko, diky Smile

Radim Polasek Czech Republic |

1/14/2020 2:19:01 PM #

marian


Krásna práca.Dlhšie som rozmýšľal nad stavbou PROM programátora ale až táto konštrukcia ma presvedčila.Pôvodne som chcel upraviť zapojenie z prílohy AMARA - Mikroelektronika 1988,kde
bolo programovanie 74188-74S287-74S571 tiež plne riadené programovo. Takže ak by ste aspoň načrtol úpravu zapojenia aj na ostatné dva typy určite by som sa do stavby pustil.

marian Slovakia |

1/16/2020 9:36:06 AM #

Admin

V podstate je to jednoduché - treba ďalšiu ZIF pätičku + čítač 4040. Namiesto použitia 5 bitov ako doteraz (adresa), stačia potom 2 bity - trebárs prvý bit bude napĺňať čítač, druhý bit bude potom na jeho nulovanie. Toto sa použije aj pre 74188, teda stačí tam čítač plniť od 0 do 31. Pre 74287 sa plní 0-255, pre 74571 je plnenie čítača v rozsahu 0-511. Druhá pätička potom slúží pre 74287 a 74571 - tam stačí jeden prepínač pre voľbu PROM 74287 - 74571.
Samozrejme treba "prekopať" program na toto použitie.

Admin Slovakia |

Comments are closed

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Blog je o mojich záujmoch - je to môj pohľad na niektoré veci, dúfam že na mojich stránkach nájdete aj to čo hľadáte ...