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

Микропроцессорная техника / Конспект лекций

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

4.2.1. Возможности модуля синхронизации и приложения с низким

энергопотреблением

К системе синхронизации устройств с батарейным питанием часто

предъявляются противоречивые требования:

-наличие тактового сигнала низкой частоты для снижения энергопотребления

иреализации функций отсчёта времени;

-наличие тактового сигнала высокой частоты для обеспечения быстрой реакции на события и быстрой обработки данных;

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

Модуль синхронизации Basic Clock Module+ разработан с учётом перечисленных требований и позволяет пользователю выбирать любой из трёх доступных тактовых сигналов: ACLK, MCLK и SMCLK. Для достижения оптимальной производительности при незначительном потреблении в качестве источника сигнала ACLK может использоваться экономичный «часовой» кварц частотой 32 768 Гц, при этом обеспечивается стабильный синхросигнал и малое потребление в режиме ожидания. Если точность формирования временных интервалов не критична, то в качестве источника сигнала ACLK может использоваться встроенный низкочастотный генератор. Сигнал MCLK может формироваться встроенным DCO, который в случае необходимости активируется обработчиками прерываний при наступлении соответствующих событий. Сигнал

SMCLK может формироваться кварцевым генератором с внешним резонатором либо DCO в зависимости от требований, предъявляемых периферийными модулями. Гибкая система тактирования и наличие делителей тактовых сигналов обеспечивают возможность точной настройки модуля синхронизации в соответствии с требованиями конкретного приложения.

4.2.2. Встроенный низкочастотный генератор со сверхнизким

потреблением

Встроенный НЧ генератор со сверхнизким потреблением (VLO) работает на частоте 12 кГц (прочие параметры приводятся в документации на конкретные модели) без внешнего кварцевого резонатора. Использование VCOCLK в качестве источника тактового сигнала задаётся битами LFXT1Sx = 10 при XTS = 0. Бит

OSCOFF отключает генератор для перехода в режим пониженного энергопотребления LPM4. При использовании генератора VLO кварцевый генератор LFXT1 отключается, снижая тем самым потребление микроконтроллера.

Если генератор VLO не используется, то его ток потребления равен нулю.

31

4.2.3. Генератор LFXT1

Генератор LFXT1 имеет очень малое потребление в режиме LF (XT = 0) при использовании «часового» кварца частотой 32 768 Гц. Кварцевый резонатор подключается к выводам XIN и XOUT микроконтроллера без использования допол нительных элементов. Величина нагрузочной ёмкости для кварцевого резонатора при работе генератора LFXT1 в режиме LF задаётся программно конфигурируемыми битами XCAPx. Эта ёмкость может принимать значения из ряда: 1 пФ, 6 пФ, 10 пФ или 12.5 пФ. При необходимости допускается подключение внешних конденсаторов.

В режиме HF (XTS = 1, XCAPx = 00) генератор LFXT1 поддерживает использование высокочастотных кварцевых и керамических резонаторов.

Высокочастотный резонатор подключается к выводам XIN и XOUT, при этом на обоих вы водах должны присутствовать внешние нагрузочные конденсаторы.

Ёмкость данных конденсаторов выбирается в соответствии со спецификацией используемого резонатора. Биты LFXT1Sx определяют рабочий диапазон частот при работе генератора LFXT1 в режиме HF.

В любом из режимов генератор LFXT1 может работать с внешним тактовым сигналом, подаваемым на вход XIN (LFXT1Sx = 11, OSCOFF = 0, XCAPx = 00).

При использовании внешнего сигнала его частота должна соответствовать спецификации микроконтроллера для выбранного режима. Если частота внешнего сигнала окажется ниже минимально допустимой величины, то может быть установлен бит LFXT1OF, предотвращающий тактирование ЦПУ сигналом

LFXT1CLK.

Если LFXT1CLK не используется в качестве источника тактового сигнала

SMCLK или MCLK, то генератор LFXT1 может быть отключён установкой бита

OSCOFF, как показано на рис. 4.2.

Риунок 4.2 – Сигналы отключения генератора LFXT1

32

4.2.4. Генератор XT2

