Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессорная техника / Семейство микроконтроллеров MSP430x2xx_

.pdf
Скачиваний:
95
Добавлен:
05.03.2016
Размер:
2.03 Mб
Скачать

17.3. Функционирование модуля USСI: режим I2C 421

Если ведущему необходимо принять единственный байт данных, то бит UCTXSTP должен быть установлен во время приёма этого байта. Данный момент можно определить по состоянию бита UCTXSTT:

BIS.B

#UCTXSTT,&UCBOCTL1 ;

Формируем состояние СТАРТ

POLL_STT BIT.B

#UCTXSTT,&UCBOCTL1 ; Читаем бит

UCTXSTT

JC

POLL_STT

;

При сбросе

бита

BIS.B

#UCTXSTP,&UCB0CTL1 ;

формируем состояние СТОП

Установка бита UCTXSTT вызывает формирование состояния ПОВСТАРТ. При этом установкой или сбросом бита UCTR может быть изменён режим рабо ты модуля, а в регистр UCBxI2CSA, при необходимости, может быть загружен но вый адрес ведомого устройства.

Работа модуля в режиме «ведущий приёмник» проиллюстрирована на

Рис. 17.13.

Ведущий I2C и режим 10.битной адресации

Режим 10 битной адресации выбирается при UCA10 = 1; работа ведущего с использованием 10 битной адресации проиллюстрирована на Рис. 17.14.

Арбитраж

Если два или более ведущих устройств, подключённых к шине, одновременно начинают передачу, то запускается механизм арбитража. На Рис. 17.15 показан процесс арбитража между двумя устройствами. При арбитраже используются зна чения битов, выставляемые на линию SDA конкурирующими передатчиками. Первый ведущий передатчик, выставивший на линию сигнал ВЫСОКОГО уров ня, блокируется другим ведущим передатчиком, выставившим НИЗКИЙ уро вень. Таким образом, в процессе арбитража приоритет отдаётся устройству, пере дающему битовые данные с наименьшим значением. Ведущий, потерявший кон троль над шиной, переключается в режим «ведомый приёмник» и устанавливает флаг потери арбитража UCALIFG. Если первые байты, передаваемые двумя и бо лее устройствами, одинаковы, то процесс арбитража продолжается при передаче последующих байтов.

Если во время арбитража на шине будет сформировано состояние СТАРТ или СТОП, то все ведущие передатчики, принимающие участие в этом процессе, сра зу же должны сформировать состояние СТОП или ПОВСТАРТ. Арбитраж не дол жен выполняться между:

состоянием ПОВСТАРТ и передачей бита данных;

состоянием СТОП и передачей бита данных;

состояниями ПОВСТАРТ и СТОП.

17.3.5. Генерация и синхронизация тактового сигнала I2C

Сигнал синхронизации на линии SCL генерируется ведущим шины I2C. При работе модуля USCI в режиме ведущего, тактовый сигнал BITCLK формируется генератором модуля из его тактового сигнала. Источник тактового сигнала моду ля USCI задаётся битами UCSSELx. В режиме ведомого генератор не использует ся и состояние битов UCSSELx безразлично.

422 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C

Успешный приём

S

SLA/R

A

DATA

A

DATA

A

DATA

A

P

от ведущего

 

 

 

 

 

 

 

 

 

 

передатчика

 

 

 

 

 

 

 

 

 

 

1) UCTR = 0 (Приёмник)

 

UCTXSTT = 0

 

UCBxRXIFG=1

 

UCTXSTP =1

 

UCTXSTP = 0

2) UCTXSTT =1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Следующая транзакция

 

 

 

DATA

A

S

SLA/W

начинается с состояния

 

 

 

 

 

 

 

 

 

 

ПОВСТАРТ

 

 

 

 

 

 

 

 

 

 

 

1) UCTR = 1 (Передатчик)

 

 

 

 

2) UCTXSTT =1

 

 

 

 

 

DATA

A

S

SLA/R

 

 

UCTXSTP =1

1) UCTR = 0 (Приёмник)

 

 

 

 

2) UCTXSTT =1

 

