Hello,
In the text that follows: I get a bit specific. Here's is the general simple question first: what is the best approach to execute building a cartridge with non-volatile 8Mbits of saved storage.
Then I get all specific, however the solution might be outside of these terms:
I am interested in placing a rather large NVRAM (8Mb) for my SNES Tracker cartridge. I anticipate using the Save-RAM as a means of working with Song data and Samples that will be saved/uploaded to/from the PC/cart. I consider 4-8Mb a good prototype start for this.
I began researching into FRAM, which is new to me. I found that most FRAM out there at my desired size use a 16-bit data bus, run on < 5V. However, I did find some NVRAM (self-contained battery packed SRAM) that fit my guidelines, namely:
5V, 8bit data bus, 4-8Mb, parallel.
, however the price was humongous ($80 for one chip).
So, I began researching how to build a battery back-up circuit like all the old Nintendo carts do it. However, is there a better way? Can a CR2032 battery easily preserve for a long time an SRAM of my desired capacity?
I would rather not venture into a world of < 5V electronics, I can be brave.
Devote a few megabits of the PRG flash chip to storing saved data. That's what WarioWare DIY for Nintendo DS does, if I recall correctly.
tepples wrote:
Devote a few megabits of the PRG flash chip to storing saved data. That's what WarioWare DIY for Nintendo DS does, if I recall correctly.
I don't understand. Well I understand, however that sounds unreliable for the amount of access; this data will be messed with a lot. It might be good for samples, which would be edited less frequently. Still, all in SRAM is my pref.
When you say it will be "accessed a lot" do you actually intend on using it as work RAM? Honestly, Flash really is your best bet, just use it as storage and not working RAM and you'll be fine. Microchip has 5V flash up to 4Mbit, Micron has them up to 16.
Are you suggesting I use Flash ROM???? Read from it, Work with, store it at the end? I dunno yet how much WRAM I will need at one given time. I am thinking it will become easier to use SRAM as persistent WRAM.
If you need more WRAM, then yes, battery-backed SRAM would be your best bet.
Here is the cheapest 4Mbit chip I can find on Digi-Key, and
here is the cheapest 8Mbit. You'll need to implement a protection circuit to disable the SRAM during power-on/power-off, as well as adding a battery. I believe that Markfrizb designed a protection circuit that worked nicely with a couple of diodes and resistors and a transistor. If the chip has both /CE and CE (like that Cypress 8Mbit one does), connect /CE to the protection circuit and pull CE high by connecting it to Vcc through a 10K resistor.
qwertymodo wrote:
If you need more WRAM, then yes, battery-backed SRAM would be your best bet.
Here is the cheapest 4Mbit chip I can find on Digi-Key, and
here is the cheapest 8Mbit. You'll need to implement a protection circuit to disable the SRAM during power-on/power-off, as well as adding a battery. I believe that Markfrizb designed a protection circuit that worked nicely with a couple of diodes and resistors and a transistor. If the chip has both /CE and CE (like that Cypress 8Mbit one does), connect /CE to the protection circuit and pull CE high by connecting it to Vcc through a 10K resistor.
Does this protection circuit accompany, or replace, an NVRAM controller chip? Such as something off this website:
http://para.maximintegrated.com/results ... m=nvcntrlrI am briefly inspecting this one:
http://datasheets.maximintegrated.com/en/ds/DS1210.pdfI PM'd mark about his circuit, couldn't find anything on it.
The chip you linked is exactly the kind of protection circuit I was referring to, in IC form. mark's circuit just implemented the same thing with discrete components. Basically, the point is to disable the /CE line whenever the power is unstable, to prevent random glitching (which occurs during power-on/off) from trashing the SRAM contents, and also to prevent the console's Vcc line from feeding back into the battery. It's pretty simple to hook up. Just take whatever signal should be connected to the SRAM /CE, disconnect it from the SRAM and feed it into the /CE on the Maxim chip, then the SRAM /CE connects to the Maxim chip's /CEO pin, then just hook up the Vcci to the cart Vcc, Vcco to the SRAM Vcc, Vbatt to the battery + terminal, Gnd is self-explanitory. TOL is either connected to Vcc or Gnd, depending on the voltage tolerance of the SRAM chip.
just ordered some free samples of the maxim chip.
Here is another possibility from TI, and it's available in a SOIC-8 package, which the Maxim one isn't. Or, if you want to stick to Maxim, the
DS1312 looks like it would work, and is also available in SOIC-8