which ext. memory for storing ~1MB of raw data?

Go To Last Post
6 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi guys!

For my bus system, I'm currently developing (planning) the master module and noticed there is no AVR with enough memory for my needs.

I have to store at least 3-5 bytes of data for 4096 modules each and store data about modules grouped together. Each module and group should have several presets if memory allows, so I guess something around 512kB to 1MB should be enough memory for this.

Now the question: which memory should I choose? I don't want to waste many pins for the memory, so something with I2C bus or an equivalent would be fine. I found EEPROM and SD-Cards to look promising although any SD-Card is way too large for this project. Are there other options? And which one would you -for ease of storing/retrieving data- suggest to use?

And in case you have the time and are interested: the generic module is done and running. It still needs some tests and a little bugfixing but it does already accept values and set PWM and IOs right. Input from IO to the bus should also work fine, I haven't tested that one yet. The dumb modules are done. More intelligent modules that understand fading commands will follow.

I'm currently planning to set up a µC for the master module, it will communicate with the bus (control it) and with a very small linux server which does all the GUI stuff and can control the bus indirectly through the µC. I need a web interface and as webservers on AVRs are possible but not with dynmic pages, I chose a small ext. server. The bus will run without the attached webserver as it just modifies groups and module values stored in the master module.

Later-on, modules with touchscreen interface are planned that can directly change values in master storage too. Touchscreens on the wall that control lighting, sound etc. - isn't that cool? ;-)

Markus

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Atmel has SPI flash memories called DataFlash.

Did you know that you could use for example MicroSD cards or something, not the regular sized SD/MMC cards?

- Jani

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MicroSD and SD should be (electrically) the same or at least something nearly equal. Size is not important here, just the needed cycle count and the complexity of the protocol to read/write data is important. I don't want to waste hundreds of clock cycles to reading and writing data, this should happen quite fast and without 1000 lines of code.

The module will read on powerup and save back on power loss (a small circuit with a capacitor holding power for the write-back time and a "we have a power loss" detector will help here) Basically, a diode, a connection to a (interrupt) pin and a capacitor will do the trick.

So reading is not time-critical but writing is. And for me being lazy, I don't want to reinvent the wheel or try dozens of concepts before I find the right memory with the right interface for this. No need for FAT or other higher-level stuff, writing bytes to an address is all I need.

Markus

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I recommend to use MicroSD.

You can also use SO8 devices like M25P40 from ST.

Klaus
********************************
Look at: www.megausb.de (German)
********************************

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Agree with Jani, the AT45DB081D from Atmel is a great solution. SPI interfaced (which has got to the easiest interface ever invented!) and very easy to use. (and if you are buying industrial quantities then Atmel will probably do you a package deal discount on buying the two chips from them)

Cliff

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quantities for the master module will be low, so I won't need many of these unfortunately. Only the slave modules will be built a few hundred times.

Thanks for all your input! I'll take a look at everything SPI. SD / MicroSD would be great to understand for later projects while DataFlash seems more suitable for this project.

When the "database" (haha) is planned, I'll see how big the storage will have to be in the end and then order the matching chips.

Markus