Rozšírenie pamäti pre Didaktik Kompakt na 128kB

Úprava verzie v2.3 „92“ bez preškrabov na PCB.

Nápad rozšíriť Didaktik Kompakt na 128kB som dostal chvíľu potom, ako som spojazdnil dosku, ktorú zverejnil z00m na svojich stránkach. Uvažoval som nad rôznymi rozšíreniami a mne osobne by stačilo iba rozšíriť pamäť s videoram, bez zmeny ROM.

Nakoľko ostatné verzie nezaručovali rozšírenie aj videoram, tak som sa spoľahol na odporučenie z00ma, a teda som zvolil rozšírenie podľa MDV, ktoré rovnako nájdete na jeho stránkach.

Doposiaľ každá prestavba si vyžadovala isté zručnosti a istú dávku koncentrácie, aby ste sa nepomýlili. Táto bude o čosi ľahšia, nakoľko už nebudete musieť uvažovať, ktorú cestičku prerušiť, odkade daný signál pripojiť, čo a kam zapojiť. Všetku túto prácu som si oddrel pri navrhovaní a nakoniec aj zdokonalil pri prvej funkčnej verzii. Keď som sa do tohto projektu púšťal, tak som si žiadne komplikácie nepripúšťal.

Mal som predstavu úplne triviálnej úpravy, kde všetky prepoje a pridané komponenty vyriešim hneď pri kreslení dosky plošného spoja. Neskôr som zapochyboval a prepoj AR6 od PLA a AR7 od PLA počítal s preškrabom na doske Kompaktu.

Prvá zmienka o tom, že som sa pustil do tejto úpravy bola na fóre Oldcomp vo vlákne z 15.11.2023 a samotný návrh dosky som mal hotový 10.12.2023. Teda skoro mesiac popri zamestnaní. V tom čase som ešte netušil, že dva prepoje a preškraby sú zbytočné a rovnako ich dokážem vyriešiť na pridanej doske (na fotke vyššie vidieť drôtené prepoje).

A tak som vyrobil prvý pokus, ale na moje prekvapenie vôbec nepracoval. Ani si nespomínam, čo všetko som skúšal, a kde som hľadal chybu. Všetky cestičky som pretrasoval, všetko som kontroloval, ale nikde som chybu nenachádzal. Začínal som vypisovať z00m s prosbami o radu no na nič sme neprišli a všetko sa vzájomne vylučovalo.

Obrovská výhoda tejto dosky je, že pokiaľ nepracuje správne tak stále máte nepoškodený kompakt a môžete sa vrátiť k 48kB. A tak som celé toto rozšírenie odobral a dal do pôvodného stavu. Všetko v pôvodnom stave pracovalo správne, a teda obava z poškodenia PLA sa tak vytratila. Tak znova som osadil rozširujúcu dosku a hľadal ďalej.
Tak nastúpila DiagROM a tu si môžete pozrieť video, ako sa to správalo.

Ako ste postrehli tak DiagROM vďaka BORDERU naznačoval chybu v prístupe na RAM, ale nájsť príčinu sa mi veľmi dlho nedarilo.

A, ako mi poradil z00m, že ak sa mi dlho nedarí, aby som to nesilil, nechal odležať a možno časom ma napadne myšlienka vedúca k vyriešeniu záhady.

Lenže nechať niečo uležať v hlave sa iba ľahko povie. A tak pre overenie základnej logiky som sa rozhodol prerobiť Didaktik M na 128kB. Nakoľko sa zo schémy vypustia všetky nepotrebné komponenty tak ide o celkom dobré zjednodušenie. Ale tento príbeh ste už mali možnosť prečítať na týchto stránkach. No z tejto skúsenosti pre mňa vzišlo veľa poučenia, ale aj záhad. A to, že Didaktik M dokázal pracovať iba ak mal káblové prepoje a RAM osadenú na prasiatka. U Mka to osadenie RAM na sebe malo význam hlavne z pohľadu miesta.

Obohatený novými skúsenosťami z Didaktiku M som sa teda vrátil ku Kompaktu. Znova som skontroloval celé zapojenie, ale bez výsledku. Zo zúfalstva som teda vložil pôvodné GAL a zrazu DiagROM mal pekný obraz, ale ukazovalo iba polovicu pamäte v poriadku. Potešil som sa, lebo už som bol na správnej stope. Začal som teda fyzicky merať osciloskopom signály CAS, CAS0 a CAS1.

