Микроконтроллеры MSP430

Адресное пространство микроконтроллеров MSP430F1xx. Байтовая и словная формы инструкций. Система команд MSP микроконтроллеров. Периферийные устройства микроконтроллеров MSP430F1xx. Аналого-цифровой преобразователь ADC12, его технические характеристики.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 04.05.2014
Размер файла 278,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В отличии от таймера A, регистры TBCCRx подключены к компаратору не напрямую, а через регистры-защелки TBCLx (Timer B Compare Latch), так, как это показано на рис. 7.

Рисунок 7. Буферизированное подключение TBCCR

Таким образом, компаратор сравнивает текущее содержимое таймера B не с содержимым регистра TBCCRx, а с TBCLx. Прямого доступа к регистрам TBCLx нет, однако данные в них могут переписываться из TBCCRx в ответ на какое-либо событие - например переход таймера через 0. Это дает возможность в начале периода работы таймера последовательно записать требуемые значения в регистры TBCCRx, а воспримутся эти значения синхронно для всех каналов со следующего периода.

Еще одна возможность синхронизации многоканальных ШИМ заключается в объединении нескольких модулей сравнения в группы. Группа может состоять из 2-х, 3-х или всех 7-ми модулей. Один модуль в группе является ведущим, остальные - ведомыми. Если программа записывает новые данные в регистры TBCCRx ведомых модулей, эти данные не воспринимаются (не переписываются в TBCLx) до тех пор, пока не будет произведена запись в TBCCR ведущего модуля. Таким образом, данные из TBCCRx всех модулей группы подхватываются одновременно в момент записи TBCL ведущего модуля.

Наконец, внешние выводы всех модулей сравнения могут быть переведены в высокоимпедансное состояние внешним сигналом, подключенным к выводу P5.7/TBOUTH. Для выключения выходов модулей сравнения необходимо сконфигурировать вывод P5.7/TBOUTH для поддержки периферийных функций (через регистр P5SEL) и подать на него потенциал логической единицы.

Регистры таймера B7 представлены в таблице 13.

Таблица 13

Регистр

Назначение

Адрес

TBR

Регистр содержимого таймера B

190h

TBCTL

Регистр управления таймера В

180h

TBCCR0

Регистр захвата/сравнения CC0

192h

TBCCTL0

Регистр управления CC0

182h

TBCCR1

Регистр захвата/сравнения CC1

194h

TBCCTL1

Регистр управления CC1

184h

TBCCR2

Регистр захвата/сравнения CC2

196h

TBCCTL2

Регистр управления CC2

186h

TBCCR3

Регистр захвата/сравнения CC3

198h

TBCCTL3

Регистр управления CC3

188h

TBCCR4

Регистр захвата/сравнения CC4

19Ah

TBCCTL4

Регистр управления CC4

18Ah

TBCCR5

Регистр захвата/сравнения CC5

19Ch

TBCCTL5

Регистр управления CC5

18Ch

TBCCR6

Регистр захвата/сравнения CC6

19Eh

TBCCTL6

Регистр управления CC6

18Eh

TBIV

Регистр идентификации прерывания

11Eh

Ш TBR (Timer B Register) -16-ти разрядный регистр текущего содержимого таймера. Регистр доступен как для записи, так и для чтения с помощью словных форм инструкций.

Ш TBCTL (Timer B Control) - содержит биты управления таймера B. Регистр доступен как для записи, так и для чтения с помощью словных форм инструкций и содержит следующие биты.

- -

TBCLGRP1,0

CNTL1,0

-

TBSSEL1,0

ID 1, 0

MC1,0

-

TBCLR

TBIE

TBIFG

· Бит 15 - зарезервирован.

· Биты 14, 13 - TBCLGRP (Timer B Compare Latch Group) - группирование загрузки модулей сравнения таймера B.

TBCLGRP1

TBCLGRP0

Группы

Ведущий модуль

0

0

нет

нет

0

1

TBCC1+TBCC2

TBCC3+TBCC4

TBCC5+TBCC6

TBCC1

TBCC3

TBCC5

1

0

TBCC1+TBCC2+ TBCC3

TBCC4+ TBCC5+TBCC6

TBCC1

TBCC4

1

1

TBCC0+TBCC1+TBCC2+ TBCC3+

TBCC4+ TBCC5+TBCC6

TBCC1

· Биты 12, 11 - CNTL (Counter Length) - длина счетчика.

Комбинация состояния этих бит определяет разрядность таймера B.

CNT1

CNT0

Разрядность

Макс. значение таймера

0

0

16 бит

FFFFh

0

1

12 бит

FFFh

1

0

10 бит

3FFh

1

1

8 бит

FFh

· Бит 10 - зарезервирован.

· Биты 9, 8 - TBSSEL (Timer B Source Select) - выбор источника тактирования таймера B.

·

TBSSEL1

TBSSEL0

Источник

0

0

TBCLK

0

1

ACLK

1

0

SMCLK

1

1

Инвертированный TBCLK

· Биты 7, 6 - ID (Input Divider) - комбинация состояния этих бит определяет коэффициент деления входного делителя таймера

ID1

ID0

Коэффициент

0

0

1 / 1

0

1

1 / 2

1

0

1 / 4

1

1

1 / 8

· Биты 5, 4 - MC (Mode Select) - комбинация состояния этих бит определяет текущий режим таймера

MC1

MC0

Режим

0

0

Остановлен

0

1

Up

1

0

Continuous

1

1

Up/Down

· Бит 3 - зарезервирован .

· Бит 2 - TBCLR (Timer B Clear) - программная установка этого бита вызывает сброс регистра TBR в 0. Бит сбрасывается в 0 автоматически.

· Бит 1 - TBIE (Timer B Interrupt Enable ) - установка/сброс этого бита разрешает/запрещает прерывание по переполнению таймера.

· Бит 0 - TBIFG (Timer A Interrupt Flag) - флаг требования прерывания. Устанавливается аппаратно при переполнении таймера или программно. Сбрасывается автоматически чтением регистра TBIV.

Ш TBCCTL 0…6 (Timer B Capture/compare Control) - содержат биты управления модулей захвата/сравнения. Все регистры имеют идентичную структуру и доступны по записи и чтению с помощью словных форм инструкций. Регистры содержат следующие биты

CM1, 0

CCIS1,0

SCS

CLLD1,0

CAP

OUTMOD 2,1,0

CCIE

CCI

OUT

COV

CCIFG

· Биты 15, 14 - CM (Capture Mode) - режим модуля захвата. Определяют тип события для срабатывания модуля захвата.

CM1

CM0

Тип события

0

0

Нет захвата

0

1

Растущий фронт

1

0

Падающий фронт

1

1

Любой фронт

· Биты 13, 12 - CCIS (Capture/Compare Input Select) - выбирают сигналы для входа модуля захвата.

CCIS1

CCIS0

Вход

0

0

CCIA

0

1

CCIB

1

0

GND

1

1

VCC

Для всех модулей, кроме TBCC6, комбинации CCIS - 00b и 01b - идентичны.

