Sunday 8 March 2009

weekend project: reading 27256 eproms

One of my favourite hobbies is to open electronic devices to see what is inside, to hack it or to scavenge its circuits. For that I usually buy quite old devices since the new ones all use SMD and there is not much you can do with them.

Luckily in the city where I live there is a secondhand/flea market where you can buy all kind of stuff and I found a cool device (see the picture below) and when I opened it I discovered a bunch of 27256 EPROM's inside.



These EPROM's have a 15bit's address bus and a 8bit data bus. As the microcontroller I used an Atmega128 connected to my computer thought a serial port. The microcontroller sets the address in the bus using a couple of 74HC595 (8-bit serial-in, serial or parallel-out shift register), that way I only need 3 GPIO's to set the address I want to read from, for the data I just use the whole (ouch!) PORTA of the microcontroler.

It all worked pretty straight forward, the only problem I had is that by mistake I wired the data bus in the reverse order (so D0 was connected to D7, D1 to D6 and so on) but once I figured that out I dumped the EPROM again and got a great satisfacton when I read the strings stored in the EPROM :-))

Ok, so here come the pictures and a bit of the EPROM DUMP





0000 02 05 48 02 56 09 FF FF FF FF FF 02 07 83 FF FF ..H.V...........

0010 FF FF FF 02 6C 51 FF FF FF FF FF 32 FF FF FF FF ....lQ.....2....

0020 FF FF FF 02 45 18 FF FF FF FF FF 32 FF FF FF FF ....E......2....

0030 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0123456789ABCDEF

0040 46 41 54 41 4C 20 43 52 4F 4D 20 45 52 52 4F 52 FATAL CROM ERROR

0050 46 41 54 41 4C 20 49 52 41 4D 20 45 52 52 4F 52 FATAL IRAM ERROR

0060 58 52 41 4D 20 45 52 52 20 7E 20 7E 5F 5F 5F 5F XRAM ERR ~ ~____

0070 46 49 52 4D 57 41 52 45 20 45 52 52 4F 52 20 20 FIRMWARE ERROR

0080 53 59 4E 54 41 58 20 46 49 4C 45 20 45 52 52 20 SYNTAX FILE ERR

0090 43 4F 4E 46 49 47 20 46 49 4C 45 20 45 52 52 20 CONFIG FILE ERR

00A0 54 52 41 4E 53 2E 20 46 49 4C 45 20 46 55 4C 4C TRANS. FILE FULL

00B0 54 52 41 4E 53 2E 20 50 41 43 4B 20 45 52 52 20 TRANS. PACK ERR

00C0 54 52 41 4E 53 2E 20 42 59 54 45 20 5A 45 52 4F TRANS. BYTE ZERO

00D0 2A 20 42 41 54 54 45 52 59 20 4C 4F 57 20 2A 20 * BATTERY LOW *

00E0 2A 2A 20 42 59 50 41 53 53 20 4F 4E 20 2A 2A 20 ** BYPASS ON **

00F0 20 44 41 54 45 29 20 44 44 2D 4D 4D 4D 2D 59 59 DATE) DD-MMM-YY

0100 20 54 49 4D 45 29 20 48 48 3A 4D 4D 20 20 58 4D TIME) HH:MM XM

[....]


No comments:

Post a Comment