Не получено

A

P

 

 

 

 

 

подтверждение

UCTXSTP = 0

 

 

 

 

 

 

 

 

адреса ведомого

 

 

 

 

 

 

 

 

UCTXSTT = 0

=1

 

 

 

 

 

 

UCNACKIFG

 

 

1) UCTR = 1 (Передатчик)

 

 

S

SLA/W

 

 

 

 

2) UCTXSTT =1

 

 

 

 

 

 

 

 

 

 

UCBxTXIFG=1

 

 

S

SLA/R

 

1) UCTR = 0 (Приёмник)

 

 

 

2) UCTXSTT =1

 

 

 

 

 

Потеря арбитража

Обмен продолжает другой ведущий

при передаче адреса

 

ведомого или байта данных

UCALIFG =1

 

 

Обмен продолжает другой ведущий UCMST = 0

 

(UCSTTIFG = 0)

 

UCALIFG =1

 

UCMST = 0

 

(UCSTTIFG = 0)

Потеря арбитража и адресация в качестве ведомого

A

Обмен продолжает другой ведущий

UCALIFG =1

UCMST = 0

UCTR = 1 (Передатчик)

UCSTTIFG =1

UCBxTXIFG=1

UCSTPIFG = 0

Модуль USCI продолжает работать в режиме «ведомый передатчик»

Рис. 17.13. Режим «ведущий приёмник» модуля I2C.

17.3. Функционирование модуля USСI: режим I2C 423

ВедущийCпередатчик

Успешная

S

11110 xx/W

A

SLA (2.)

A

DATA

A

передача

 

 

 

 

 

 

 

ведомому

 

 

 

 

 

 

 

приёмнику

 

 

 

 

 

 

 

 

1) UCTR = 1 (Передатчик)

 

UCTXSTT = 0

 

2) UCTXSTT =1

 

 

 

 

UCBxTXIFG =1

 

 

 

 

 

UCBxTXIFG=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DATA A P

UCTXSTP = 0

UCTXSTP =1

ВедущийCприёмник

Успешный приём

S

11110 xx/W

A

SLA (2.)

A

S

11110 xx/R

A

DATA

A

от ведомого

 

 

 

 

 

 

 

 

 

 

передатчика

 

 

 

 

 

 

 

 

 

 

1) UCTR = 0 (Приёмник)

 

UCTXSTT = 0

 

UCBxRXIFG =1

2) UCTXSTT =1

 

 

 

 

 

 

 

 

 

 

 

 

 

DATA

A

P

UCTXSTP = 0

UCTXSTP =1

Рис. 17.14. Ведущий I2C и режим 10 битной адресации.

Линия SCL

 

 

 

 

 

 

 

Устройство №1 теряет арбитраж

 

n

 

и отключается

 

Данные

 

 

 

 

 

 

 

от устройства №1

 

 

 

 

 

1

 

 

 

Данные

0

0

 

0

 

 

 

 

от устройства №2

 

 

 

 

 

1

 

1

1

 

0

0

 

0

Линия SDA

 

 

 

 

 

1

 

1

1

Рис. 17.15. Процесс арбитража между двумя ведущими.

В регистрах UCBxBR1 и UCBxBR0 содержится 16 битное значение UCBRx, представляющее собой коэффициент деления тактового сигнала модуля USCI (BRCLK). При работе в системе с одним ведущим на шине частота сигнала BITCLK не должна превышать значения fBRCLK/4. При наличии на шине несколь ких ведущих максимальная частота сигнала составляет fBRCLK/8. Частота тактово го сигнала BITCLK определяется выражением:

fBITCLK = fBRCLK .

UCBRx

424 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C

Минимальная длительность импульсов и пауз тактового сигнала на линии SCL составляет:

tLOW,MIN

= tHIGH,MIN

=

 

UCBRx/2

 

при чётном значении UCBRx и

 

fBRCLK

 

 

 

 

 

tLOW,MIN

= tHIGH,MIN

=

(UCBRx −1)/2

при нечётном значении UCBRx.

fBRCLK

 

 

 

 

 

