{"id":175,"date":"2021-08-26T20:55:26","date_gmt":"2021-08-26T19:55:26","guid":{"rendered":"http:\/\/www.8bit-replicas.com\/?p=175"},"modified":"2026-02-05T21:58:11","modified_gmt":"2026-02-05T20:58:11","slug":"programator-pamati-prom","status":"publish","type":"post","link":"https:\/\/www.8bit-replicas.com\/index.php\/2021\/08\/26\/programator-pamati-prom\/","title":{"rendered":"Program\u00e1tor pam\u00e4t\u00ed PROM"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/IMG_20210530_190627-1024x768.jpg\" alt=\"Programator\" class=\"wp-image-189\" width=\"689\" height=\"516\" srcset=\"https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/IMG_20210530_190627-1024x768.jpg 1024w, https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/IMG_20210530_190627-300x225.jpg 300w, https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/IMG_20210530_190627-768x576.jpg 768w, https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/IMG_20210530_190627-1536x1152.jpg 1536w, https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/IMG_20210530_190627-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pri stavbe repl\u00edk 8-bitov\u00fdch po\u010d\u00edta\u010dov sa ve\u013emi \u010dasto stretneme s potrebou naprogramova\u0165 pam\u00e4te typu PROM, ktor\u00e9 sa pou\u017e\u00edvali ako r\u00f4zne \u0161pecializovan\u00e9 adresn\u00e9 dekod\u00e9ry alebo ako \u0161peci\u00e1lne logick\u00e9 \u010dleny. V na\u0161ich zemepisn\u00fdch \u0161\u00edrkach boli PROM-ky ve\u013emi ob\u013e\u00faben\u00e9, n\u00e1jdeme ich v takmer ka\u017edom mikropo\u010d\u00edta\u010di dom\u00e1cej proveniencie z tej doby. Vo svete boli ve\u013emi r\u00fdchlo nahraden\u00e9 PAL\/GAL obvodmi, ktor\u00e9 v\u0161ak v tej dobe u n\u00e1s neboli dostupn\u00e9 a tak sa PROM pam\u00e4te na tieto \u00fa\u010dely veselo pou\u017e\u00edvali aj na\u010falej. A ke\u010f\u017ee sa u n\u00e1s vyr\u00e1bali tri z\u00e1kladn\u00e9 typy &#8211; MH74188 (32&#215;8 bitov), MH74S287 (256&#215;4 bity) a MH74S571 (512&#215;4 bity), rozhodol som sa postavi\u0165 program\u00e1tor pr\u00e1ve pre tieto tri typy pam\u00e4t\u00ed.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Pre\u0161iel som si dobov\u00fa literat\u00faru, ako aj zdoje na internete a nena\u0161iel som ni\u010d, \u010do by ma nejako z\u00e1sadne oslovilo &#8211; star\u00e9 kon\u0161trukcie vy\u017eadovali \u010dastokr\u00e1t ru\u010dn\u00e9 nastavovanie d\u00e1t a modern\u00e9 Arduinoidn\u00e9 bastle som nepova\u017eoval za dos\u0165 dobr\u00e9, nako\u013eko im ch\u00fdbala hlavne fin\u00e1lna podoba. A tak som sa rozhodol nie\u010do vymyslie\u0165 s\u00e1m. In\u0161piroval som sa jedn\u00fdm celkom pekne urobenym program\u00e1torom z Amat\u00e9rskeho R\u00e1dia, ale u\u017e sa nepam\u00e4t\u00e1m, v ktorom \u010d\u00edsle a ro\u010dn\u00edku to bolo. Nastavovanie adresy a d\u00e1t bolo ru\u010dn\u00e9, programovacia sekvencia sa aktivovala tla\u010didlom a \u010dasovanie pulzov bolo rie\u0161en\u00e9 cez monostabiln\u00e9 klopn\u00e9 obvody. Proste ide\u00e1lny kandid\u00e1t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A tak som prehrabal \u0161ufl\u00edky, \u010do by sa tak asi dalo pou\u017ei\u0165 a nakreslil sch\u00e9mu:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/schema.pdf\" target=\"_new\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"726\" src=\"http:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/schema-1024x726.png\" alt=\"\" class=\"wp-image-176\" srcset=\"https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/schema-1024x726.png 1024w, https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/schema-300x213.png 300w, https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/schema-768x544.png 768w, https:\/\/www.8bit-replicas.com\/wp-content\/uploads\/2021\/08\/schema.png 1158w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">V podstate \u017eiadny z\u00e1zrak, ako riadiaci mozog som pou\u017eil prv\u00e9, \u010do malo dos\u0165 v\u00fdvodov na ovl\u00e1danie v\u0161etk\u00e9ho, \u010do je zapotreby &#8211; vy\u0161la mi z toho ATmega16, sna\u017eil som sa minimalizova\u0165 potrebn\u00fd po\u010det pinov aj za cenu \u010fal\u0161\u00edch obvodov, ob\u010das to proste inak nejde. Tak\u017ee pribudol jeden s\u00e9riovo-paraleln\u00fd prevodn\u00edk na nastavenie adresy, jeden paralelno-s\u00e9riov\u00fd prevodn\u00edk na \u010d\u00edtanie d\u00e1t a jeden dekod\u00e9r pre v\u00fdber programovan\u00e9ho bitu (ke\u010f\u017ee pod\u013ea pokynov v\u00fdrobcu sa programuje v\u017edy iba jeden bit). Na komunik\u00e1ciu sl\u00fa\u017ei \u0161tandardn\u00fd 2-riadkov\u00fd 16-znakov\u00fd alfanumerick\u00fd displej, na ovl\u00e1danie sl\u00fa\u017ei \u0161estica tla\u010d\u00edtiek.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tro\u0161ka takou \u0161pecialitkou je pou\u017eitie hotov\u00e9ho step-down modulu, ktor\u00fdch som p\u00e1r kusov u\u017e d\u00e1vnej\u0161ie k\u00fapil a priebe\u017ene ich pou\u017e\u00edvam ke\u010f sa naskytne potreba, teraz sa mi tam celkom hodil a tak je tam. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ale po\u010fme po poriadku. program\u00e1tor je nap\u00e1jan\u00fd z klasick\u00e9ho adapt\u00e9ra 15V\/1A, di\u00f3da D1 sl\u00fa\u017ei ako ochrana proti prep\u00f3lovaniu. Meni\u010d nastav\u00edme na v\u00fdstupn\u00e9 nap\u00e4tie 5,5V, za di\u00f3dou D2 by sme mali ma\u0165 5V, ktor\u00fdmi sa nap\u00e1ja mikroprocesor a zvy\u0161n\u00e9 obvody, U2 nastav\u00edme (ak to bude treba tak zmenou R11) tak, aby na jeho v\u00fdstupe bolo 11.7-11.8V, spolu s \u00fabytkami na D4 a sp\u00ednac\u00edch tranzistoroch Q2-Q10 z\u00edskame pri programovan\u00ed na vetve Vcc-datovy bit potrebn\u00fdch 10,5V, ktor\u00e9 s\u00fa predp\u00edsan\u00e9 pre \u00faspe\u0161n\u00e9 naprogramovanie obvodu. Zmena Vcc pre programovan\u00fd obvod sa realizuje sign\u00e1lom BURN, ktor\u00fd otvor\u00ed Q3\/Q1, \u010do je aj signalizovan\u00e9 LED di\u00f3dou D5 (a teda indikuje prebiehaj\u00faci programov\u00fd cyklus).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Obvod U4 sl\u00fa\u017ei pre nastavenie adresy pre \u010d\u00edtanie\/z\u00e1pis PROM, U10 prevedie d\u00e1ta z PROM do s\u00e9riovej podoby a odo\u0161le do mikroprocesora (takto namiesto 8 pinov procesora potrebujeme len 3). U7 sa pou\u017e\u00edva iba v dobe programovania, sl\u00fa\u017ei na otvorenie pr\u00edslu\u0161n\u00e9ho sp\u00ednacieho tranzistora, ktor\u00fd &#8222;uzemn\u00ed&#8220; pr\u00e1ve programovan\u00fd bit v dobe, ke\u010f je obvod nap\u00e1jan\u00fd zv\u00fd\u0161enym nap\u00e4t\u00edm a tak d\u00f4jde k trval\u00e9mu prep\u00e1leniu prepojky v obvode a t\u00fdm teda aj k naprogramovaniu pr\u00edslu\u0161n\u00e9ho bitu na log.1 (nenaprogramovan\u00e9 pam\u00e4te obsahuj\u00fa sam\u00e9 nuly).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ako prevodn\u00edk USB-UART (sl\u00fa\u017ei pre pripojenie program\u00e1tora k PC za \u00fa\u010delom presunu d\u00e1t) som pou\u017eil \u010d\u00ednsky obvod CH340G (d\u00e1 sa k\u00fapi\u0165 cez e-bay\/Aliexpress za skuto\u010dne dobr\u00fa cenu), m\u00e1m ich celkom slu\u0161n\u00fa z\u00e1sobu a m\u00e1m ich r\u00e1d &#8211; s\u00fa lacn\u00e9, spo\u013eahliv\u00e9 a nez\u00e1ludn\u00e9, zatia\u013e mi v\u017edy spo\u013eahlivo fungovali. A hlavne nie s\u00fa probl\u00e9my s ovl\u00e1da\u010dmi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Displej je pripojen\u00fd v \u0161tandardnom 4-bitovom komunika\u010dnom re\u017eime (op\u00e4\u0165 \u00faspora pinov procesora), kl\u00e1vesy maj\u00fa ka\u017ed\u00e1 svoj vlastn\u00fd pin na procesor, ke\u010f\u017ee ich tam bolo e\u0161te dos\u0165 a tak nebolo nutn\u00e9 rie\u0161i\u0165 maticov\u00e9 pripojenie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Doska plo\u0161n\u00e9ho spoja je relat\u00edvne jednoduch\u00e1 (sch\u00e9ma, DPS aj gerbery s\u00fa v repozit\u00e1ri), bola navrhnut\u00e1 pre SMD s\u00fa\u010diastky, ale pre pas\u00edvne s\u00fa\u010diastky som z\u00e1merne pou\u017eil ve\u013ekos\u0165 1206, ktor\u00e9 vid\u00edm dobre e\u0161te aj ja. Tak\u017ee ak ste aj nikdy SMD neosadzovali, netreba sa toho b\u00e1\u0165, je to tak\u00e1 dobr\u00e1 cvi\u010dn\u00e1 doska na n\u00e1cvik p\u00e1jkovania SMD komponentov. Kl\u00e1vesni\u010dka je rie\u0161en\u00e1 ako &#8222;subboard&#8220; , osad\u00ed sa cez dvojicu kol\u00edkov\u00e1\/dutinkov\u00e1 li\u0161ta do takej v\u00fd\u0161ky, aby hmatn\u00edky tr\u010dali von z krabi\u010dky asi 1mm. Displej je umiestnen\u00fd na \u0161tyroch di\u0161tan\u010dn\u00fdch st\u013apikoch dlh\u00fdch 12mm. Mechanick\u00e9 usporiadanie je h\u00e1dam dos\u0165 zrejm\u00e9 z fotiek. V repozit\u00e1ri je samozrejme aj rozpiska materi\u00e1lu aj s linkami pre troch najbe\u017enej\u0161\u00edch dod\u00e1vate\u013eov (SOS, TME a Mouser), n\u00e1jdete tam aj pekn\u00fd interakt\u00edvny iBOM, treba vysk\u00fa\u0161a\u0165, ja ho pou\u017e\u00edvam ve\u013emi r\u00e1d.<\/p>\n\n\n\nngg_shortcode_0_placeholder\n\n\n\n<p class=\"wp-block-paragraph\">Najv\u00e4\u010d\u0161ou pipla\u010dkou je pr\u00edprava ZIF p\u00e4t\u00edc (teda ak chcete prgram\u00e1tor da\u0165 do krabi\u010dky, v opa\u010dnom pr\u00edpade ich m\u00f4\u017eete nap\u00e1jkova\u0165 priamo do dosky). Na ZIF p\u00e4tice s\u00fa prip\u00e1jkovan\u00e9 najprv \u0161tandardn\u00e9 kol\u00edkov\u00e9 li\u0161ty, k nim e\u0161te prec\u00edzne kol\u00edkov\u00e9 li\u0161t\u00fd, ktor\u00e9 sa potom zasun\u00fa do prec\u00edznych p\u00e4t\u00edc zap\u00e1jkovan\u00fdch do dosky. Viem, je to tro\u0161ka komplikovan\u00e9, ale v tej dobe ma nenapadlo ni\u010d lep\u0161ie, ak m\u00e1te lep\u0161\u00ed n\u00e1pad, treba ho pou\u017ei\u0165.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Program pre mikroprocesor je nap\u00edsan\u00fd v BASCOM-e, hex s\u00fabor pre nap\u00e1lanie do procesora ako aj zdrojov\u00fd k\u00f3d s\u00fa v repozit\u00e1ri, ak by si tam niekto chcel nie\u010do e\u0161te dorobi\u0165, miesta v pam\u00e4ti je e\u0161te dos\u0165. Ovl\u00e1danie zariadenia je jednoduch\u00e9 &#8211; na displeji je v\u017edy n\u00e1poveda na funkciu kl\u00e1vesy pod \u0148ou. Program\u00e1tor umo\u017e\u0148uje zvoli\u0165 typ pam\u00e4ti, ktor\u00fa chceme programova\u0165 (ako som u\u017e spom\u00ednal 74188, 74S287 alebo 74S571), na\u010d\u00edta\u0165 jej obsah do program\u00e1tora (popr. ho odosla\u0165 do PC vo form\u00e1te Intel HEX alebo ho z PC posla\u0165 do program\u00e1tora), k dispoz\u00edcii je aj jednoduch\u00fd editor (\u0161\u00edpkami hore a dole sa men\u00ed adresa, \u0161\u00edpkami v\u013eavo a vpravo sa pres\u00favame medzi bitmi, aktu\u00e1lne akt\u00edvny bit sa kl\u00e1vesou Enter zneguje). Po stla\u010den\u00ed kl\u00e1vesy PRG a potvrden\u00ed akcie d\u00f4jde k naprogromavaniu obvodu umiestnen\u00e9ho v ZIF p\u00e4tici (len pre istotu, t\u00e1 v\u013eavo je len pre 74188, t\u00e1 vpravo je pre 74S287\/74S571). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O\u017eivenie by nemalo robi\u0165 \u017eiadne probl\u00e9my, z\u00e1klad je dobr\u00e9 p\u00e1jkovanie a spr\u00e1vne nastaven\u00e9 nap\u00e4tia v zdrojovej \u010dasti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Samotn\u00fd algoritmus programovania je prevzat\u00fd z dokument\u00e1cie v\u00fdrobcu, program\u00e1tor sa pok\u00fa\u0161a naprogramova\u0165 dan\u00fd bit najprv \u0161tandardn\u00fdm pulzom (2 pokusy), ak ani tak ned\u00f4jde k jeho naprogramovaniu, sk\u00fasi e\u0161te pulz maxim\u00e1lnej povolenej d\u013a\u017eky, ak aj ten zlyh\u00e1, zv\u00fd\u0161i po\u010d\u00edtadlo ch\u00fdb (ktor\u00e9 sa na z\u00e1ver zobraz\u00ed) a pokra\u010duje v programovan\u00ed. Vo valnej v\u00e4\u010d\u0161ine pr\u00edpadov je programovanie \u00faspe\u0161n\u00e9 u\u017e po prvom pokuse, niektor\u00e9 kusy pam\u00e4t\u00ed v\u0161ak tvrdohlavo odol\u00e1vaj\u00fa, netreba si s t\u00fdm robi\u0165 ta\u017ek\u00fa hlavu, proste treba cel\u00fd cyklus pusti\u0165 znova, ono sa to podd\u00e1. Mal som tu jednu 74S287, ktor\u00e1 sa cel\u00e1 naprogramovala hne\u010f pri prvom pokuse, a\u017e na jeden bit, ktor\u00fd sa chytil a\u017e pri pokuse \u010d.7.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Program\u00e1tor som umiestnil do krabi\u010dky nakreslenej na mieru v programe FreeCad a vytla\u010den\u00fa na 3D tla\u010diarni z PLA. Doska je ku krabi\u010dke prichyten\u00e1 \u0161tyrmi vrutmi 1.6x4mm, vrchn\u00fd diel dr\u017eia \u0161tyri skrutky M3x10 so z\u00e1pustnou hlavou. Aj s\u00fabory (fcstd a STL) n\u00e1jdete v repozit\u00e1ri. Odpor\u00fa\u010dam si tam doplni\u0165 nejak\u00e9 popisky, ja som na to pr\u00edli\u0161 leniv\u00fd. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Program\u00e1tor pou\u017e\u00edvam u\u017e asi 3 roky, sl\u00fa\u017ei spo\u013eahlivo, u\u017e som s n\u00edm naprogramoval nieko\u013eko desiatok obvodov, zatia\u013e v\u017edy \u00faspe\u0161ne, na\u0161tastie sa mi e\u0161te \u017eiadnu pam\u00e4\u0165 nepodarilo zni\u010di\u0165.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ak by mal niekto z\u00e1ujem, e\u0161te mi tu p\u00e1r plo\u0161n\u00fdch spojov zostalo, tak ke\u010f tak sa ozvite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ha, skoro som zabudol, repozit\u00e1r je <a href=\"https:\/\/github.com\/Lazarus-L-o-n-g\/PromProg.git\" target=\"_new\" rel=\"noopener\">tu<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pri stavbe repl\u00edk 8-bitov\u00fdch po\u010d\u00edta\u010dov sa ve\u013emi \u010dasto stretneme s potrebou naprogramova\u0165 pam\u00e4te typu PROM, ktor\u00e9 sa pou\u017e\u00edvali ako r\u00f4zne \u0161pecializovan\u00e9 adresn\u00e9 dekod\u00e9ry alebo ako \u0161peci\u00e1lne logick\u00e9 \u010dleny. V na\u0161ich zemepisn\u00fdch \u0161\u00edrkach boli PROM-ky ve\u013emi ob\u013e\u00faben\u00e9, n\u00e1jdeme ich v takmer ka\u017edom mikropo\u010d\u00edta\u010di dom\u00e1cej proveniencie z tej doby. Vo svete boli ve\u013emi r\u00fdchlo nahraden\u00e9 PAL\/GAL obvodmi, &hellip; <a href=\"https:\/\/www.8bit-replicas.com\/index.php\/2021\/08\/26\/programator-pamati-prom\/\" class=\"more-link\">Pokra\u010dova\u0165 v \u010d\u00edtan\u00ed: <span class=\"screen-reader-text\">Program\u00e1tor pam\u00e4t\u00ed PROM<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[16],"tags":[],"class_list":["post-175","post","type-post","status-publish","format-standard","hentry","category-vybavenie-dielne"],"_links":{"self":[{"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/posts\/175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/comments?post=175"}],"version-history":[{"count":14,"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/posts\/175\/revisions"}],"predecessor-version":[{"id":201,"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/posts\/175\/revisions\/201"}],"wp:attachment":[{"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/media?parent=175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/categories?post=175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.8bit-replicas.com\/index.php\/wp-json\/wp\/v2\/tags?post=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}