· Бит 11 - SCS (Synchronize Capture Source) - синхронизация источника захвата. Если этот бит установить в 1 то захват будет производиться синхронно с тактом таймера, в противном случае, захват будет произведен в момент обнаружения внешнего события.

· Биты 10, 9 - CLLD (Compare Latch Load) - загрузка защелок при сравнении.

Комбинация этих бит определяет событие, по которому содержимое регистров TBCCRx перезаписывается в защелки TBCLx

CLLD1

CLLD0

Событие

0

0

Запись в TBCCRx (буферизации нет)

0

1

TBR досчитывает до 0

1

0

UP и Continuous режимы: TBR досчитывает до 0

UP/DOWN режим: TBR досчитывает до TBCL0 или до 0

1

1

TBR досчитывает до TBCLx

В том случае если модули сгруппированы (TBCTL.TBCLGRP?0), перезапись в TBCLx будет производиться по событию, определенному битами CLLD ведущего модуля. У ведомых модулей биты CLLD не должны быть равны 0, т.к. буферизация выключается. Для групповой загрузки необходимо, чтобы была произведена запись во все регистры TBCCRx, даже в том случае, если данные остаются неизменными.

· Бит 8 - CAP (Capture) - установка/ сброс этого бита выбирает режим захвата или сравнения модуля TBCCx соответственно.

· Биты 7,6,5 - OUTMOD (Output Mode) - определяют режим работы выходов модуля сравнения.

OUTMOD2

OUTMOD1

OUTMOD0

Режим

Действие

0

0

0

Out

TBCCTLx.OUT

0

0

1

Set

1 : TBR=CCRx

0

1

0

Toggle/reset

Переключение : TBR=CCRx,

0 : TBR=CCR0

0

1

1

Set/reset

1 : TBR=CCRx, 0 : TBR=CCR0

1

0

0

Toggle

Переключение : TBR=CCRx

1

0

1

Reset

0 : TBR=CCRx

1

1

0

Toggle/set

Переключение : TBR=CCRx,

1 : TBR=CCR0

1

1

1

Reset/set

0 : TBR=CCRx, 1 : TBR=CCR0

· Бит 4 - CCIE (Capture/Compare Enable) - установка/сброс этого бита разрешает/запрещает прерывания от модуля захвата/сравнения.

· Бит 3 - CCI (Capture/Compare Input) - через этот бит читается состояние входа модуля захвата, подключенное битами CCIS этого регистра. Бит доступен только по чтению.

· Бит 2 - OUT - содержимое этого бита определяет состояние выхода модуля сравнения, если биты OUTMOD=0.

· Бит 1 - COV (Capture Overflow) - переполнения захвата. Устанавливается аппаратно, если при срабатывании модуля захвата, предыдущее захваченное значение таймера не было вычитано из CCRx. Сбрасываться бит должен программно.

· Бит 0 - CCIFG (Capture/Compare Interrupt Flag) - флаг требования прерывания. Устанавливается аппаратно при срабатывании модуля захвата/сравнения. Для TBCCTL0 бит сбрасывается аппаратно при вхождении в прерывание или программно. Для TBCCTL1 … TBCCTL6 бит сбрасывается чтением регистра TBIV.

Ш TBIV (Timer B Interrupt Vector) - регистр идентификации прерывания для таймера B. Выполняет функции, аналогичные функциям регистра TAIV (см. п.3.7). В регистре TBIV возможны следующие коды:

· 0 - нет прерываний;

· 2 - установлен флаг TBCCTL1.CCIFG;

· 4 - установлен флаг TBCCTL2.CCIFG;

· 6 - установлен флаг TBCCTL3.CCIFG;

· 8 - установлен флаг TBCCTL4.CCIFG;

· 10 - установлен флаг TBCCTL5.CCIFG;

· 12 - установлен флаг TBCCTL6.CCIFG;

· 14- установлен флаг TBCTL.TAIFG.

3.9 Интерфейс USART

Интерфейс USART (Universal Synchronous/Asynchronous Receiver-Transmitter) -универсальный синхронно-асинхронный приемопередатчик - предназначен для обмена данными между микроконтроллером и внешними устройствами.

Микросхема MSP430F149 содержит два идентичных модуля - USART0 и USART1. Каждый модуль поддерживает три режима:

· Универсальный асинхронный приемопередатчик UART;

· Синхронный периферийный интерфейс SPI (Serial Peripheral Interface);

· Интерфейс I2C (Inter Integrated Circuits control).

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

Таблице 13

Имя

Назначение регистра

Адрес

Нач.значен.

U0CTL

Управление USART0

70h

1

U0TCTL

Управление передатчика USART0

71h

1

U0RCTL

Управление приемника USART0

72h

0

U0BR0

Управление скоростью USART0 мл. байт

74h

-

U0BR1

Управление скоростью USART0 ст. байт

75h

-

U0MCTL

Управление модулятора USART0

73h

-

U0RXBUF

Буфер приемника USART0

76h

-

U0TXBUF

Буфер передатчика USART0

77h

-

ME1

Разрешение приемника/передатчика USART0

4

0

E1

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

0

0

IFG1

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

2

82h

U1CTL

Управление USART1

78h

1

U1TCTL

Управление передатчика USART1

79h

1

U1RCTL

Управление приемника USART1

7Ah

0

U1BR0

Управление скоростью USART1 мл. байт

7Ch

-

U1BR1

Управление скоростью USART1 ст. байт

7Dh

-

U1MCTL

Управление модулятора USART1

7Bh

-

U1RXBUF

Буфер приемника USART1

7Eh

-

U1TXBUF

Буфер передатчика USART1

7Fh

-

ME2

Разрешение приемника/передатчика USART1

5

0

E2

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

1

0

IFG2

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

3

20h

3.9.1 Режим UART

В этом режиме USART обеспечивает работу согласно популярным протоколам RS232, RS485 и др. USART подключается к внешним устройствам через два вывода: URXD - вход приемника, UTXD - выход передатчика.

В этом режиме обеспечиваются следующие характеристики:

· Кадр данных длинной 7 или 8 бит с контролем или без контроля четности;

· Независимые сдвиговые регистры для приемника и передатчика;

· Независимые буферные регистры для приемника и передатчика;

· Аппаратная поддержка коммуникационных протоколов для многопроцессорных систем;

· Программируемая скорость передачи;

· Внутреннее или внешнее тактирование;

· Независимые вектора прерывания для приемника и передатчика.

Данные передаются/принимаются с помощью кадров, состоящих из следующей последовательности бит:

· Стартовый бит - всегда низкий уровень;

· 7 или 8 информационных бит;

· Адресный бит, используемый для коммуникации в многопроцессорных системах (опционально);

· Бит паритета - устанавливается в зависимости от того четное или нечетное количество логических единиц содержит информационное поле (опционально);

· Один или два стоповых битов - всегда высокий уровень.

3.9.1.1 Передача данных