Частота тактового сигнала модуля USCI и коэффициент деления предделите ля должны быть выбраны таким образом, чтобы параметры сигнала на шине SCL удовлетворяли требованиям спецификации I2C.

Во время арбитража тактовые сигналы от различных ведущих должны быть синхронизированы. Устройство, первым формирующее НИЗКИЙ уровень на ли нии SCL, вынуждает остальных ведущих начать формирование паузы тактового сигнала. Максимальная длительность сигнала НИЗКОГО уровня на линии SCL определяется устройством, генерирующим сигнал с наибольшей паузой между импульсами. Остальные устройства должны ждать освобождения линии SCL, чтобы начать формирование импульсов тактовых сигналов. Это позволяет мед ленным устройствам замедлить более быстрого ведущего. Процесс синхрониза ции тактовых сигналов показан на Рис. 17.16.

Состояние

ожидания

Начало импульс

SCL

от устройства №1

SCL

от устройства №2

Линия SCL

Рис. 17.16. Синхронизация двух тактовых сигналов I2C во время арбитража.

Задержка импульсов синхронизации

Модуль USCI поддерживает задержку импульсов синхронизации — использо вание этой возможности было описано в разделах, посвящённых описанию ре жимов работы модуля.

Модуль USCI, освободивший линию SCL, может использовать бит UCSLLOW, чтобы проверить наличие других устройств, удерживающих на линии SCL НИЗКИЙ уровень. Такая ситуация может возникнуть, если:

модуль USCI работает в режиме ведущего, и подключённое к шине ведомое устройство выставило на SCL НИЗКИЙ уровень;

17.3.Функционирование модуля USСI: режим I2C 425

модуль USCI работает в режиме ведущего, и другое ведущее устройство вы ставило на SCL НИЗКИЙ уровень во время арбитража.

Кроме того, бит USCLLOW устанавливается при удержании модулем НИЗ КОГО уровня на линии SCL по причине ожидания записи данных в регистр UCBxTXBUF (в режиме передатчика) или чтения данных из регистра UCBxRXBUF (в режиме приёмника).

Возможна кратковременная установка бита USCLLOW по нарастающему фронту сигнала SCL из за работы схемы, сравнивающей состояние линии с сиг налом SCL, генерируемым модулем.

17.3.6.Использование модуля USCI в режиме I2C совместно

срежимами пониженного энергопотребления

Модуль USCI обеспечивает автоматическую активацию тактового сигнала SMCLK, что делает возможным использование модуля в режимах пониженного энергопотребления. Если модуль USCI тактируется сигналом SMCLK, который неактивен по причине нахождения устройства в режиме пониженного энергопот ребления, то модуль автоматически активирует данный тактовый сигнал при не обходимости, независимо от значений управляющих битов выбора источника системного тактового сигнала. Указанный тактовый сигнал будет активным до тех пор, пока модуль USCI не вернётся в состояние ожидания. После этого конт роль над источником тактового сигнала вернётся к модулю синхронизации. Авто матическая активация тактового сигнала ACLK не предусмотрена.

При активации модулем USCI неактивного источника тактового сигнала этот источник становится доступным для всего устройства, так что его активация мо жет затронуть любой периферийный модуль, сконфигурированный для исполь зования данного тактового сигнала. Например, значение таймера, использующе го SMCLK, будет инкрементироваться в течение всего времени, пока модуль USCI будет находиться в активном режиме.

В режиме ведомого I2C наличие внутреннего тактового сигнала не требуется, поскольку сигнал синхронизации формируется внешним ведущим устройством. Это даёт возможность использовать модуль USCI в качестве ведомого I2C уст ройства даже при использовании режима пониженного энергопотребления LPM4, в котором выключены все источники тактовых сигналов. Вывод ЦПУ из любого режима пониженного энергопотребления возможен по прерываниям приёма или передачи.

17.3.7. Прерывания в режиме I2C

