Evgenii Legotckoi
Там. 4, 2015, 7:30 Т.Ж.

AVR Atmega микроконтроллеріндегі EEPROM

Микроконтроллер AVR Atmega48 / 88/168/328 жады бар EEPROM 256/512/512 / 1К байт. AVR микроконтроллерлеріндегі EEPROM 100 000 қайта жазу цикліне дейін қолдайды. Тұрақты жадыға үш түрлі регистрлер арқылы қол жеткізіледі:

  • EEARH, EEARL - жады ұяшықтарын адрестеу регистрлері. Atmega48 құрылғысында EEARH тізілімі жоқ, себебі микроконтроллердің бұл түрі тек 256 жад ұяшығынан тұрады. EEARH жад ұяшығы мекенжайының жоғары байтына, EEARL төмен байтқа жауап береді;
  • EEDR - деректерді жазу және оқу регистрлері;
  • EECR - Басқару регистрі, бұл регистр жадпен орындау қажет әрекеттерді конфигурациялау үшін қолданылады.

EEPROM регистрлерінің толық сипаттамасы

EEARH және EEARL - EEPROM ұяшық адресінің регистрлері

9-15 биттері сақталған және әрқашан нөлдік мәнмен оқылады.

0-ден 8-ге дейінгі биттер жад орнының нөмірін көрсету үшін пайдаланылады EEPROM, қолжетімді.

EEDR - EEPROM деректер тізілімі

2-ден 7-ге дейінгі биттер - ақпарат EEPROM -ға жазылу немесе оқу үшін жазылатын биттер.

6-7 биттері - биттер сақталған

4-5 биттері - EEPM1 және EEPM0 - жұмыс режимін орнату үшін пайдаланылады EEPROM

  • EEPM1 = 0, EEPM0 = 0 - деректерді өшіру және жазу үшін атомдық операция (ұзақтығы 3,4 мс)
  • EEPM1 = 0, EEPM0 = 1 - Тек деректерді жою (ұзақтығы 1,8 мс)
  • EEPM1 = 1, EEPM0 = 0 - тек деректерді жазу (ұзақтығы 1,8 мс)
  • EEPM1=1, EEPM0=1 - болашақта пайдалану үшін сақталған

3-бит - EERIE - Бұл бит контроллердің микробағдарламасында үзулерді қосқан болсаңыз, үзулерді қосу үшін пайдаланылады.

Бит 2 - EEMPE - Жазуды қорғау биті. EEPROM деректерін жазуға дайындалу үшін EEPROM жүйесіне деректерді жазуды төрт циклге кешіктіреді.

1-бит - EEPE - Жазуды бастау биті, жазуды бастауға орнатылған, жазу аяқталған кезде аппараттық құрал арқылы нөлге дейін қалпына келтіріңіз. Сондықтан оны EEPROM жүйесіне деректерді жазу процесін басқару үшін пайдалануға болады.

Бит 0 - EERE - Оқуды бастау биті. EEPROM жүйесінен оқуды бастау үшін орнатыңыз.

Оқу және жазу амалдары

Atmega ішіндегі EEPROM - өте баяу интерфейс, жазуды аяқтау үшін 4 мс дейін уақыт кетеді. Сондықтан алдыңғы жазудың сәтті аяқталғанын тексеру өте маңызды.

  1. ;======= Процедура записи в EEPROM ======================================================
  2. EEWrite:
  3. sbic EECR,EEPE ; Ожидаем, когда закончится предыдущая операция записи.
  4. rjmp EEWrite ; Не выходим из цикла до тех пор, пока не очистится флаг EEPE
  5. cli ; После чего выставляем запрет на прерывания.
  6. out EEARL,r16 ; Устанавливаем адрес ячейки, к которой будем обращаться
  7. out EEDR,r17 ; а также записываем в регистр данных информацию,
  8. ; которую будем сохранять
  9. sbi EECR,EEMPE ; устанавливаем защиту на запись
  10. sbi EECR,EEPE ; устанавливаем флаг записи
  11. sei ; после чего разрешаем прерывания
  12. ret ; и возвращаемся из подпрограммы.
  13. ;======= Процедура чтения из EEPROM ====================================================
  14. EERead:
  15. sbic EECR,EEPE ; Ожидаем, когда закончится предыдущая операция записи.
  16. rjmp EERead
  17. out EEARL, r16 ; Устанавливаем адрес ячейки, к которой будем обращаться
  18. sbi EECR,EERE ; Запускаем чтение установкой флага на чтение
  19. in r17, EEDR ; Возвращаем результат чтения в нужный регистр
  20. ret
  21. ;=======================================================================================

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз