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

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

PROM 74188 BURNER - poznámky zo stavby.

 

 

Ako celá stavba programátoru začala - pozeral som na začiatku na webe aké sú dostupné zapojenia schém programátoru pre pamäte PROM 74188 a teda pravdu povediac je to celkom bieda - dostupné sú zapojenia hlavne tzv. ručného (t.j. "handheld") programovania, niečo je už mierne zautomatizované (cygnus.speccy.cz), tam to ide už na PC. 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 takto sa to dá, nič nenormálneho (a nič zložitého) v tomto zapojení nie je. Nakoniec na webe si môžete čo je momentálne k dispozícii sami pozrieť a porovnať s tým čo som postavil.

 
Niektoré z dostupných zapojení:

 

Amatérske rádio 2/1982: Ruční programátor 74188 (74S287)
Amatérske rádio 5/1984: Ruční programátor 74S287 (74S571)
Amatérske rádio 8/1985: Ruční programátor 74188, 74S287
Amatérske rádio 1/1989: Programátor pamětí

 

majú zdroj 10.5V mierne povedané riešený dosť zvláštne. Cez odpor 10Ω sa ide na ZD na 11V, potom nasleduje vlastný spínač. Tranzistor K517 v dvoch zapojeniach tam ide na samú hranicu svojho prúdového zaťaženia (kolektorový prúd Icmax=600mA), takže síce vyzerá že to v zapojení prežije, ale je to naozaj na hrane. V jednom zapojení ide toto napätie cez tranzistor KF508 a tam je to ešte horšie (má max. povolený kolektorový prúd Icmax=500mA). Posledné zapojenie používa tranzistor KFY46 - (zase Icmax=500mA ...). No, je mi jasné - ten výber vhodných tranzistorov v tej dobe bol veľmi, veľmi obmedzený a robilo sa s tým čo bolo (aj to ťažko) dostupné. Naproti tomu tranzistor BD140 ktorý som použil v mojom zapojení má Icmax=1.5A, teda nejaká tá rezerva tu je k dispozícii.

Na prvý pohľad vyzerá že je to v poriadku - ale čip pri 10.5V má mať odber 450mA (TESLA datasheet, jeden TI datasheet hovorí dokonca o možnom odbere až o 750 mA ...), teda počítajte so mnou - na odpore (zapojenia z AR a i.) 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 vo výsledku je ešte väčší, teda jeho hodnota (= 22Ω, zapojenie speccy) je tam totiž ď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). 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 (je to už 35 rokov) postavil a teda predstavu o dĺžke potrebných pulzov rozhodne mám (vtedy som použil 10msec napaľovací pulz), len som si to chcel overiť. Vtedy som ho použil na napálenie asi tak 15 kusov PROM, vtedy fungovali všetky na prvú dobrú a dokonca som pri programovaní nezmrvil ani jednu PROM, bol som vtedy dosť opatrný - a naprosto všetky PROM išli správne naprogramovať jedným 10ms pulzom.

Našiel som v katalógu TI (Texas Instruments) z roku 1975 (mám ho doma) že PROM 74188 odporúčajú programovať následne - 10msec pre CS=1 a nasleduje 700ms programovací pulz, potom zase CS=1, toto už ale potom nie je napaľovanie ale priamo barbecue pre PROM 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 viacero. Takže som od toho dal radšej ruky preč. TESLA uvádza v svojom katalógu už podstatne prijateľnejšie údaje. (Pozri tiež speccy.) Ešte dodám že programovacie napätie uvádzajú rovných 10V (TI-1975), pričom neskoršie verzie sa už ustálili na nám známych a pekných 10.5V.

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


SBC6502 s x-talom 4.00MHz pre clock procesoru.


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 (je tu možné prepínať medzi hodnotami 1.8432MHz a 4.00MHz), tesne nad konektorom prívodu napájania 12V je jumper ktorým je možné prepínať tieto rýchlosti procesoru. (5.00MHz oscilátor som bohužiaľ zatiaľ nezohnal v tomto prevedení.) Poloha jumperu smerom od konektoru 12V je clock = 4.00MHz /teda k vypínaču/, ak je jumper umiestnený bližšie ku CANNON konektoru je clock = 1.8432MHz.

___________________________________________________________


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

 

 