Модуль USCI имеет два вектора прерывания. Один из векторов в режиме I2C связан с флагами прерываний передачи и приёма. Другой вектор связан с четырь мя флагами прерываний, отображающими изменение состояния. Каждому флагу соответствует индивидуальный бит разрешения прерывания. При разрешённом прерывании и установленном бите GIE установка флага генерирует запрос пре рывания. В устройствах, имеющих контроллер DMA, пересылка данных управля ется флагами UCBxTXIFG и UCBxRXIFG.

426 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C

Прерывание I2C при передаче

Флаг прерывания UCBxTXIFG, устанавливаемый передатчиком, показывает готовность регистра UCBxTXBUF к загрузке нового значения. Если установлены биты GIE и UCBxTXIE, то при установке флага UCBxTXIFG генерируется запрос прерывания. Флаг UCBxTXIFG автоматически сбрасывается при записи в ре гистр UCBxTXBUF или при приёме сигнала NACK. Флаг UCBxTXIFG устанав ливается при UCSWRST = 1 и выборе режима I2C. Бит разрешения прерывания UCBxTXIE сбрасывается после сигнала сброса PUC или при UCSWRST = 1.

Прерывание I2C при приёме

Флаг прерывания UCBxRXIFG устанавливается каждый раз при приёме сим вола и загрузке его в регистр UCBxRXBUF. При установленных битах GIE и UCBxRXIE генерируется запрос прерывания. Биты UCBxRXIFG и UCBxRXIE сбрасываются сигналом системного сброса PUC или при UCSWRST = 1. Флаг UCBxRXIFG автоматически сбрасывается при чтении регистра UCBxRXBUF.

Прерывания при изменении состояния

Флаги прерываний, устанавливаемые при изменении состояния модуля и/или шины, перечислены в Табл. 17.1.

Таблица 17.1. Флаги прерываний по изменению состояния

Флаг

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

прерывания

 

 

 

UCALIFG

Потеря арбитража. Арбитраж может быть утерян, когда два или более ведущих на

 

шине одновременно начинают передачу или когда модуль USCI, работающий в ре

 

жиме ведущего, оказывается адресован в качестве ведомого другим ведущим. При

 

потере арбитража устанавливается флаг UCALIFG. При установке бита UCALIFG

 

сбрасывается бит UCMST и контроллер I2C переключается в режим ведомого

UCNACKIFG Нет подтверждения. Этот флаг устанавливается, когда модуль не получает ожидаемо го подтверждения. Флаг UCNACKIFG автоматически сбрасывается при обнаруже нии состояния СТАРТ

UCSTTIFG

Обнаружено состояние СТАРТ. Этот флаг устанавливается, когда модуль I2C, рабо

 

тающий в режиме ведомого, обнаруживает состояние СТАРТ с последующим при

 

ёмом своего адреса. Флаг UCSTTIFG используется только в режиме ведомого и авто

 

матически сбрасывается при обнаружении состояния СТОП

 

 

UCSTPIFG

Обнаружено состояние СТОП. Этот флаг устанавливается, когда модуль I2C, работа

 

ющий в режиме ведомого, обнаруживает состояние СТОП. Флаг UCSTPIFG исполь

 

зуется только в режиме ведомого и автоматически сбрасывается при обнаружении

 

состояния СТАРТ

Использование прерываний модуля USCI

Модули USCI_Ax и USCI_Bx используют одни и те же векторы прерываний. В режиме I2C флаги прерываний по изменению состояния UCSTTIFG, UCSTPIFG, UCIFG, UCALIFG модуля USCI_Bx и флаг приёма UCAxRXIFG модуля USCI_Ax связаны с одним вектором прерываний. Флаги прерываний пе редачи UCBxTXIFG и приёма UCBxRXIFG модуля USCI_Bx и флаг прерывания передачи UCAxTXIFG модуля USCI_Ax связаны с другим вектором.

17.4. Регистры модуля USCI: режим I2C 427

Примеры использования разделяемого вектора прерывания

В следующем примере содержится фрагмент процедуры обработки прерыва ния, отвечающей за обработку прерываний приёма модуля USCI_A0, работающе го в режиме UART или SPI, и прерываний по изменению состояния модуля USCI_B0, работающего в режиме I2C.

