I need 10 mbyte of ram memory for my arduino

Hi every one
I need 10 mbyte of ram memory for my arduino read/write must be fast
I already tried sd but this is do slow for my purpose ( <- audio delay )
dose any one have any solutions, IC or etc to help me

supper thanks

Hi algorytmid

read/write must be fast

How fast? Can you specify the read and write time you need in microseconds or bytes per second? And are you looking to read / write single bytes or blocks of data?

Regards

Ray

Hi

I need to write 12 bits 44100 times per second
and read 12 bits 44100 times per second

so 88200 read/write per second

so i think read write must be not much larger then 10 micro second

I can lower a quality 10% if nessery so 39000 rate should be cool also

Obviously you are building an audio buffer, I just wonder why it needs to be so big.

i.e It looks like it needs to be around 2 minutes of uncompressed audio.

An SD card is just about fast enough to write to at those speeds, as long as you double buffer, but not to read the data back again

Out of curiosity what are you doing with the audio you read back from the RAM, the normal Arduino boards don't have a DAC to convert it back to an analogue signal, but the Due has a DAC (2 of them).

Sending data off the Arduino at that rate as well as sampling and storing etc, is probably going to be a bit tricky on the normal 16Mhz Uno or Mega2560

Hi

Yes you are correct this is audio buffer for 2 minutes i would be happy if i get even more then 2 minutes.
For sure 16 MHz will be to slow i was thinking due or overclocked teensy

algorytmid:
Hi every one
I need 10 mbyte of ram memory for my arduino read/write must be fast
I already tried sd but this is do slow for my purpose ( <- audio delay )
dose any one have any solutions, IC or etc to help me

supper thanks

I'm sure you could expand this: Arduino Mega 512K SRAM in shield format | Andys Workshop

Yes you are correct this is audio buffer for 2 minutes i would be happy if i get even more then 2 minutes.
For sure 16 MHz will be to slow i was thinking due or overclocked teensy

Why don't you choose a ARM Linux platform for your project? A Cubieboard (http://cubieboard.org) does such things nicely (has audio in and out) and you have plenty of RAM to extend your buffer. Is there a reason you must choose an Arduino?

Hi
Why arduino ?
Because i need boot time to be as fast as possible also stability and ofc cost of unit should be low
Size is also a issue

I don't think its been done before using the Arduino Due board, but..

As far as I can tell from the spec on the SAM3X8E that the Due uses,

That it supports the SDIO interface / protocol

high-speed SD/SDIO/MMC

From http://www.atmel.com/devices/sam3x8e.aspx

Based on the ARM® Cortex™-M3 processor, the Atmel® SAM3X8E runs at 84MHz and features 512KB of Flash in 2 x 256KB banks and 100KB of SRAM in 64KB +32KB banks, with an additional 4KB as NFC SRAM. Its highly integrated peripheral set for connectivity and communication includes Ethernet, dual CAN, HS USB MiniHost and device with on-chip PHY, high-speed SD/SDIO/MMC, and multiple USARTs, SPIs, TWIs and one I2S. The SAM3X8E also features a 12-bit ADC/DAC, temperature sensor, 32-bit timers, PWM timer and RTC. The 16-bit external bus interface supports SRAM, PSRAM, NOR and NAND Flash with error code correction. The Atmel QTouch® Library is available for the SAM3X8E for easy implementation of buttons, sliders and wheels. The device operates from 1.62V to 3.6V and is available in 144-pin QFP and BGA packages.

Unfortunately I can't seem to download the full PDF for the processor (not sure why ... some network issue)

But perhaps its worth investigating, as using SD is going to be the cheapest and easiest if its fast enough,

Hi
Why arduino ?
Because i need boot time to be as fast as possible also stability and ofc cost of unit should be low
Size is also a issue

If you strip the OS down to the used features you get boot times under two seconds for the Cubieboard (just an example).
I don't know what "OFC cost" means but one unit of the cubieboard is about CHF 80 (here in Switzerland) while a Due (without any memory) is about CHF 50. I'm sure if you have to get a solution with 10MB for the Due it will be much more expensive.
In the stability I don't see your concerns, can you explain?
Size: the Cubie is smaller than the Due.

The Teensy 3.1 is an ARM Cortex 72MHz, overclockable to 96MHz for $20.

https://www.pjrc.com/teensy/teensy31.html

This is an interesting question, unfortunately 10MB falls into "no-mans land". Small micros have RAM in terms of up to 128KB, Linux capable chips have RAM of 256MB or more. 8-16MB is way too much for most micro applications, but not enough to run Linux. So there is a big gap between 128KB to 256MB where few off the shelf boards exist.

The Due chip (SAM3X8E) does have external memory bus, as do some other small ARM chips, but I haven't seen many boards with external bus easily accessible, or with a RAM chip on board.

The SAMA5DS is an Arduino style board with lots of RAM http://www.atmel.com/tools/ATSAMA5D3-XPLD.aspx?tab=overview, which normally runs Linux, but would make an awesome bare-metal Arduino, if anyone has the time to develop the Arduino library for it.

One of the few low cost Cortex M boards I've seen with external RAM is STM32F4 Discovery, which has 8MB, but no Arduino support.

The W25Q128FV is a 16Mbyte SPI flash chip. I have played with a couple of them on the Teensy3.1 with the audio board adapter. The chip is about $3, in ones, from Digikey (which has the SOIC form, I don't know if/where you can get the PDIP which would be easier to breadboard).
I've done some simple measurements of the speed. Writing a 256 byte page takes 814us and reading a 256 byte page takes 429us (on average). This is with normal SPI. If you can figure out how to do it, you could use dual or quad SPI modes and really speed it up!
However, you won't be writing continuously to the chip at those speeds. Once you've filled it up, you would have to erase the chip in blocks of 4kB, 32kB or 64kB or erase the whole chip and each of these takes a comparatively long time to finish. I measured a sector erase (4kB) at 90315us. The datasheet (page 86) says a chip erase typically takes 40 seconds, which is in line with what I have observed.

Pete

bobcousins:
The Due chip (SAM3X8E) does have external memory bus, as do some other small ARM chips, but I haven't seen many boards with external bus easily accessible, or with a RAM chip on board.

And also the mega2560 and the Atmega 128

I believe the default SPI speed on most Arduinos is only 4MHz:

Have you tried setting it to 8MHz?

casemod:

bobcousins:
The Due chip (SAM3X8E) does have external memory bus, as do some other small ARM chips, but I haven't seen many boards with external bus easily accessible, or with a RAM chip on board.

And also the mega2560 and the Atmega 128

Sure, but nowhere near 10MB!!

I think casemod meant that the Mega2560 can address an external RAM chip.

tylernt:
I think casemod meant that the Mega2560 can address an external RAM chip.

Yes of course, but so what? The OP wants 10MB external RAM, the Mega can address 64KB so is completely inadequate, even if you use several banks.

bobcousins:
Yes of course, but so what? The OP wants 10MB external RAM, the Mega can address 64KB so is completely inadequate, even if you use several banks.

Ah, good point.