Статическая память

 

Статическая память (SRAM - Static Random Access Memory) энергозависима. Она обеспечивает хранение информации только при наличии напряжения питания не менее определенной величины (порядка 1....3В). Некоторые микроконтроллеры при данном напряжении не работают, но данные в памяти сохраняются. Для обеспечения длительной сохранности данных в такой системе необходим резервный источник (аккумулятор или батарея), подключающийся при отключении основного. Отдельные микроконтроллеры, например МК DS50000 фирмы Dallas Semiconductor, даже имеют в своем корпусе автономный источник резервного питания, обеспечивающий сохранение данных в течении нескольких лет.

Каждая ячейка статической памяти в микроконтроллере имеет свой адрес. Некоторые ячейки могут иметь специальное назначение.

Например, микроконтроллер ATmega 163 имеет 1024 восьмибитные ячейки встроенной статической памяти типа SRAM. Объем статической памяти микроконтроллера равен 1кбайт. Сама память занимает адресное пространство $60…..$45F (рис. 2.2). Размещенные в том же адресном пространстве микроконтроллера 32 ячейки с адресами $0.… 1F используются микроконтроллером как регистры общего назначения (General Purpose Registers), a 64 ячейки с адресами $2F…$5F - как регистры ввода/вывода (Input Output Registers).

 
 

 


Рис. 2.2.Статическая память данных микроконтроллера ATmega 163

Регистры общего назначения и регистры ввода/вывода используются при работе процессорного ядра. Данные сохраняются в SRAM при напряжении питания в пределах от 4.0 до 5,5В. При этих же значениях напряжения работоспособно и микропроцессорное ядро микроконтроллера ATmega 163.

Память с электрическим стиранием

 

Память данных типа EEPROM может быть включена в общее пространство памяти данных или организована в виде отдельного массива с возможность считывания и записи каждого отдельного байта. В отличие от SRAM она допускает только ограниченное (порядка 100000 ) циклов перезаписи. Время записи в EEPROM значительно больше, чем время записи в статическую память.

Содержимое EEPROM может быть разрушено при снижении напряжения питания в процессе записи. Разрушение данных EEPROM, происходит по двум причинам. Во-первых, для операций записи необходимо, чтобы напряжение питания было не ниже определенного уровня, гарантирующего правильное их выполнение. Во-вторых, само ядро микроконтроллера при слишком низком напряжении питания, может неправильно выполнять команды. Защита EEPROM от разрушения при снижении напряжения питания в контроллерах решается как программными, так и аппаратными средствами.

Например, EEPROM микроконтроллера ATmega163 имеет объем 512 байт. Она обеспечивает 100000 циклов стирания/записи. Обращение к EEPROM ведется через специальные регистры ввода/вывода: регистр адреса EEPROM, регистр данных EEPROM и регистр управления EEPROM

Время записи, в зависимости от напряжения питания, может составлять от 1,9 до 3,8 мс. Существует специальная функция, которая позволяет пользовательскому программному обеспечению обнаружить момент окончания записи (EEPROM Write Complete). Случайная запись в EEPROM предотвращается выполнением специальной процедуры.

Для защиты EEPROM от разрушения в микроконтроллере предусмотрен детектор снижения напряжения питания. При снижении напряжения питания ниже уровня 2,9В операция записи не производится. В этом случае микроконтроллер переходит в режим ожидания, при котором процессорное ядро не может выполнять инструкции программы.