USCIA0_RX_USCIB0_I2C_STATE_ISR

BIT.B #UCA0RXIFG, &IFG2 ; Прерывание приёма USCI_A0? JNZ USCIA0_RX_ISR

USCIB0_I2C_STATE_ISR

;Уточняем изменение состояния I2C ...

;Уточняем изменение состояния I2C ...

...

RETI

USCIA0_RX_ISR

; Читаем UCA0RXBUF ... – сбрасывается UCA0RXIFG

...

RETI

В следующем примере содержится фрагмент процедуры обработки прерыва ния, отвечающей за обработку прерываний передачи модуля USCI_A0, работаю щего в режиме UART или SPI, и прерываний передачи модуля USCI_B0, работа ющего в режиме I2C.

USCIA0_TX_USCIB0_I2C_DATA_ISR

BIT.B #UCA0TXIFG, &IFG2 ; Прерывание передачи USCI_A0? JNZ USCIA0_TX_ISR

USCIB0_I2C_DATA_ISR

BIT.B #UCB0RXIFG, &IFG2 JNZ USCIB0_I2C_RX

USCIB0_I2C_TX

; Пишем в UCB0TXBUF... – сбрасывается UCB0TXIFG

...

RETI USCIB0_I2C_RX

; Читаем UCB0RXBUF... – сбрасывается UCB0RXIFG

...

RETI USCIA0_TX_ISR

; Пишем в UCA0TXBUF ... – сбрасывается UCA0TXIFG

...

RETI

17.4. Регистры модуля USCI: режим I2C

Список регистров модулей USCI_B0 и USCI_B1, использующихся в режиме SPI, приведён в Табл. 17.2 и в Табл. 17.3.

428 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C

Таблица 17.2. Регистры управления и состояния модуля USCI_B0

Регистр

Обозначение

Тип регистра

Адрес

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

 

 

 

 

 

Регистр управления 0 модуля

UCB0CTL0

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

068h

001h после PUC

USCI_B0

 

 

 

 

 

 

 

 

 

Регистр управления 1 модуля

UCB0CTL1

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

069h

001h после PUC

USCI_B0

 

 

 

 

 

 

 

 

 

Регистр управления 0 скоростью

UCB0BR0

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

06Ah

Сбрасывается после PUC

обмена модуля USCI_B0

 

 

 

 

 

 

 

 

 

Регистр управления 1 скоростью

UCB0BR1

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

06Bh

Сбрасывается после PUC

обмена модуля USCI_B0

 

 

 

 

 

 

 

 

 

Регистр разрешения прерываний

UCB0I2CIE

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

06Ch

Сбрасывается после PUC

I2C модуля USCI_B0

 

 

 

 

Регистр состояния модуля

UCB0STAT

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

06Dh

Сбрасывается после PUC

USCI_B0

 

 

 

 

 

 

 

 

 

Регистр буфера приёма модуля

UCB0RXBUF

Чтение

06Eh

Сбрасывается после PUC

USCI_B0

 

 

 

 

 

 

 

 

 

Регистр буфера передачи модуля

UCB0TXBUF

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

06Fh

Сбрасывается после PUC

USCI_B0

 

 

 

 

 

 

 

 

 

Регистр собственного адреса I2C

UCB0I2COA

Чтение

0118h

Сбрасывается после PUC

модуля USCI_B0

 

 

 

 

 

 

 

 

 

Регистр адреса I2C ведомого мо

UCB0I2CSA

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

011Ah

Сбрасывается после PUC

дуля USCI_B0

 

 

 

 

 

 

 

 

 

Регистр разрешения

IE2

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

001h

Сбрасывается после PUC

прерываний 2

 

 

 

 

 

 

 

 

 

Регистр флагов прерываний 2

IFG2

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

003h

00Ah после PUC

 

 

 

 

 

Таблица 17.3. Регистры управления и состояния модуля USCI_B1

Регистр

Обозначение

Тип регистра

Адрес

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

 

 

 

 

 

Регистр управления 0 модуля

UCB1CTL0

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

