15.3 Регистры модуля I2C
Регистры модуля I2C и соответствующие адреса приведены в таблице 15-3.
Таблица 15-3. Регистры I2C
Регистр |
Краткое обозначение |
Тип регистра |
Адрес |
Исходное состояние |
Разрешение прерывания I2C |
I2CIE |
Чтение/запись |
050h |
Сброс с PUC |
Флаг прерывания I2C |
I2CIFG |
Чтение/запись |
051h |
Сброс с PUC |
Подсчет данных I2C |
I2CNDAT |
Чтение/запись |
052h |
Сброс с PUC |
Управление USART |
U0CTL |
Чтение/запись |
070h |
Сброс с PUC |
Управление передачей I2C |
I2CTCTL |
Чтение/запись |
071h |
Сброс с PUC |
Управление данными I2C |
I2CDCTL |
Только чтение |
072h |
Сброс с PUC |
Прескалер I2C |
I2CPSC |
Чтение/запись |
073h |
Сброс с PUC |
«Высокий» SCL I2C |
I2CSCLH |
Чтение/запись |
074h |
Сброс с PUC |
«Низкий» SCL I2C |
I2CSCLL |
Чтение/запись |
075h |
Сброс с PUC |
Данные I2C |
I2CDR |
Чтение/запись |
076h |
Сброс с PUC |
Собственный адрес I2C |
I2COA |
Чтение/запись |
0118h |
Сброс с PUC |
Адрес ведомого I2C |
I2CSA |
Чтение/запись |
011Ah |
Сброс с PUC |
Вектор прерываний I2C |
I2CIV |
Только чтение |
011Ch |
Сброс с PUC |
U0CTL, регистр управления USART0 в режиме I2C
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 |
Бит 7 |
Разрешение DMA при приеме. Этот бит включает контроллер DMA, чтобы переносить данные из модуля I2C после приема данных модулем I2C. Когда RXDMAEN=1, RXRDYIE автоматически очищается.
0 Выключен
1 Включен |
TXDMAEN |
Бит 6 |
Разрешение DMA при передаче. Этот бит включает контроллер DMA, что может быть использовано для переноса данных в модуль I2C для передачи. Когда TXDMAEN=1, TXRDYIE автоматически очищается.
0 Выключен
1 Включен |
I2C |
Бит 5 |
Включение режима I2C. Этот бит позволяет выбрать режим I2C или SPI, когда SYNC=1.
0 Режим SPI
1 Режим I2C |
XA |
Бит 4 |
Расширенная адресация
0 7-разрядная адресация
1 10-разрядная адресация |
LISTEN |
Бит 3 |
Прослушивание. Этот бит устанавливает режим обратной петли. Бит LISTEN действителен только когда MST=1 и I2CTRX=1 (ведущий передатчик).
0 Нормальный режим
1 SDA внутренне подключается назад к приемнику (обратная петля) |
SYNC |
Бит 2 |
Включение синхронного режима
0 Режим UART
1 Режим SPI или I2C |
MST |
Бит 1 |
Выбор режима ведущий/ведомый. Этот бит выбирает режим ведомого или ведущего. Бит MST автоматически очищается при потере арбитража.
0 Режим ведомого
1 Режим ведущего |
I2CEN |
Бит 0 |
Включение I2C. Бит включает или выключает модуль I2C. В исходном состоянии он установлен, и для UART или SPI функционирует как SWRST. Когда первыми после PUC устанавливаются биты I2C и SYNC, этот бит функционирует как I2CEN и автоматически очищается.
0 Работа I2C запрещена.
1 Работа I2C разрешена. |
I2CTCTL, регистр управления передачей в режиме I2C
I2CWORD |
I2CRM |
I2CSSELx |
I2CTRX |
I2CSTB |
I2CSTP |
I2CSTT |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
Модифицируется, только когда I2CEN=0
I2CWORD |
Бит 7 |
Режим слова I2C. Выбирается режим байта или слова для регистра данных I2C.
0 Режим байта
1 Режим слова |
I2CRM |
Бит 6 |
Режим повтора I2C
0 I2CNDAT определяет количество переданных байтов
1 Количество передаваемых байт определяется программным обеспечением. I2CNDAT не используется. |
I2CSSELx |
Биты 5-4 |
Выбор источника тактирования I2C. Когда MST=1 и арбитраж потерян, автоматически используется внешний сигнал SCL.
00 Нет тактирования – модуль I2C неактивен
01 ACLK
10 SMCLK
11 SMCLK |
I2CTRX |
Бит 3 |
Передача I2C. Этот бит выбирает функцию передачи или приема для контроллера I2C, когда MST=1. Когда MST=0, бит R/W байта адреса определяет направление данных и I2CTRX отражает направление вывода SDA.
0 Режим приема. Данные принимаются на выводе SDA.
1 Режим передачи. Данные передаются на выводе SDA. |
I2CSTB |
Бит 2 |
Стартовый байт. Установка бита I2CSTB при MST=1 инициирует стартовый байт.
0 Нет действия
1 Отправка условия СТАРТ, стартового байта (03h), но не условия останова. |
I2CSTP |
Бит 1 |
Бит стоп. Этот бит используется для генерации условия СТОП. После условия СТОП бит I2CSTP автоматически очищается.
0 Нет действия
1 Отправка условия СТОП |
I2CSTT |
Бит 0 |
Бит старт. Этот бит используется для генерации условия СТАРТ. После условия СТАРТ бит I2CSTT автоматически очищается.
0 Нет действия
1 Отправка условия СТАРТ |
I2CDCTL, регистр управления данными I2C
Не исполь зуется |
Не исполь зуется |
Не исполь зуется |
I2C SCLLOW |
I2XSBD |
I2XTXUDF |
I2CRXOVR |
I2CBB |
r0 |
r0 |
r0 |
r-0 |
r-0 |
r-0 |
r-0 |
r-0 |
Не исполь зуется |
Биты 7-5 |
Не используются. Всегда читаются как 0. |
I2C SCLLOW |
Бит 4 |
«Низкий» SCL I2C. Этот бит показывает, что ведомый удерживает линию SCL в низком состоянии, когда MSP430 – ведущий. Этот бит не используется в режиме ведомого.
0 SCL не удерживается в состоянии низкого уровня.
1 SCL удерживается в состоянии низкого уровня. |
I2CSBD |
Бит 3 |
Один байт данных I2C. Этот бит показывает, что содержится в регистре приема – слово или байт. Бит I2CSBD действителен только когда I2CWORD=1.
0 Слово было принято полностью
1 В I2CDR достоверен только младший байт |
I2CTXUDF |
Бит 2 |
Опустошение при передаче I2C
0 Опустошения нет
1 Произошло опустошение при передаче |
I2CRXOVR |
Бит 1 |
Переполнение при приеме I2C.
0 Переполнения при приеме не произошло.
1 Произошло переполнение при приеме. |
I2CBB |
Бит 0 |
Бит занятости I2C. Условие старта устанавливает I2CBB в 1. I2CBB сбрасывается условием стоп или при I2CEN=0.
0 Не занято
1 Занято |
I2CDR, регистр данных I2C
Старший байт данных I2C (передается вторым) |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
Младший байт данных I2C (передается первым) |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
I2CDRx |
Биты 15-0 |
Данные I2C |
I2CNDAT, регистр подсчета переданных байтов I2C
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
I2CNDATx |
Биты 7-0 |
Количество байтов I2C. Эти биты обеспечивают автоматический подсчет байтов данных. В режиме слова I2CNDATx должен иметь четное значение.
Запись в регистр: Количество байтов
Чтение из регистра, I2CBB=1: Количество байтов, остающихся при передаче
Чтение из регистра, I2CBB=0: Количество байтов, которые были переданы
|
Примечание: Регистр I2CNDAT
Не изменяйте регистр I2CNDAT, когда I2CBB=1 и I2CRM=0.
|
I2CPSC, регистр прескалера тактирования I2C
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
Модифицируется, только когда I2CEN=0
I2CPSCx |
Биты 7-0 |
Прескалер тактирования I2C. Входная тактовая частота I2C делится содержимым I2CPSCx, обеспечивая внутреннюю тактовую частоту I2C. Коэффициент деления равен I2CPSC+1.
000h Деление на 1
001h Деление на 2
.
.
0FFh Деление на 256 |
I2CSCLH, сдвиговый регистр высокого уровня сигналов тактирования I2C
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
Модифицируется, только когда I2CEN=0
I2CSCLHx |
Биты 7-0 |
Сдвиговый регистр высокого уровня тактовых импульсов I2C. Эти биты определяют продолжительность высокого уровня сигнала на SCL, когда контроллер I2C находится в режиме ведущего. Длительность высокого уровня SCL составляет (I2CSCLH + 2) * I2CPSC.
000h Не используется
001h Не используется
002h Не используется
003h Длительность высокого уровня SCL = 5 * I2CPSC
.
.
0FFh Длительность высокого уровня SCL = 257 * I2CPSC |
I2CSCLL, сдвиговый регистр низкого уровня сигналов тактирования I2C
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
Модифицируется, только когда I2CEN=0
I2CSCLLx |
Биты 7-0 |
Сдвиговый регистр низкого уровня тактовых импульсов I2C. Эти биты определяют продолжительность низкого уровня сигнала на SCL, когда контроллер I2C находится в режиме ведущего. Длительность низкого уровня SCL составляет (I2CSCLL + 2) * I2CPSC.
000h Не используется
001h Не используется
002h Не используется
003h Длительность низкого уровня SCL = 5 * I2CPSC
.
.
0FFh Длительность низкого уровня SCL = 257 * I2CPSC |
I2COA, регистр собственного адреса I2C в 7-разрядном адресном режиме
r0 |
r0 |
r0 |
r0 |
r0 |
r0 |
rw-0 |
rw-0 |
r0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
Модифицируется, только когда I2CEN=0
I2COAx |
Биты 15-0 |
Собственный адрес I2C. Регистр I2COA содержит локальный адрес контроллера I2C MSP430. Регистр I2COA выровнен по правому краю. Старшим битом (MSB) является 6-ой бит. Биты 15-7 всегда равны 0. |
I2COA, регистр собственного адреса I2C в 10-разрядном адресном режиме
r0 |
r0 |
r0 |
r0 |
r0 |
r0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
Модифицируется, только когда I2CEN=0
I2COAx |
Биты 15-0 |
Собственный адрес I2C. Регистр I2COA содержит локальный адрес контроллера I2C MSP430. Регистр I2COA выровнен по правому краю. Старшим битом (MSB) является 9-ый бит. Биты 15-10 всегда равны 0. |
I2CSA, регистр адреса ведомого I2C в 7-разрядном адресном режиме
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
I2CSAx |
Биты 15-0 |
Адрес ведомого I2C. Регистр I2CSA содержит адрес внешнего ведомого устройства, которое адресуется MSP430. Он используется только в режиме ведущего. Регистр I2CSA выровнен по правому краю. Старшим битом (MSB) является 6-ой бит. Биты 15-7 всегда равны 0. |
I2CSA, регистр адреса ведомого I2C в 10-разрядном адресном режиме
r0 |
r0 |
r0 |
r0 |
r0 |
r0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
rw-0 |
I2CSAx |
Биты 15-0 |
Адрес ведомого I2C. Регистр I2CSA содержит адрес внешнего ведомого устройства, которое адресуется MSP430. Он используется только в режиме ведущего. Регистр I2CSA выровнен по правому краю. Старшим битом (MSB) является 9-ый бит. Биты 15-10 всегда равны 0. |
|