{"id":904506,"date":"2011-09-15T23:10:00","date_gmt":"2011-09-15T23:10:00","guid":{"rendered":"http:\/\/sindikat.bloguje.sk\/904506-pmd-mods.php"},"modified":"2016-04-27T19:34:21","modified_gmt":"2016-04-27T18:34:21","slug":"904506-pmd-mods-php","status":"publish","type":"post","link":"https:\/\/sindik.at\/?p=904506","title":{"rendered":"PMD mods"},"content":{"rendered":"<p>Tri u\u017eito\u010dn\u00e9 \u00fapravy pre va\u0161e PMD. A \u0161tyri \u010fal\u0161ie perif\u00e9rie.<\/p>\n<p><!--more--><\/p>\n<p>Po dlh\u0161ej dobe ma posledn\u00e9 stretnutie op\u00e4\u0165 motivovalo dokon\u010di\u0165 niektor\u00e9 rozroben\u00e9 HW z\u00e1le\u017eitosti na PMD.<\/p>\n<p>Na mojom pracovnom stole u\u017e dlh\u0161ie le\u017ealo PMD s takmer dokon\u010denou trojkombin\u00e1ciou \u00faprav na jednom kuse univerz\u00e1lky. Do vo\u013en\u00e9ho priestoru nad RAMkou na plo\u0161nom spoji PMD85-2A sa mi vo\u0161lo ColorAce, KeyFace a prevodn\u00edk RGB na kompozitn\u00e9 video.<\/p>\n<p>V\u0161etky spom\u00ednan\u00e9 zapojenia u\u017e boli pop\u00edsan\u00e9 samostatne, preto nem\u00e1 v\u00fdznam opakova\u0165 podrobnosti. Vypichnem iba \u0161pecialitky resp. anom\u00e1lie, ktor\u00e9 sa vyskytli:<\/p>\n<p>1. <a href=\"?p=891771\">ColorAce<\/a><\/p>\n<p>Ako u\u017e bolo spom\u00ednan\u00e9 nieko\u013ekokr\u00e1t, odpor\u00fa\u010dan\u00e9 tranzistory na emitorov\u00fdch sledova\u010doch sign\u00e1lov R, G a B s\u00fa KSY71. S in\u00fdmi typmi nie s\u00fa v\u00fdsledky uspokojiv\u00e9 &#8211; bu\u010f sa objavuj\u00fa \u001c\u010dmuhy\u001d v obraze, alebo cel\u00e9 st\u013apce svietia v dobe zatemnenia.<\/p>\n<p>2. <a href=\"http:\/\/pmd85.borik.net\/wiki\/Blog:Keyface\">KeyFace<\/a><\/p>\n<p>Pri o\u017eivovan\u00ed KeyFace som narazil na probl\u00e9m s kry\u0161t\u00e1lom. Pri pou\u017eit\u00ed kry\u0161t\u00e1lu maxim\u00e1lnej povolenej frekvencie pre ATtiny2313 20MHz sa pri stla\u010den\u00ed kl\u00e1vesy a op\u00e4tovnom pusten\u00ed zobrazila aj kl\u00e1vesa susediaca. Povedzme \u001cA\u001d mi pridalo aj \u001cS\u001d. Tieto ru\u0161enia som odstr\u00e1nil v\u00fdmenou kry\u0161t\u00e1lu za in\u00fd s ni\u017e\u0161ou frekvenciou. Monitor 2A, BASIC G aj CP\/M funguje spo\u013eahlivo aj so 4MHz. Autor zapojenia (Roman) v\u0161ak upozornil, \u017ee programy s vlastn\u00fdmi rutinami napr. Kassword m\u00f4\u017eu ma\u0165 probl\u00e9m. Aj m\u00f4j test to overil. V Kassworde sa \u010dasto objavuj\u00fa duplicitn\u00e9 znaky aj pri kr\u00e1tkom stla\u010den\u00ed kl\u00e1vesy. Vhodn\u00fdm kompromisom bude zrejme frekvencia kry\u0161t\u00e1lu bl\u00edzka 20MHz, ale nie medzn\u00e1. Povedzme tak\u00fdch 18.432MHz. Nevedel som n\u00e1js\u0165 tak\u00fdto kry\u0161t\u00e1l v mojich z\u00e1sob\u00e1ch, tak\u017ee v\u00fdsledok testu zatia\u013e nie je zn\u00e1my.<br \/>\nE\u0161te upozorn\u00edm, \u017ee pou\u017eit\u00fd ATtiny je v preveden\u00ed SMD a \u001cskonvertovan\u00fd\u001d na DIL p\u00fazdro cez redukciu SMD-DIL.<\/p>\n<p>3. RBG\/CVBS<\/p>\n<p>Zamieram sa hlavne na \u010das\u0165 okolo IO MC1377, ktor\u00fd je opraden\u00fd anal\u00f3govou m\u00e1giou. V p\u00f4vodnom katal\u00f3govom zapojen\u00ed n\u00e1jdeme nieko\u013eko cievok a transform\u00e1tor na farebn\u00fa priepus\u0165. Samozrejme tieto delikatesy sa daj\u00fa celkom efekt\u00edvne nahradi\u0165 RC \u010dlenmi a vzniklo be\u017ene pou\u017e\u00edvan\u00e9 zjednodu\u0161en\u00e9 zapojenie (realizovan\u00e9 napr. aj v <a href=\"http:\/\/zxm.speccy.cz\/dok\/sch\/Didaktik%20M%20%2791%20Schematics.zip\">Didaktiku M 91<\/a> &#8211; \u010falej DM).<br \/>\nJa som pou\u017eil zapojenie pod\u013ea sch\u00e9my z DM. Hoci som na \u00favod uva\u017eoval skombinovanie s <a href=\"http:\/\/www.retroisle.com\/amstrad\/cpc\/Technical\/Hardware\/encoder.gif\">CPC verziou<\/a> vr\u00e1til som sa po nieko\u013ek\u00fdch experimentoch k p\u00f4vodn\u00e9mu zapojeniu.<\/p>\n<p><a href=\"\/data\/MC1377_DM.PNG\"><img decoding=\"async\" class=\"alignnone\" src=\"\/img\/mc1377_dm_portrait.jpg\" \/><\/a><\/p>\n<p>Vstupy s\u00fa priveden\u00e9 cez deli\u010d R42 a R47+R53 pre \u010derven\u00fa(resp. R43 &amp; R46+R54 pre zelen\u00fa a R45 &amp; R44+55\u00a0 pre modr\u00fa) na odde\u013eovac\u00ed kondenz\u00e1tor C19 (C20, C18) a n\u00e1sledne na konkr\u00e9tny vstupn\u00fd pin farby R, G alebo B (3,4 resp. 5). Odporov\u00e9 deli\u010de s\u00fa ponechan\u00e9 bezo zmeny oproti sch\u00e9me DM t.j. 1k a 300R (2x 150R v s\u00e9rii). Takto by mala by\u0165 zachovan\u00e1 \u00farove\u0148 v\u00fdstupn\u00e9ho sign\u00e1lu okolo 1V \u010do je \u0161tandard anal\u00f3gov\u00e9ho videa. S pomerom zlo\u017eiek e\u0161te nie som celkom spokojn\u00fd, ale d\u00e1 sa na to pozera\u0165 &#8211; hlavne pri zapnutom ColorAce. Ve\u013ekos\u0165 kondenz\u00e1torov (C18, C19, C20) na vstupe som ponechal pod\u013ea zapojenia v DM &#8211; 3u3.<br \/>\nV\u00fdstup (pin 9) som zapojil pod\u013ea katal\u00f3gov\u00e9ho listu &#8211; 75R do s\u00e9rie na v\u00fdstupn\u00fd konektor (820R a 220R v s\u00e9rii pod\u013ea CPC netreba osadzova\u0165).<\/p>\n<p>O\u017eivenie: zapojenie s MC1377 fungovalo na prv\u00e9 zapojenie, stabilita farieb je posta\u010duj\u00faca pre zvolen\u00fd \u00fa\u010del. Nev\u00fdhodou je mierne moir\u00e9\u00e9 a ru\u0161enie sp\u00f4soben\u00e9 osaden\u00edm \u001cledabolo\u001d na univerz\u00e1lku. Aj pri nieko\u013ekon\u00e1sobnom vyhladen\u00ed nap\u00e1jacieho nap\u00e4tia a ani pridan\u00edm blokovac\u00edch kondenz\u00e1torov sa v\u00fdsledok nezlep\u0161il.<\/p>\n<p><img decoding=\"async\" src=\"img\/3_upravy.jpg\" \/><\/p>\n<p><strong>Flash modul<\/strong><br \/>\nNamiesto nieko\u013ek\u00fdch nez\u00e1visl\u00fdch ROM modulov, ktor\u00e9 treba zas\u00fava\u0165\/vys\u00fava\u0165 pri vypnutom po\u010d\u00edta\u010di je \u0161ikovnou veci\u010dkou kombinovan\u00fd flash modul s viacer\u00fdmi obsahmi r\u00f4znych ROM modulov bez nutnosti ich fyzickej v\u00fdmeny.<br \/>\nIste nie som prv\u00fd \u010do si nie\u010do tak\u00e9 polepil, ale nikde som nena\u0161iel konkr\u00e9tnu sch\u00e9mu, tak som si vymyslel vlastn\u00fa.<br \/>\nZvolil som flash 29F010 s kapacitou 128K x 8. V\u00fdzvou bolo ako rozumne vyu\u017ei\u0165 kapacitu pam\u00e4te. Niektor\u00e9 RMM moduly dostupn\u00e9 v emul\u00e1tore PMD maj\u00fa ve\u013ekos\u0165 32K, in\u00e9 9K alebo 1K. Niektor\u00e9 moduly sa daj\u00fa navz\u00e1jom posp\u00e1ja\u0165 do v\u00e4\u010d\u0161ieho bloku, in\u00e9 musia by\u0165 \u00faplne samostatn\u00e9 od \u0161pecifickej adresy.<br \/>\nAko rozumn\u00fd kompromis sa jav\u00ed zapojenie adresn\u00e9ho dekod\u00e9ra v usporiadan\u00ed:<\/p>\n<ul>\n<li>doln\u00e1 polovica flash rozdelen\u00e1 na 4x 16K<\/li>\n<li>horn\u00e1 polovica flash rozdelen\u00e1 na 2x 32K<\/li>\n<\/ul>\n<p>T\u00fdmto je k dispoz\u00edcii 6 modulov v iba 2 \u010dipoch &#8211; I8255 + 29F010.<\/p>\n<p style=\"text-align: left;\"><a href=\"\/data\/flash_modul.png\"><img loading=\"lazy\" decoding=\"async\" title=\"flash_modul_p.png\" src=\"img\/flash_modul_p.png\" alt=\"flash_modul_p.png\" width=\"512\" height=\"653\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Prv\u00fd p\u00f3l sp\u00edna\u010da S1 ur\u010duje, ktor\u00e1 polovica pam\u00e4te je akt\u00edvna (vodi\u010d A16). Druh\u00fd p\u00f3l S1 ur\u010duje, \u010di je A14 definovan\u00fd stavom SW2-2 alebo priamo ovl\u00e1dan\u00fd z pinu 8255 PC6. SW2-1 nastavuje A15 (akt\u00edvnu \u0161tvrtinu pam\u00e4te v r\u00e1mci zvolenej polovice).<br \/>\nRMM s\u00fabory treba zarovna\u0165 na 16 resp. 32K a bin\u00e1rne posp\u00e1ja\u0165 (napr. v cmd: copy \/b 16K_1.bin+16K_2.bin+16K_3.bin+16K_4.bin+32K_1.bin+32K_2.bin flash.bin), tak aby vznikol s\u00fabor s ve\u013ekos\u0165ou 128K.<br \/>\nAko pr\u00edklad na otestovanie v\u00e1m m\u00f4\u017ee posl\u00fa\u017ei\u0165 <a href=\"\/data\/rom3.bin\">nasleduj\u00faci s\u00fabor<\/a>, ktor\u00fd obsahuje:<\/p>\n<ul>\n<li>prv\u00fdch 16K &#8211; BASIC-G 2A + Keys + demo + bt100<\/li>\n<li>druh\u00fdch 16K &#8211; MRS<\/li>\n<li>tret\u00edch 16K &#8211; Monoskop (na test ColorAce)<\/li>\n<li>\u0161tvrt\u00fdch 16K &#8211; loader PMD32SD<\/li>\n<li>prv\u00fdch aj druh\u00fdch 32K &#8211; Pascal 2.2<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"img\/flash_module_foto.jpg\" \/><\/p>\n<p><strong>N\u00e1hrada disketovej mechaniky PMD32SD<\/strong><br \/>\nNotoricky zn\u00e1me zapojenie Romana B\u00f3rika, som zrealizoval na univerz\u00e1lke a zavrel do <a href=\"http:\/\/www.gme.sk\/sk\/u-kp05-p622-405.html\">krabi\u010dky KP05<\/a>. M\u00f4j exempl\u00e1r nenabiehal v\u017edy spo\u013eahlivo, preto som okrem pull-up na +5V pridal elyt 22uF medzi RESET a GND.\u00a0 Tie\u017e som vynechal 7805 a na vstup priv\u00e1dzam priamo 5V z PMD. Na presn\u00e9 nap\u00e1janie SD karty som pridal stabiliz\u00e1tor AM1117-3V3. Takto upraven\u00e9 zapojenie funguje k plnej spokojnosti.<\/p>\n<p><img decoding=\"async\" src=\"img\/pmd32sd.jpg\" \/><\/p>\n<p><strong>Musica IF<\/strong><br \/>\nJe hudobn\u00fd interface pripojen\u00fd na aplika\u010dn\u00fd konektor PMD. P\u00f4vodn\u00e9 zapojenie na b\u00e1ze \u010dasova\u010da 8253 je jednoduch\u00e9. Audio v\u00fdstup je iba mono.<\/p>\n<p><img decoding=\"async\" src=\"img\/musica.png\" \/><\/p>\n<p><img decoding=\"async\" src=\"img\/musica_foto.jpg\" \/><\/p>\n<p><strong>Redukcia na joystick<\/strong><br \/>\nZohna\u0165 dnes origin\u00e1lny <a href=\"http:\/\/pmd85.borik.net\/wiki\/Joystick_4004\/482\">joystick 482\/4004<\/a> ku PMD je takmer nemo\u017en\u00e9, ale \u0161tandardn\u00e9 digit\u00e1lne joysticky (na sp\u00f4sob QuickShot apod.) s\u00fa s\u00fa\u010das\u0165ou zbierky ka\u017ed\u00e9ho osembi\u0165\u00e1ka. Aby som si vysk\u00fa\u0161al pocit skuto\u010dn\u00e9ho hr\u00e1\u010da na PMD, spravil som si jednoduch\u00fa redukciu &#8211; 6 di\u00f3d, 2 odpory a tranzistor.<\/p>\n<p><img decoding=\"async\" src=\"img\/joy482_4004.png\" \/><\/p>\n<p>Zapojen\u00e1 je nasledovne (GPIO vs. Canon):<\/p>\n<table>\n<tbody>\n<tr>\n<td>V\u00fdznam<\/td>\n<td>GPIO pin<\/td>\n<td>Canon 9pin<\/td>\n<\/tr>\n<tr>\n<td>Hore<\/td>\n<td>13<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>Dolu<\/td>\n<td>14<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>V\u013eavo<\/td>\n<td>15<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>Vpravo<\/td>\n<td>16<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>Stre\u013eba\/Akcia<\/td>\n<td>18<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>GND<\/td>\n<td>1*<\/td>\n<td>8<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>* &#8211; cez tranzistorov\u00fd sp\u00edna\u010d!<\/p>\n<p>Kat\u00f3dy \u001csmerov\u00fdch\u001d di\u00f3d sa prived\u00fa na pr\u00edslu\u0161n\u00e9 piny konektoru D-SUB9, pin \u010d.8 sa spoj\u00ed s kolektorom tranzistora.<br \/>\nV tomto zapojen\u00ed nefunguje autofire, lebo na GPIO ch\u00fdba +5V a pull-upy na hradl\u00e1ch s\u00fa privysok\u00e9, tak\u017ee ani log.0 priveden\u00e1 na vstup invertora nevytiahne dostato\u010dn\u00fd pr\u00fad na nap\u00e1janie joystickovej 555.<br \/>\nAni jedna hra na PMD s n\u00edm ani ner\u00e1ta, tak\u017ee toto nie je \u017eiadna prek\u00e1\u017eka na pou\u017e\u00edvanie \u0161tandardn\u00e9ho joysticku k PMD.<\/p>\n<p><img decoding=\"async\" src=\"img\/pmdjoy_kempston.jpg\" \/><\/p>\n<p>Ve\u013ea \u00faspechov pri realiz\u00e1cii.<\/p>\n<p>\/ikon<\/p>\n<p>P.S.: V tejto chv\u00edli m\u00e1m u\u017e v\u0161etky \u00fapravy a roz\u0161\u00edrenia PMD hotov\u00e9 a m\u00f4\u017eem sa op\u00e4\u0165 za\u010da\u0165 venova\u0165 mojej \u001crodnej\u001d platforme ZXSpektra a klonov.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tri u\u017eito\u010dn\u00e9 \u00fapravy pre va\u0161e PMD. A \u0161tyri \u010fal\u0161ie perif\u00e9rie.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5],"tags":[],"class_list":["post-904506","post","type-post","status-publish","format-standard","hentry","category-tema-2-hardware-php"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5aqy8-3NiO","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/904506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=904506"}],"version-history":[{"count":4,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/904506\/revisions"}],"predecessor-version":[{"id":929977,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/904506\/revisions\/929977"}],"wp:attachment":[{"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=904506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=904506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=904506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}