Jednoduchý Arduino test SRAM MHB2102A a MM1101A

Pro různé jednoduché prototypové testování často používám Arduino Mega. Má hodně portů, sériovou konzoli a dobře se programuje. Nedávno jsem potřeboval otestovat hromádku statický pamětí RAM MHB2102A (1024×1) a MM1101A (256×1) a napadlo mně, že by se moje testy třeba někomu mohly hodit. Tak tady je máte i s výsledky, kterých jsem se po testování většího množství čipů dopátral. Nečekejte nic složitého.

2102_memory_test_connection   TestMM1101A

Testování TESLA MHB2102 a Tungsram T2102A4PC

Jako první jsem potřeboval otestovat několik stovek jednobitových SRAM 1024 bitů. 2102 pracují na jednom napájecím napětí +5V, tak zapojení bylo poměrně přímočaré.

Arduino Mega +5V na 2102 pin 10 (+5V)
Arduino Mega GND na 2102 pin 9 (GND)
Arduino Mega pin 41 na 2102 pin 13 (CE)
Arduino Mega pin 40 na 2102 pin 3 (WR)
Arduino Mega pin 39 na 2102 pin 12 (DO)
Arduino Mega pin 38 na 2102 pin 11 (DI)
Arduino Mega PORT A (piny 22 až 29) na 2102 nižší adresní byte (piny 8, 4, 5, 6, 7, 2, 1, 16)
Arduino Mega PORT C (piny 37 a 36) na 2102 vyšší adresní byte (piny 15 a 14)

2102_memory_test_connection   2102_memory_test

Test probíhá v několika krocích. Nejdřív se všude zapíšou a zkontrolují 0, následně to samé pro 1. Adresní test zapíše postupně pro všechny adresní vodiče hodnotu daného adresního bitu a opět otestuje správnost. Následuje test s plovoucí 0 a 1, kdy postupně „probublá“ 0 nebo 1 všemi bity z jednoho konce paměti na druhý. Ve finále se zapíšou do paměti náhodná data a po 10 s se zkontroluje jejich správnost.

2102_memory_test_MHB2102A   2102_memory_test_T2102A4PC

Při testování několika stovek MHB2102A/4 jsem narazil jen na jednu špatnou.

MHB2102A4_600pcs_original_packaging   MHB2102A4_600pcs-75kB

Hůře dopadly Maďarské paměti Tungsram, které se chovali dosti podivně. Kromě jedné úplně vadné vykazovala asi 1/3 pamětí problémy s udržením informace. Po zapsání náhodných dat a jejich kontrole po 10 s se některé bity ztratily. Zajímavé bylo, že po několika opakování testu se úspěšnost zlepšila a většina SRAM se tvářila OK. Říkal jsem si, že je to teplotou, ale „rozchozené“ paměti se chovaly poměrně slušně i druhý den za „studena“. Pořád zůstávalo nějaké procento problémových, ale tak polovina z oné 1/3 podivných se podařila „rozdýchat“. Ne, že bych jim věřil a určitě je nikde nepoužiju, ale je to zvláštní.

Program pro otestování SRAM 2102 pomocí Arduino Mega můžete stáhnout zde.

Testování MM1101A

Další várka na testování představovala jednobitové paměti se závratnou kapacitou 256 bitů. Intel je dělal pod označením P1101A, ale mně se podařilo za dobrý peníz zakoupit MM1101A/A1N od National Semiconductor. Ještě bych nějaké potřeboval, tak kdybyste někdo byli ochotni odprodat nějaké starší zásoby, byl bych rád. Ono seskládat 4 kB z pamětí 256×1 není legrace Mrkající veselý obličej.

Paměti 1101 používají technologii P-MOS, takže jsem k +5V musel přidat druhé napájecí napětí –9V. Zajímavé je, že paměť vůbec není připojená na GND. Zapojení pinů je úplně jiné, než u 2102, ale pro Arduino jsem zapojil vše shodně, abych nemusel moc měnit program, takže:

Arduino Mega +5V na 1101 pin 5 (+5V)
Arduino Mega GND na +9V druhého napájecího zdroje
GND druhého napájecího zdroje (-9V) na 1101 pin 4 (VD) a pin 8 (VDD)
Arduino Mega pin 42 na 1101 pin 14 (negovaný DO)
Arduino Mega pin 41 na 1101 pin 16 (CS)
Arduino Mega pin 40 na 1101 pin 15 (WR)
Arduino Mega pin 39 na 1101 pin 13 (DO)
Arduino Mega pin 38 na 1101 pin 12 (DI)
Arduino Mega PORT A (piny 22 až 29) na 1101 adresy (piny 7, 10, 9, 11, 6, 1, 3, 2)

1101_memory_test_connection

Bylo potřeba upravit program, protože signál WR má opačnou polaritu než u 2102, jinak je program podobný. Testovací algoritmus jsem vylepšil, že při plovoucí 0 a 1 pečlivě testuju při každém posunu stav všech bitů paměti a po zápise náhodných dat a jejich přečtení po 10 s všechny zneguji a otestuji správný obsah na invertovaném DO výstupu.

TestMM1101A   TestMM1101A_error

Ze 70 testovaných obvodů jsem našel 9 špatných, což mně příliš nepotěšilo, protože tak nepokládám ani 2 kB a budu muset ještě nějaké sehnat.

Program pro otestování SRAM 1101 pomocí Arduino Mega můžete stáhnout zde.

Příspěvek byl publikován v rubrice Arduino, Nezařazeno. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

10 komentářů: Jednoduchý Arduino test SRAM MHB2102A a MM1101A

  1. Sillicon napsal:

    Pred casem mi jeden clovicek povidal ze treba stroje Amiga, ktere delsi dobu (radove vic jak 5roku) nebezely tak ze po zapnuti vykazuji symptomy vadnych pameti. Pry staci Amigu zapnout na nekolik hodin, proste jen tak zapnutou a pak teprve s ni neco delat. Pry se pameti „unavene spankem“ 🙂 probouzi trochu pomaleji a pak uz to je v pohode. Potvrdilo se mi to u jedne A500 co se chovala po zapnuti velmi divne a po nekolika hodinach co byla jen zapnuta se srovnala a od to doby uz bez problemu. Asi se opravdu musi „rozhybat“ :-).

  2. Pingback: Konečně pořádný 8bit – SCELBI 8H s CPU Intel 8008 | Martinův 8-bitový blog

  3. PedroS napsal:

    Jen jestli není problém spíše s ospalými kondenzátory, které mohou být vyschlé po těch 30 letech.

  4. PvvS napsal:

    Hm, díky za ten program na 2102, teď se mi jich dostalo pár do tuky, tak si je můžu otestovat.

  5. Vernon napsal:

    Hi there I wanted to make the Simple Arduino Test SRAM MHB2102A ,
    I downloaded you code but I’m missing the DebugUtils.h you would happen to have this file.?

  6. Robin napsal:

    I just finished repairing an old 1975 computer and I used your arduino memory test program. It came in very handy. Thanks for posting this guide.

    I made a video of the repair process.

    bit.ly/38L9HgP

  7. Imre Deak napsal:

    Thank you for this! I’m now test ~140 pieces of N.O.S. MEV/TUNGSRAM 2102APC2 and yes…. ~30 of the 140 is dead. Greetings from Hungary.

Napsat komentář: Sillicon Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *