If you could add more memory to a Mega2560, would you?
The 4K RAM that is available with the 2560 is ok for certain kinds of projects, but for others, it can be a really limiting factor. After doing a number of searches, it doesn't seem like there is a shield that is available to do this. For a current development project, I am designing an expansion shield to do just that, and a little more.
The Mega2560 has the capability of operating in an expansion memory mode. Certain ports are co-opted for use as a data bus, and address bus, and three control lines. For guys like me who worked on embedded systems, this turns the micro-controller into something more like a micro-processor, which allows one to begin adding things like memory chips to an Arduino, at least with the Mega2560.
Although 19 I/O lines are kind of expensive to lose, the gain is significant because this interface is quite fast. And if you need more memory, you will likely want to have quick access to it. And this interface isn't just limited to memory, other peripheral chips can be added to give the Mega2560 fast access to additional functionality, like a better A/D chip, or digital I/O chips that can move 8 bits at a time more quickly that using standard digital port functions.
The designers of the Mega2560 were kind enough to include all of the necessary I/O lines (as well as a number of extras), on that big digital port that adds lines 22 through 53. This makes it easy to develop a shield to add expansion capabilities.
For my current development project, the shield will have the following basic specifications:
- A minimum of 32K of RAM, with up to 2MB of RAM possible
- A total of 16 decoded chip select lines to be used with peripheral ICs
- A pass-thru connector for the remaining available digital I/O lines not used for the expansion bus[/l1]
Memory access is limited to 32K chunks. Chunks are selected by writing to a paging register. I/O chip selects cover 256 bytes of address space.
Without getting into more technical details, that covers the basics. So, if you would want to add memory and I/O to a Mega 2560, I'd like to know.