Na moje prekvapenie boli totožné bez akéhokoľvek oneskorenia. To ma privádzalo k myšlienke, že sú niekde premostené no tieto signáli nemajú nikde vedľa seba cestičky, aby sa prepojili, tak všetko dole aj obvody z dosky a ohmmetrom som premeral vodivosť medzi CAS a CAS0. Boli záhadne prepojené, ale nenachádzal som miesto, kde sa ten prepoj stal. Ja som ich určite nepremosťoval a na celej doske som nenašiel to miesto, kde sa spojili. Vybral som teda novú neosadenú dosku a meracím prístrojom skontroloval, na neosadenej doske neboli spojené.

Akým spôsobom sa dokázali premostiť zostalo záhadou, nakoľko dať dole pätice bez ich poškodenia je nemožné, a teda zbytočne sa namáhať. Použil som bezolovnatú spájku takže vyššia teplota tavenia nedáva pre plast veľa šancí.

Osadil som na novo ďalšiu dosku. Na odporúčanie z00ma som už na tejto doske použil namiesto SRAM obvodu UPD449G (na fotkách SMD) overený HM3-6116L-5 (THT) a dobre som spravil. Neskôr sa mi potvrdilo, že UPD449G nie je vhodný. Ak teda už nenachádzam chybu v zapojení tak pravdepodobne v zapojení chyba nebude. A ak nie je chyba v zapojení tak prvé na ranu prichádzajú programovateľné GAL16V8 (IC 1, IC8 ) a zúfalý čin osadiť GAL IC8 určený pre 48kB ukazoval, že majú niečo spoločné s chybou. Boli to už príznaky toho, že som stále na správnej stope. Prelúskal som všetky rovnice v EQN nanovo vygeneroval JED, ale nepomáhalo.

Tak som skúsil dať obsah 48kB a postupne v ňom meniť rovnice a sledovať po ktorej zmene rovnice sa niečo zmení. Akýkoľvek obsah bol, ale nefunkčný.

A tu teda niečo nesedí. Ak bol IC8 s obsahom pre 48kB funkčný, ale nanovo naprogramovaný GAL aj s totožným obsahom nepracuje ani, ako pôvodný (pôvodné 48kB obvody GAL som mal stále bez zásahu v zálohe), ukazuje to na chybu programátora. A áno, aj tak bolo v čase, keď som staval Kompakt som GAL napaľoval pomocou programátora TOP2013, ale úpravu 128kB som už robil na programátori XGecu. Tak som teda oprášil starý programátor TOP2013 a nim som naprogramoval na novo GAL IC1 aj IC8 a pomohlo. Prečo XGecu ten istý JED súbor napáli inak som neskúmal, ale mám podozrenie na odlišnú syntax a starý TOP2013 bral TL866 syntax a tam niekde sa to mohlo mýliť.

Túto chybu som ďalej skúmal a nakoniec všetky súbory ako od MDV tak aj od z00m ako aj moje úpravy sú správne. Celá záhada bola v nastavení typu IC v programátori XGecu a nastavenia napaľovania, kde treba zrušiť šifrované napaľovanie, teda iný spôsob napálenia. Hlavne treba zvoliť správny typ GAL! Nakoľko sa od seba líšia poistkami a teda v mojom prípade bolo dôležité označenie A na konci. Teda GAL16V8 nestačí a musel som vybrať GAL16V8A. Tak pre istotu už používam znova môj starý TOP2013.

Pohľad na u mňa funkčný súbor JED pre GAL IC8:

Všetky súbory pre GAL aj ROM sú k dispozícii na stiahnutie.

Toto všetky problémy, ale nevyriešilo, no už som bol len kúsoček od cieľa. Totižto po vybratí DiagROM nedokázalo načítať ROM. Hľadal som, ktoré obvody ovplyvňujú načítavanie ROM a jediné, čo ma napadalo bol 74LS00 (IC2 podľa schémy), ktorý adresuje A14 a A15 pre ROM- nepomohlo. Pri každom pripojení DiagROM, ale všetko pracuje správne. Pátral som teda ďalej a tu som mimo pátrania kúpil obvody od TESLA 54xx a 74xx (bol výpredaj).

