Using a Arduino to read from one EEPROM chip and write to another

Hi guys,

I am currently trying to figure out how to read hexadecimal values from a 93C56 eeprom chip in a old car computer and write those same values to a replacement car computer.

I have come across many threads from google searched, but many end up hanging on the last steps.
I am about to buy a SOIC 8pin cable to connect the eeprom to a breadboard which then to a arduino.
(
SOIC8-SOP8-Flash-Chip-IC-Test-Clips-Socket-Adpter-BIOS-24-25-93-Programmer
)

My current issue is trying to understand how to read the datasheet for this chip. It is far beyond my current electronics knowledge. (I'm a mechE student currently).

I was wondering if anyone could give me some stepping stones or pointers.

I can only help you on the way. Figures 2 and 3 in the datasheet

Make the CS pin HIGH
2)
Put data bit on DI
3)
Give a clock pulse on SK

From figure 2, data on DI needs to be available tDIS before the clock goes HIGH. CS needs to be HIGH tCSS before the rising edge of the clock pulse. Data on the rising edge needs to be stable for tDIH after the rising edge of the clock.

So the above steps become

Make the CS pin HIGH; you can wait tCSS but that is not required because tCSS (200 ns) is shorter than tDIS (400 ns) which is handled in (2) below.
2)
Put data bit on DI and wait tDIS
3a)
Make the clock HIGH and keep it HIGH for tSKH (1000 ns)
3b)
Make the clock LOW and keep it LOW for tSKL (1000 ns)
4)
Back to (2) for the next data bit.

You need to clock in a start bit (1), an opcode (10 for read) and a number of address bits depending on the mode you selected (x8 or x16); if the ORG pin is LOW, you read 8 databits at a time, if it's HIGH you read 16 bits at a time. The address bits indicate which memory location you will read.

Next you can keep on clocking (see 3a and 3b above) and read the data from D0; the first bit read is a dummy bit and can be ignored (but you should check if it's indeed LOW) so you need to clock 9 or 17 bits. After the rising edge of each clock, you have to wait tPDx (1000 ns) before the data is valid.

Repeat the process (start bit, opcode, address, reading data) till you have read all memory cells.

After you have read all memory cells, you have to wait tCSH (0 ns) after the falling edge of the last clock pulse before making the CS LOW.

I hope this gets you on the way and that I did everything from the datasheet correctly and not make too many errors while explaining.

PS
I've use the worst case timings that I could find.

Sorry, but I forgot to upload the datasheet.

datasheet.pdf (173 KB)