Передача данных инициируется записью передаваемых данных в буферный регистр передатчика UTXBUF. Из буферного регистра данные автоматически перезаписываются в выходной сдвиговый регистр, который выдвигает их через вывод микроконтроллера UTXD младшим битом вперед, опционально дополняя информационные биты адресным битом и/или битом паритета и обрамляя кадр стартовым и стоповым битами. На линии UTXD каждый бит удерживается в течение времени, определяемой текущей битовой скоростью, которая, в свою очередь, зависит от частоты тактирования UART и содержимого регистра UBR (USART Baud Rate).

После копирования данных в сдвиговый регистр аппаратно устанавливается флаг UTXIFGx в регистрах IFG1 или IFG2 (см. п.3.2), информируя пользователя, что буфер свободен и может принять следующий байт. Не дожидаясь окончания физической передачи первого кадра, в буфер UTXBUF может быть записан следующий байт. Как только первый байт, включая стоп-биты, будет выдвинут через вывод UTXD, второй байт, находящийся в UTXBUF, будет автоматически скопирован в сдвиговый регистр и начнется передача следующего кадра. Таким образом, за счет буферирования, осуществляется непрерывная передача данных кадр за кадром.

3.9.1.2 Передача данных

Прием последовательных данных производится через вывод URXD микроконтроллера. Приемник UART ожидает перепад напряжения 1> 0 на входе URXD. После того, как перепад обнаружен, приемник включает свой тактовый генератор и выдерживает время, равное половине длительности одного бита. По прошествии этого интервала времени приемник трижды измеряет напряжение на линии. Если хотя бы два результата измерения оказались нулевыми, принимается решение, что зафиксирован стартовый бит. Если были зарегистрировано две или более логические единицы, принимается решение, что перепад на входе URXD является следствием шумов на линии. В этом случае приемник переходит в фазу ожидания следующего старт-бита.

В том случае, если был опознан правильный старт-бит, сдвиговый регистр приемника начинает принимать данные. Через время, равное длительности одного бита, производится троекратное измерение потенциала на линии. Решение о состоянии бита производится по мажоритарному принципу. После приема всего кадра данных производится контроль стоп-бита. Если его значение оказалось равным нулю, в регистре управления приемника UART выставляется флаг ошибки кадра FE. Если использовался бит паритета и зафиксирована ошибка четности, выставляется флаг ошибки четности PE.

После приема всего кадра, данные из сдвигового регистра переписываются в буфер приемника URXBUF, а в регистре IFG1/IFG2 устанавливается флаг URXIFGx, сигнализирующий о принятом байте. До того как полученный байт будет вычитан из буфера, сдвиговый регистр способен принимать следующие данные. Однако если данные из буфера не будут вычитаны к моменту перезаписи байта из сдвигового регистра в буфер приемника, в статусном регистре приемника устанавливается флаг OE, сигнализируя о потере данных.

3.9.1.3 Поддержка коммуникации в многопроцессорных системах

С помощью UART можно организовать обмен данными между несколькими микроконтроллерами, используя, например, аппаратный интерфейс RS485. Не вдаваясь в тонкости аппаратной реализации RS485, укажем, что все микроконтроллеры (абоненты) объединяются в локальную информационную сеть. При этом каждый передатчик одного абонента может быть соединен с приемниками всех других абонентов. Передачу всегда ведет один абонент с помощью блоков кадров (пакетов), а прием этих блоков осуществляют все абоненты сети. Для того чтобы абонент-получатель определил, что пакет предназначен именно для него, первый байт пакета, как правило, содержит информацию об адресе получателя. Если абонент-получатель распознал свой адрес, он принимает весь пакет, в противном случае пакет игнорируется. Поэтому для производительной работы в локальной сети необходим эффективный механизм распознавания начала информационного пакета. Для этих целей UART микроконтроллеров MSP430 поддерживает два механизма: использование адресного бита (address bit) и режим свободной линии (idle line).

Для режима idle line необходимо, чтобы пауза вежду последовательно передаваемыми кадрами в пакете не превышала длительности одного кадра. При получении первого кадра после паузы в регистре управления приемника аппаратно устанавливается бит RXWAKE, сигнализируя, что принят адресный байт. Программная установка другого бита этого регистра RXWIE позволяет приемнику игнорировать все не адресные байты (бит RXIFG не устанавливается). Таким образом, абонент-получатель нормально устанавливает бит RXWIE и ожидает получения первого байта, после чего сравнивает его содержимое с собственным адресом. Если адрес опознан, он сбрасывает бит RXWIE и принимает далее весь пакет. После приема адресованного ему пакета бит RXWIE взводится опять. В том случае, если адрес не опознан, RXWIE не сбрасывается, следовательно, остальные байты пакета отбрасываются приемником.

Для генерации абонентом-отправителем точного периода простоя на своей линии UTXD имеется специальный бит TXWAKE в регистре управления передатчика. Абонент-отправитель должен дождаться готовности передатчика (бит TXIFG должен быть установлен), установить в 1 бит TXWAKE, после чего записать произвольные данные в буфер UTXBUF. Т.к. бит TXWAKE установлен, физически данные передаваться не будут, но по окончанию длительности передачи кадра будет взведен флаг TXIFG, после чего можно передавать адресный байт. Бит TXWAKE сбрасывается автоматически после передачи паузы.

Логика работы локальной сети в режиме address bit очень похожа на режим idle line с той лишь разницей, что маркирование адресного байта производится не паузой при передаче пакетов, а наличием дополнительного бита в кадре, установленного в 1, в то время как все данные передаются со сброшенным адресным битом. Логика работы с битами RXWAKE и RXWIE аналогична вышеизложенной. Для того чтобы пометить начало пакета абонент-отправитель должен просто перед посылкой первого байта установить в 1 бит TXWAKE.

3.9.1.4 Обнаружение стартового бита при приеме

В том случае, если необходимо вести прием данных при выключенном, с целью снижения потребления, тактировании UART, имеется механизм, позволяющий получить прерывание при поступлении стартового бита на вход приемника. Для этого используется бит URXSE, расположенный, как это не странно, в регистре управления передатчика. В том случае, если URXSE=1, разрешено прерывание по приему и на линию URXD приходит фронт стартового бита, берется прерывание с адресом готовности приемника. Подпрограмма обработки прерывания может определить причину возникновения прерывания по состоянию бита URXIFG. Если этот бит равен нулю, следовательно, обнаружен фронт старт бита, в противном случае, был принят очередной символ приемником UART. Определение фронта старт-бита дает возможность подпрограмме обработки прерывания активизировать тактировании UART для нормального приема всего кадра.

3.9.1.5 Скорость передачи

Генератор скорости приема/передачи способен создавать стандартные скорости при нестандартных частотах тактирования UART. Максимальная скорость приема/передачи составляет одну треть от частоты источника тактирования.

Генерация нужной частоты проводится в две стадии. На первой стадии используется 16-ти разрядный делитель частоты тактирования UBR, состоящий из двух регистров UBR0 (младший байт) и UBR1 (старший байт). На второй стадии задействуется 8-ми разрядный модулятор UMCL.

