Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

On-chip RAM/ROM, SRAM, EEPROM, embedded NAND / NOR Flash, SD-card ... confusion

Status
Not open for further replies.

jayachar88

Member level 3
Joined
Feb 26, 2011
Messages
56
Helped
6
Reputation
12
Reaction score
6
Trophy points
1,288
Activity points
1,941
Hi,

Spent quite a while studying various ARM processors (from Atmel, NPX, Freescale, TI, Samsung), and SoM's & SBC's built around them. Also read up about many of the memory technologies, but still do have few doubts.

I found a mix of ARM processors, with on-chip RAM/ROM, on-board/on-chip SRAM, on-board EEPROM, provision for onboard DDR/mDDR/DDR2 memory, on-board NAND Flash and also NOR Flash (on same board), option for SD-card etc., and many a times multiple such storage options on the same SBC/SoM. The confusion is further compounded by the fact that I found low end ARM processors (80MHz, with 128KB onboard RAM) and higher-end ARM processor (400MHz, with 32KB onboard RAM).

Would like people who are knowledgeable to confirm, add/modify to arrive at the correct understanding, and also help me figure out the minimal quantity I need of each (or some) of these, given my application needs.

My understanding so far, about the utility of these is as follows --

1. On-chip ROM: "Burn-in" rarely changed small executable code. For simple applications this might be good enough, and all the space you need. For complex applications, and where an Embedded OS is desired, might not be sufficient.

2. On-chip RAM: Store small-amount of dynamic data. This may be sufficient for small applications working with limited data.

3. EEPROM: Store data that needs to persists beyond a power-cycle, e.g. last played CD/DVD track, offset info. of a car-stereo, even when ignition is off. Typically, this will be fairly minimal data, and data that doesn't change often, as EEPROM's have finite no. of read/write cycles.

4. On-board SRAM: Static-RAM, usually in small quantity (e.g. 32KB), used to store mostly dynamic data (i.e. data used/produced by executable code), and possibly executable code as well. Unlike DRAM, interfacing SRAM to uP is quite simple, and doesn't require complex refresh circuits.

5. On-board DRAM: Dynamic-RAM (DDR, DDR2, mDDR, lvDDR...) are high density RAM, which we find in the newer generation ARMs (application procs), needing to deal with large amount of data (audio-video applications etc.). We find those on touch-screen video-consoles, tablets/MIDs etc.).

6. NAND Flash & NOR Flash: This is where I have max. confusion... esply why both on same board (e.g. mini2440, mini6410 SBCs/SoM's). These are typically used as secondary storage i.e. you'd not execute a program directly from NAND/NOR Flash, but use it as a file-store (with or without a filesystem), rather copy executable code/data block-by-block from Flash memory to RAM, and then execute it.

7. SD-card: This is a "removable" secondary-storage option, where in SD-cards can be changed (s.a. containing MP3 files, or photographs).

Now, if the above understanding is correct, I'd like to know what'd be the minimal of each (or some of those) memory, for an application that requires a touch-screen UI, plays some recorded audio (mp3/wav), video (avi file), runs a web-server, interacts with PC/phone over WiFi. I'd prefer to use standard Linux if possible, uCLinux otherwise. Many of the SBC's/SoM's seen, allow those to be ordered with varying size of DDR memory, Flash memory.

Pointers, explanation would be highly appreciated.

regards,
Jayanth

---------- Post added at 22:44 ---------- Previous post was at 22:34 ----------

It so happens that I overlooked the "similar question" suggestion, but after posting found this one, which does confirm that most of my understanding is correct. Maybe I have a bit more comprehensive list :) and some questions/confusions still do remain (e.g. why NAND + NOR flash on same board, or why on-chip RAM, and on-board SRAM+DRAM coexist on same board & how).

So the remaining questions are:

1. How does the mix. of on-chip RAM, and on-board SRAM/DRAM work together ? Are those mapped to various regions of the contiguous virtual memory ? I am guessing standard Linux should be able to do that for me, but uCLinux (since it's targetted at MMU less proccy's) can't. Also eCOS, FreeRTOS etc., cannot do this mapping ??

2. Why do I see NAND & NOR flash on the same SBC ?

3. Finally, what is the minimal / typical amount of each one of those memories, that I should look for, if I hope to run the kind of application I explained in my post.
 

NAND Flash is cheap and fast, but you cant just read random addresses. You have to read a whole page to et your data. NOR Flash are "slow", more expensive, have addressing lines so you can get single blocks (so you can run a program from it, with no need to get the data to a RAM), and finally it is MUCH more reliable than NAND flash. Thats mean that the chance that a bit is wrongly wirten on a NAND flash is much bigger than on a NOR. So usually NOR is used to atore your boot code or to emulate a big eeprom, and NAND to store all the rest.

Its hard to say the minimum you are going to need. What you need is not much... it depend on the complexity of your web-server... how complex is your graphic interface.. any many other minimal stuff. But you dont need much, probably a frindlyARM would be able to handle all the tasks you need. Actually, depends on yoru hardware, maybe you could make it on a simple Cortex-M3....
 

as Sink0 says it depends on the complexity of your web server, e.g. is it a few pages of fairly static HTML or thousnds of dynamic pages supporting protocols such as PHP?
In the past I have implemented small web servers on PIC24 and dsPIC processors (these days I would use a PIC32 or ARM) with wired Ethernet and WiFi. Touch sensitive displays are supported (again how large a display do you require?) and your Audio and Video files could be stored on a USB flash drive or MD card (again depends on volume of data).
Specify the system requirements then work out what you need to support it?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top