НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 59606162636465 ... 159


movlw/movf Address/ADDR, w

movwf

EEADDR

STATUS,

EEC0N1

- 0x080,

WREN

-bcf

INTCON,

movlw

0x055

; ] Критический раздел.

iriovwf

EEC0N2

" 0x080

; ]

movlw

OxOAA

, ]

movwf

EEC0N2

" 0x080

; ]

EEC0N1

" 0x080,

; ]

INTCON,

btfsc

EEC0N1

" 0x080,

; ] Проверка для завершения

goto

$ - 1

; ] операции.

EEC0N1

" 0x080,

WREN

; ]

STATUS,

INTCON,

Микроконтроллеры PIC 12СЕ5хх, которые имеют в своем составе EEPROM данных с последовательным доступом, используют для доступа старшие биты регистра GPIO. Подключение EEPROM к ядру микроконтроллеров PIC 12СЕ5хх показано на рис. 7.37.

Шестой и седьмой биты регистра GPIO не имеют соответствующих битов регистра TRIS. Кроме того, драйвер шестого бита (бит I2CEEPR0M SDA) выполнен по схеме с открытым стоком и обеспечивает выдачу данных как микроконтроллером, так и EEPROM.

Ядро микроконтроллера младшего подсемейства

Разряд данных 7

Разряд данных 6

Разряды данных 5-0

Триггер

Чтение

Триггер -

Регистр GPIO

GPIO TRIS

Чтение

EEPROM Данные


I Выводы портов ввода/вывода

Чтение

Рис. 7.37

Интерфейс EEPROM микроконтроллера PIC 12СЕ5хх



На рис. 7.38 приведены временные диаграммы, иллюстрирующие процедуру записи данных в EEPROM.

Задержка (два цикла команд)

SCL -4-

Режим ожидания

I Прием данных

Старт-условие шины (три цикла команд)

I Следующий бит

Предустановка I данных

I (три цикла команд)

Стоп-условие (три цикЛа команд)

Передача данных (10 циклов команд)

Рис. 7.38

Временные диаграммы интерфейса EEPROM микроконтроллера PIC 12СЕ5хх

В целом интерфейс последовательного EEPROM аналогичен 1С.

При обмене используются линии SCL и SDA. Для начала и завершения операций передачи применяются старт- и стоп-условия, отличающиеся от битовых посылок тем, что сигнал на линии данных меняется в пределах интервала высокого уровня сигнала на линии синхроимпульсов (SCL).

При выполнении операции записи следует контролировать правильность обращения к порту GPIO, в частности предварительно убедиться, что биты SDA и SCL регистра GPIO установлены в I. В противном случае режим обращения к внутреннему EEPROM может задаваться неправильно, что вызовет нежелательные проблемы при выполнении операции считывания.

Команду clrfGPIOHe стоит использовать в программах, которые предусматривают обращение к EEPROM.

Данные передаются «старшими разрядами вперед», что не вполне удобно для большинства приложений. Перед передачей данных следует производить запись «байтауправления» форматом ObOIOOOOR, где символ R соответствует биту операции чтения/записи (Read/ Write). Когда бит Read/ Write равен 1, выполняется считывание данных из



EEPROM по текущему значению указателя адреса. При записи бит Reacl/ Write равен 0.

После пересылки байта приемник должен передавать бит подтверждения приема АСК (передается нулевой посылкой - см. последовательности передачи, представленные ниже). При «неподтверждении» (NACK) передается 1, но это совсем не обязательно означает аппаратный сбой. Так, если подобный сигнал формируется EEPROM, он может указывать, например, на незавершенность предшествующей операции записи. Сам микроконтроллер в ряде случаев формирует такой сигнал для прекращения обмена, чтобы подготовить дополнительную порцию байтов в режиме многобайтового обмена.

При работе с EEPROM используются следующие типовые операции:

♦ задание текущего адреса;

♦ задание текущего адреса/запись байта данных;

♦ считывание байта данных по текущему адресу;

♦ последовательное считывание байтов начиная с текущего адреса (многобайтовое считывание);

♦ проверка завершения записи.

В микроконтроллерах PIC 12СЕ5хх объем памяти электрически программируемого ПЗУ составляет всего 16 байт. При этом обращение к каждому байту памяти осуществляется с помощью 4-разрядного адреса. Данный адрес задается EEPROM при передаче первого управляющего байта. За битами адреса передается бит операции (R/ W). Последовательность пересылок при этом имеет следующий вид:

ожидание - старт - 1010000А - OOOOaddrA - байт данных А (DataByteA) - стоп - ожидание.

Второй байт ObOOOOaddr задает новый текущий адрес EEPROM, который будет использоваться при дальнейших операциях. После Пересылки двух байтов линии SDA и SCL возвращаются в состояние ожидания (IDLE) с помощью такой последовательности кодов:

movlw ОхОСО

iorwf РЮ, f ; Установка SDA/SCL.

Запись данных производится аналогично записи самого адреса, однако не требует перевода обеих линий в режим ожидания (IDLE); эта операция может предусматривать многократную посылку дан-, Ных до полного завершения операции передачи:



0 ... 59606162636465 ... 159