В первом приближении скорость передачи в бодах определяется по формуле

Baud=BRCLK/N

где

BRCLK - частота тактирования UART в герцах;

N - содержимое регистра UBR.

Программистам, однако, гораздо чаще приходится сталкиваться с обратной задачей - для заданной частоты тактирования и желаемой скорости приема/передачи необходимо определить содержимое UBR. Очевидно, что

N=BRCLK/B.

Однако, возможна ситуация, когда вычисленная величина N не является целочисленным значением. Например, если требуется стандартная скорость Baud=115.2 kb/s при BRCLK=1 Mhz, получим

N=1000/115.2=8.68

Для загрузки данных в UBR полученное значение придется округлить до 9. В этом случае действительная скорость приема/передачи составит 111.1 kb/s, в то время как внешнее устройство, подключенное к UART, будет работать на скорости 115.2 kb/s. Отсюда возникает вопрос, насколько точно нужно согласовывать скорости передатчика на одной стороне и приемника на другой, чтобы данные принимались без ошибок. В первом приближении можно сказать, что скорости приемника и передатчика должны быть согласованы с точностью д не хуже

д ?50%/n, где n - длина кадра.

Т.е. если используется 10-ти битный кадр (8 бит данных, старт и стоп биты), погрешность не должна превосходить 5%. Другими словами, погрешность округления полученного коэффициента деления не должна, в данном случае, быть больше 5%.

В нашем примере погрешность округления составит д = 100% *(9-8.68)/8.68 ? 3.7 %, следовательно, приемник будет правильно воспринимать данные, посланные передатчиком.

Отдельный интерес представляет случай, когда необходимо, чтобы микроконтроллер работал на низкой частоте (типовой случай - тактирование частотой 32768 Hz) и, в тоже время, передавал/принимал данные на стандартной скорости, например 9600 b/s. Для этого случая получим N=32768/9600 = 3.41 и погрешность округления

д = 100%*(3.41-3)/3.41=12.1 %

Действительная скорость передачи составит B = 32768/3 = 10922 b/s. Понятно, что полученные значения является неприемлемыми.

Для того чтобы получить высокую заданную скорость передачи данных при низких частотах тактирования используется модулятор. Работа модулятора управляется данными, записанными в него. По мере передачи/приема битов сдвиговым регистром, содержимое модулятора также просматривается бит за битом, начиная с младшего. В том случае, если текущий бит модулятора равен 0, используется коэффициент деления UBR, в противном случае используется коэффициент деления, равный UBR+1. Таким образом, происходит подстройка длительности каждого бита в кадре. Если количество битов в кадре больше 8, как чаще всего и бывает, просмотр содержимого UMCL опять начинается с младшего бита.

Для того, чтобы определить требуемые значения в UBR и UMCL коэффициент деления N представляется формулой

N=UBR+1/n*Уmi

где

UBR - содержимое регистра UBR:

n - длина кадра;

mi - состояние (0 или 1) i-го бита, записанного в модулятор UMCL.

Другими словами, содержимое UBR и сумма всех единиц в UMCL, отнесенных на длину кадра, должна как можно точнее соответствовать желаемому коэффициенту деления.

Упрощенная методика определения содержимого UBR и UMCL заключается в следующем. В рассчитанном значении N отбрасывается дробная часть и определяется количество 1, содержащееся в модуляторе. После этого для получения кода UMCL эти единицы более или менее равномерно расставляются в 8-ми битном поле содержимого UMCL. Следует помнить, что для 10-ти битного кадра 2 младших бита UMCL будут использованы дважды.

Приведем пример расчета содержимого UBR и UMCL для вышеприведенного случая.

N=32768/9600 = 3.4133

Значение делителя составит UBR0=3, UBR1=0.

Уmi =n*(N-UBR)=10*(3.4133-3)=4.133 ? 4

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

№ бита кадра

0

1

2

3

4

5

6

7

8

9

№ бита UMCL

0

1

2

3

4

5

6

7

0

1

Значение

1

0

0

1

0

0

1

0

1

0

Из приведенных данных видно, что на длине кадра располагаются 4 единицы, хотя при таком раскладе, UMCL будет содержать только три единицы. Читая код UMCL справа налево, получим значение 01001001b =45h.

Таким образом, получен дробный коэффициент деления M=3+4/10=3.4, при этом ошибка скорости составит д = 100% * (3.4133 - 3.4)/3.4133 = 0.39%, а фактическая скорость B=32768/3.4=9638 b/s.

3.9.1.6 Регистры USART

Ш UxCTL (USART Control) - содержит биты управления USART.

PENA

PEV

SPB

CHAR

LISTEN

SYNC

MM

SWRS

· Бит 7 - PENA (Parity Enable) -разрешение паритета. Установка/сброс этого бита включает/выключает контроль четности единиц в кадре.

· Бит 6 - PEV (Parity Even) - четность паритета. Установка/сброс этого бита выбирает паритет четности/нечетности в том случае, если паритет разрешен.

· Бит 5 - SPB (Stop Bit) - состояние этого бита задает количество стоп-битов в конце кадра:

0 - 1 стоп бит,

1 - 2 стоп бита.

· Бит 4 - CHAR (Character) - определяет длину информационного поля кадра:

0 - 7 битов,

1 - 8 битов.

· Бит 3 - LISTEN - прослушивание. Установка этого бита подключает выход UTXD ко входу URXD внутри USART, что дает возможность приемнику прослушивать данные, передаваемые собственным передатчиком.

· Бит 2 - SYNC (Synchronous) - должен быть сброшен для задания режима UART.

· Бит 1 - MM (Multiprocessor Mode) - установка/сброс этого бита задает режим многопроцессорного протокола:

0 - режим свободной линии - idle line,

1 - режим адресного бита - address bit.

· Бит 0 - SWRS (Software Reset) - программный сброс. Установка этого бита в 1 производит программный сброс аппаратуры USART в исходное состояние, 0 - разрешает работу USART.

Ш UxTCTL (USART Control) - содержит биты управления передатчика USART.

-

CKPL

SSEL1,0

URXSE

TXWAKE

-

TEXP

· Бит 7 - зарезервирован.

· Бит 6 - CKPL (Clock Polarity) - выбор полярности тактирования при использовании внешнего тактового сигнала UCLK. Установка этого бита инвертирует тактирующий сигнал.

· Биты 5,4 - SSEL (Source Select) - комбинация этих бит задает источник тактирования USART

SSEL1

SSEL0

Источник

0

0

Внешний UCLK

0

1

ACLK

1

0

SMCLK

1

1

SMCLK

· Бит 3 - URXSE (UART Receive Start Edge) - контроль фронта стартового бита. Установка/сброс этого бита разрешает/запрещает реакцию на фронт стартового бита (см. п. 3.9.1.4).

· Бит 2 - TXWAKE (Transmitter Wake) - пробуждение передатчика. При установке этого бита следующий кадр посылается как адресный. Сбрасывается автоматически.