В некоторых моделях имеется второй кварцевый генератор, XT2. Этот генератор формирует сигнал XT2CLK, а его параметры идентичны параметрам генератора LFXT1 в режиме HF. Рабочий диапазон частот генератора XT2 задаётся битами XT2Sx. Если сигнал XT2CLK не используется в качестве источника тактового сигнала SMCLK или MCLK, то генератор XT2 может быть отключён установкой бита XT2OFF, как показано на рис. 4.3.

Генератор XT2 может работать с внешним тактовым сигналом, подаваемым на вход XT2IN (XT2Sx = 11 и XT2OFF = 0). При использовании внешнего сигнала его частота должна соответствовать спецификации генератора для конкретной модели. Если частота внешнего сигнала окажется ниже минимально допустимой величины, то может быть установлен бит XT2OF, предотвращающий тактирование ЦПУ сигналом XT2CLK.

Рисунок 4.3 – Сигналы отключения генератора XT2

4.2.5. Генератор с цифровым управлением (DCO)

Генератор DCO представляет собой встроенный генератор с цифровым уп равлением. Частота DCO может подстраиваться программно с помощью битов

DCOx, MODx и RSELx.

Отключение DCO

Если DCO не используется для формирования тактового сигнала SMCLK или

MCLK в активном режиме микроконтроллера, то он может быть отключён установкой бита SCG0, как показано на рис. 4.4.

Подстройка частоты DCO

После сигнала PUC в биты управления DCO загружаются такие значения

(RSELx = 7, DCOx = 3), которые обеспечивают запуск DCO на средней частоте рабочего диапазона. При этом тактовые сигналы MCLK и SMCLK формируются из сигнала DCOCLK. Поскольку ЦПУ тактируется сигналом MCLK, а DCO имеет весьма малое время запуска, программа начинает выполняться менее чем через 2

мкс после появления сигнала PUC. Типовые значения диапазонов и дискретных

33

интервалов для битов RSELx и DCOx показаны на рис. 4.5.

Рисунок 4.4 – Управление работой DCO

Частота сигнала DCOCLK устанавливается следующим образом:

- Четыре бита RSELx определяют один из шестнадцати рабочих диапазонов

DCO. Значения частот для этих диапазонов приводятся в документации на конкретные модели.

- Три бита DCOx делят выбранный диапазон на 8 дискретных значений,

отличающихся друг от друга примерно на 10%.

- Пять битов MODx определяют частоту переключений с текущей частоты,

заданной битами DCOx, на следующую частоту, соответствующую значению

DCOx+1. При DCOx = 07h содержимое битов MODx игнорируется, поскольку в этом случае DCO уже работает на максимально возможной для выбранного диапазона RSELx частоте.

Рисунок 4.5 – Частота DCO и значения битов DCOx и RSELx.

Все микроконтроллеры семейства MSP430F2xx содержат в сегменте А

34

информационной секции флэш памяти значения регистров DCOCTL и BCSCTL1,

от калиброванные для конкретных частот. Чтобы использовать калиброванные значения, их копируют из флэш-памяти в соответствующие регистры. Эти значения определяют состояния битов DCOx, MODx, RSELx и сбрасывают все прочие биты регистров, за исключением бита XT2OFF, который устанавливается в

1. Остальные биты регистра BCSCTL1 могут быть индивидуально установлены или сброшены командами BIS.B или BIC.B.

4.2.6. Отказоустойчивая работа модуля синхронизации

Модуль синхронизации Basic Clock Module+ позволяет обеспечить работоспособность микроконтроллера при неисправности тактового генератора.

При этом распознаются неисправности генераторов LFXT1 и XT2, как показано на рис. 4.6.

Рисунок 4.6 – Логика обработки сигналов о неисправности генераторов

Отслеживаются следующие ситуации:

-неисправность низкочастотного генератора LFXT1 в режиме LF (LFXT1OF);

-неисправность низкочастотного генератора LFXT1 в режиме HF (LFXT1OF);

-неисправность высокочастотного генератора XT2 (XT2OF).

Биты неисправности кварцевых генераторов LFXT1OF и XT2OF

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

