Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
ГЛ А В А 1 0 Использование EEPROM Энергонезависимая память данных, которая в архитектуре АVR традиционно име нуется EEPROM, в практической реализации не полностью соответствует этому названию. В реальности это всего лишь специально выделенный кусок флеш памяти, который EEPROM эмулирует, - т. е . , как и положено, имеет организацию с индивидуальной линейной адресацией каждого байта. Видимо, из-за этого при чтении, которое, в отличие от записи, в EEPROM по идее происходит очень быст ро, здесь наблюдается задержка в сравнении с чтением из SRAM. При программи ровании памяти по параллельному интерфейсу приходится еще учитывать, что у некоторых моделей EEPROM организована постранично (только страницы эти очень маленькие, всего по 4 байта). При программировании как «снаружи» (по по следовательному интерфейсу), так и «изнутри» (из программы), страничная струк тура EEPROM не учитывается, и доступ к ней во всех моделях осуществляется одинаково - побайтно. Размер EEPROM колеблется от 64 байтов в младших моделях Tiny до 4096 байтов в старших Mega. В ATtiny23 1 3 объем EEPROM составляет 1 28 байтов, и адресация, как и в других моделях с объемом EEPROM 256 байтов и менее, происходит через единственный регистр адреса EEAR. В подсемействах, основанных на одинаковой структуре, но с разным объемом памяти, - таких, как АTtiny24/44/84 или ATmega48/88/ 1 68/328, адресация осуществляется одинаково, также через пару ре гистров ЕЕАRН: EEARL, но в младших моделях подсемейства, где объем EEPROM ме нее 5 1 2 байтов, старший из регистров ЕЕАRН не у читывается и в процедурах адреса ции может не участвовать . В ATmega8 и ATmega8535 с памятью программ 8 кбайт, на которые мы в основном ориентируемся в этой книге, объем EEPROM - 5 1 2 байтов, и адресация производится через пару регистров EEARH : EEARL, причем в ЕЕАRН имеет значение только младший бит. Еще раз о сохранност и данных в EEPROM EEPROM и flаsh-память программ принципиально не различаются и предназначе ны для хранения данных в отсутствие питания . Однако между ними есть карди нальное различие - EEPROM может быть перезаписана в любой момент програм-
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==