· Бит 1 - зарезервирован.

· Бит 0 - TXEPT ( Transmitter Empty) - передатчик пуст. Устанавливается в 1 аппаратно в том случае если UTXBUF и сдвиговый регистр не содержит данных, в противном случае сбрасывается.

Ш UxRCTL (USART Control) - содержит биты управления приемника USART.

FE

PE

OE

BRK

URXEIE

URXWIE

RXWAKE

RXERR

· Бит 7 - FE (Frame Error) - ошибка кадра. Устанавливается аппаратно, если принятый стоп-бит равен 0. Сбрасывается программно или чтением URXBUF.

· Бит 6 - PE (Parity Error) - ошибка паритета. Устанавливается аппаратно, если было обнаружено несоответствие единиц в полученном кадре и состоянием бита паритета. Сбрасывается программно или чтением URXBUF.

· Бит 5 - OE (Overrun Error) - ошибка переполнения. Устанавливается аппаратно если при копировании данных из сдвигового регистра в URXBUF, старые данные не были вычитаны из буфера. Сбрасывается программно или чтением URXBUF.

· Бит 4 - BRK (Break) - разрыв линии. Устанавливается аппаратно, если приемник обнаружил 10 или более нулевых битов на входе URXD. Сбрасывается программно или чтением URXBUF.

· Бит 3 - URXEIE (Receive Erroneous-character Interrupt Enable) - разрешение прерывания при приеме ошибочного символа. Устанавливается/сбрасывается для разрешения/запрещения приема ошибочных символов - т.е. символов, прием которых вызвал установку битов 7,6,5 этого регистра. Если этот бит сброшен, прием символа с ошибками не устанавливает флаг URXIFG.

· Бит 2 - URXWIE (Receive Wake-up Interrupt Enable) - разрешение прерывания при получении адресного байта. При установке этого бита принимаются (устанавливается флаг URXIFG) только адресные байты. При сбросе бита принимаются все байты.

· Бит 1 - RXWAKE (Receive Wake-up) - прием адресного байта. Устанавливается аппаратно при приеме адресного байта. Сбрасывается аппаратно при приеме байта данных.

· Бит 0 - RXERR (Receive Error) - ошибка приема. Устанавливается аппаратно, если установлен любой из флагов ошибок (FE,PE,OE,BRK). Сбрасывается чтением URXBUF.

Ш UxMCTL (USART Control) - содержит биты управления модулятора USART (см. 3.9.1.5).

Ш UxBR0 (Baud Rate) - младший байт делителя частоты тактирования UART.

Ш UxBR1 (Baud Rate) - старший байт делителя частоты тактирования UART.

Ш UxTXBUF (Transmit Buffer) - буферный регистр передатчика.

Ш UxRXBUF (Transmit Buffer) - буферный регистр приемника

Ш ME1 (Module Enable 1) - содержит биты разрешения приемника и передатчика USART0.

UTXE0

URXE0

-

· Бит 7 - UTXE0 (USART0 Transmit Enable). Установка/сброс этого бита разрешает/запрещает передатчик USART0.

· Бит 6 - URXE0 (USART0 Receive Enable). Установка/сброс этого бита разрешает/запрещает приемник USART0.

· Биты 5…0 - зарезервированы.

Ш ME2 (Module Enable 2) - содержит биты разрешения приемника и передатчика USART1.

-

UTXE1

URXE1

-

· Биты 7,6 - зарезервированы.

· Бит 5 - UTXE1 (USART1 Transmit Enable). Установка/сброс этого бита разрешает/запрещает передатчик USART1.

· Бит 4 - URXE1 (USART1 Receive Enable). Установка/сброс этого бита разрешает/запрещает приемник USART1.

· Биты 3…0 - зарезервированы.

Ш IE1 (Interrupt Enable 1) - содержит биты разрешения прерываний для USART0 (см. п.3.2).

Ш IE2 (Interrupt Enable 2) - содержит биты разрешения прерываний для USART1 (см. п.3.2).

Ш IFG1 (Interrupt Flag 1) - содержит флаги прерываний для USART0 (см. п.3.2).

Ш IFG2 (Interrupt Flag 2) - содержит флаги прерываний для USART1 (см. п.3.2).

ПРИМЕР

Принять 100 байт данных с помощью UART0 и записать их в ОЗУ, начиная с адреса 200h. Скорость передачи данных - 115.2 kb/s, формат - 8 бит, один стоп бит, частота SMCLK - 8 MHz.

Рассчитаем коэффициент деления частоты SMCLK для обеспечения требуемой скорости.

N=8000/115.2=69.4?69

Погрешность скорости д=100% * (69.4-69)/69.4?0.6 %, следовательно модулятор можно не использовать.

bis.b #SWRST+CHAR, &U0CTL ; устанавливаем программный

; сброс, режим 8 бит

mov.b #SSEL1, &U0TCTL ; тактирование от SMCLK

mov.b #69, &U0BR0 ; установка скорости приема

mov.b #0, &U0BR1

mov.b #0, &U0MCTL

bis.b #URXE0, &ME1 ; разрешение приема

bic.b #URXIE0, &IE1 ; запрет прерываний

bic.b #SWRST, &U0CTL ; очистка программного сброса

bis.b #40h, &P3SEL ; вывод P3.5/U0RXD для

; поддержки UART0

mov #200h, R12 ; настраиваем указатель

wait: bit.b #URXIFG0, &IFG1 ; ожидание поступления кадра

jz wait

mov.b &U0RXBUF, 0(R12) ; сохранение данных в ОЗУ

inc R12 ; наращивание указателя

cmp #200h+100, R12 ; все данные приняты?

jne wait ; если нет, то цикл

3.9.2 Режим SPI

Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) обеспечивает высокоскоростной синхронный обмен данными между двумя микроконтроллерами или другими внешними устройствами. В обмене данными всегда принимают участие ведущее (master) и ведомое (slave) устройства. Для интерфейса используются следующие сигналы:

· SIMO (Slave Input, Master Output) - вход ведомого, выход ведущего;

· SOMI (Slave Output, Master Input) -выход ведомого, вход ведущего;

· UCLK (USART Clock) - сигнал тактирования;

· STE (Slave Transmit Enable) - вход разрешение передачи ведомого, опциональный сигнал используется только в 4-х проводном режиме.

Для обмена данными через интерфейс SPI необходимо одноименные сигналы SIMO, SOMI и UCLK ведущего и ведомого устройств соединить между собой. Обмен данными начинается после того, как в буфер ведущего устройства UTXBUF записываются данные. В том случае, если сдвиговый регистр передатчика пуст, эти данные копируется в него, и мастер начинает выдвигать их на линию SIMO бит за битом начиная со старшего. При этом ведущее устройство для каждого информационного бита генерирует синхроимпульс на линии UCLK. Одновременно с передачей данных, ведущее устройство принимает данные, присутствующие на линии SOMI, задвигая их в сдвиговый регистр приемника. После того, как был передан/принят информационный кадр, данные из сдвигового регистра приемника переписываются в буфер RXBUF.

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

