Replika 16MB 72-pinového SIMM s paritou

      20.2.2023 Jelikož se paritní SIMMky, které potřebuju do svého DEC Alpha PC64, shánějí opravdu blbě, tak jsem se nakonec rozhodl, že si vyrobím vlastní repliky. Použiju na ně DRAM čipy zkanibalizované z obyčejných neparitních SIMMek, protože ani ty čipy se už nedají koupit za rozumný peníz. Přemýšlel jsem, jak vyřešit paritu. Originální paritní SIMMky obvykle používají speciální 4-bitový DRAM čip, který má 4 CASy a 1 RAS - to už je úplná rarita. Také by to šlo vyřešit čtyřmi 1-bitovými DRAM čipy, ale ty v potřebné kapacitě alespoň 4M x 1 také nemám. Nakonec jsem se rozhodl pro poněkud plýtvavé unifikované řešení se 4-bitovými DRAM čipy, kde se u paritních čipů využije pouze 1 bit ze 4. Takže ze 3 běžných SIMMů s 8 DRAM čipy můžu poskládat 2 paritní SIMMy s 12 čipy.
      S ohledem na cenu (neboť SIMM modul překračuje svou délkou limit 10 cm u JLCPCB) jsem se rozhodl pro 2-vrstvý layout, který není úplně optimální z hlediska signálové integrity a tak jsem alespoň nešetřil blokovacíma kondíkama pro každý DRAM čip. ID bity jsem připojil na konfigurační odpory, aby bylo možné flexibilně nastavit kapacitu a rychlost modulu, viz tabulka ve schematu. Plošňáky jsem nechal vyrobit u JLCPCB v rámci větší várky (5 ks mě stálo 5,5 $), dorazily minulé úterý. Destičku jsem nejprve osadil jen 8 DRAM čipy, které jsem vypájel z 16MB FPM 60ns modulu, jenž jsem sehnal za 50 Kč na poslední strašnické radioburze. Modul jsem otestoval v základní desce 486 VLB, kde není nutné osazovat více modulů do páru. Asi po hodině prošel Memtest bez chyby.
      Bohužel při strkání modulu do SIMM slotu nastal dost nepříjemný Fffuuu! moment, kdy jsem zjistil, že jsem modul vyrobil na příliš tlustém FR4 substrátu. Při zadávání desek do výroby jsem si vůbec neuvědomil, že SIMM moduly mají plošňák silný jen 1,2 mm a nikoliv 1,6 mm, což je standardní výchozí hodnota u JLCPCB. Modul sice do slotu nacpat jde, ale záleží na konkrétním slotu, některé mají větší vůli než jiné a nerad bych jim úplně vymačkal kontaktní pérka. Takže plošňáky budu muset vyrobit znovu a přepájet to. Vtipné na tom je, že stejnou chybu udělal i Alexandru Groza na svém 30-pinovém SIMMu, který také musel nechat vyrobit znovu. Na jeho článek jsem narazil už dříve a měl ho uložený, že si ho někdy přečtu off-line, ale nebyl čas.
      Abych ověřil kompletní funkci svého modulu, potřeboval jsem sehnat ještě další 4 DRAM čipy. Prohledal jsem šuplíkové zásoby, ale bohužel jsem měl v téhle kapacitě jen EDO SIMMky, které nejdou ve starších kompech použít. Musel jsem tak opatrně odpájet čipy z jiného paritního modulu a přepájet je sem. Modul jsem pak otestoval ve čtveřici v Alpha PC64 a normálně naběhla, takže jiná chyba by tam být neměla...

parity SIMM 72-pin schematic parity SIMM 72-pin PCB layout parity SIMM 72-pin PCB 3D model
SIMM 72-pin schema SIMM 72-pin layout SIMM 72-pin PCB 3D model

parity SIMM 72-pin assembled PCB top parity SIMM 72-pin assembled PCB bottom
osazený SIMM 72-pin PCB top osazený SIMM 72-pin PCB bottom

      17.3.2023 Z JLCPCB mi přišla další sada plošňáků na mé paritní SIMM moduly, nyní již ve správné tloušťce 1,2 mm, takže padnou do slotů jako ulité. Chtěl bych poděkovat Jožkovi z OldCompu za poskytnutí 6 FPM 60ns SIMMek na čipy. Bohužel zrovna jeden 16MB paritní modul s čipy LGS vykazoval chybu 2 bitů (v 1 čipu), takže ho nemohu rovnou použít a nemám už další samostatné čipy na opravu, jedině z jiných modulů. Osadil jsem tedy 2 své nové 16MB moduly a k nim přidal další 2 stávající paritní 16MB moduly a zkompletoval tak další čtveřici 16MB modulů, celkem mám nyní osazeno 128 MB paměti.

