You'll laugh, but I just found about SPI Flash and how cheap it is comparing to the microSD cards (if you need only about 10 Megabytes of data stored).So please forgive my n00bness but I'm a little confused about capacity specs of flash. It seems to be specified in Megabits, not megabytes. I thought Megabits were reserved for measurement of speed not capacity? Will 128 Megabit flash give me 16 Megabytes of storage or am I confusing specs?Should I worry about SPI Flash speed specs? i.e. will 108Mhz flash work with Arduinoish ATMega MCUs that runnin at 16 Mhz?

will 108Mhz flash work with Arduinoish ATMega MCUs that runnin at 16 Mhz?

Yes.

Thanks! One more question, does Serial Flash IC (i.e. something like this) have speed comparable to regular SD Cards? I wanted to see if it's feasible to read WAV files from flash IC with WaveShield library...

Looks like an interesting chip.Supports DC to 90-108MHz operation - best you can do with SPI is 8 MHz, about 1 byte transmitted per microsecond if you can do burst of SPI transfers with no looping.(I posted code recently that sends out 41 bytes in ~46uS from an array, added 12uS to loop thru it).Since you have to provide at least the starting address of the locations you want to read from & write to, vs a file name associated with an SD card file, I don't see how the waveshield library will help.

Looks like an interesting chip.Supports DC to 90-108MHz operation - best you can do with SPI is 8 MHz, about 1 byte transmitted per microsecond if you can do burst of SPI transfers with no looping.(I posted code recently that sends out 41 bytes in ~46uS from an array, added 12uS to loop thru it).Since you have to provide at least the starting address of the locations you want to read from & write to, vs a file name associated with an SD card file, I don't see how the waveshield library will help.

Oh I didn't know about that I wonder if it can formatted like SD card?

You probably want this part, instead of the other, which sells in qty = 1800.http://www.digikey.com/product-detail/en/N25Q128A13ESE40E/557-1562-ND/3874288

108Mhz is the max clock speed, and they usually run at slower speeds. Also, notice theseare 3.3V parts, so you'll need level-shifters to interface with 5V Arduino. Most Flash chipsI've seen are 3.3V, and not 5V, devices.

Also, the reason they're spec'ed in Mbits instead of MBytes is because all serial memory are usually spec'ed that way.

108Mhz is the max clock speed, and they usually run at slower speeds. Also, notice theseare 3.3V parts, so you'll need level-shifters to interface with 5V Arduino. Most Flash chipsI've seen are 3.3V, and not 5V, devices.

To access SD cards with arduino you will be using SPI as well, so basically "what you can do with your sd card, you can do with your flash chip", the chip might be a bit faster because it has no FAT on it, so you have no overhead time ploughing through that.

I play WAV files from sd card, 8 bit mono @ 10 kHz, and it sounds good enough for what i need it for. To read from my flash chip you have to send a read command and 3 address bytes, so 4 bytes in total, and then you can read all bytes on the chip sequential, so it doesn't take up much processor time. I use the native atmega328 spi pins, as far as I know it's faster than software spi.

So please forgive my n00bness but I'm a little confused about capacity specs of flash. It seems to be specified in Megabits, not megabytes. I thought Megabits were reserved for measurement of speed not capacity?

Memory chips can be specified as bits, bytes or whatever (many early DRAM chips where bit-wide so bits was natural).Bytes is universal for packaged storage devices like discs, USB sticks, CDroms, because at that level no one is interestedin how the data is stored.

For comms bits or baud are mainly used for actual wire-protocols (like ethernet), but when talking about bus interfaces to mass-storage,bytes tends to be more common (talking about disc write speeds, for example)

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]