В том случае, если используется 3-х проводной SPI, вывод STE не оказывает влияние на работу интерфейса. При 4-х проводном интерфейсе логика работы входного сигнала STE заключается в следующем:

· Устройство сконфигурировано как master. Если на вход STE подано напряжение высокого уровня, интерфейс работает нормально. Если на вход подается логический 0, это означает, что другое устройство желает стать ведущим, поэтому выводы SIMO и UCLK переключаются на ввод, а SOMI - на вывод.

· Устройство сконфигурировано как slave. Если на вход STE подан логический 0, интерфейс работает нормально. Если на вход STE подать логическую единицу, все линии SPI переключаются на ввод, и интерфейс выключается.

Битовая скорость определяется содержимым регистров UBR0 и UBR1 ведущего устройства и определяется формулой

Baud=BRCLK/UBR,

где

BRCLK - частота тактирования USART.

Максимальная битовая скорость, генерируемая мастером не должна превышать BRCLK/2. Максимальная битовая скорость для ведомого устройства не должна превышать BRCLK. Модулятор для интерфейса SPI не используется, поэтому рекомендуется держать содержимое регистра UxMCTL равное 0.

Управление SPI осуществляется с помощью следующих регистров.

Ш UxCTL (USART Control) - содержит биты управления USART.

-

I2C

CHAR

LISTEN

SYNC

MM

SWRS

· Биты 7,6 - зарезервированы.

· Бит 5 - I2C - должен быть установлен в 0, для работы USART в режиме SPI.

· Бит 4 - CHAR (Character) - определяет длину информационного поля кадра:

0 - 7 битов,

1 - 8 битов.

· Бит 3 - LISTEN - прослушивание. Установка этого бита подключает выход SIMO ко входу приемника внутри USART, что дает возможность приемнику прослушивать данные, передаваемые собственным передатчиком.

· Бит 2 - SYNC (Synchronous) - должен быть установлен в 1 для задания режима SPI.

· Бит 1 - MM (Master Mode) - установка/сброс этого бита задает режим ведущего/ведомого устройства SPI.

· Бит 0 - SWRS (Software Reset) - программный сброс. Установка этого бита в 1 производит программный сброс аппаратуры USART в исходное состояние, 0 - разрешает работу SPI.

Ш UxTCTL (USART Control) - содержит биты управления передатчика USART.

CKPH

CKPL

SSEL1,0

-

STC

TEXP

· Бит 7 - CKPH (Clock Phase) -фаза тактирования на выводе UCLK (см. рис.8).

0 - нормальное тактирование;

1 - сдвиг тактирования на половину периода длительности такта.

· Бит 6 - CKPL (Clock Polarity) - выбор полярности тактирования тактового сигнала UCLK . (см. рис.8)

0 - неактивный уровень низкий,

1 - неактивный уровень высокий.

· Биты 5,4 - SSEL (Source Select) - комбинация этих бит задает источник тактирования USART

SSEL1

SSEL0

Источник

Режим

0

0

Внешний UCLK

Только slave

0

1

ACLK

Только master

1

0

SMCLK

Только master

1

1

SMCLK

Только master

· Бит 3,2 -зарезервированы.

· Бит 1 - STC (Slave Transmit Control) - управление передачей ведомого. Установка/сброс этого бита задает 3-х проводный (STE запрещен) или 4-х проводный (STE разрешен) режимы работы SPI соответственно.

· Бит 0 - TXEPT (Transmitter Empty) - устанавливается в 1 аппаратно в том случае если TXBUF и сдвиговый регистр не содержит данных, в противном случае сбрасывается.

Рисунок 8. Временная диаграмма работы SPI

Ш UxRCTL (USART Control) - содержит биты управления приемника USART.

FE

-

OE

-

·

· Бит 7 - FE (Frame Error) - ошибка кадра. Устанавливается аппаратно, если в 4-х проводной конфигурации и режиме master обнаружен перепад 10 на линии STE. Сбрасывается программно.

· Бит 6 - зарезервирован.

· Бит 5 - OE (Overrun Error) - ошибка переполнения. Устанавливается аппаратно если при копировании данных из сдвигового регистра в URXBUF, старые данные не были вычитаны из буфера. Сбрасывается программно или чтением URXBUF.

· Биты 4…0 - зарезервирован.

Ш UxBR0 (Baud Rate) - младший байт делителя частоты тактирования SPI.

Ш UxBR1 (Baud Rate) - старший байт делителя частоты тактирования SPI.

Ш UxTXBUF (Transmit Buffer) - буферный регистр передатчика.

Ш UxRXBUF (Transmit Buffer) - буферный регистр приемника

Ш ME1 (Module Enable 1) - содержит биты разрешения приемника и передатчика USART0.

-

USPIE0

-

· Бит 7 - зарезервирован.

· Бит 6 - USPIE0 (USART0 SPI Enable). Установка/сброс этого бита разрешает/запрещает USART0 в режиме SPI.

· Биты 5…0 - зарезервированы.

Ш ME2 (Module Enable 2) - содержит биты разрешения приемника и передатчика USART1.

-

USPIE1

-

· Биты 7…5 - зарезервированы.

· Бит 4 - USPIE1 (USART1 SPI Enable). Установка/сброс этого бита разрешает/запрещает USART1 в режиме SPI.

· Биты 3…0 - зарезервированы.

Ш IE1 (Interrupt Enable 1) - содержит биты разрешения прерываний для USART0 (см. п.3.2).

Ш IE2 (Interrupt Enable 2) - содержит биты разрешения прерываний для USART1 (см. п.3.2).

Ш IFG1 (Interrupt Flag 1) - содержит флаги прерываний для USART0 (см. п.3.2).

Ш IFG2 (Interrupt Flag 2) - содержит флаги прерываний для USART1 (см. п.3.2).

3.9.3 Режим I2C

USART в режиме I2C обеспечивает интерфейс между микроконтроллером MSP430 и I2C-совместимыми устройствами, подключенными через 2-х проводную последовательную шину. Поддержка режима I2C реализована только в USART0. I2C контроллер обеспечивает следующие характеристики:

· поддержка спецификации I2C v2.1 Philips Semiconductor

- Формат передачи байт/слово;

- 7-разрядный и 10-разрядный режимы адресации устройств;

- Общий вызов;

- Старт/рестарт/стоп;

- Режим ведущий передатчик/ведомый приемник;

- Режим ведущий приемник/ведомый передатчик;

- Поддержка стандартного режима до 100 кбод и быстрого режима до 400

кбод;

· Встроенная память FIFO для буферирования чтения и записи

· Программируемый генератор скорости;

· 16-разрядный доступ к данным для увеличения пропускной способности шины;

· Автоматический подсчет количества байт данных

· Возможность работы в режимах пониженного энергопотребления;

· Расширенные возможности прерываний

Контроллер I2C имеет достаточно сложную структуру, его работоспособность обеспечивается рядом дополнительных регистров управления. В данном документе работа USART в режиме I2C не рассматривается. Для детального рассмотрения работы контроллера обращайтесь к www.ti.com.

