MSP430_Final
.pdf
|
|
|
17.4. Регистры модуля USCI: режим I2C 431 |
UCGC |
Бит 5 |
Принят адрес общего вызова. Бит UCGS автоматически сбрасывает |
|
|
|
ся при обнаружении состояния СТАРТ. |
|
|
|
0 |
Не было общего вызова |
|
|
1 |
Был принят адрес общего вызова |
UCBBUSY |
Бит 4 |
Шина занята. |
|
|
|
0 |
Шина неактивна |
|
|
1 |
Шина занята |
UCNACKIFG Бит 3 Флаг прерывания по приёму NACK. Флаг UCNACKIFG автомати чески сбрасывается при обнаружении состояния СТАРТ.
0 Не было запроса прерывания
1Есть запрос прерывания
UCSTPIFG Бит 2 Флаг прерывания по состоянию СТОП. Флаг UCSTPIFG автомати чески сбрасывается при обнаружении состояния СТАРТ.
0 Не было запроса прерывания
1Есть запрос прерывания
UCSTTIFG Бит 1 Флаг прерывания по состоянию СТАРТ. Флаг UCSTTIFG автомати чески сбрасывается при обнаружении состояния СТОП.
0 Не было запроса прерывания
1Есть запрос прерывания
UCALIFG Бит 0 Флаг прерывания при потере арбитража. 0 Не было запроса прерывания
1Есть запрос прерывания
UCBxRXBUF, регистр буфера приёма модуля USCI_Bx
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
UCRXBUFx |
|
|
|
|
|
|
|
|
|
|
|
|
r |
r |
r |
r |
r |
r |
r |
r |
UCRXBUFx |
Биты |
Буфер приёма доступен пользователю и содержит последний приня |
|||||
|
7…0 |
тый символ, скопированный из сдвигового регистра приёма. При |
|||||
|
|
чтении регистра UCBxRXBUF сбрасывается флаг прерывания при |
|||||
|
|
ёма UCBxRXIFG. |
|
|
|
|
|
UCBxTXBUF, регистр буфера передачи модуля USCI_Bx |
|
|
|||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
UCTXBUFx |
|
|
|
|
|
|
|
|
|
|
|
|
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
UCTXBUFx |
Биты |
Буфер передачи доступен пользователю и содержит значение, кото |
|||||
|
7…0 |
рое будет перегружено в сдвиговый регистр передачи и передано по |
|||||
|
|
шине. При |
записи |
в регистр |
UCBxTXBUF |
сбрасывается флаг |
|
|
|
UCBxTXIFG. |
|
|
|
|
|
432 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C
UCBxI2COA, регистр собственного адреса I2C модуля USCI_Bx
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
UCGCEN |
0 |
0 |
0 |
0 |
0 |
I2COAx |
|
|
|
|
|
|
|
|
|
rw–0 |
r0 |
r0 |
r0 |
r0 |
r0 |
rw–0 |
rw–0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
I2COAx |
|
|
|
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
UCGCEN Бит 15 Распознавание адреса общего вызова. 0 Не отвечать на общие вызовы
1Отвечать на общие вызовы
I2COAx |
Биты |
Собственный адрес I2C. В битах I2COAx содержится собственный ад |
|||||||
|
|
9…0 |
рес контроллера I2C модуля USCI_Bx. Адрес выравнивается по пра |
||||||
|
|
|
вой границе. В 7 битном режиме адресации 6 й бит – старший, биты |
||||||
|
|
|
с 9 го по 7 й игнорируются. В режиме 10 битной адресации бит 9 – |
||||||
|
|
|
старший. |
|
|
|
|
|
|
UCBxI2CSA, регистр адреса I2C ведомого модуля USCI_Bx |
|
||||||||
15 |
|
14 |
|
13 |
12 |
11 |
10 |
9 |
8 |
|
|
|
|
|
|
|
|
|
|
0 |
|
0 |
|
0 |
0 |
0 |
0 |
I2CSAx |
|
|
|
|
|
|
|
|
|
|
|
r0 |
|
r0 |
|
r0 |
r0 |
r0 |
r0 |
rw–0 |
rw–0 |
7 |
|
6 |
|
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I2CSAx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
|
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
|
I2COAx |
Биты |
Адрес ведомого I2C. В битах I2CSAx содержится адрес внешнего I2C |
|||||||
|
|
9…0 |
устройства, адресуемого модулем USCI_Bx. Этот регистр использует |
||||||
|
|
|
ся только в режиме ведущего. Адрес выравнивается по правой грани |
||||||
|
|
|
це. В 7 битном режиме адресации 6 й бит – старший, биты с 9 го по |
||||||
|
|
|
7 й игнорируются. В режиме 10 битной адресации бит 9 – старший. |
||||||
UCBxI2CIE, регистр разрешения прерываний I2C модуля USCI_Bx |
|||||||||
7 |
|
6 |
|
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|||
|
|
Reserved |
|
UCNACKIE |
UCSTPIE |
UCSTTIE |
UCALIE |
||
|
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
|
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
|
Reserved |
Биты |
Зарезервированы. |
|
|
|
|
|||
|
|
7…4 |
|
|
|
|
|
|
|
UCNACKIE |
Бит 3 |
Разрешение прерывания по NACK. |
|
|
|
||||
|
|
|
0 |
Прерывание запрещено |
|
|
|
||
|
|
|
1 |
Прерывание разрешено |
|
|
|
||
UCSTPIE |
Бит 2 |
Разрешение прерывания по состоянию СТОП. |
|
|
|||||
|
|
|
0 |
Прерывание запрещено |
|
|
|
1Прерывание разрешено
|
|
|
17.4. Регистры модуля USCI: режим I2C 433 |
UCSTTIE |
Бит 1 |
Разрешение прерывания по состоянию СТАРТ. |
|
|
|
0 |
Прерывание запрещено |
|
|
1 |
Прерывание разрешено |
UCALIE |
Бит 0 |
Разрешение прерывания при потере арбитража. |
|
|
|
0 |
Прерывание запрещено |
|
|
1 |
Прерывание разрешено |
IE2, регистр разрешения прерываний 2
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCB0TXIE UCB0RXIE
rw–0 rw–0
Биты Эти биты могут использоваться другими модулями. См документа 7…4 цию на конкретный микроконтроллер.
UCB0TXIE Бит 3 Разрешение прерывания передачи модуля USCI_B0. 0 Прерывание запрещено
1Прерывание разрешено
UCB0RXIE Бит 2 Разрешение прерывания приёма модуля USCI_B0. 0 Прерывание запрещено
1Прерывание разрешено
Биты Эти биты могут использоваться другими модулями. См документа 1…0 цию на конкретный микроконтроллер.
IFG2, регистр флагов прерываний 2
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCB0TXIFG UCB0RXIFG
rw–1 rw–0
Биты Эти биты могут использоваться другими модулями. См документа 7…4 цию на конкретный микроконтроллер.
UCB0TXIFG Бит 3 Флаг прерывания передачи модуля USCI_B0. Бит UCB0TXIFG уста навливается при опустошении регистра UCB0TXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
UCB0RXIFG Бит 2 Флаг прерывания приёма модуля USCI_B0. Бит UCB0RXIFG уста навливается при копировании принятого символа в регистр UCB0RXBUF.
0 Не было запроса прерывания
1Есть запрос прерывания
Биты Эти биты могут использоваться другими модулями. См документа 1…0 цию на конкретный микроконтроллер.
434 Глава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C
UC1IE, регистр разрешения прерываний модуля USCI_B1
7 |
|
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Unused |
|
Unused |
|
Unused |
Unused |
UCB1TXIE |
UCB1RXIE |
|
|
|
|
|
|
|
|
|
|
|
|
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Прерывание разрешено
Биты Эти биты могут использоваться другими модулями. См документа 1…0 цию на конкретный микроконтроллер.
UC1IFG, регистр флагов прерываний модуля USCI_B1
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Unused |
Unused |
|
Unused |
Unused |
UCB1TXIFG |
UCB1RXIFG |
|
|
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
|
rw–0 |
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Есть запрос прерывания
Биты Эти биты могут использоваться другими модулями. См документа 1…0 цию на конкретный микроконтроллер.
18.2. Функционирование модуля OA 437
18.2.1. Операционный усилитель
Модуль OA представляет собой конфигурируемый операционный усилитель (ОУ) с малым потреблением и с выходом типа «rail to rail». Он может быть скон фигурирован как инвертирующий или неинвертирующий усилитель, а также со единён с другими модулями OA для реализации различных вариантов дифферен циальных усилителей. Скорость нарастания выходного напряжения модуля зада ётся программно битами OAMPx, что позволяет выбирать оптимальное соотношение между временем установления и потребляемым током. При OAMPx = 0 операционный усилитель выключен и его выход находится в высоко импедансном состоянии. При OAMPx > 0 операционный усилитель включён. Значения параметров операционного усилителя приводятся в справочной доку ментации на конкретные модели.
18.2.2. Входы модуля OA
Модуль имеет конфигурируемые входы. Сигналы, поступающие на инверти рующий и неинвертирующий входы операционного усилителя модуля, задаются независимо друг от друга битами OANx и OAPx соответственно. Эти сигналы мо гут быть как внешними, так и внутренними. Сигналы OAxI0 и OAxI1 являются внешними сигналами, индивидуальными для каждого модуля. Сигнал OA0I1 — это внешний сигнал для неинвертирующего входа ОУ, который является общим для всех модулей OA. Назначение сигналов OAxIA и OAxIB зависит от модели микроконтроллера. Соответствие этих сигналов выводам микроконтроллера при водится в справочной документации на конкретную модель.
Если инвертирующий вход модуля не используется, то, установив бит OANEXT, можно подключить инвертирующий вход ОУ непосредственно к выво ду микроконтроллера.
18.2.3. Выход модуля OA и организация обратной связи
Модуль OA имеет конфигурируемый выход. Конфигурация выхода определя ется битами OAADCx и OAFCx. Выход модуля может быть подключён внутри кристалла к входам A12 (OA0), A13 (OA1) или A14 (OA2) модуля 12 битного АЦП ADC12, при этом возможен вариант одновременного подключения выхода ОУ к соответствующему выводу микроконтроллера. Также выходные сигналы модуля могут поступать на входы АЦП A1 (OA0), A3 (OA1) или A5 (OA2) и одновременно на соответствующие выводы микроконтроллера. Посредством битов OAFCx вы ход ОУ также может быть подключён к внутреннему резистивному делителю. Ко эффициент деления этого делителя определяется битами OAFBRx, что позволяет реализовать усилитель с программируемым коэффициентом усиления.
Различные конфигурации выхода модуля OA перечислены в Табл. 18.1. При OAFCx = 0 модуль работает как обычный ОУ, а обратная связь реализуется вне шними элементами. При OAFCx > 0 и OAADCx = 00 или 11 выход модуля OA подключается к внутренним цепям микроконтроллера. При OAFCx > 0 и OAADCx = 01 или 10 выход модуля подключается как к внутренним цепям, так и к выводам микроконтроллера.
438 Глава 18. Модуль операционного усилителя OA
Таблица 18.1. Конфигурация выхода модуля OA
OAFCx |
OAADCx |
Выход OA и реализация обратной связи |
|
|
|
= 0 |
x0 |
OAxOUT подключается к выводам микроконтроллера и входу А1, А3 или А5 АЦП |
|
|
|
= 0 |
x1 |
OAxOUT подключается к выводам микроконтроллера и входу А12, А13 или А14 |
|
|
АЦП |
|
|
|
> 0 |
00 |
OAxOUT подключается к внутренним цепям микроконтроллера |
|
|
|
> 0 |
01 |
OAxOUT подключается к выводам микроконтроллера и входу А12, А13 или А14 |
|
|
АЦП |
|
|
|
> 0 |
10 |
OAxOUT подключается к выводам микроконтроллера и входу А1, А3 или А5 АЦП |
|
|
|
> 0 |
11 |
OAxOUT подключается к входу А12, А13 или А14 АЦП. Вывод микроконтроллера, |
|
|
соответствующий этому входу, отключается от модуля АЦП |
18.2.4. Конфигурация модуля OA
Модуль OA может использоваться для реализации различных вариантов диф ференциальных усилителей. Конкретный режим работы модуля определяется би тами OAFCx согласно Табл. 18.2.
Таблица 18.2. Конфигурация выхода модуля OA
OAFCx |
Режим модуля OA |
|
|
000 |
Операционный усилитель общего назначения |
|
|
001 |
Буфер с единичным усилением для реализации дифференциального усилителя из трёх ОУ |
|
|
010 |
Буфер с единичным усилением |
|
|
011 |
Компаратор |
|
|
100 |
Неинвертирующий PGA |
|
|
101 |
Многокаскадный неинвертирующий PGA |
|
|
110 |
Инвертирующий PGA |
|
|
111 |
Дифференциальный усилитель |
|
|
Операционный усилитель общего назначения
Вэтом режиме внутренний делитель обратной связи отключён от ОУ модуля,
аконфигурация выводов операционного усилителя определяется битами регист ра управления OAxCTL0. Сигналы, поступающие на входы ОУ, задаются битами OAPx и OANx. Выход ОУ подключается к одному из входов модуля ADC12, опре деляемому установками регистра OAxCTL0.
Буфер с единичным усилением для дифференциального усилителя
В этом режиме выход ОУ соединён с его инвертирующим входом, обеспечи вая коэффициент усиления, равный единице. Сигнал, подаваемый на неинверти рующий вход, определяется битами OAPx. Подача внешних сигналов на инверти рующий вход невозможна, поэтому содержимое битов OANx игнорируется. Вы ход ОУ подключается к одному из выводов внутренней резистивной цепочки. Этот режим используется только при реализации дифференциального усилителя на трёх ОУ.
440 Глава 18. Модуль операционного усилителя OA
лей. Выход делителя OAxTAP подключается к инвертирующему входу ОУ, образуя неинвертирующий усилитель с коэффициентом усиления –kOAxTAP. Коэффици
ент kOAxTAP определяется содержимым битов OAFBRx. При OAFBRx = 0 коэффи циент усиления равен единице. Сигнал, подаваемый на неинвертирующий вход,
определяется битами OAPx. Выход ОУ подключается к одному из входов модуля ADC12, определяемому установками регистра OAxCTL0.
Примечание. Одновременное использование вывода в качестве инвертирующего входа компаратора и входа АЦП
Если вывод, подключённый к мультиплексору инвертирующего входа, одновре менно используется в качестве входа АЦП, то возможно появление ошибки пре образования величиной до 5 мВ, вызванной падением напряжения на внутренних цепях.
Дифференциальный усилитель
В этом режиме модули OA микроконтроллера соединяются друг с другом, об разуя дифференциальный усилитель на двух или трёх ОУ. На Рис. 18.2 приведена схема усилителя на двух ОУ, реализованного на модулях OA0 и OA1. В данном ре жиме выход ОУ первого модуля подключается к линии RTOP этого же модуля че рез цепи второго модуля, работающего в режиме инвертирующего PGA. Второй конец резистивной цепочки RBOTTOM остаётся неподключённым, образуя буфер с единичным усилением. Этот буфер соединяется с одним или двумя оставшимися модулями, образуя дифференциальный усилитель. Выход усилителя подключает ся к одному из входов модуля ADC12, определяемому установками регистра OAxCTL0.
V2 |
|
|
+ |
|
|
|
|
|
OA1 |
|
|
|
|
|
– |
|
(V 2 − V 1)· R 2 |
V1 |
+ |
|
Vdiff |
= |
|
|
|
OA0 |
|
|
R1 |
|
|
|
|
|
|
|
– |
R1 |
R2 |
|
|
|
|
Рис. 18.2. Дифференциальный усилитель на двух ОУ. |
|
|
На Рис. 18.2 показана схема дифференциального усилителя на двух ОУ, реа лизованного на модулях OA0 и OA1. Значения регистров управления обоих моду лей приведены в Табл. 18.3. Коэффициент усиления усилителя задаётся битами OAFBRx модуля OA1 согласно Табл. 18.4. Внутренние соединения модулей пока заны на Рис. 18.3.