Tak v snahe povymieňať, čo sa dá za staré TESLA sa zrazu rozbehol. Mal to na svedomí hlavne obvod Kompaktu IC14 (premiestňuje sa na rozširujúcu dosku). Ešte jeden obvod má rovnako vplyv na načítanie ROM a to je GAL IC9, rovnako môže byť poškodený a DiagROM to nezistí no ak nepracuje správne tak normálnu ROM nenačíta. Na to som prišiel neskôr, keď som už raz funkčnú dosku menil za novú a celý kolobeh oživovania som absolvoval na novo, pričom používanie externej ROM sa bije s pôvodnou, a teda oba tieto obvody trpia. Preto ak používate diagnostickú externú ROM tak nemajte osadenú normálnu aj keď použijete 27512 zmazateľnú UV-C svetlom.

Tak teda som sa dostal k bodu kedy už načíta DiagROM, test pamäte prejde bez nedostatkov a po vybratí DiagROM už nabehne MDOS a následne 48kB BASIC s dostupnou 128kB RAM (určil som spojom na pinhead, na schéme označené, ako „mode switch“), ale pri prepnutí do módu 128kB menu (bez prepoja) to hapruje zaujímavým spôsobom. Raz ukáže menu a vzápätí reset do 48kB LOCK a inokedy 128kB menu nabehne, ale pri „Tape Loader“ sa počas nahrávania z pásky zrúti, teda reset. A tu nastupuje malá veda. Vieme, že počas testu RAM je všetko v poriadku, ale počas činnosti to nie je stabilné a to nám ukazuje na nesúlad v časovaní priebehu CAS0 a RAS. Ak je nesúlad CAS0 s RAS príliš veľký, tak nepôjde ani DiagROM ani nič zo spomínaného, teda to môže byť ďalšia chyba, ktorá môže vyplynúť z rôznych rýchlosti súčiastok, ako použitie GAL s 250ns, správne treba použiť 150ns.

Tu do hry nastupuje na pomoc osciloskop.
Problém je, že potrebujeme sledovať súčasne priebeh RAS na pamätiach RAM a CAS0 a meracie hroty nie je kam pripojiť, respektíve ak napichnete oba hroty tak už nemáte voľné ruky pre nastavenie osciloskopu a stopnutie priebehu, aby ste si vedeli odčítať zo stupnice.
Takže prvé podarené zladenie bolo z brucha odstránením všetkých kondenzátorov zo vstupu RAS do GAL IC1. Teda na schéme C1, C2 a dokonca aj na doske Kompaktu C54.

Takto som posunul RAS, aby predchádzal CAS0 zhruba o 25ns, čo stačilo, aby menu 128kB bolo už stabilné, ale nahrávanie programov z pásky stále zlyhávalo. Takže pomohla výmena obvodov RAM z 41464 na 4464, ktoré majú trocha inú charakteristiku.

Tu je video, kde ešte nebol naladený RAS s CAS0.
Následne video s odstránenými kondenzátormi C1, C2 a C54.

Preto som navrhol ďalšiu dosku, kde som zmenil kondenzátory C1, C2, C3 a R1 na ladiace trimre. Pridal som meracie body pre osciloskop a upravil som dierky pre prepoj na základnú dosku kompaktu tak, aby sa konfliktné prepoje neosadili. Táto nová doska teda už predpokladá ladenie osciloskopom a zjednodušuje oživenie.

Na fotke vidieť odstránený kondenzátor C54, stopy, ako som opravoval preškraby a ohnuté rezistorové polia, kondenzátory, aby nezavadzali pridanej doske.

Na videu si pozorne všimnite, že signál RAS a CAS0 pre meranie osciloskopom sú vedľa seba.

Takto som naladil RAS s CAS0. Všimnite si, že signál RAS z PLA je pílovitého tvaru, čo mi naznačuje, že ta ruská ULA nie je extra trieda a nevyniká v kvalite. Tvar CAS0 z GAL je oveľa krajší no má zase záporné zákmity. Dôležité je, ale nastaviť RAS na stred CAS0 v log0 po dlhej log1. Teda ten druhý žltý kopček vpravo od stredu s modrým CAS0 a pokiaľ možno ten stred, aby bol v hranici 2,5V teda log1.Vhodnejšie je, aby RAS mal skôr log1, ako CAS0 prejde do log0 v rozsahu 25-50ns, prípadne si naštudujte DataSheet pre pamäte, ktoré máte . Ak nemáte osciloskop tak moje hodnoty C1 = 0pF teda žiadny, C2=6,5pF R1= 140Ω C3= 47pF a môžete ich použiť, ako prvé oživovacie nastavenie a doladiť sa podľa osciloskopu.

