Долговременная память данных-констант EEPROM



      

    Память данных-констант EEPROM позволяет прочитать и записать байт информации. При записи байта автоматически стирается предыдущее значение и записывается новое (стирание перед записью). Все эти операции производит встроенный автомат записи EEPROM. Содержимое ячеек этой памяти сохраняется при выключенном питании.

Таблица 1.

  Страница 0 Страница 1  
00 h IND0 (*) IND0 (*) 80 h
01 h RTCC OPTION 81 h
02 h PCL PCL 82 h
03 h STATUS STATUS 83 h
04 h FSR FSR 84
05 h PORT A TRISA 85 h
06 h POTR B TRISB 86 h

Продолжение таблицы 1

07 h //////////// ///////////// 87 h
08 h ADCON0 ADCON1 88 h
09 h ADRES ADRES2 89 h
0А h PCLATH PCLATH 8А h
0В h INTCON INTCON 8В h
0C h 2F h 30 h   36/68 регистров общего назначения (ОЗУ) ------------------------- Отображаются на банк 0 -------------------------- 8С h AF h B0 h CF h
50 h 7F h ///////////////////////////////////////// ///////////////////////////////////////// D0 h FF h

 

(*) - не физический регистр ( Косвенный адрес )

///// - отсутствует, считывается как "0"

Размещение регистров в памяти данных.

  Кристалл PIC16F84 имеет память данных-констант 64х8 EEPROM бит, которая позволяет запись и чтение во время нормальной работы (во всем диапазоне питающих напряжений). Эта память не принадлежит области регистров ОЗУ.

Описание специальных регистров PIC 16F84

Таблица 2.

Адрес Имя Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0

Банк 0

00h INDF

Используется значение FSR для доступа к памяти данных (не физический регистр)

01h TMRO

8-разрядный таймер/счетчик

02h PCL

Младшие 8 разрядов счетчика команд РС

03h STATUS2 IRP RP1 RP0 TO PD Z DC C

продолжение таблицы 2

04h

FSR

Регистр косвенной адресации (Указатель адреса)

05h

PORTA

_

_

_

RA4/

TOCKI

RA3

RA2

RA1

RA0

06h

PORTB

RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0/

INT

07h

 

 

08h

EEDATA

Регистр данных ППЗУ данных-констант

09h

EEADR

Регистр адреса ППЗУ данных-констант

0Ah

PCLATH

Старшие разряды счетчика РС1

0Bh

INTCON

GIE

EEIE

TOIE

INTE

RBIE

TOIF

INTF

RBIF

Банк 1

80h

INDF

Используется значение FSR для доступа к памяти данных (не физический регистр)

81h

OPTION

RBPU

INTEG

TOCS

TOSE

PSA

PS2

PS1

PS0
82h

PCL

Младшие 8 разрядов счетчика команд РС

83h

STATUS2

IRP

RP1

RP0

TO

PD

Z

DC

C
84h

FSR

Регистр косвенной адресации (Указатель адреса)

85h

TRISA

Биты управления портом А

86h

TRISB

Биты управления портом В

87h

 

 

88h

EECON1

EEIF

WRERR

WREN

WR

RD
89h

EECON2

Регистр управления 2 ППЗУ данных-констант (не физический регистр)

0Ah

PCLATH

Старшие разряды счетчика РС1

0Bh

INTCON

GIE

EEIE

TOIE

INTE

RBIE

TOIF

INTF

RBIF
                                             

Примечания:

1. Старшие разряды программного счетчика РС <12:8> прямо недоступны. Они могут быть записаны или прочитаны только через регистр PCLATH.

2. Низкий уровень сигнала на входе MCLR не изменяет состояния битов PD и TO. Биты сохраняют свое значение, пока не поступит какое-либо иное условие сброс

 

  Доступ к ней осуществляется через два регистра: EEDATA <08h>, который содержит в себе восьмибитовые данные для чтения/записи и EEADR <09h>, который содержит в себе адрес ячейки к которой идет обращение. Дополнительно имеется два управляющих регистра: EECON1 <88h> и EECON2<89h>.

При считывании данных из памяти EEPROM необходимо записать требуемый адрес в EEADR регистр и затем установить бит RD EECON1<0> в единицу. Данные появятся в следующем командном цикле в регистре EEDATA и могут быть прочитаны. Данные в регистре EEDATA защелкиваются. Пример фрагмента программы считывания данных из памяти данных-констант EEPROM приведена ниже:

