I have been thinking of building Ben Eater's 8 bit computer (on a budget) for some time now but the only EEPROMs I can find are serial EEPROMs with I2C interface. I am wondering if I can use a serial EEPROM as a parallel EEPROM. If so, How can I?
-
1\$\begingroup\$ Write code to do it. Read and write from the I2C interface instead of a direct memory access. It will be very slow. \$\endgroup\$– Lior BiliaDec 21, 2022 at 14:22
-
\$\begingroup\$ Welcome. Do you mean the 2816 that's part of the output register? And the pair in the control logic? \$\endgroup\$– jonathanjoDec 21, 2022 at 14:23
-
\$\begingroup\$ Yes you can but it is so complex and slow that it is not feasible and you really don't want to do it. Don't use parallel EEPROMs then, use more modern chips like Flash. \$\endgroup\$– JustmeDec 21, 2022 at 14:27
-
\$\begingroup\$ Why can't you use parallel flash (emulated eeprom)? Took me around 5 seconds to find a ton of such ICs. \$\endgroup\$– LundinDec 21, 2022 at 14:28
-
\$\begingroup\$ @LiorBilia I think i will go with your approach for the control word, thanks \$\endgroup\$– zoomlogoDec 21, 2022 at 14:47
1 Answer
The two U47 and U52 are organised as a 1k x 16 bit ROM (A10 tied low). You might consider it cheating, but it's perfectly possible to program an ATmega328 as a 1k x 8 ROM. It sits looking at its input (address) lines, puts an appropriate byte out of 8 outputs. You see that chip enable and output enable both hard-wired active.
If you put it on a little circuit-board it would even be pin compatible! You could consider using their TX/RX and having some kind of RAM-based Eater CPU microcode.
You'll have to check clock speeds.
From Eater web site
In fact, if you look at the A7 address lines, they're tied high and low. (Are the two ROMs programmed with the same content, half used for each?)
U45 appears to be a seven-segment decoder or similar. Consider using a dedicated part for that if you don't want a third ATmega.
From Eater web site