MSP430_Final
.pdf16.4. Регистры модуля USCI: режим SPI 401
16.4. Регистры модуля USCI: режим SPI
Список регистров модулей USCI_A0 и USCI_B0, использующихся в режиме SPI, приведён в Табл. 16.2. Регистры модулей USCI_A1 и USCI_B1, использую щиеся в режиме SPI, перечислены в Табл. 16.3.
Таблица 16.2. Регистры управления и состояния модулей USCI_A0 и USCI_B0
Регистр |
Обозначение |
Тип регистра |
Адрес |
Исходное состояние |
|
|
|
|
|
Регистр управления 0 модуля |
UCA0CTL0 |
Чтение/запись |
060h |
Сбрасывается после PUC |
USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр управления 1 модуля |
UCA0CTL1 |
Чтение/запись |
061h |
001h после PUC |
USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр управления 0 скоростью |
UCA0BR0 |
Чтение/запись |
062h |
Сбрасывается после PUC |
обмена модуля USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр управления 1 скоростью |
UCA0BR1 |
Чтение/запись |
063h |
Сбрасывается после PUC |
обмена модуля USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр управления модуляцией |
UCA0MCTL |
Чтение/запись |
064h |
Сбрасывается после PUC |
модуля USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр состояния модуля |
UCA0STAT |
Чтение/запись |
065h |
Сбрасывается после PUC |
USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр буфера приёма модуля |
UCA0RXBUF |
Чтение |
066h |
Сбрасывается после PUC |
USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр буфера передачи модуля |
UCA0TXBUF |
Чтение/запись |
067h |
Сбрасывается после PUC |
USCI_A0 |
|
|
|
|
|
|
|
|
|
Регистр управления 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 |
|
|
|
|
|
|
|
|
|
Регистр управления модуляцией |
UCB0MCTL |
Чтение/запись |
06Ch |
Сбрасывается после PUC |
модуля USCI_B0 |
|
|
|
|
|
|
|
|
|
Регистр состояния модуля |
UCB0STAT |
Чтение/запись |
06Dh |
Сбрасывается после PUC |
USCI_B0 |
|
|
|
|
|
|
|
|
|
Регистр буфера приёма модуля |
UCB0RXBUF |
Чтение |
06Eh |
Сбрасывается после PUC |
USCI_B0 |
|
|
|
|
|
|
|
|
|
Регистр буфера передачи модуля |
UCB0TXBUF |
Чтение/запись |
06Fh |
Сбрасывается после PUC |
USCI_B0 |
|
|
|
|
|
|
|
|
|
Регистр разрешения прерываний 2 |
IE2 |
Чтение/запись |
001h |
Сбрасывается после PUC |
|
|
|
|
|
Регистр флагов прерываний 2 |
IFG2 |
Чтение/запись |
003h |
00Ah после PUC |
|
|
|
|
|
Примечание. Изменение битов регистров управления прерываниями
Чтобы исключить изменение управляющих битов, используемых другими модуля ми, для установки или сброса битов IEx и IFGx рекомендуется вместо команд
MOV.B и CLR.B применять команды BIS.B и BIC.B.
402 Глава 16. Универсальный последовательный коммуникационный интерфейс: режим SPI
Таблица 16.3. Регистры управления и состояния модулей USCI_A1и USCI_B1
Регистр |
Обозначение |
Тип регистра |
Адрес |
Исходное состояние |
|
|
|
|
|
Регистр управления 0 модуля |
UCA1CTL0 |
Чтение/запись |
0D0h |
Сбрасывается после PUC |
USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр управления 1 модуля |
UCA1CTL1 |
Чтение/запись |
0D1h |
001h после PUC |
USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр управления 0 скоростью |
UCA1BR0 |
Чтение/запись |
0D2h |
Сбрасывается после PUC |
обмена модуля USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр управления 1 скоростью |
UCA1BR1 |
Чтение/запись |
0D3h |
Сбрасывается после PUC |
обмена модуля USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр управления модуляцией |
UCA1MCTL |
Чтение/запись |
0D4h |
Сбрасывается после PUC |
модуля USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр состояния модуля |
UCA1STAT |
Чтение/запись |
0D5h |
Сбрасывается после PUC |
USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр буфера приёма модуля |
UCA1RXBUF |
Чтение |
0D6h |
Сбрасывается после PUC |
USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр буфера передачи модуля |
UCA1TXBUF |
Чтение/запись |
0D7h |
Сбрасывается после PUC |
USCI_A1 |
|
|
|
|
|
|
|
|
|
Регистр управления 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 |
|
|
|
|
|
|
|
|
|
Регистр управления модуляцией |
UCB1MCTL |
Чтение/запись |
0DCh |
Сбрасывается после PUC |
модуля USCI_B1 |
|
|
|
|
|
|
|
|
|
Регистр состояния модуля |
UCB1STAT |
Чтение/запись |
0DDh |
Сбрасывается после PUC |
USCI_B1 |
|
|
|
|
|
|
|
|
|
Регистр буфера приёма модуля |
UCB1RXBUF |
Чтение |
0DEh |
Сбрасывается после PUC |
USCI_B1 |
|
|
|
|
|
|
|
|
|
Регистр буфера передачи модуля |
UCB1TXBUF |
Чтение/запись |
0DFh |
Сбрасывается после PUC |
USCI_B1 |
|
|
|
|
|
|
|
|
|
Регистр разрешения прерываний |
UC1IE |
Чтение/запись |
006h |
Сбрасывается после PUC |
модулей USCI_A1/B1 |
|
|
|
|
|
|
|
|
|
Регистр флагов прерываний моду |
UC1IFG |
Чтение/запись |
007h |
00Ah после PUC |
лей USCI_A1/B1 |
|
|
|
|
UCAxCTL0, регистр управления 0 модуля USCI_Ax
UCBxCTL0, регистр управления 0 модуля USCI_Bx
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCCKPH |
UCCKPL |
UCMSB |
UC7BIT |
UCMST |
UCMODEx |
UCSYNC=1 |
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
|
16.4. Регистры модуля USCI: режим SPI 403
UCCKPH Бит 7 Фаза тактового сигнала.
0Данные выставляются по первому фронту сигнала UCLK, а счи
тываются по следующему фронту
1Данные считываются по первому фронту сигнала UCLK, а вы ставляются по следующему фронту
UCCKPL |
Бит 6 |
Полярность тактового сигнала. |
|
|
|
0 |
Неактивное состояние — НИЗКИЙ уровень |
|
|
1 |
Неактивное состояние — ВЫСОКИЙ уровень |
UCMSB |
Бит 5 |
Порядок передачи битов. Этот бит определяет направление сдвига |
|
|
|
принимаемых и передаваемых данных. |
|
|
|
0 |
Младший бит первый |
|
|
1 |
Старший бит первый |
UC7BIT |
Бит 4 |
Размер символа. Этот бит определяет длину передаваемых и прини |
|
|
|
маемых данных. |
|
|
|
0 |
8 битные данные |
|
|
1 |
7 битные данные |
UCMST |
Биты |
Выбор режима ведущего. |
|
|
3…2 |
0 |
Режим ведомого |
|
|
1 |
Режим ведущего |
UCMODEx |
Бит 1 |
Режим работы модуля USCI. Биты UCMODEx задают синхронный |
|
|
|
режим работы при UCSYNC = 1. |
|
|
|
00 |
3 проводный SPI |
014 проводный SPI, активный уровень UCxSTE — ВЫСОКИЙ: работа ведомого разрешается при UCxSTE = 1
104 проводный SPI, активный уровень UCxSTE — НИЗКИЙ: работа ведомого разрешается при UCxSTE = 0
11Режим I2C
UCSYNC |
Бит 0 Разрешение синхронного режима работы. |
|
|
0 |
Асинхронный режим |
|
1 |
Синхронный режим |
UCAxCTL1, регистр управления 1 модуля USCI_Ax
UCBxCTL1, регистр управления 1 модуля USCI_Bx
7 |
6 |
|
|
5 |
4 |
3 |
2 |
1 |
0 |
UCSSELx |
|
|
|
|
Unused |
|
|
UCSWRST |
|
|
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
|
rw–0*, r0** |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–1 |
|
* UCAxCTL1 (USCI_Ax) |
|
|
|
|
|
|
|||
** UCBxCTL1 (USCI_Bx) |
|
|
|
|
|
|
|||
UCSSELx |
Биты |
Выбор источника тактового сигнала модуля USCI. Эти биты опреде |
|||||||
|
7…6 |
ляют источник сигнала BRCLK в режиме ведущего. В режиме ведо |
|||||||
|
|
мого всегда используется сигнал UCxCLK. |
|
|
|||||
|
|
00 |
— |
|
|
|
|
|
|
|
|
01 |
ACLK |
|
|
|
|
|
|
|
|
10 |
SMCLK |
|
|
|
|
|
|
|
|
11 |
SMCLK |
|
|
|
|
|
|
Unused |
Биты |
Не используются |
|
|
|
|
|||
|
5…1 |
|
|
|
|
|
|
|
|
UCSWRST |
Бит 0 |
Программный сброс модуля USCI. |
|
|
|
0Модуль USCI в рабочем состоянии
1Модуль USCI удерживается в состоянии сброса
404 Глава 16. Универсальный последовательный коммуникационный интерфейс: режим SPI
UCAxBR0, регистр управления 0 скоростью обмена модуля USCI_Ax UCBxBR0, регистр управления 0 скоростью обмена модуля USCI_Bx
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
UCBRx – младший байт |
|
|
|
|
|
|
|
|
|
|
|
|
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
UCAxBR1, регистр управления 1 скоростью обмена модуля USCI_Ax UCBxBR1, регистр управления 1 скоростью обмена модуля USCI_Bx
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
UCBRx – старший байт |
|
|
|
|
|
|
|
|
|
|
|
|
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
UCBRx |
|
Коэффициент деления предделителя контроллера скорости обмена. |
|||||
|
|
Cодержимое |
этих |
регистров |
|
образует |
16 битное |
|
|
(UCxxBR0 + UCxxBR1 256) значение коэффициента деления. |
UCAxSTAT, регистр состояния модуля USCI_Ax
UCBxSTAT, регистр состояния модуля USCI_Bx
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCLISTEN |
UCFE |
UCOE |
Unused |
Unused |
Unused |
Unused |
UCBUSY |
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
rw–0 |
rw–0*, r0** |
rw–0 |
rw–0 |
rw–0 |
r–0 |
*UCAxSTAT (USCI_Ax)
**UCBxSTAT (USCI_Bx)
UCLISTEN Бит 7 Режим прослушивания. Этот бит включает режим кольцевой проверки.
0Выключен
1Включён. Выход передатчика внутри модуля подключен к входу приёмника
UCFE |
Бит 6 Флаг ошибки кадра. Этот бит служит признаком конфликта на шине |
|
|
в режиме ведущего при использовании 4 проводного интерфейса. |
|
|
В режиме ведущего 3 проводного интерфейса, а также в режиме ве |
|
|
домого бит UCFE не используется. |
|
|
0 |
Нет ошибки |
|
1 |
Зафиксирован конфликт на шине |
UCOE |
Бит 5 Флаг ошибки переполнения. Этот бит устанавливается, если приня |
|
|
тый символ помещается в регистр UCxRXBUF до прочтения из него |
|
|
предыдущего. Бит UCOE сбрасывается автоматически при чтении |
|
|
регистра UCxRXBUF и не должен сбрасываться программно. В про |
|
|
тивном случае этот бит не будет работать правильно. |
|
|
0 |
Нет ошибки |
|
1 |
Обнаружена ошибка переполнения |
Unused |
Биты Не используются. |
|
|
4…1 |
|
UCBUSY |
Бит 0 Модуль USCI занят. Этот бит указывает на то, что в данный момент |
|
|
выполняется приём или передача. |
|
|
0 |
Модуль USCI неактивен |
|
1 |
Модуль USCI осуществляет приём или передачу |
16.4. Регистры модуля USCI: режим SPI 405
UCAxRXBUF, регистр буфера приёма модуля USCI_Ax
UCBxRXBUF, регистр буфера приёма модуля USCI_Bx
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
UCRXBUFx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
r |
r |
r |
r |
r |
r |
r |
|
UCRXBUFx |
Биты |
Буфер приёма доступен пользователю и содержит последний приня |
||||||
|
7…0 тый символ, скопированный из сдвигового регистра приёма. При |
|||||||
|
|
чтении регистра UCxRXBUF сбрасываются флаги ошибок приёма и |
||||||
|
|
флаг UCxRXIFG. При работе с 7 битными данными содержимое |
UCxRXBUF выравнивается по младшему биту, а старший бит всегда сброшен.
UCAxTXBUF, регистр буфера передачи модуля USCI_Ax UCBxTXBUF, регистр буфера передачи модуля USCI_Bx
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
UCTXBUFx |
|
|
|
|
|
|
|
|
|
|
|
|
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
UCTXBUFx Биты Буфер передачи доступен пользователю и содержит значение, кото 7…0 рое будет перегружено в сдвиговый регистр передачи и передано по шине. При записи в регистр UCxTXBUF сбрасывается флаг UCxTXIFG. При работе с 7 битными данными старший бит регистра
UCxTXBUF не используется и всегда сброшен.
IE2, регистр разрешения прерываний 2
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
UCB0TXIE |
UCB0RXIE |
UCA0TXIE |
UCA0RXIE |
|
|
|
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
rw–0 |
rw–0 |
Биты Эти биты могут использоваться другими модулями. См документа 7…4 цию на конкретный микроконтроллер.
UCB0TXIE Бит 3 Разрешение прерывания передачи модуля USCI_B0. 0 Прерывание запрещено
1Прерывание разрешено
UCB0RXIE Бит 2 Разрешение прерывания приёма модуля USCI_B0. 0 Прерывание запрещено
1Прерывание разрешено
UCA0TXIE Бит 1 Разрешение прерывания передачи модуля USCI_A0. 0 Прерывание запрещено
1Прерывание разрешено
UCA0RXIE Бит 0 Разрешение прерывания приёма модуля USCI_A0. 0 Прерывание запрещено
1Прерывание разрешено
406 Глава 16. Универсальный последовательный коммуникационный интерфейс: режим SPI
IFG2, регистр флагов прерываний 2
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
UCB0TXIFGUCB0RXIFGUCA0TXIFG |
UCA0RXIFG |
||
|
|
|
|
|
|
|
|
|
|
|
|
rw–1 |
rw–0 |
rw–1 |
rw–0 |
Биты Эти биты могут использоваться другими модулями. См документа 7…4 цию на конкретный микроконтроллер.
UCB0TXIFG Бит 3 Флаг прерывания передачи модуля USCI_B0. Бит UCB0TXIFG уста навливается при опустошении регистра UCB0TXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
UCB0RXIFG Бит 2 Флаг прерывания приёма модуля USCI_B0. Бит UCB0RXIFG уста навливается при копировании принятого символа в регистр UCB0RXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
UCA0TXIFG Бит 1 Флаг прерывания передачи модуля USCI_A0. Бит UCA0TXIFG уста навливается при опустошении регистра UCA0TXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
UCA0RXIFG Бит 0 Флаг прерывания приёма модуля USCI_A0. Бит UCA0RXIFG уста навливается при копировании принятого символа в регистр UCA0RXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
UC1IE, регистр разрешения прерываний модулей USCI_A1/USCI_B1
7 |
|
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Unused |
|
Unused |
|
Unused |
Unused |
UCB1TXIE |
UCB1RXIE |
UCA1TXIE |
UCA1RXIE |
|
|
|
|
|
|
|
|
|
|
rw–0 |
|
rw–0 |
|
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
Unused |
Биты |
Не используются. |
|
|
|
|
|||
|
|
7…4 |
|
|
|
|
|
|
|
UCB1TXIE |
Бит 3 |
Разрешение прерывания передачи модуля USCI_B1. |
|
||||||
|
|
|
0 Прерывание запрещено |
|
|
|
1Прерывание разрешено
UCB1RXIE Бит 2 Разрешение прерывания приёма модуля USCI_B1. 0 Прерывание запрещено
1Прерывание разрешено
UCA1TXIE Бит 1 Разрешение прерывания передачи модуля USCI_A1. 0 Прерывание запрещено
1Прерывание разрешено
UCA1RXIE Бит 0 Разрешение прерывания приёма модуля USCI_A1. 0 Прерывание запрещено
1Прерывание разрешено
16.4. Регистры модуля USCI: режим SPI 407
UC1IFG, регистр флагов прерываний модулей USCI_A1/USCI_B1
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Unused |
Unused |
|
Unused |
Unused |
UCB1TXIFGUCB1RXIFGUCA1TXIFG |
UCA1RXIFG |
||
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
|
rw–0 |
rw–0 |
rw–1 |
rw–0 |
rw–1 |
rw–0 |
Unused |
Биты |
Не используются. |
|
|
|
|
||
|
7…4 |
|
|
|
|
|
|
|
UCB1TXIFG Бит 3 |
Флаг прерывания передачи модуля USCI_B1. Бит UCB1TXIFG уста |
|||||||
|
|
навливается при опустошении регистра UCB1TXBUF. |
|
|||||
|
|
0 Не было запроса прерывания |
|
|
|
1Есть запрос прерывания
UCB1RXIFG Бит 2 Флаг прерывания приёма модуля USCI_B1. Бит UCB1RXIFG уста навливается при копировании принятого символа в регистр UCB1RXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
UCA1TXIFG Бит 1 Флаг прерывания передачи модуля USCI_A1. Бит UCA1TXIFG уста навливается при опустошении регистра UCA1TXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
UCA1RXIFG Бит 0 Флаг прерывания приёма модуля USCI_A1. Бит UCA1RXIFG уста навливается при копировании принятого символа в регистр UCA1RXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
408 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C
17
ГЛАВА
УНИВЕРСАЛЬНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ
КОММУНИКАЦИОННЫЙ ИНТЕРФЕЙС: РЕЖИМ I2C
Модуль универсального последовательного коммуникационного интерфейса (USCI) поддерживает несколько режимов обмена по последовательному каналу. В этой главе описывается работа модуля в режиме I2C.
17.1. Введение
Модули универсального последовательного коммуникационного интерфейса (USCI) поддерживают несколько режимов передачи данных по последовательно му каналу, при этом разные модули USCI поддерживают различные режимы. Мо дули USCI имеют уникальное обозначение. Так, модуль USCI_A отличается от модуля USCI_B и т.д. Если в конкретном устройстве имеется более одного моду ля USCI с идентичными функциями, то в обозначение таких модулей добавляет ся порядковый номер. Например, если в устройстве имеется два модуля USCI_A, то они имеют обозначения USCI_A0 и USCI_A1. Чтобы узнать, какие именно мо дули USCI реализованы и реализованы ли вообще в конкретном микроконтрол лере, обратитесь к справочной документации.
Модули USCI_A поддерживают:
режим UART;
формирование импульсов для обмена по протоколу IrDA;
автоматическое определение скорости обмена для поддержки протокола LIN;
режим SPI.
Модули USCI_B поддерживают:
режим I2C;
режим SPI.
17.2. Введение в модуль USCI: режим I2C
В режиме I2C модуль USCI обеспечивает взаимодействие микроконтроллеров семейства MSP430 и различных I2C совместимых устройств, подключённых к 2 проводной последовательной шине I2C. Внешние устройства, подключённые к шине, передают и/или принимают в последовательном виде данные к/от модуля USCI с помощью 2 проводного интерфейса I2C.
17.3. Функционирование модуля USСI: режим I2C 409
Режим I2C имеет следующие особенности:
Соответствует спецификации I2C версии 2.1 компании Philips Semiconductor:
7 и 10 битный режимы адресации;
поддержка общих вызовов;
поддержка состояний СТАРТ/ПОВСТАРТ/СТОП;
режимы ведущий передатчик/ведущий приёмник с поддержкой несколь ких ведущих на шине;
режимы ведомый приёмник/ведомый передатчик;
поддержка стандартного (до 100 Кбит/с) и скоростного (до 400 Кбит/с) режимов.
Программируемая частота UCxCLK в режиме ведущего.
Низкое потребление.
Обнаружение ведомым приёмником состояния СТАРТ для автоматическо го выхода из режимов LPMx.
Работа в качестве ведомого в режиме LPM4.
Блок схема модуля USCI, сконфигурированного для работы в режиме I2C, приведена на Рис. 17.1.
17.3. Функционирование модуля USСI: режим I2C
В режиме I2C поддерживается взаимодействие с любыми ведомыми или веду щими I2C совместимыми устройствами. Пример использования шины I2C пока зан на Рис. 17.2. Каждое устройство на шине имеет уникальный адрес и может выступать в качестве либо передатчика, либо приёмника. Кроме того, все уст ройства, подключённые к шине I2C, можно разделить на ведущие и ведомые уст ройства. Ведущее устройство инициирует процесс пересылки данных и формиру ет тактовый сигнал SCL. Любое устройство, адресованное ведущим, рассматрива ется как ведомое.
Обмен по шине I2C осуществляется с использованием двух линий: линии дан ных (SDA) и линии синхронизации (SCL). Обе линии являются двунаправленны ми и должны быть подключены к источнику постоянного напряжения через под тягивающие резисторы.
Примечание. Уровни сигналов SDA и SCL
Уровни сигналов на выводах SDA и SCL микроконтроллеров MSP430 не должны превышать напряжение питания VCC микроконтроллера.
17.3.1. Инициализация и сброс модуля USCI
Модуль USCI сбрасывается по сигналу PUC или в результате установки бита USCSWRST. При появлении сигнала PUC бит USCSWRST автоматически уста навливается, переводя модуль в состояние сброса. Для переключения модуля в режим I2C необходимо установить оба бита UCMODEx = 11. После инициализа ции модуля он готов к передаче или приёму данных. Сброс бита USCSWRST пе реводит модуль USCI в рабочий режим.