The ATmega16 is equipped with
three main memory sections: flash electrically erasable programmable read-only
memory (EEPROM), static random access memory (SRAM), and byteaddressable EEPROM
for data storage.
InSystem Programmable Flash
EEPROM
Bulk programmable flash
EEPROM’s used to store programs. It can be erased and programmed as a single
unit. Also, should a program require a large table of constants, it may be
included as a global variable within a program and programmed into flash EEPROM
with the rest of the program. Flash EEPROM is nonvolatile, meaning memory
contents are retained when microcontroller power is lost. The
ATmega16 is equipped with 16K
bytes of onboard reprogrammable flash memory. This memory component is
organized into 8K locations, with 16 bits at each location. The flash EEPROM is
in-system programmable. In-system programmability means the microcontroller can
be programmed while resident within a circuit. It does not have to be removed
from the circuit for programming. Instead, a host personal computer (PC)
connected via a cable to a microcontroller downloads the program to the
microcontroller.
Byte Addressable EEPROM
Byte-addressable memory is
used to permanently store and recall variables during program execution. It too
is nonvolatile. It is especially useful for logging system malfunctions and
fault data during program execution. It is also useful for storing data that must
be retained during a power failure but might need to be changed periodically.
Examples where this type of memory is used are found in applications to store
system parameters, electronic lock combinations, and automatic garage door
electronic unlock sequences. The ATmega16 is equipped with 512 bytes of EEPROM.
Static Random Access Memory
SRAM is volatile. That is, if
the microcontroller loses power, the contents of SRAM memory are lost. It can
be written to and read from during program execution. The ATmega16 is equipped
with 1000 bytes (actually 1120) of SRAM. A small portion (96 locations) of the
SRAM is set aside for the general-purpose registers used by the CPU and also
for the I/O and peripheral subsystems aboard the microcontroller.
Programmable Lock Bits
To provide for memory security
from tampering, the ATmega16 is equipped with six memory lock bits. These lock
bits are programmed using the Atmel STK500 programming board. The lock bits may
be configured for the following options:
• No memory lock features
enabled.
• No further programming of
memory is allowed using parallel or serial programming techniques.
• No further programming or
verification of memory is allowed using parallel or serial programming techniques.
No comments:
Post a Comment