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 мс дейін уақыт кетеді. Сондықтан алдыңғы жазудың сәтті аяқталғанын тексеру өте маңызды.

;======= Процедура записи в EEPROM ======================================================
 EEWrite: 
    sbic EECR,EEPE          ; Ожидаем, когда закончится предыдущая операция записи. 
    rjmp EEWrite            ; Не выходим из цикла до тех пор, пока не очистится флаг EEPE
    cli                     ; После чего выставляем запрет на прерывания.
    out EEARL,r16           ; Устанавливаем адрес ячейки, к которой будем обращаться
    out EEDR,r17            ; а также записываем в регистр данных информацию, 
                            ; которую будем сохранять
    sbi EECR,EEMPE          ; устанавливаем защиту на запись
    sbi EECR,EEPE           ; устанавливаем флаг записи
    sei                     ; после чего разрешаем прерывания
    ret                     ; и возвращаемся из подпрограммы.
 ;======= Процедура чтения из EEPROM ====================================================
 EERead: 
    sbic EECR,EEPE          ; Ожидаем, когда закончится предыдущая операция записи. 
    rjmp EERead 
    out  EEARL, r16         ; Устанавливаем адрес ячейки, к которой будем обращаться
    sbi  EECR,EERE          ; Запускаем чтение установкой флага на чтение
    in   r17, EEDR          ; Возвращаем результат чтения в нужный регистр
    ret 
 ;=======================================================================================

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

Пікірлер

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