1
\$\begingroup\$

I have a project that requires a parallel interface non-volatile RAM. I had hoped to use an FRAM, however the only parallel FRAMs seem to much larger in capacity (and more importantly, price) than I need/want. On the serial side, things are much cheaper (even more so with EEPROMs). Digikey sells 8KiB I2C FRAMs for ~$1. That would be about perfect, were it not for the serial interface. What I'm curious about is whether there exist any kind of off-the-shelf solution for interfacing an I2C memory to a parallel interface

\$\endgroup\$
5
  • 3
    \$\begingroup\$ Why does it have to be a parallel interface? Can you add an I2C interface to your MCU? \$\endgroup\$
    – Mattman944
    Jul 5 '19 at 19:40
  • 1
    \$\begingroup\$ +1 for using KiB \$\endgroup\$ Jul 5 '19 at 19:54
  • \$\begingroup\$ It doesn't theoretically have to: the project is a kind of pedagogical computer that I want to have as simple of a programming model as possible. A memory-mapped parallel interface that is as simple as reading or writing to an address is attractive towards this end \$\endgroup\$
    – junius
    Jul 5 '19 at 22:49
  • \$\begingroup\$ What access time do you need? I2C is slow compared to any parallel interface. \$\endgroup\$ Jul 5 '19 at 23:23
  • \$\begingroup\$ This would be for a slow 8-bit CPU. Probably no more than 5mhz or so. There are cheap SPI FRAMs as well which would work fine too if a solution could exist for them \$\endgroup\$
    – junius
    Jul 6 '19 at 0:18
3
\$\begingroup\$

This may be a case where a small microcontroller would do the job. The issue would be dealing with the I2C time overhead - your host will have to wait sometimes. You could mitigate that with a caching approach.

Does your host have GPIO? Then you could bit-bang the I2C. This may be acceptable if your I/O needs are low.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ A parallel interface to an 8KiB, byte-oriented, RAM would require at least 22 GPIO lines...13 address, 8 data, and a R/W. I'm not sure that qualifies as a "small microcontroller". \$\endgroup\$ Jul 5 '19 at 22:39
  • 1
    \$\begingroup\$ The bigger issue is dealing with the i/o transaction latency. So it likely needs to be a different programmer’s model - a block-oriented transaction over an 8-bit port, like NAND flash. This wouldn’t support XIP, but it would kind of work. SPI would be preferable I think as it would be faster. \$\endgroup\$ Jul 6 '19 at 1:29
1
\$\begingroup\$

I have a project that requires a parallel interface non-volatile RAM.

So use some parallel non-volatile RAM! Battery-backed SRAMs are available from Cypress, ST, and Maxim (formerly Dallas); most of them are in packages compatible with standard DIP SRAM.

\$\endgroup\$
1
  • \$\begingroup\$ Or don't use "some parallel non-volatile RAM!". Batteries are to be avoided: bulky, inconvenient to handle and dispose of, goes flat and costly. FRAM avoids all that, it's in tiny packages and cheap. This is not a solution to the asked question so downvoting, I'm afraid. \$\endgroup\$
    – TonyM
    Jul 6 '19 at 15:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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