Nezabudnite, že meracie káble osciloskopu majú 20pF, a teda po odpojení meracích hrotov sa nám celé zladenie posunie a síce ak sme napichnutý aj na CAS0 aj na RAS tak sa tých 20pF na každej vetve vzájomne rušia. Ja osobne som po odpojení nezaznamenal žiaden problém.

Tak sme v podstate na konci, napriek tomu sa počas testovania alebo pri činnosti môžete stretnúť s javom, že hráte hru a z ničoho nič sa zasekne, alebo resetne. Rovnako pri druhom alebo treťom deme. Teda sa to nestane hneď, ale až po 5-10 minútach činnosti a po reštarte znova pracuje. Takéto správanie som doposiaľ nezažil ani pri testovaní Didaktiku M 128kB, kde som mal skôr problém, že ani prvýkrát demo neprehralo celé, ale bez pripojeného Melodiku pracovalo správne.

Neskôr zase sa stávalo (na Mku), že ak som mal aj pripojený Melodik tak nemohlo byť pripojené DivIDE a to sú príznaky preťaženia zbernice procesoru. Na Kompakte sa to takto, ale nesprávalo. Má to, ale súvis s procesorom. Teda vybral som všetky procesory, ktoré mám doma a skúšal som do radu každý jeden na DiagROM, tie, ktoré prešli (34 zo 47 kusov) som následne skúšal na deme Stop Genocide.

Každý vydržal minimálne jedno spustenie spomínaného dema a pri druhom opakovaní sa resetol. Niektoré procesory vydržali aj štyri spustenia. Po resete ste mohli skúsiť znova a znova chvíľu pracoval správne. Niekedy stačilo na chvíľočku vypnúť a znova vydržal aj tri opakovania dema, no takýmto spôsobom som vyskúšal všetky a našiel som jeden unikátny, ktorý pracuje stále aj 12 hodín neustáleho opakovanie dema alebo aj iných hier. Skúsil som takto všetky procesory, ktoré doma mám. Procesory z Aliexpress značené, ako ST Z84C00AB6 zniesli v priemere tri opakovania dema. Procesory D780C-1 si neškrtli, ale pri DiagROM sa správali bez problémov iba 2ks vydržali jedno spustenie Stop Genocíde do konca. Procesory Toshiba TMPZ84C00AP-6 nezvládli absolútne nič ani DiagROM a rovnako SGS Z8410B1 kúpené v BB-Elmix, Zilog Z0840004PSC zniesol dve opakovania a rovnako aj Zilog Z84C0010PEC, ale práve posledný z menovaných (Zilog Z84C0010PEC) mal jeden kus výnimočný a ten mi tam nakoniec zostal. Teda vyhral jedinečný z Aliexpress. Takže z 34 ks, ktoré vyhovovali aj na DiagROM bol iba jeden jediný vyvolený kus, ktorý pracuje bez chybičky. Dohromady som otestoval 47ks procesorov, a teda 13 ks som vyhodnotil na zomletie kladivom. Mám, ale vážne podozrenie, že mimo procesoru tu je najnestabilnejšia súčiastka práve ruská ULA (КА1515ХМ1-216 (Т34ВГ1)) a teda to množstvo procesorov, ktoré zlyháva dávam za vinu práve jej.

Možno začínam uvažovať nad zosilňovacím modulom pre CPU, ktorý bude zosilňovať všetko pre CPU aj z neho a teda to bude posilňovač zbernice, ktorý sa rovnako napichne iba na päticu CPU a následne do neho CPU. Možno takýto modul vyrieši problém hľadania vyvoleného procesoru. Ale to som zatiaľ iba v rovine uvažovania a k realizácii si budem musieť ešte veľa naštudovať.

Ak ste sa dočítali až sem, tak vás tento článok určite zaujal a ja vám ďakujem za pozornosť.
Z00m ďakujem za zmapovanie, zverejnenie tohto rozšírenia od MDV a za trpezlivosť so mnou. Vám ostatným prajem veľa radosti s vaším 8-bitom.

Autor: Breki_j, Nitra

Kontaktovať ma môžete na:
Telegrame
Oldcomp.cz

Na záver prikladám linky pre nákup použitých komponentov:

PCB test point
Trimmer Resistor 3X3 (0-200R)
3*4 trimmer Adjustable capacitor (6,5-30pF)
2 PCS HM3-6116L-5 DIP-24
SMD Diode 1N4148 T4 SOD-123
GAL16V8A-15LP

Pridaj komentár