0D8h

001h после PUC

USCI_B1

 

 

 

 

 

 

 

 

 

Регистр управления 1 модуля

UCB1CTL1

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

0D9h

001h после PUC

USCI_B1

 

 

 

 

 

 

 

 

 

Регистр управления 0 скоростью

UCB1BR0

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

0DAh

Сбрасывается после PUC

обмена модуля USCI_B1

 

 

 

 

 

 

 

 

 

Регистр управления 1 скоростью

UCB1BR1

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

0DBh

Сбрасывается после PUC

обмена модуля USCI_B1

 

 

 

 

 

 

 

 

 

Регистр разрешения прерываний

UCB1I2CIE

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

0DCh

Сбрасывается после PUC

I2C модуля USCI_B1

 

 

 

 

Регистр состояния модуля

UCB1STAT

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

0DDh

Сбрасывается после PUC

USCI_B1

 

 

 

 

 

 

 

 

 

Регистр буфера приёма модуля

UCB1RXBUF

Чтение

0DEh

Сбрасывается после PUC

USCI_B1

 

 

 

 

 

 

 

 

 

Регистр буфера передачи модуля

UCB1TXBUF

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

0DFh

Сбрасывается после PUC

USCI_B1

 

 

 

 

 

 

 

 

 

Регистр собственного адреса I2C

UCB1I2COA

Чтение

017Ch

Сбрасывается после PUC

модуля USCI_B1

 

 

 

 

 

 

 

 

 

Регистр адреса I2C ведомого

UCB1I2CSA

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

017Eh

Сбрасывается после PUC

модуля USCI_B1

 

 

 

 

 

 

 

 

 

Регистр разрешения прерываний

UC1IE

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

006h

Сбрасывается после PUC

модулей USCI_A1/B1

 

 

 

 

 

 

 

 

 

Регистр флагов прерываний

UC1IFG

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

007h

00Ah после PUC

модулей USCI_A1/B1

 

 

 

 

 

 

 

 

 

17.4. Регистры модуля USCI: режим I2C 429

Примечание. Изменение битов регистров управления прерываниями

Чтобы исключить изменение управляющих битов, используемых другими модуля ми, для установки или сброса битов IEx и IFGx рекомендуется вместо команд

MOV.B и CLR.B применять команды BIS.B и BIC.B.

UCBxCTL0, регистр управления 0 модуля USCI_Bx

7

 

6

 

 

5

4

3

 

2

1

0

UCA10

 

UCSLA10

 

UCMM

Unused

UCMST

 

UCMODEx

UCSYNC = 1

 

 

 

 

 

 

 

 

 

 

 

 

rw–0

 

rw–0

 

 

rw–0

rw–0

rw–0

 

rw–0

rw–0

r–1

UCA10

Бит 7 Разрядность собственного адреса.

 

 

 

 

 

 

0

 

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

 

 

 

 

 

 

1

 

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

 

 

 

UCSLA10

Бит 6 Разрядность передаваемого адреса ведомого.

 

 

 

 

 

0

 

Адрес ведомого 7 битный

 

 

 

 

 

 

1

 

Адрес ведомого 10 битный

 

 

 

UCMM

Бит 5 Режим с несколькими ведущими.

 

 

 

 

 

 

0

 

Один ведущий на шине. Блок сравнения адреса выключен.

 

 

 

1

 

Несколько ведущих на шине

 

 

 

Unused

Бит 4

Не используется.

 

 

 

 

 

UCMST

Биты

Выбор режима ведущего. В случае потери ведущим арбитража в сис

 

 

3…2

теме с несколькими ведущими (UCMM = 1) бит UCMST автомати

 

 

 

чески сбрасывается и модуль переключается в режим ведомого.

 

 

 

0

 

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

 

 

 

 

 

 

 

 

1

 

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

 

 

 

 

 

UCMODEx

Бит 1 Режим работы модуля USCI. Биты UCMODEx задают синхронный

 

 

 

режим работы при UCSYNC = 1.

 

 

 

 

 

 

00

3 проводный SPI

 

 

 

 

 

 

 

 