; Считывание из памяти данных-констант.

Bcf STATUS , RP0 ; Установка банка 0.

Movlw CONFIG_ADDR ;

Movwf EEADR ; Адрес чтения.

Bsf STATUS , RP0 ; Установка банка 1.

Bsf EECON1 , RD ; Чтение EEPROM.

Bcf STATUS , RP0 ; Установка банка 0.

Movf EEDATA , W ; Считанные данные W.

При записи в память EEPROM, необходимо сначала записать требуемый адрес в EEADR регистр и данные в EEDATA регистр. Затем выполнить специальную обязательную последовательность команд, производящую непосредственную запись:

Movlw 55h ;

Movwf EECON2 ; Запись 55 h.

Movlw AAh ;

Movwf EECON2 ; Запись AA h.

Bsf EECON1 , WR ; Установка бита WR,

; начало цикла записи.

Во время выполнения этого участка программы, все прерывания должны быть запрещены для точного выполнения временной диаграммы. Время записи - примерно 10мс. Фактическое время записи будет изменяться в зависимости от напряжения, температуры и индивидуальных свойств кристалла. В конце записи бит WR автоматически обнуляется, а флаг завершения записи EEIF, он же запрос на прерывание, устанавливается. Пример фрагмента программы записи в память данных-констант EEPROM приведена ниже:

; Запись в память данных-констант.

Bsf Status , RP0 ; Установка банка 1.

Bcf Intcon , GIE ; Запрет прерываний.

; Обязательая последовательность команд.

Movlw 55h ;

Movwf EECON2 ; Запись 55 h.

Movlw Aah ;

Movwf EECON2 ; Запись AA h.

Bsf EECON1, WR ; Установка бита WR,

; начало цикла записи.

;Bsf Intcon , GIE ; Разрешение прерываний.

Для предотвращения случайных записей в память данных предусмотрен специальный бит WREN в регистре EECON1. Рекомендуется держать бит WREN выключенным, кроме тех случаев, когда нужно обновить память данных. Более того, кодовые сегменты, которые устанавливают бит WREN и те, которые выполняют запись должны храниться на различных адресах, чтобы избежать случайного выполнения их обоих при сбое программы.

Таблица 3.

- - - EEIF WRERR WREN WR RD
7 6         1 0

Управляющие биты RD и WR запускают соответственно чтение и запись. Они могут быть установлены только программно. Сбрасываются- аппаратно по завершения операций чтения/записи. Запрет программного сброса бита WR предотвращает преждевременное окончание записи.

RD – бит чтения;

RD =1: Запускает чтение памяти данных EEPROM. Чтение занимает один цикл. Устанавливается программно. Обнуляется аппаратно.

WR – бит записи;

WR =1: Запускает запись в память данных EEPROM. Устанавливается программно. Обнуляется аппаратно.

WREN – Бит разрешения записи в память данных EEPROM

WREN = 1: Разрешена запись.

WREN = 0: Запрещена запись. После включения питания WREN обнуляется.

Флаг ошибки WRERR устанавливается, когда процесс записи прерывается сигналом сброса /MCLR или сигналом сброса от WDT таймера. Рекомендуем проверять этот флаг WRERR и при необходимости производить перезапись данных, данные и адрес которых сохраняются в регистрах EEDATA и EEADR.

WRERR – флаг ошибки записи;

WRERR = 1: Флаг устанавливается, когда операция записи преждевременно прерывается сигналом сброса /MCLR (во время обычного режима или режима SLEEP) или сигналом сброса WDT во время обычного режима.

Флаг EEIF устанавливается, когда встроенный автомат завершает запись в память данных. Он должен быть сброшен программно.

EEIF – Флаг завершения прерывания;

EEIF=1: флаг устанавливается, когда завершена запись.

Соответствующий бит разрешения прерывания по окончанию записи в EEPROM - EEIF находится в регистре INTCON.

Управляющий регистр EECON2 (Адрес: 89h). Значение после включения – отсутствует, читается как "0") физически отсутствует. При чтении EECON2 считывается "0". Регистр EECON2 предназначен исключительно для использования в последовательности команд, осуществляющей запись в память EEPROM/


Дата добавления: 2018-06-27; просмотров: 180; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!