Evgenii Legotckoi
Evgenii LegotckoiТам. 3, 2015, 9: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 
 ;=======================================================================================
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

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

Пікірлер

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

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:50ұпай,
  • Бағалау ұпайлары-4
m
  • molni99
  • Қаз. 26, 2024, 1:37 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:80ұпай,
  • Бағалау ұпайлары4
m
  • molni99
  • Қаз. 26, 2024, 1:29 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:20ұпай,
  • Бағалау ұпайлары-10
Соңғы пікірлер
ИМ
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas5Шілде 5, 2024, 11:02 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
m
moogoҚар. 22, 2024, 7:17 Т.Ж.
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii Legotckoi
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

Бізді әлеуметтік желілерде бақылаңыз