01

4 проводный SPI (разрешение ведущего/ведомого при STE = 1)

104 проводный SPI (разрешение ведущего/ведомого при STE = 0)

11Режим I2C

UCSYNC

Бит 0 Разрешение синхронного режима работы.

 

0

Асинхронный режим

 

1

Синхронный режим

UCBxCTL1, регистр управления 1 модуля USCI_Bx

7

6

 

 

5

 

4

3

2

1

0

UCSSELx

 

 

Unused

 

UCTR

UCTXNACK

UCTXSTP

UCTXSTT

UCSWRST

 

 

 

 

 

 

 

 

 

 

 

rw–0

rw–0

 

 

r0

 

rw–0

rw–0

rw–0

rw–0

rw–1

UCSSELx

Биты

Выбор источника тактового сигнала модуля USCI. Эти биты опреде

 

7…6

ляют источник сигнала BRCLK.

 

 

 

 

 

00

UCLKI

 

 

 

 

 

 

 

01

ACLK

 

 

 

 

 

 

 

10

SMCLK

 

 

 

 

 

 

 

11

SMCLK

 

 

 

 

 

Unused

Бит 5

Не используется.

 

 

 

 

430 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C

UCTR

Бит 4 Передатчик или приёмник.

 

0

Приёмник

 

1

Передатчик

UCTXNACK Бит 3 Передать NACK. Бит UCTXNACK автоматически сбрасывается пос ле передачи NACK.

0Отослать ACK (подтверждение)

1Отослать NACK (нет подтверждения)

UCTXSTP Бит 2 Сформировать состояние СТОП в режиме ведущего. Игнорируется в режиме ведомого. В режиме «ведущий приёмник» состоянию СТОП предшествует сигнал NACK. Бит UCTXSTP автоматически сбрасы вается после формирования состояния СТОП.

0Не формировать СТОП

1Сформировать состояние СТОП

UCTXSTT Бит 1 Сформировать состояние СТАРТ в режиме ведущего. Игнорируется в режиме ведомого. В режиме «ведущий приёмник» состоянию ПОВСТАРТ предшествует сигнал NACK. Бит UCTXSTT автомати чески сбрасывается после формирования состояния СТАРТ и пере дачи адреса.

0Не формировать СТАРТ

1Сформировать состояние СТАРТ

UCSWRST Бит 0 Программный сброс модуля USCI.

0Модуль USCI в рабочем состоянии

1Модуль USCI удерживается в состоянии сброса

UCBxBR0, регистр управления 0 скоростью обмена модуля USCI_Bx

7

6

5

4

3

2

1

0

 

 

 

UCBRx – младший байт

 

 

 

 

 

 

 

 

 

 

 

rw

rw

rw

rw

rw

rw

rw

rw

UCBxBR1, регистр управления 1 скоростью обмена модуля USCI_Bx

7

6

5

4

3

2

1

0

 

 

 

UCBRx – старший байт

 

 

 

 

 

 

 

 

 

 

 

rw

rw

rw

rw

rw

rw

rw

rw

UCBRx

 

Коэффициент деления предделителя контроллера скорости обмена.

 

 

Cодержимое

этих

регистров

 

образует

16 битное

 

 

(UCBxBR0 + UCBxBR1 256) значение коэффициента деления.

UCBxSTAT, регистр состояния модуля USCI_Bx

 

 

 

 

7

6

5

4

3

 

2

1

0

 

 

 

 

 

 

 

 

Unused

UCSCLLOW

UCGC

UCBBUSY

UCNACKIFG

UCSTPIFG

UCSTTIFG

UCALIFG

 

 

 

 

 

 

 

 

 

 

 

rw–0

r–0

 

rw–0

r–0

rw–0

 

rw–0

 

rw–0

rw–0

Unused

Бит 7

Не используется.

 

 

 

 

 

 

UCSCLLOW Бит 6

На линии SCL НИЗКИЙ уровень.

 

 

 

 

0На SCL не удерживается НИЗКИЙ уровень

1На линии SCL удерживается НИЗКИЙ уровень