Hi All,

I need some information. I know here so many experts are there.

What is 8 in Atmgega328 and What is 0 in Atmega1280…

Now , What is Flash memory in Atmgega328??

What is Data RAM memory in Atmgega328??

What is EEPROMmemory in Atmgega328??

Thx in advance

Atmgega328 and Atmega1280 are model number

For the rest see this http://bfy.tw/Ch8y

I wish I could post something more detailed, but my browser crashed the first time, sadly …

The “8” in ATMega328, as well as the “0” for the ATMega1280, are probably both family-identifying numbers!
For example, the datasheet for the ATMega328 also speaks about the ATMega88, 48, and 168, while the ATMega1280 is grouped together with the 640 and 2560

The first numbers, by the way, represent the amount of flash memory each chip has (measured in Kilobytes)

Flash memory, by the way, is the program memory for a chip. It can only be written by an external programmer, or the internal bootloader section of the microchip, and is directly hooked up to the internal “execution systems.”

RAM is the volatile memory of a chip or computer. It can NOT persist shutdowns/restarts, which means any data stored inside of it is lost, but because it can change quickly and reliably, it’s extremely well suited for storing runtime parameters and variables!

EEPROM is very similar to Flash, in that it is not volatile. However, because it can only be written to a limited number of times (a few thousand times, sure, but for a chip with 16MHz that’s still little), and because it takes so long to read or write, it often times is only used for “configuration parameters”; things that get changed every now and then, but essentially stay the same throughout long periods of time.

For more information, you should definitely have a look at the datasheets of the microcontrollers! You can find them here:



Thanks for your valuable replies.

Ok now I understood that

Flash memory is whole programme

RAM memory is changing some values (Eg. Changing speed 40 to 50 using LCD but not storing that value of comtroller)

EEPROM memory is changing some values (Eg. Speed 40 to 50 but after overwriting this value on controller, it goes to EEPROM)

Am I right sir??

Not quite yet… The RAM actually is the entire dynamic memory of the chip. So, aside from just storing the variable “speed”, you will also have controlling variables for the LCD in there, loop iterators (the classical ‘i’ and ‘j’ for example), and possibly even entire classes (in Marlin firmware I do think that the stepper motors are initialized as individual class instances. Each one stores multiple variables like current position, target position, speed etc, all of which get stored in RAM) The ATMEL Chips additional even store the program Stack inside their RAM, at the opposite end of it! That makes then capable of handling a lot more subroutines than, say, a PIC Microcontroller (with fixed stack memory location and size), but it also makes them prone to less easily predictable memory “crashes” if you use a lot of variables in RAM, or recursively call functions. If you want to get into programming the chips however, you really don’t have to bother with these finer details at first ^^ Get an Arduino Uno. The documentation on then is extensive, the support and community very big, and they handle almost everything for you in the background ^^