3.10 Аналоговый компаратор

Аналоговый компаратор предназначен для преобразования разности входных аналоговых напряжений в цифровую форму. Если на неинвертирующем входе, помеченным символом “+”, аналоговое напряжение больше, чем на инвертирующем, помеченным символом “-”, выход компаратора CAOUT устанавливается в состояние логической единицы, в противном случае - в состояние логического нуля.

Структурная схема компаратора изображена на рис. 9.

Входы аналогового компаратора могут программно подключаться к внешним выводам микроконтроллера с помощью битов управления P2CAx. С помощью битов управления CAEX можно менять схему подключения физических входов компаратора к внешним выводам микроконтроллера, при этом одновременно производится инвертирование выхода компаратора. В некоторых случаях использование этого переключателя дает возможность компенсировать собственное напряжение смещения компаратора.

В состав аналогового компаратора входит источник опорного напряжения. Опорное напряжение источника можно с помощью управляющего бита CARSEL подключить к одному или другому входу компаратора. С помощью битом управления CAREF можно выбрать величину опорного напряжения, соответствующую Vcc/2, Vcc/4 или фиксированному напряжению, приблизительно равному 0.5 V. С помощью, битов CAREF можно также отключить источник опорного напряжения.

Рисунок 9. Структурная схема аналогового компаратора

В том случае если входные аналоговые напряжения меняются медленно, в момент равенства этих напряжений возможно многократное срабатывание компаратора. В некоторых случаях этот эффект можно подавить, подключив на выход компаратора встроенный RC фильтр с помощью бита CAF. Время срабатывания компаратора составляет около 200 ns, если фильтр не включен, и порядка 1.5 µs при включенном фильтре.

Выходной сигнал компаратора можно вывести на внешний вывод микроконтроллера P2.2/CAOUT/TA0 с помощью установок в регистре P2SEL, или использовать в качестве входа для модуля захвата/сравнения TACC1 (см. п. 3.7).

С целью минимизации потребления аналоговый компаратор может быть выключен битом CAON. В активном режиме компаратор и источник опорного напряжения потребляю ток в 45 µA каждый.

Регистры аналогового компаратора представлены в таблице 14.

Таблица 14

Имя

Назначение регистра

Адрес

Нач.значен.

CACTL1

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

59h

0

CACTL2

Регистр управления 2

5Ah

0

CAPD

Регистр отключения цифровых формирователей

5Bh

0

Ш CACTL1 (Comparator A Control) - содержит биты управления компаратора.

CAEX

CARSEL

CAREF1, 0

CAON

CAIES

CAIE

CAIFG

· Бит 7 - CAEX (Comparator Exchange) - изменение подключения.

0 - неивертирующий вход соответствует выводу CA0,

инвертирующий вход соответствует выводу CA1;

1 - неивертирующий вход соответствует выводу CA1,

инвертирующий вход соответствует выводу CA0;

· Бит 6 - CARSEL (Comparator Reference Select) - выбор подключения опоры.

0 - опорное напряжение подключено к входу CA0;

1 - опорное напряжение подключено к входу CA1.

· Биты 5,4 - CAREF (Comparator Reference) - выбор опорного напряжения.

CAREF1

CAREF0

Напряжение

0

0

Выключен

0

1

0.25 * Vcc

1

0

0.5 * Vcc

1

1

Диод

· Бит 3 - CAON. Установка/ сброс этого бита включает/выключает аналоговый компаратор

· Бит 2 - CAIES (Comparator Interrupt Edge Select) - выбор фронта прерывания.

0 - прерывание по переходу 01 выхода компаратора;

1 - прерывание по переходу 10 выхода компаратора;

· Бит 1 - CAIE (Comparator Interrupt Enable) - разрешение прерывания. Установка/сброс этого бита разрешает/запрещает прерывание от компаратора.

· Бит 0 - CAIFG (Comparator Interrupt Flag) - флаг требования прерывания компаратора. Устанавливается аппаратно, если компаратор переключается согласно содержимому бита CAIES. Сбрасывается аппаратно, если берется прерывание, или программно.

Ш CACTL2 (Comparator A Control) - содержит биты управления компаратора.

-

P2CA1

P2CA0

CAF

CAOUT

· Биты 7…4 -зарезервированы.

· Бит 3 - P2CA1 - устанавливается/сбрасывается для подключения/отключения внешнего вывода к цепи CA1.

· Бит 2 - P2CA0- устанавливается/сбрасывается для подключения/отключения внешнего вывода к цепи CA0.

· Бит 1 - CAF (Comparator Filter) - установка/сброс этого бита подключает/ отключает встроенный RC фильтр.

· Бит 0 - CAOUT - через этот бит программно читается выходное состояние компаратора. Бит доступен только по чтению.

Ш CAPD (Comparator Port Disable) - запрещение цифрового буфера порта P2. Назначение битов этого регистра заключается в следующем. Входные цепи порта P2, равно как и всех остальных портов, снабжены цепями формирования входных логических уровней, состоящих из двух КМОП транзисторов. Если входное напряжение близко к середине напряжения питания, это вызывает протекание сквозного тока через входные транзисторы, что влечет увеличение общего тока потребления. Т.к. предполагается, что на входы компаратора может быть подано любое аналоговое напряжение, с целью снижения потребления имеет смысл отключать входные буферы для портов P2.3 и P2.4. Логические единицы в 8-ми битном регистре CAPD запрещают входные буферы для соответствующих линий порта P2. Следует заметить, что действие регистра CAPD распространяется на весь порт P2. Если в каком-либо бите регистра CAPD взведена 1, соответствующая линия порта не может использоваться в качестве цифрового входа.

3.11 Аналого-цифровой преобразователь ADC12

микроконтроллер цифровой преобразователь

Модуль ADC12 обеспечивает быстрое преобразование аналоговых напряжений в цифровой код. Модуль обладает следующими техническими характеристиками:

· разрядность результирующего кода - 12 бит;

· скорость преобразования - до 2*105 преобразований в секунду;

· максимальная интегральная ошибка преобразования - менее 2 разрядов;

· встроенное устройство выборки/хранения;

· преобразование инициируется программным обеспечением или аппаратно от таймеров A или B;

· встроенный генератор опорного напряжения 1.5 или 2.5 V;

· буферная память преобразования и управления, позволяющая сохранить до 16 последовательных измерений;

· восемь индивидуально конфигурируемых внешних входных каналов;

· каналы преобразования для внутреннего температурного сенсора, аналогового питания и внешних опорных источников.

Структурная схема модуля АЦП приведена на рис. 10.

Основой модуля является 12-ти разрядный блок ADC последовательного приближения. Тактирование блока осуществляется частотой ADC12CLK, генерируемой от внутренних частот ACLK, MCLK, SMCLK или специального встроенного генератора ADC12OSC и деленной делителем DIV. Частота генератора ADC12OSC приблизительно равна 5MHz. В любом случае частота тактирования ADC12CLK должна находиться в диапазоне 0.45 - 6.3 MHz.