FPM 72-pin SIMMy (mix) od Jožky parity SIMM 72-pin GoldMemory test failed parity SIMM 72-pin v1.1 assembled PCBs
SIMMy na čipy GoldMemory test fail osazené SIMMy 72-pin v1.1

      30.3.2023 Od Pwrampa z OldCompu jsem získal 1 obyčejný 16MB FPM 60ns SIMM s čipy Panasonic MN4117400ASJ-06, takže jsem se mohl pustit do opravy paritního SIMMu s čipy LGS GM71C17400BJ60 od Jožky. Dle výpisu chyby z GoldMemory je zřejmé, že jde o bit č. 5, tak jsem propípnul kam vede signál D5 a byl to 3. čip zleva. Odpájel jsem ho foukačkou, nahradil čipem Panasonic a test prošel bez chyby. Když jsem ale modul strčil do Alpha PC64, tak nenaběhl (skončil POST kódem 19h, stejně jako když modul chybí). Domníval jsem se, že by chyba mohla být v některém z paritních čipů, které se v běžném PC netestujou. Postupně jsem tedy vždy jeden čip LGS sfouknul, připájel místo něj čip Panasonic a otestoval. Ale ani po výměně všech 4 paritních čipů systém nenaběhnul - nechápu, asi nějaká jiná nekompatabilita v zapojení modulu (PD bity byly OK, ale jiný modul fungoval i bez nich). Takže jsem nakonec z modulu všechny čipy sfouknul a přepájel je na svůj plošňák.
      K mému překvapení však nový modul také nefungoval, ani v Alpha PC64 ani v testovací 486 desce. Proměřil jsem ho na zkraty/přerušení a nic jsem nenašel. Postupně jsem horních 8 čipů LGS vyměnil za Panasonicy, ke kterým jsem měl větší důvěru a modul konečně začal fungovat. Pak jsem zas 1 čip Panasonic odpájel a postupně na jeho pozici připajoval a odpajoval čipy LGS. K mému překvapení bylo 14 z 15 čipů vadných tak, že ve většině případů deska s modulem ani nePOSTla. Asi ve 3 případech nabootovala, ale v Memtestu hned vyběhly chyby a pouze jediný čip LGS prošel Memtestem OK. Modul tedy zůstal nedoosazený, jen jako neparitní. Domnívám se, že čipy LGS už byly nějaké načaté a dodělal jsem je vysokou teplotou při odpajování foukačkou (nastaveno 330°C). Inu, zajímavá zkušenost, jen poněkud časově náročná...

      16.5.2023 Narazil jsem na zajímavé video od uživatele Bits und Bolts, kde vysvětluje, jak lze jednoduchou HW úpravou změnit časování čipů EDO DRAM na FPM, což následně demonstruje na své 386 MB osazené novými moduly s 32 MB EDO DRAM (prošly i MemTestem). Nejde přitom o žádnou novinku, uživatel Arti9m vzpomíná, že na to narazil někdy v roce 2005. Fígl je jednoduchý, stačí u každého paměťového EDO čipu odpojit pin OE# od země a připojit ho na sousední pin CAS#, čímž se zkrátí doba výstupu dat na sběrnici tak, jako je u FPM čipu. Takovou úpravu lze jednoduše provést i na stávajícím osazeném modulu. Potenciálně by mohlo působit problém to, že výstup budiče signálu CAS# z řadiče paměti bude kapacitně zatížen 2-násobnou kapacitou (2 vstupy na straně DRAM čipu místo 1), což by při rychlém časování mohlo způsobit zpoždění nad limit. Konkrétně v případě 16MB paritního FPM modulu s 12 čipy visí na 1 CASu 3 vstupy a po úpravě na EDO to bude 6 vstupů na 1 CAS. To by mělo být stejné jako v případě oboustranného 32MB modulu s 24 čipy, který by měl paměťový řadič také zvládnout.
      Tak mi to nedalo a vzal jsem jeden neosazený plošňák mého SIMM modulu, plošky OE# (22) jsem přelepil proužky nastříhané kaptonové pásky, připájel 8 EDO DRAM čipů Fujitsu MB8117405A-60 z běžného 16MB EDO modulu a nožky OE# (22) a CAS# (23) spojil cínovou kapkou. Modul jsem otestoval v základní desce 486 s chipsetem SiS 85C471 a naběhla bez problémů. V SETUPu jsem nastavil nejrychlejší časování (Write Cycle: 0 W/S, CAS Write Pulse: 1T) a právě doběhl test GoldMemory s 0 chybami, takže to funguje. Tímto se tedy otevírá cesta k výrobě paměťových modulů pro stará PC s využitím běžnějších EDO DRAM čipů.



Zpět

Aktualizováno 16.5.2023 v 5:08