Real Time EEPROM Emulator

Looking for some advice/direction on using an atmega, and CPLD to interface and emulate a 27SF256 style eeprom Real time, so changes can be made on the pc and be reflected in the eeprom automatically.

I have seen Xilinx XC9572XL CPLD used with (3) 74xx245 and (1) 74xx573 in this scenario, also instead of using CPLD have seen (3) 74xx245 & (2) 74xx573 chips, 256K NVSRAM & 256K SRAM used on a different implementation.

Can someone break down the different uses and give a high level explanation of how the parts interface with each other

Trying to learn more! Thanks in advance!

Emulate okay, Real time not :frowning:
It takes too long for an Arduino to read the address lines, get the value from an array and output it to the data lines.

A somewhat "real time" behavior can be implemented by multiplexed address and data lines. When programming the PC side is enabled, the rest of the time access is granted to the other device. Special handling or indulgence is required when both sides want to access the EEPROM at the same time.

First I would study two ported memory designs to get an idea of what is involved. You can use FRAM to help make up for the EEPROM write time.

I wasn't specifically talking about using an arduino, it can be done with an atmega8515 or similar MCU. Its been done in the past, thats not a question

Here is one that uses an atmega328P

Heres one that uses an Atmega324 and a Xilinx XC9572XL CPLD

I would guess that the CPLD converts the RAM to a sort-of dual-ported memory, able to be accessed in real time via the flash interface (pretty easy; memory is memory) and modified on the other port using the AVR (NOT in "real time" compared to the flash accessing the chip.) Perhaps some additional trace capabilities or something.

What do the manuals for the existing commercial boards say?

Doesn't seem to be very related to Arduino.

There are no manuals that discuss any specifics of operation..

its related to arduino, cause just like the eeprom burner I put together, i use arduino ide and code to program my boards, even though they are not traditional "dev" boards or such as nano, etc. still using same chip and IDE just on a custom board

How it is implemented will depend on the features it provides.
Surely the documentation covers THAT?

well the solutions that are out there use an open serial protocol, which I have obtained, but they don't provide software directly so the serial protocol is really all there is. The individual PC software clients that are out there have integrated this protocol so any devices that use said protocol just work in these clients.

so from looking at this project, which is somewhat similar in end goal, they used shift registers to shift the data out from the nano (in this case) and since in this case the atmega328p does not have enough pins they used the shift registers.

Now on these commercial products, one uses (no shift registers or CPLD) and instead uses 2 SRAM's and the buffers...im guessing just writing one SRAM then switching between them back and fourth after each change.

On the ones with the CPLD's, im guessing they might just be implementing the same logic as the shift registers within the CPLD... Just some guesses, and trying to learn while trying to accomplish my end goal.

any ideas
?

Please specify what behavior you expect.

Is it a ROM replacement, that is written once and then only read?

Is it a persistent RAM, like a static CMOS RAM with battery backup? FRAM?

Real EEPROM can not be updated from different inputs. So it's sufficient to catch whatever change the processor applies. That's possible with RAM and either battery backup, or backup and restore through a second port on power loss and restore.

No not a one write then only read.. need to be editable real time... so emulate live the eprom...

Others use 2 memory chips and some buffers... then somehow switch between.. this is what I'm trying to learn

One i know of uses a HCT573 ( SN74HCT573NSR and 2 LJ245A's
SN74LVC4245APW

I think similar units use ram and a coin cell battery

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.