I have been looking at the AVR range (even a peek at the XMEGAs) and from what I can see the ATMega1284 has one of the highest Flash RAM sizes and THE Highest amount of RAM
Is this right ?
I am currently using pretty much all the RAM in my '1284 and am now considering 23LCV1024 SPI ram extensions
Is this an 'old' chip ?
Is it likely to get phased out soon ?
You can add external SRAM to the Atmega2560 (Arduino Mega), and there are shops online selling sram expansion boards for the Mega - you can get obscene amounts of memory on the mega like that (see section 9 of datasheet, "external memory interface").
That said:
Are you sure you're not doing something dumb that's wasting memory?
Are you storing things in SRAM that belong in flash or on external eeprom?
Is AVR the right platform, or is it something data intensive enough that an ARM would be more appropriate?
DrAzzy:
(see section 9 of datasheet, "external memory interface").
I shall take a look at that, thanks
Are you sure you're not doing something dumb that's wasting memory?
Are you storing things in SRAM that belong in flash or on external eeprom?
Is AVR the right platform, or is it something data intensive enough that an ARM would be more appropriate?
Its RAM to buffer bitmaps from SDcard in a 352*280px (12k) 'TVout' type project
Some of the bitmaps are going to be much much bigger and I need fast access
I have just ordered a 1Mbit SPI RAM, just hoping the access time is good
I have bought a few of the STM32 ARM boards, ultimately I will be converting what I am doing over to one of them, its faster and 20k RAM so I could get a much better resolution
I just wondered if there was some other chip I could use that had more onboard ram than the '1284 (the 2560 only has 8k)
Yup, 16K SRAM in '1284P.
I have used it to hold a huge array (14625 bytes) of data that I blasted out over SPI with 20KHz refresh rate - every 50uS, 45 bytes were sent out in ~47.8uS.
45 lines of this:
Then x was increased by 45 and the next burst started at the next 20KHz edge.
Interrupts were turned off so the micros() and/or millis() interrupts didn't screw things up.
Cheers Bob, I am hoping for some ultra fast reads (but I know its down to the card type/quality), but if I can reach speeds like what you are suggesting (in the tiny amount of time I have left when not writing PAL video) then I will be happy
There is a lot of experimentation here, and so far I have great results. SPI RAM chip ordered !!
DrAzzy:
You can add external SRAM to the Atmega2560 (Arduino Mega), and there are shops online selling sram expansion boards for the Mega - you can get obscene amounts of memory on the mega like that (see section 9 of datasheet, "external memory interface").
Check out my KickStarter Project Memory Panes an expansion RAM Shield for Mega2560's.
It adds 1MB of RAM for those projects where 8KB is not enough.
I just need to find another 40 people who are interested in then next 20 days!
Very Nice Chuck !! Thats alot of RAM, and super fast access to on parallel bus, I dont have any pins left on my 1284 to do parallel, thats why I went for serial SPI. The internal ram (16k) is perfect for app + screen array, I dont think it would work having the screen array externally
Is there a core for that? Is the pinout the same as the ATMega 2560? If so, you could switch the 2564 for the original chip on a Mega and use the radio! :o
EDIT I hit 500 posts!
mcnobby:
Very Nice Chuck !! Thats alot of RAM, and super fast access to on parallel bus, I dont have any pins left on my 1284 to do parallel, thats why I went for serial SPI. The internal ram (16k) is perfect for app + screen array, I dont think it would work having the screen array externally
The external RAM access imposes one wait state for each RAM access, so there is a noticeable difference between internal RAM and External RAM.
But, It is still much faster then SPI or I2C, and much easier to use.
Chuck.
Check out my Kickstarter Project Memory Panes an expansion RAM Shield for Mega2560's. It adds 1MB of RAM for those projects where 8KB is not enough.
mcnobby:
....
I am currently using pretty much all the RAM in my '1284 and am now considering 23LCV1024 SPI ram extensions
Is this an 'old' chip ?
Is it likely to get phased out soon ?
I believe the 23LC1024 chips are fairly new. Three years ago I built an Rduino pcb for the 328 chip, and all I found then was the 23K256 [32KBytes, 3.3V only]. A bit later I ran across the 23LC1024 when designing my own 1284 pcb.
I dont have much IO left, well none in fact after I use the one extra line I need for the SPI SRAM, unless I dump the IO I was saving for a display, keys, some jumpers etc etc
mcnobby:
How much IO are we talking ? 16 pins ? more ?
I dont have much IO left, well none in fact after I use the one extra line I need for the SPI SRAM, unless I dump the IO I was saving for a display, keys, some jumpers etc etc
About 30 I/O pins to connect all the address lines.
mcnobby:
How much IO are we talking ? 16 pins ? more ?
I dont have much IO left, well none in fact after I use the one extra line I need for the SPI SRAM, unless I dump the IO I was saving for a display, keys, some jumpers etc etc
If your are getting tight on I/O and are already using SPI, why don't you use MCP23S17 to connect your LCD and keypad. This SPI IO expander has 16bit of IO and is addressable, it allows 8 to share the same CS pin. I modified LiquidCrystal. It wasn't hard.
So for one more CS pin you could potentially have 8x16 or 128 more pins available.
Chuck.
Check out my Kickstarter Project Memory Panes an expansion RAM Shield for Mega2560's. It adds 1MB of RAM for those projects where 8KB is not enough.
mcnobby:
How much IO are we talking ? 16 pins ? more ?
I dont have much IO left, well none in fact after I use the one extra line I need for the SPI SRAM, unless I dump the IO I was saving for a display, keys, some jumpers etc etc
I provided the link last time so you could download the d/s, and see. You would likely need to design a pcb around the RAM chip requirements, not likely it could be patched into an current design. Much easier to stay with the SPI RAM chips --> on my Teensy3.1 pcb, I placed 2 of them. Lot of extra RAM for little added effort.
I will stick will SPI just for now, I have ordered a few of the 1MBit ones, if they dont perform as well as I need I shall change the design 'around the ram chip requirements'