Hi I have an Arduino UNO and a AT28c64B and a single shift register, is it possible to make an EEPROM programmer with it? I’m not too good with the Arduino to do a lot of trial and error... I would just like to know if it’s possible or not, not how to...

  • what is shift register? ... there is more than one type being manufactured
    – jsotola
    Commented Oct 22, 2019 at 20:36

1 Answer 1


You need 24 GPIO pins to control that EEPROM chip. The Arduino has 19, and a typical shift register has 8 outputs. It takes 3 or 4 (depending on the shift register) to drive the shift register.

That's 19 + 8 - 4 = 23 for a shift register that needs 4 pins, or 19 + 8 - 3 = 24 for one that needs 3 pins.

However I would assume that you want to communicate with your computer as well, and that means that pins 0 and 1 of the Arduino are out of bounds, since they are used for the PC communication.

That means, at best, you have 22 pins when you need 24.

So, no, with that combination you can't, due to a lack of pins.

However an IO expander, such as the MCP23017, would give you enough pins and need fewer pins to drive. They also work in both directions, so can be used for pins that want to be read as well as written (data pins).

Alternatively an SPI or I2C connected EEPROM would be the better option, since those are designed to be driven by a small microcontroller like an Arduino uses.

  • Could I alternately not use all the address lines since I’m not going to use that much space, only a couple of commands, and the EEPROM is going to be used for a 6502 computer, so it can’t initially run from a serial EEPROM..
    – DerpymanMT
    Commented Oct 22, 2019 at 21:11
  • Sure, you can tie the upper address lines to GND to set those bits to always 0.
    – Majenko
    Commented Oct 22, 2019 at 21:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.