Takto vyzeral úplne prvotný návrh dosky s použitím DIL relé, súčiastky sú len voľne položené na základnej doske (bolo to iba v štádiu rozvrhu kde by boli súčiastky, DIP prepínač mal vedieť vyradiť ovládanie relé, prívod portov čipu 8255A - A, B a C mal ísť cez predný konektor), takto nejako vyzeral môj 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.

Veľký predný konektor na SBC6502 Erika0 som úplne zrušil (funkčne) 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ý cestu nasadenia až 9 relé na svojej doske opustil a v zapojení sa používa iba jeden jediný kus DIL relé.

___________________________________________________________


Použitie tranzistorov BS170 v programátore PROM 74188 bolo inšpirované pred časom stretnutím s Martinom Lukáškom na Foreveri a rozhovorom s ním na danú tému, za "nakopnutie" správnym smerom mu touto cestou dodatočne ďakujem. Predtým som uvažoval nad použitím 8x DIP relé na spínanie (viď foto 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 to vo výsledku zvyšovalo zložitosť dosky (a hlavne - mne dostupné jazýčkové relé nemajú v sebe potrebný prepínací kontakt - aby to bolo skutočne univerzálne), nakoniec som si povedal že doska s relé tak isto bude (možno), s výkonnejšími kontaktami (a teda budú tam k dispozícii aj prepínacie kontakty) ale bude to riešené ako samostatná doska, nie na tomto programátore a tak tu prišlo na použitie spomínaných tranzistorov.

Výmenný systém hornej dosky na SBC6502 takéto riešenie umožňuje.

 

Kto má chuť si naštudovať datasheet tak som ho tu nachystal, sú tam aj ďalšie PROM, extra som nevypichol PROM 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

____________________________________________________________

 

Poznámka 1:

(Niekde doma mám "dobre" založený hodne starý programátor na 74188 postavený pred mnohými rokmi (vlastný návrh), ale je to taká 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áhy 16, 8, 4, 2, 1), jeden vodič a 8 kolíkov do ktorých sa vždy pripne konkrétny programovaný bit. Vtedy som 74188 použil ako dekodér z BCD kódu na sedemsegmentovky LED - kedysi sa nedali zohnať dekodéry D146 a ani 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 všetko sám čo potrebuješ - aj tak to bolo vo výsledku rýchlejšie ako tie dekodéry niekde zohnať. Nechcem to tu nejako ďalej rozoberať ale chcel som sa teraz už jeho používaniu vyhnúť a ísť na niečo modernejšieho.

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 74LS93 (multivibrátor 1kHz robili 2 tranzistory KC507, čip 555 akosi nebol dostupný) a dekodér vyberal postupne cez maticu diód to čo sa malo v daný okamžik robiť (programovací pulz =10ms). Čiže bolo tam ešte niekoľko diód, 2x čip 74LS00 + 2 tranzistory na spínanie 10.5V, zdroj na napájanie dodával dve napätia - +5V a +10.5V. Fungovalo to dobre a asi by to fungovalo aj dnes, len to nemám chuť používať, zautomatizovaný programátor (a aj jeho používanie) to predsa len posúva niekde inam. Celé to mám založené niekde v pivnici a než by som to našiel tak som si radšej postavil niečo čo je modernejšie.

___________________________________________________________

09.09.2023

Tak som ten staručký (ručný) programátor pre PROM 74188 predsa len nakoniec v pivnici našiel:

 

Jedna krytka na prepínači už chýba, v pätici je ešte stále založená PROM 74188 ...


Pohľad dovnútra, čipy 2x 74LS00, 1x 74LS93 a 1x 74154. Tranzistory na spínanie

jednotlivých bitov sú KSY62. Použité sú tu prvé dostupné LED TESLA, bodové,

hovoril som im "sliepňáky", nič lepšie vtedy nebolo dostupné.


Perlička - pozrel som sa na založenú PROM v pätičke, niečo tam v nej už bolo, skúsil som naprogramovať do nej zase nejaké tie ďalšie bitíky - programátor fungoval aj po tých rokoch. Aby som sa len nechválil - na konci ako spínač 10.5V som mal použitý tranzistor KF517 - zase je to typ s Icmax=500mA, proste dávalo sa vtedy do zapojení len to čo bolo k dispozícii - aj keď to bolo na hrane. Ale ako vidieť prežil to na tomto mieste až do dnešných dní.

No a potom som programátor bez nejakého sentimentu úplne zrušil, fakt som sa nechystal ho naďalej používať. Tranzistory som z plošáku vybral a mám pre ne ďalšie využitie, LED-ky išli priamo do koša.

RIP ...

___________________________________________________________


No a teraz som si to zautomatizoval na SBC6502 ktorý je ešte o nejaký ten rok starší (1977) ako môj pôvodný návrh ručného programátoru, na viac ako  42-ročný (v roku 2019) počítač - teda keď sa to tak vezme - vlastne je to teraz mašina v najlepších rokoch.


Zdôrazním - povolená záťaž PROM 74188 na jednotlivom výstupe je=12.5mA, teda minimálna hodnota zaťažovacieho odporu by mala byť 470Ω a viac, teda netreba čip zbytočne zaťažovať nižšou hodnotou, ak to dodržíte tak životnosť napálenej PROM bude naozaj výborná.


Poznámka 2:
Tu by som rád spomenul jednu vec - a to na to že som pri vývoji programátoru naďabil na jednu 8255A (Mitsubishi) ktorá už na takte hodín =5.00MHz blbla, jednoducho nefungoval správne výstup na porte A (porty B a C pritom na clocku 5.00MHz fungovali - no problem), po znížení taktu na 4.00MHz ale šváb už 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 ! Merať a kontrolovať - výborná cesta na to aby sme mali istotu že všetko beží tak ako treba. (Na rozdiel od ostatných 8255A ktoré mám a dávali na výstupe log.1 =3.98V tak tento konkrétny "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ť niekde sa to nakoniec prejaví. (Čip nakoniec išiel do inej mašiny kde "fičí" síce na púhych 2.00MHz - ale tam je už skutočne naprosto bezproblémový.)

Obvod MHB8255 (Tesla) som v zapojení neskúšal, aj keď niekoľko kusov doma mám - čiže tu skúsenosťami s ich možným nasadením naozaj neposlúžim.

Ešte by som dodal - pozor na správne zapojenie vývodov jednotlivých tranzistorov - toto vie ušetriť naozaj hodne času ! (Jeden kus BC547 som osadil do dosky opačne a nestačil som sa diviť, niečo išlo niečo nie, zobralo mi to zbytočne hodinu času než som prišiel na to kde som urobil chybu, proste klasika - zle som si zapamätal rozloženie prívodov - načo je doma tester tranzistorov, keď je k dispozícii a pritom zostal ležať v šuplíku ...)

 

Poznámka 3:

Ak ste si položili otázku či to zapojenie nie je príliš zložité a či by sa to nedalo zjednodušiť:

Zapojenie programátoru sa samozrejme dá zjednodušiť ak sa úplne vynechá obvod 74LS245 a ideme priamo na port C.

Celá schéma je potom jednoduchšia - ale na druhú stranu by som tým poprel pôvodnú požiadavku a to dôkladné oddelenie čipu 8255A od programovaného obvodu. Takže - dá sa riešiť aj takto, ale túto cestu som si nevybral, radšej som použil o niečo zložitejšie zapojenie - čip 8255A je teraz dobre zapezpečený pri možnej poruche samotnej PROM - a o to mi v tomto zapojení programátoru išlo.


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

_________________________________________________________

 

Poznámka 4:

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

"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é k dispozícii ani nemám), fakt je že som ich doteraz na tomto programátore napálil asi tak cez 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 ...

_________________________________________________________

 

Poznámka 5:

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 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í (väčší 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 s hodnotou 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).

 

Keď sa to tak vezme - 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 kurvítko odoberiete - tak to celé nakoniec zaručene nebude fungovať - a teda diódu 1N4148 som v zapojení nechal.

 

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

_________________________________________________________

 

Poznámka 6:

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 4bit) a aj PROM 74S571 (512x 4bit). 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 ani PROM 74S571 - a teraz ich tiež 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)

__________________________________________________________

11.09.2023

Dnes som "objavil" článok kde sa autor inšpiroval mojím programátorom a použil ho ako základ programátoru PROM 74188 pre ZX Spectrum:

ZX Spectrum PROM 74188 programmer

__________________________________________________________

 

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

26. 12. 2019 9:39:18 #

trackback

Directory SBC6502

Directory SBC6502

Igi blog |

28. 12. 2019 13:57:51 #

Radim Polasek

hezke poctenicko, diky Smile

Radim Polasek Czech Republic |

14. 1. 2020 14:19:01 #

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 |

16. 1. 2020 9:36:06 #

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 |

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: