Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[92]

Таблица 15-3. (Окончание)

Флаг прерывания

Условие прерывания

Прерывание общего вызова. Этот флаг устанавливается, когда модуль I2C принял адрес общего вызова (00h). GCIFG используется только в режим приема.

Прерывание при обнаружении условия «СТАРТ». Этот флаг устанавливается, когда модуль I2C обнаружил условие «СТАРТ» в режиме ведомого. Это позволяет MSP430 находиться в режиме пониженного энергопотребления с неактивным источником тактирования I2C, пока ведущий не инициирует связь по I2C. STTIFG используется только в режиме ведомого.

Генератор вектора прерывания I2CIV

Флаги прерывания I2C разделены по приоритетам и объединены в источник одного вектора прерывания. Регистр вектора прерывания I2CIV используется для выяснения, какой флаг запросил прерывание. Разрешенное прерывание с наивысшим приоритетом генерирует число в регистре I2CIV, которое может быть оценено или добавлено к программному счетчику для автоматического входа в соответствующую программную процедуру. Запрещенные I2C прерывания не воздействуют на содержимое I2CIV. Когда RXDMAEN=1, RXRDYIFG не будет влиять на значение I2CIV и когда TXDMAEN=1, TXRDYIFG не будет влиять на значение I2CIV, независимо от состояния RXRDYIE или TXRDYIE.

При любом доступе (чтение или запись) к регистру I2CIV автоматически сбрасывается флаг ожидающего прерывания с наивысшим приоритетом. Если устанавливается другой флаг прерывания, после обработки начального прерывания немедленно генерируется другое прерывание.

Пример программного обеспечения, использующего I2CIV

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

I2C ISR

ADD &I2CIV, PC RETI

JMP AL IFG ISR JMP NACKIFG ISR JMP OAIFG ISR JMP ARDYIFG ISR JMP RXRDYIFG ISR JMP TXRDYIFG ISR JMP GCIFG ISR STTIFG ISR

;Добавление смещения к таблице переходов

;Вектор 0 ;Вектор 2 ;Вектор 4 ;Вектор 6 ;Вектор 8 ;Вектор ;Вектор ;Вектор ;Вектор ;Задача

Нет прерывания

NACKIFG

OAIFG ARDYIFG RXRDYIFG TXRDYIFG GCIFG

10 12 14 16

(программный

модуль) начинается здесь


RETI ALIFG ISR

NACKIFG ISR

RETI OAIFG ISR

ARDYIFG ISR

RETI RXRDYIFG ISR

TXRDYIFG ISR

RETI GCIFG ISR

;Возврат ;Вектор 2

;Задача начинается

;Возврат

;Вектор 4

;Задача начинается

;Возврат

;Вектор 6

;Задача начинается

;Возврат

;Вектор 8

;Задача начинается

;Возврат

;Вектор 10

;Задача начинается

;Возврат

;Вектор 12

;Задача начинается

;Возврат

;Вектор 14

;Задача начинается

;Возврат

15.3. Регистры модуля I2C

Регистры модуля I2C приведены в таблице 15-4.

Таблица 15-4. Регистры I2C

Регистр

Краткое обозначение

Тип регистра

Исходное состояние

Разрешение прерывания I2C

Чтение/запись

Сброс с PUC

Флаг прерывания I2C

Чтение/запись

Сброс с PUC

Счет данных I2C

I2CNDAT

Чтение/запись

Сброс с PUC

Управление USART

Чтение/запись

001h с PUC

Управление передачей I2C

I2CTCTL

Чтение/запись

Сброс с PUC

Управление данными I2C

I2CDCTL

Только чтение

Сброс с PUC

Прескалер I2C

Чтение/запись

Сброс с PUC

«Высокий» SCL I2C

I2CSCLH

Чтение/запись

Сброс с PUC

«Низкий» SCL I2C

I2CSCLL

Чтение/запись

Сброс с PUC

Данные I2C

I2CDRW/I2CDRB

Чтение/запись

Сброс с PUC

Собственный адрес I2C

Чтение/запись

Сброс с PUC

Адрес ведомого I2C

Чтение/запись

Сброс с PUC

Вектор прерываний I2C

Только чтение

Сброс с PUC


U0CTL, регистр управления USART0 в режиме I2C

7 6 5 4

3 2 10

RXDMAEN TXDMAEN I2C XA

LISTEN SYNC MST I2CEN

rw-0 rw-0 rw-0 rw-0

rw-0 rw-0 rw-0 rw-1

RXDMAEN

Разрешение DMA при приеме. Этот бит разрешает использовать контроллер DMA для переноса принятых модулем I2C данных. Когда RXDMAEN=1, RXRDYIE игнорируется.

0- Запрещено

1- Разрешено

TXDMAEN

Разрешение DMA при передаче. Этот бит разрешает использовать контроллер DMA для переноса данных в модуль I2C для их последующей передачи. Когда TXDMAEN=1, TXRDYIE игнорируется.

0- Запрещено

1- Разрешено

Включение режима I2C. Этот бит позволяет выбрать режим I2C или SPI, когда SYNC=1.

0- Режим SPI

1- Режим I2C

Расширенная адресация

0- 7-разрядная адресация

1- 10-разрядная адресация

Прослушивание. Этот бит устанавливает режим обратной петли. Бит LISTEN действителен только когда MST=1 и I2CTRX=1 (ведущий передатчик).

0- Нормальный режим

1- SDA внутренне подключается назад к приемнику (обратная петля).

Включение синхронного режима

0- Режим UART

1- Режим SPI или I2C

Ведущий. Этот бит выбирает режим ведомого или ведущего. Бит MST автоматически очищается при потере арбитража или генерации условия СТОП.

0- Режим ведомого

1- Режим ведущего

Включение I2C. Бит включает или выключает модуль I2C. В исходном состоянии он установлен, и для UART или SPI функционирует как SWRST. Когда первыми после PUC устанавливаются биты I2C и SYNC, этот бит функционирует как I2CEN и очищается автоматически. 0 - Работа I2C запрещена. 1- Работа I2C разрешена.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]