Memory Types of Microcontrollers
There are many memory types based on the design. This article is targeted to describe memory types of microcontrollers only.
SRAM (Static Random Access Memory)
SRAM is volatile (no data will be available after switching off the power). Each memory cell is designed as a flip-flop. For PIC 16F84 there’s a Data memory of 68 bytes, Stack 8 x 13 bits. So for the variables you define, you use this 68 bytes. You will learn about Stack later. This type of memory uses 6 transistors per bit.
EPROM is non-volatile. Has a quartz window in order to erase data. To erase you have to use ultraviolet light every time. The whole chip gets erased by exposing to ultraviolet. So you can’t erase byte by byte. The OTP type of EPROM (one time programmable) don’t have this quartz window, therefore you can’t erase. EPROM used IC is in the image to the right. No EPROM for PIC 16F84 since it has EEPROM which will be discussed next.
EEPROM (Electrically Erasable Programmable Read-Only Memory)
EEPROM is non-volatile. It’s used for long-term data that will necessary to be erased sometimes. Major application will be to remember user settings of an equipment. This type of memory will eventually wear out. The data sheet tells you how many erase/write cycles it can withstand. EEPROM is byte programmable. Erasing byte by byte is a very slow process.
For PIC 16F84 there’s EEPROM Data memory of 64 byts.
Flash is non volatile. It’s also a type of EEPROM but not byte programmable. so it can only erase in blocks. This is to get the speed. This type of memory is used to store the program you compile for the microcontroller. Also used in Flash Drives. This type also wear out eventually and erase/write cycles are mentioned in the data sheet of the microcontroller.
For PIC 16F84 there’s a Program memory of 1024 words.
See the first few pages of the data sheet. You’ll find exact details.