Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Память данных EEPROM

EEPROM предназначена для сохранения данных, которые не должны изменятся после отключения напряжения питания. Эта память отсутствует в некоторых моделях младшего семейства. В целом устройство EEPROM подобно FLASH. Однако EEPROM имеет значительно больший ресурс (до 100000 циклов стирания/записи), и допускает побайтовую адресацию, вместо страничной у FLASH. Время записи в EEPROM для разных моделей находится в пределах 2…9 мс.

Организация памяти данных EEPROM ATmega8
Рис.7 Организация памяти данных EEPROM ATmega8

EEPROM-память данных находится в отдельном адресном пространстве, независимом от FLASH и SRAM (см. рис.7). Взаимодействие прикладной программы с EEPROM происходит через 4 РВВ: EEARH, EEARL, EEDR и EECR.

Адрес ячейки памяти в операциях чтения/записи находится в регистрах EEARH (старший байт адреса) и EEARL (младший байт адреса). В моделях с объемом EEPROM до 256 б старший регистр адреса, по понятным причинам отсутствует. Число перед записью в EEPROM помещается в регистр EEDR. B этом же регистре нужно искать байт данных после операции чтения.

Для непосредственного управления процессами чтения/записи служат биты регистра EECR. Этим процедурам должен предшествовать строго определенный порядок действий, как показано в подпрограммах.

;       Подпрограмма записи байта данных в EEPROM
; R16 – регистр с байтом данных для записи при входе
; R17 – регистр для передачи младшего байта адреса
; R18 – регистр для передачи старшего байта адреса

eeprom_write:
     sbic  EECR,EEWE   ;ожидаем пока запись не будет закончена
     rjmp  eeprom_write;предыдущая операция записи  в EEPROM
     out   EEARH,R18   ;задаем адрес ячейки EEPROM, в которую
     out   EEARL,R17   ;необходимо записать байт данных
     out   EEDR,R16    ;заносим в регистр данных байт для записи
     sbi   EECR,EEMWE  ;разрешаем запись
     sbi   EECR,EEWE   ;начинаем запись байта в EEPROM
     ret

;       Подпрограмма чтения байта данных из EEPROM
; R16 – регистр с прочитанным байтом данных на входе
; R17 – регистр для передачи младшего байта адреса
; R18 – регистр для передачи старшего байта адреса

eeprom_read:
     sbic  EECR,EEWE   ;ожидаем пока запись не будет закончена
     rjmp  eeprom_write;предыдущая операция записи  в EEPROM
     out   EEARH,R18   ;задаем адрес ячейки EEPROM, из которую
     out   EEARL,R17   ;необходимо прочитать байт данных
     sbi   EECR,EERE   ;начинаем чтение байта из EEPROM
     in    R16,EEDR    ;извлекаем байт из регистра данных 
     ret

Перейти к следующей части:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
Валентин #
Я думаю, логично было бы во второй подпрограмме метку обозвать eeprom_read вместо eeprom_write, соответственно и rjmp eeprom_read
Ответить
0
si4karuk #
Самое интересное то, что никто так и не рассказал что такое эта самая энергонезависимая память. Да, считывать с нее да записывать данные, мы научились... Но все же. Кто именно хранит эти данные? Может там маленькие магнитофончики? Или в крутых МК маленькие СиДи плеерочки? Что такое, те самые ячейки? Вот как понять кто именно помнит?
Однажды, один мой знакомый, сказал что там сидят маленькие китайцы и помнят. Потихоньку в это верю...
Ответить
0
IN19 #
1. Работать с EEPROM таким образом можно, если записываются одиночные байты. А если нужно записать много байт, да по миллисекундам на каждый, то цикл ожидания надолго блокирует работу основной программы. Здесь лучше использовать прерывание. А вот чтение из EEPROM происходит быстро, поэтому такой метод хорош.
2. В программе чтения в примере ошибка- неверное название метки.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Квадрокоптер Syma X11 FM-модуль RDA5807M
вверх