Флаг неисправности генератора OFIFG устанавливается и защёлкивается в момент сброса по включению питания или при обнаружении неисправности генератора (LFXT1OF или XT2OF). При установленном бите OFIFG тактовый сигнал MCLK формируется из сигнала DCO и, если установлен бит OFIE,

генерируется запрос NMI прерывания. При переходе к обработчику прерывания бит OFIE сбрасывается автоматически. Флаг OFIFG необходимо сбрасывать программно. Конкретный источник неисправности можно определить, проверив со стояния отдельных битов неисправности.

35

fDCO.

Если обнаружена неисправность кварцевого генератора, использующегося для формирования тактового сигнала MCLK, то этот сигнал автоматически переключается на DCO. При этом состояние битов SELMx не изменяется — данная ситуация должна обрабатываться пользовательской программой.

4.3. Регистры модуля синхронизации

Список регистров модуля Basic Clock Module+ приведён в табл. 4.1.

Таблица 4.1 – Регистры модуля Basic Clock Module+

DCOCTL, регистр управления DCO

DCOx (биты 7…5) – выбор частоты DCO. Эти биты определяют одно из восьми дискретных значений частоты в пределах выбранного диапазона, задаваемо

го битами RSELx.

MODx (бБиты 4…0) – настройка модулятора. Эти биты определяют, как часто сигнал частотой fDCO+1 будет использоваться в течение периода, равного 32

так там DCOCLK. В оставшееся время (MOD – 32) будет использоваться сигнал

частотой Эти биты не используются при DCOx = 7.

BCSCTL1, регистр управления 1 модуля синхронизации

*XTS = 1 не поддерживается в микроконтроллерах MSP430x20xx.

XT2OFF (бит 7) – выключение XT2. Этот бит управляет работой генератора

XT2.

0: XT2 включен

36

1: XT2 выключен и не используется для формирования MCLK или SMCLK

XTS (бит 6) – режим LFXT1. Этот бит определяет режим работы генератора

LFXT1.

0: Низкочастотный режим (LF) 1:Высокочастотный режим (HF)

DIVAx (биты 5…4) – делитель для ACLK.

00: /1

01: /2

10:/4

11:/8

RSELx (биты 3…0) – выбор диапазона. Доступно 16 частотных диапазонов.

Нижнему диапазону соответствует значение RSELx = 0. Бит RSEL3 игнорируется при DCOR = 1.

BCSCTL2, регистр управления 2 модуля синхронизации

*Не используется в моделях MSP430x20xx и MSP430x21x.

SELMx (биты 7…6) – выбор MCLK. Эти биты определяют источник тактового сигнала MCLK.

00: DCOCLK

01: DCOCLK

10:XT2CLK, если генератор XT2 реализован в микроконтроллере. LFXT1CLK или VLOCLK, если генератор XT2 отсутствует

11:LFXT1CLK или VLOCLK

DIVMx (биты 5…4) – делитель для MCLK.

00: /1

01: /2

10:/4

11:/8

SELS (бит 3) – выбор SMCLK.

0:DCOCLK

1:XT2CLK, если генератор XT2 реализован в микроконтроллере. LFXT1CLK

или VLOCLK, если генератор XT2 отсутствует

DIVSx (биты 2…1) – делитель для SMCLK.

00: /1

01: /2

37

10:/4

11:/8

DCOR (бит 0) – выбор резистора DCO.

0:Внутренний резистор

1:Внешний резистор

BCSCTL3, регистр управления 3 модуля синхронизации

*Не используется в моделях MSP430x2xx, MSP430x21xx и MSP430x22xx.

XT2Sx (биты 7…6) – выбор диапазона XT2. Эти биты определяют частотный диапазон генератора XT2.

00: Кварцевый/керамический резонатор 0.4…1 МГц

01: Кварцевый/керамический резонатор 1…3 МГц

10:Кварцевый/керамический резонатор 3…16 МГц

11:Внешний сигнал частотой 0.4…16 МГц