Рисунок 10. Структурная схема ADC12

Результирующий код АЦП генерируется согласно формуле

NADC = 4096 * (Vin - Vr-)/(Vr+ - Vr-)

где

Vin - входное напряжение;

Vr+ - опорное напряжение;

Vr-- общий вывод опорного напряжения.

Восемь внешних и четыре внутренних сигнала могут быть выбраны для аналого-цифрового преобразования. В качестве внешних сигналов используются выводы порта P6. Для минимизации токов утечек входных цифровых формирователей порта P6 рекомендуется назначать выводы, задействованные для АЦ преобразования, для поддержки периферийных функций через регистр P6SEL. В качестве внутренних входных сигналов АЦП могут быть использованы напряжения опоры VeREF+, VREF- и напряжения встроенного датчика температуры. Напряжение на температурном датчике Vt в вольтах определяется формулой

Vt = kt * T + 0.986

где

kt - температурный коэффициент датчика, равный 0.00355 V/0C ±3%;

T - температура в градусах Цельсия.

Требуемый канал измерения выбирается с помощью мультиплексора MUX, управляемого битами INCH регистра управления.

Выходной сигнал мультиплексора поступает на вход устройства выборки/хранения SH (Sample/Hold), предназначенного для фиксации входного сигнала на время преобразования АЦП. Входной аналоговый сигнал перед началом преобразования запоминается на внутреннем конденсаторе SH. Для того чтобы конденсатор зарядился до величины входного напряжения необходимо время ts, величину которого можно оценить по формуле:

ts > (Rs + Ri) * 9.011 * Ci + 800ns

где

Rs - выходное сопротивление источника сигнала;

Ri - проходное сопротивление мультиплексора, типовое значение 2 kOm;

Ci - емкость накопительного конденсатора, типовое значение 40 pF.

Внутренний сигнал SAMPCON (Sample/Conversion) управляет периодом выборки SH и началом преобразования. Когда SAMPCON имеет высокий уровень, выборка активна. Переход сигнала SAMPCON с высокого уровня на низкий стартует аналого-цифровое преобразование, которому необходимо 13 тактов частоты ADC12CLK.

Полное время одного преобразования tADC составляет

tADC = ts + 13 * ADC12CLK

Активизация сигнала SAMPCON может быть осуществлена программно с помощью бита ADC12SC регистра управления АЦП или аппаратно при срабатывании модулей сравнения TACC1, TBCC0 или TBCC1. Выбор источника для генерации сигнала SAMPCON выбирается битами управления SHS. Кроме того, период выборки может быть задан напрямую этими сигналами или с помощью специального таймера TSH. Переключение между этими двумя режимами осуществляется с помощью бита управления SPH.

Модуль ADC12 содержит в своем составе встроенный источник опорного напряжения REF. Величину выходного напряжения можно задать программно с помощью бита управления REF2_5V на уровне 1.5V или 2.5V. Следует отметить, однако, что действительное значение этих напряжений может отличаться от номинальных на величину ±100/60 mV для уровней 2.5/1.5 V соответственно. Поэтому для гарантирования точности преобразования необходимо либо производить калибровку опорного напряжения, либо использовать внешний источник опоры. При использовании встроенного опорного напряжения рекомендуется между выводом VREF+ и выводом AVss подключать параллельно соединенные конденсаторы номиналом 10 µF и 100 nF.

С помощью переключателя, управляемого битами SREF можно подключить в качестве опоры Vr+ внешнее напряжение VeREF+ или аналоговое питание AVcc. С помощью переключателя, управляемого битом SREF2, можно в качестве опоры Vr- подключить внешний сигнал VREF- или напряжение аналоговой земли. В любом случае напряжение Vr+ должно находиться в диапазоне 1.4V - AVcc, а напряжение Vr- в диапазоне 0 - 1.2 V.

Начало цикла преобразования инициируется срабатыванием источника запуска АЦП при условии, что бит управления ENC=1. Результаты преобразований сохраняются в 16-ти регистрах буферной памяти преобразований ADC12MEMx. Каждый регистр ADC12MEMx конфигурируется соответствующим управляющим регистром ADC12MCTLx, содержащим информацию о номере входного канала и источнике опорного напряжения для каждого измерения. Следующие друг за другом измерения могут последовательно сохраняться в регистрах ADC12MEM0, ADC12MEM1 и т.д. Кроме того, управляющий регистр ADC12MCTLx содержит бит EOS, определяющий конец серии измерения, когда используется многоканальные режимы преобразования.

Модуль ADC12 имеет четыре основных режима работы:

· Однократное одноканальное преобразование. Результат преобразования записывается в регистр ADC12MEMx, номер которого записан в поле CSTARTADDR регистра управления АЦП. При этом номер канала преобразования и источник опоры определяется содержимым соответствующего регистра ADC12MCTLx. Для старта следующего преобразования необходимо опять переключить ENC в состояние 01.

· Однократное многоканальное преобразование. Результат первого преобразования сохраняется в ADC12MEMx, номер которого записан в поле CSTARTADDR регистра управления АЦП. Результаты следующих преобразований сохраняются в следующих регистрах ADC12MEMx. Последовательность преобразований завершается, когда очередной результат сохраняется в регистре, для которого бит EOS в соответствующем регистре ADC12MCTLx установлен в 1. Для старта следующей серии преобразований необходимо переключить ENC в состояние 01.

· Повторяющееся одноканальное преобразование. Отличается от однократного одноканального преобразования тем, что измерения автоматически продолжаются после первого преобразования (нет необходимости переключать содержимое бита ENC). Содержимое регистра ADC12MEMx необходимо вычитывать до того, как будет произведено следующее преобразование. Выход из непрерывного процесса преобразований можно осуществить программной установкой бита ENC в 0.

· Повторяющееся многоканальное преобразование. Отличается от однократного многоканального преобразования тем, что при достижении регистра, отмеченного установленным битом EOS, последовательность автоматически возобновляется, начиная с регистра, номер которого определен битовым полем CSTARTADDR.

Модуль ADC12 имеет дополнительные режимы работы, определяемые состоянием бита MSC регистра управления АЦП. Эти дополнительные режимы работают только в том случае, если не задан режим однократного одноканального преобразования и для формирования периода выборки используется таймер TSH. Если MSC=1, следующее преобразование в серии производится максимально быстро, т.е. не дожидаясь срабатывания источника старта АЦП, а непосредственно после окончания предыдущего преобразования. При установленном бите MSC логика работы АЦП меняется следующим образом.

· Для однократного многоканального преобразования запуск АЦП всегда производится при срабатывании источника старта, после чего автоматически выполняется несколько измерений в зависимости от состояния бита EOS.

· Для повторяющегося одноканального режима преобразования первый запуск АЦП производится при срабатывании источника старта, после чего измерение выбранного канала будет производиться постоянно, не взирая на состояние источника запуска. Выход из данного режима осуществляется установкой бита ENC в состояние 0.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.