Google Analytics

16 maart 2022

Bouw: EPROM emulator NG

In veel oudere (8-bit) computers worden Erasable Programmable Read-Only Memory (EPROM's) gebruikt voor de opslag van software en gegevens. Deze geheugens kunnen met behulp van een programmer zoals de populaire TL866II worden geprogrammeerd. Eenmaal voorzien van de data blijft deze opgeslagen in het IC, ook als het IC niet op de voedingspanning is aangesloten. Het geheugen kan dan telkens opnieuw worden uitgelezen.

Om een EPROM opnieuw te kunnen programmeren dient eerst in inhoud te worden gewist door middel van Ultra Violet (UV) licht van een specifieke golflengte voor een duur van ongeveer 15-30 minuten. Daarna kan deze weer met nieuwe gegevens worden geprogrammeerd.

Een EPROM uit 1987 van het type AM2732 (4k x 8)
D.m.v. het glaasje in de behuizing kan de inhoud van
de inwendige chip worden gewist met UV licht.

Met name bij ontwikkeling van nieuwe software en het testen daarvan kost het steeds wissen en opnieuw programmeren van de EPROM veel tijd. Het zou heel handig zijn als de software aanpassing die op de computer is gedaan direct in het apparaat waar de EPROM in zit beschikbaar is.

Om deze reden heeft Kris Sekula van My Geeky Hobby een EPROM emulator ontwikkeld: de zo genaamde "EPROM Emulator NG". Deze emulator kan de volgende EPROM's emuleren: 2716, 2732, 2764, 27128, 27256 en de 27512.

Op de website van My Geeky Hobby zijn voorbeelden te zien waar deze emulator zoal kan worden toegepast.

De Hardware

De printplaat van de EPROM Emulator NG versie 2.1

De onderdelen worden gesoldeerd
De printplaat bevat onder andere een Arduino Nano t.b.v. de communicatie met de PC en de aansturing van de onderdelen op de print, een AS6C1008 (128k x 8) SRAM voor de opslag van de data, een 25LC512 (64k x 8) seriële SPI EEPROM ten behoeve van "permanente" opslag en enkele schuifregisters en logica ten behoeve van de aansturing en twee transistors voor de aansturing van de externe reset signalen.

Op de print wordt een 34 polige IDC connector geplaatst waarop een bandkabel kan worden aangesloten die aan het andere uiteinde een 28 polige voet bevat die in de IC voet van de EPROM kan worden gestoken. Daarnaast zijn er nog twee testclips beschikbaar waarmee een reset kan worden uitgevoerd op de computer waar de EPROM aanwezig is.

Ik plaats IC voeten voor de IC's en twee hoge header connectors voor de Arduino Nano omdat eronder ook nog onderdelen zitten.

De printplaat is gereed en de Arduino geplaatst.

Nu kan de bandkabel worden gemaakt en dit bleek nog niet zo eenvoudig. De bandkabel IC plug van Electrosonic, type FDP-628-T kon ik alleen vinden bij het Amerikaanse DigiKey.
De verzendkosten van 18 euro zijn pittig, het beste is om de bestelling dan maar te combineren met andere in Europa slechter verkrijgbare onderdelen.

Ik heb een 40 aderige bandkabel gebruikt die ik nog had liggen en deze gestript op 30 aders. De bandkabel wordt op de gewenste lengte geknipt waarbij twee draden voor de test clips langer worden gelaten. Op de printplaat is een 34 polige IDC gebruikt omdat deze connector gebruikelijk is en goed te verkrijgen. Let er op dat de bovenste 4 aansluitingen op deze connector worden vrijgehouden.

Ten behoeve van het bevestigen van de connectoren op de bandkabel gebruik ik een krimptang zoals op de afbeelding links. Let erop dat de connectoren precies haaks op de bandkabel staan voordat deze erop wordt geperst. Het ging goed bij de normale IDC connector, maar het ging al meteen mis met de IC plug. Op de onderkant komt zoveel druk te staan dat deze connector direct door midden breekt. Het beste is om hier een mini breadboard te gebruiken zodat de pinnen van de IC plug hier in kunnen worden gestoken en het geheel in een bankschroef kan worden samengedrukt.

Nu kunnen de reset clips worden gesoldeerd. Met behulp van deze clips (actief laag of actief hoog) kan de aangesloten elektronica automatisch worden gereset nadat de inhoud van de ge-emuleerde EPROM is gewijzigd. Aangezien de bandkabel draden nogal fragiel zijn heb ik de draden bij de "ingang" de plug vastgezet met een druppel "hot glue".

De EPROM Emulator NG compleet met bandkabel en reset clips.

De Software

De software bestaat uit twee delen:

  • De software voor de Arduino ten behoeve van de aansturing van de print en communicatie met de PC, geschreven in C++
  • De software voor de PC ten behoeve van selectie van het type EPROM, de COM poort, het bestand met de EPROM inhoud en andere instellingen, geschreven in Python.

De EPROM emulator NG software is beschikbaar op Github.

Voor de Arduino Nano heb ik firmware versie 2.0rc4 (EPROM_EMU_NG_FW_2.0rc4.ino) gebruikt. Deze software heb ik met behulp van de Arduino IDE op de Arduino Nano geladen.

Om het Python script (EPROM_NG_v2.0rc3.py) op de PC te kunnen gebruiken dient eerst Python zelf te worden geïnstalleerd en vervolgens nog de libraries pySerial en pySimpleGui door middel van:

pip install pyserial
pip install pysimplegui

Hierna kan het script worden gestart met parameters op de command line, bij voorbeeld:

python EPROM_NG_v2.0rc3.py -mem 27256 -spi y -auto n 27256.HEX com4

of zonder parameters om de grafische interface te starten:


In een van de vervolg blogs zal ik deze EPROM emulator gaan testen in combinatie met een nog te bouwen retro computer.

1 opmerking:

  1. Great post Marcel! In case you missed it, on my GitHub I left detailed assembly instruction for both the emulator and the cable. I also have a video on YouTube covering the assembly process (older version but still relevant).

    BeantwoordenVerwijderen