Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Энергонезависимая память данных EEPROM

Читайте также:
  1. EPROM (Erasable PROM – стираемая программируемая память только для чтения) - позволяет многократно изменять информацию хранящуюся в микросхеме, стирая перед этим старую.
  2. FLASH память программ
  3. II. 12-24. Причина страданий преданных
  4. II. Ввод и редактирование данных
  5. Quot;ЗАБВЕНИЕ" И "ПАМЯТЬ" В АНТИЧНОЙ ГРЕЦИИ
  6. V. Форматирование данных
  7. X. Оператора манипулирования данными. Вставка данных

Энергонезависимая EEPROM память данных предназначена для хранения информации, которая должна сохраняться даже при отключении электропитания микроконтроллера. EEPROM память может быть перезаписана большее количество раз по сравнению с FLASH. Минимальное число циклов стирание/запись EEPROM составляет 100 тысяч, а FLASH памяти – всего 1 тысяча.

Карта памяти EEPROM приведена на рис. 2.3.

 

Рис. 2.3. Организация энергонезависимой

памяти данных EEPROM

 

Для чтения и записи информации в EEPROM память данных и во FLASH память программ используются регистры специального назначения: EEDATA – регистр данных (младший байт данных при обращении к 14-разрядной памяти программ), EEDATH – старший байт данных при обращении к памяти программ, EEADR – регистр адреса (младший байт адреса при обращении к 4К памяти программ), EEADRH – старший байт адреса при обращении к памяти программ, EECON1 – первый регистр управления EEPROM (FLASH), EECON2 – второй регистр управления EEPROM (FLASH), INTCON – регистр управления прерываниями, PIE2 – второй регистр разрешения прерываний и PIR2 –второй регистр флагов прерываний.

Для чтения данных из EEPROM необходимо выполнить следующую последовательность действий:

– записать адрес необходимой ячейки памяти в регистр EEADR;

– сбросить в «0» бит EEPGD в регистре EECON1;

– инициировать операцию чтения путем установки в «1» бита RD в регистре EECON1;

– считать полученные данные из регистра EEDATA.

Чтение данных из FLASH памяти программ осуществляется аналогично, последовательность действий при этом немного сложней:

– записать младший байт адреса необходимой ячейки в регистр EEADR, а старший – в регистр EEADRH;

– установить в «1» бит EEPGD в регистре EECON1;

– инициировать операцию чтения путем установки в «1» бита RD в регистре EECON1;

– сформировать выдержку времени длительностью два машинных цикла, например путем выполнения двух холостых команд NOP;

– считать младший байт полученных данных из регистра EEDATA, а старший – из регистра EEDATH.

Последовательность действий при записи информации в EEPROM следующая:

1. Проверить состояние бита WR в регистре EECON1 и убедиться, что он равен «0», те есть в настоящий момент не производится запись в EEPROM либо FLASH.

2. Записать адрес нужной ячейки в регистр EEADR.

3. Записать данные в ячейку EEDATA.

4. Сбросить в «0» бит EEPGD в регистре EECON1.

5. Установить в «1» бит WREN в регистре EECON1, разрешив запись в EEPROM.

6. Запретить прерывания, если они были разрешены.

7. Выполнить обязательную последовательность из пяти команд.

– записать значение H'55' в регистр EECON2 (две команды, сначала запись в W, затем в EECON2).

– записать значение H'AA' в регистр EECON2 (две команды, сначала запись в W, затем в EECON2).

– установить в «1» бит WR в регистре EECON1.

8. Разрешить прерывания, если это необходимо.

9. Сбросить в «0» бит WREN в регистре EECON1.

10. По окончании цикла записи автоматически сбрасывается в «0» бит WR регистра EECON1 и взведется в «1» флаг прерывания EEIF в регистре PIR2 (сбрасывается программно).

Не смотря на то, что флаг прерывания взводится после окончания каждого цикла записи обработка прерываний будет инициирована только в том случае если они разрешены установкой в «1» битов GIE и PEIE регистра INTCON и не маскированы (бит EEIE в регистре PIE2 взведен).

 

Стек

Стеком называется область оперативной памяти, организованная по принципу «первым вошел – последним вышел». В микроконтроллерах PIC16 стек используется исключительно для хранения адресов возврата из подпрограмм. В отличии от других микропроцессоров и микроконтроллеров, в микроконтроллерах PIC16 запись данных на стек не предусматривается. Выбор очередной свободной ячейки стековой памяти осуществляется автоматически, указатель стека программно не доступен.

Стек имеет всего восемь 13-разрядных ячеек статической оперативной памяти (рис. 2.4.), следовательно в программе для микроконтроллера PIC16 не должно быть более восьми вложенных подпрограмм, с учетом обработчиков (драйверов) прерываний.

 

 

Рис. 2.4. Организация стековой памяти

 


Дата добавления: 2015-07-08; просмотров: 352 | Нарушение авторских прав


Читайте в этой же книге: ВВЕДЕНИЕ | Компиляция исходного текста программы в машинные коды | Отладка (выполнение) программы | Написание текста программы на языке Ассемблер | Тестирование и отладка | Разработка алгоритма программы | Написание текста программы на языке Ассемблер | Трансляция текста программы в машинные коды | Разработка алгоритма программы | Написание текста программы на языке Ассемблер |
<== предыдущая страница | следующая страница ==>
FLASH память программ| Разработка алгоритма программы

mybiblioteka.su - 2015-2024 год. (0.007 сек.)