LFXT1Sx (биты 5…4) – выбор низкочастотного источника тактового сигнала и выбор диапазона LFXT1. При XTS = 0 эти биты определяют источник тактового сигнала (LFXT1 или VLO). При XTS = 1 данные биты определяют частотный диапазон генератора LFXT1.

XTS = 0:

00: Кварцевый резонатор 32 768 Гц в генераторе LFXT1 01: Зарезервировано

10:VLOCLK

11:Внешний сигнал синхронизации

XTS = 1 (не применимо для моделей MSP430x20xx): 00: Кварцевый/керамический резонатор 0.4…1 МГц

01: Кварцевый/керамический резонатор 1…3 МГц

10:Кварцевый/керамический резонатор 3…16 МГц

11:Внешний сигнал частотой 0.4…16 МГц

XCAPx (биты 3…2) – выбор нагрузочной ёмкости. При XTS = 0 эти биты определяют величину нагрузочной ёмкости для резонатора, подключаемого к генератору LFXT1. Если XTS = 1 или LFXT1Sx = 11, то биты XCAPx должны быть равны 00.

00: ~ 1 пФ

01: ~ 6 пФ

10: ~ 10 пФ

38

11: ~ 12.5 пФ

XT2OF (бит 1) – неисправность генератора XT2.

0:Генератор функционирует нормально

1:Обнаружен сбой генератора

LFXT1OF (бит 0) – неисправность генератора LFXT1.

0:Генератор функционирует нормально

1:Обнаружен сбой генератора

IE1, регистр разрешения прерываний 1

Биты 7…2, 0 – эти биты могут использоваться другими модулями. (См.

документацию на конкретный микроконтроллер).

OFIE(бит 1) – разрешение прерывания при неисправности генератора. Этот бит разрешает прерывание OFIFG.

0:Прерывание запрещено

1:Прерывание разрешено

IFG1, регистр флагов прерываний 1

Биты 7…2, 0 – эти биты могут использоваться другими модулями. (См.

документацию на конкретный микроконтроллер).

OFIFG(бит 1) – флаг прерывания при неисправности генератора.

0:Не было запроса прерывания

1:Есть запрос прерывания

39

5 ЦИФРОВЫЕ ПОРТЫ ВВОДА/ВЫВОДА

8.1.Введение 285

5.1. Введение

Микроконтроллеры семейства могут иметь до восьми портов ввода/вывода

P1…P8. Все порты содержат по восемь выводов (линий). Каждый из выводов порта индивидуально конфигурируется в качестве входа или выхода. Запись и чтение линий ввода/вывода также может осуществляться в индивидуальном порядке.

Порты P1 и P2 поддерживают внешние прерывания. Для каждого из выводов портов P1 и P2 можно индивидуально разрешить прерывание и сконфигурировать его так, чтобы оно генерировалось по нарастающему или спадающему фронту входного сигнала. Все линии ввода/вывода порта P1 назначены одному вектору прерываний, а все линии порта P2 — другому вектору.

Цифровые порты ввода/вывода обладают следующими возможностями:

-независимые индивидуально программируемые линии ввода/вывода;

-любые комбинации входов или выходов;

-индивидуально конфигурируемые прерывания от выводов портов P1 и P2;

-раздельные регистры данных для входов и выходов;

-индивидуально конфигурируемые внутренние подтягивающие резисторы.

5.2. Функционирование цифровых портов ввода/вывода

Конфигурирование цифровых портов ввода/вывода осуществляется пользовательской программой. Настройка и функционирование цифровых портов описывается в следующих подразделах.

5.2.1. Регистр данных входа PxIN

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

Бит = 0: Входной сигнал имеет НИЗКИЙ уровень.

Бит = 1: Входной сигнал имеет ВЫСОКИЙ уровень.

5.2.2. Регистр данных выхода PxOUT

Значение каждого бита регистра PxOUT определяет состояние соответствую щего вывода порта, если этот вывод сконфигурирован как цифровой выход, и

внутренний подтягивающий резистор не используется.

Бит = 0: Выходной сигнал имеет НИЗКИЙ уровень.

Бит = 1: Выходной сигнал имеет ВЫСОКИЙ уровень.

Если используется внутренний подтягивающий резистор, то значение бита

40