Tuesday 9 July 2019

What is a good choice for an ARM to interface with external memory?


I just completed a project using the LPC2132 chip, but ran into problems with using up the whole 64kb of RAM.


For my next project, I'd like to use something that can reference an external, much larger memory chip. What sort of ARM can do this and what do I need to do to get the two devices talking?



Answer



You don't need an MMU for external RAM memory, the determining factor if you need one is a completely separate issue from simply needing more space. If you've been coding directly to the metal it may actually make your life easier not having an MMU. I'd also like to note that an MMU is virtually never an external component but rather on the SoC die.


You can find ARM SoCs in many families that allow external memory from the ARM7 on up for example the NXP LPC2212 Series not saying its the best, just the first ARM7 SoC that came up in google with an external memory interface, there are lots of options.


I'd pay more attention to the features of the various cores in the ARM families as you can find almost all of them in SoC's with external memory controllers.


Now as to what type of memory you need and how to get it working, that depends on the SoC you choose and what memory the external memory controller supports. For instance the ARM7 SoC i linked supports external SRAM as well as flash's and roms and supports up to 4 16MB banks, so you could hook external flash and SRAM to it at the same time.



You could use separate RAM and flash IC's there are also packages called MCP (Multi Chip Package) that can include both flash and ram in 1 package. How you choose these devices depends on many factors, you'd need to be more specific about your application.


How easy this is to hook up depends on the speed you need. Most external memory controller have programmable clock rates. The memory interface clock rates could be very high at least 10MHz and likely much higher. In short your very likely not breadboarding something like this, you need to design a PCB and pay special attention to signal integrity issues for these lines.


Your best bet is to pick a core you want to play with and a find one of the many development boards out there with external memory on it.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...