Микроконтроллеры MSP430. Руководство пользователя - часть 1

 

  Главная      Учебники - Разные     Микроконтроллеры MSP430. Руководство пользователя

 

поиск по сайту            правообладателям  

 

 

 

 

 

 

 

 

 

 

 

содержание      ..      1       2         ..

 

 

 

Микроконтроллеры MSP430. Руководство пользователя - часть 1

 

 

 

Архитектура MSP430

Введение

В этом разделе описывается архитектура MSP430

1.1 Архитектура

Микроконтроллеры семейства MSP430 содержат 16-разрядное RISC CPU, периферийные модули и гибкую систему тактирования, соединенные через фон-Неймановскую общую адресную шину (MAB) памяти и шину памяти данных (MDB). Объединяя современное CPU с отображаемыми в памяти аналоговыми и цифровыми периферийными устройствами, семейство MSP430 предлагает решения для приложений со смешанными сигналами.

Семейство MSP430 обладает следующими ключевыми особенностями:

  • Архитектура с ультранизким потреблением, увеличивающая время работы при питании от батарей:
        - для сохранности содержимого ОЗУ необходим ток не более 0,1 мкА;
        - модуль тактирования реального времени потребляет 0,8 мкА;
        - ток потребления при максимальной производительности составляет 250 мкА;
  • Высококачественная аналоговая периферия для выполнения точных измерений:
        - встроенные модули 12-разрядного или 10-разрядного АЦП скоростью 200 ksps;
        - имеется температурный датчик и источник опорного напряжения VRef;
        - сдвоенный 12-разрядный ЦАП;
        - таймеры, управляемые компаратором для измерения резистивных элементов;
        - схема слежения (супервизор) за напряжением питания;
  • 16-разрядное RISC CPU, допускающее новые приложения к фрагментам кода:
        - большой регистровый файл снимает проблему «узкого файлового горлышка»ii;
        - компактное ядро имеет пониженное энергопотребление и стоимость;
        - оптимизировано для современного высокоуровневого программирования;
        - набор команд состоит из 27 инструкций, поддерживается семь режимов адресации;
        - расширенные возможности векторных прерываний;

Возможность внутрисхемного программирования Flash-памяти позволяет гибко изменять и обновлять программный код, производить регистрацию данных.

1.2 Гибкая система тактирования

Система тактирования разработана специально для использования в приложениях с питанием от батарей. Вспомогательная низкочастотная система тактирования (ACLK) работает непосредственно от обычного 32 кГц часового кристалла. Модуль ACLK может использоваться в качестве фоновой системы реального времени с функцией самостоятельного «пробуждения». Интегрированный высокоскоростной осциллятор с цифровым управлением (DCO) может быть источником основного тактирования (MCLK) для ЦПУ и высокоскоростных периферийных устройств. Модуль DCO становится активным и стабильным менее чем через 6 мкС после запуска. Решения на основе архитектуры MSP430 позволяют эффективно использовать высокопроизводительное 16-разрядное RISC CPU в очень малые промежутки времени:

  • низкочастотная вспомогательная система тактирования обеспечивает работу микроконтроллера в режиме ультранизкого потребления мощности;
  • активизация основного высокоскоростного модуля тактирования позволяет выполнить быструю обработку сигналов.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.1-1 Архитектура MSP430
Рис.1-1 Архитектура MSP430

1.3 Встроенная эмуляция

Специальная встроенная логическая подсистема эмуляции находится непосредственно в устройстве и доступна через JTAGiii без использования дополнительных системных ресурсов.

Выгоды встроенной эмуляции состоят в следующем:

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

1.4 Адресное пространство

Семейство MSP430 имеет фон-Ньюмановскую архитектуру с единым адресным пространством для регистров специального назначения (SFR), периферии, ОЗУ и Flash-памяти программ, в соответствии с рис.1.2. Конкретное распределение памяти можно узнать из справочных данных на интересующее устройство. Доступ к программному коду выполняется всегда по четным адресам. Данные могут быть доступны как байты или как слова.

Общий объем адресуемой памяти составляет 64 кБ, с учетом предполагаемого расширения.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.1-2 Карта памяти
Рис.1-2 Карта памяти

1.4.1 Flash-память программ

Начальный адрес Flash-памяти зависит от объема имеющейся памяти и различается для разных устройств. Конечный адрес Flash-памяти всегда 0FFFFh. Flash - память может использоваться как для программного кода, так и для данных. Байты или слова таблиц данных могут сохраняться и использоваться непосредственно в Flash-памяти, что исключает необходимость копировать эти таблицы в ОЗУ перед дальнейшим использованием.

Таблица векторов прерываний занимает верхние 16 слов адресного пространства Flash-памяти, при этом вектор прерывания с наивысшим приоритетом находится в самом верхнем адресном слове Flash-памяти (0FFFEh).

1.4.2 ОЗУ

ОЗУ начинается с адреса 0200h. Конечный адрес ОЗУ зависит от объема представленной памяти и различается для каждого конкретного устройства. ОЗУ может использоваться как для программного кода, так и для данных.

1.4.3 Периферийные модули

Периферийные модули отображены в адресном пространстве. Адреса с 0100 до 01FFh зарезервированы для 16-разрядных периферийных модулей. Они будут доступны с помощью команд-слов. Если используются однобайтные команды, допустимы только четные адреса, при этом старший байт результата всегда будет содержать «0».

Адресное пространство с 010h по 0FFh зарезервировано для 8-разрядных периферийных модулей. Эти модули доступны с помощью однобайтных команд. Чтение байтов модулей с помощью команд-слов приведет к появлению в старшем байте непредсказуемого содержимого. Если в байт модуля будут записываться данные в виде слова, то в регистре периферийного модуля сохранится только младший байт этого слова, старший будет проигнорирован.

1.4.4 Регистры специального назначения (SFRs)

Некоторые функции периферии конфигурируются в SFRs. Регистры специального назначения расположены в низших 16-ти байтах адресного пространства и организованы в виде байтов. Обращение к регистрам SFRs производится только с использованием однобайтных команд. Назначение отдельных битов регистров SFRs описано в техническом руководстве на каждое конкретное устройство.

1.4.5 Организация памяти

Байты расположены в четных или нечетных адресах. Слова располагаются только в четных адресах, как показано на рис.1.3. При работе с командами-словами должны использоваться только четные адреса. Младший байт слова всегда расположен по четному адресу. Старший байт – в следующем нечетном адресе. Например, если слово данных расположено по адресу xxx4h, то младший байт слова данных будет иметь адрес xxx4h, а старший байт слова адрес xxx5h.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.1-3 Биты, байты и слова в памяти, организованной побайтно
Рис.1-3 Биты, байты и слова в памяти, организованной побайтно

 

 

 

 

Раздел 2 Системный сброс, прерывания и рабочие режимы

Этот раздел описывает системный сброс, прерывания и рабочие режимы семейства MSP430x1xx.

Системный сброс и инициализация

В схеме системного сброса, показанной на рис. 2.1 источниками сброса могут быть сигналы сброса при включении (POR) и очистки при включении (PUC). Различные события и исходные условия определяют, какой именно из этих сигналов будет сгенерирован.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-1 Схема сброса (POR) и очистки (PUC) при включении
Рис.2-1 Схема сброса (POR) и очистки (PUC) при включении

Сигнал POR сбрасывает устройство. Он может быть сгенерирован в следующих двух случаях:

  • включение устройства;
  • появление сигнала низкого уровня на выводе RST/NMI, когда он сконфигурирован как вход сигнала «сброса».

Сигнал PUC генерируется всегда при появлении сигнала POR, cигнал POR не генерируется cигналом PUC. Следующие события приводят к появлению сигнала PUC:

  • сигнал POR;
  • срабатывание «сторожевого» таймера (только если сторожевой таймер активирован);
  • произошло нарушение ключа безопасности «сторожевого» таймера;
  • произошло нарушение ключа безопасности Flash-памяти.

2.1.1 Сброс при включении питания (POR)

Когда напряжение Vcc повышается медленно, детектор POR удерживает сигнал POR в активном состоянии до тех пор, пока Vcc не превысит уровень V(POR), как показано на рис.2.2. Когда питающее напряжение Vcc повышается быстрее задержки POR, сигнал POR удерживается в активном состоянии в течение времени t(POR_DELAY) для корректной инициализации MSP430.

Если питающее напряжение циклически изменяется, его уровень должен упасть ниже значения V(min), чтобы гарантировано появился новый сигнал POR, когда напряжение восстановится снова. Если напряжение Vcc не падает ниже уровня V(min) в течение цикла или появляется кратковременная импульсная помеха, сигнал POR не генерируется и состояние после включения может быть некорректным. Точные параметры можно узнать из руководства по конкретному устройству.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-2 Временные диаграммы сигнала POR
Рис.2-2 Временные диаграммы сигнала POR

2.1.2 Сброс при пониженном напряжении питания (BOR)

Некоторые устройства имеют схему сброса при пониженном напряжении питания (см. соответствующие справочные данные), вместо схемы детектирования и задержки POR. Схема сброса при пониженном напряжении питания детектирует понижение питающего напряжения, например, напряжение, подаваемое или снимаемое с вывода Vcc. Схема сброса при пониженном напряжении сбрасывает устройство, вызывая появление POR-сигнала, когда напряжение прикладывается или снимается. Рабочие уровни показаны на рис.2.3.

Сигнал POR становится активным, когда напряжение Vcc достигает уровня Vcc(start). И остается активным до тех пор, пока Vcc не пересечет порог V(B_IT+) и не закончится выдержка t(BOR). Адаптивная задержка t(BOR) бывает больше при медленном изменении Vcc. Гистерезис VHys(B_IT-) введен, чтобы гарантировать, что питающее напряжение должно снизится ниже уровня V(B_IT-), прежде чем схемой сброса будет сгенерирован другой сигнал POR.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-3 Временные диаграммы схемы сброса при пониженном напряжении питания
Рис.2-3 Временные диаграммы схемы сброса при пониженном напряжении питания

Поскольку уровень V(B_IT-) значительно выше уровня V(min) схемы POR, система BOR обеспечивает сброс при сбоях в источнике питания, когда напряжение Vcc не падает ниже уровня V(min). Точные параметры можно узнать из руководства по конкретному устройству.

2.1.3 Исходное состояние устройства после системного сброса

После снятия сигнала POR, MSP430 переходит в следующее состояние:

  • Вывод RST/NMI конфигурируется как вход «сброса»
  • Выводы ввода/вывода переключаются в режим ввода в соответствии с описанием в разделе «Цифровые входы/выходы»
  • Другие периферийные модули и регистры инициализируются так, как описано в соответствующих разделах этого руководства
  • Регистр статуса (SR) сбрасывается
  • Сторожевой таймер активизируется в сторожевом режиме
  • В программный счетчик загружается адрес, содержащийся в вектора сброса (0FFFEh). ЦПУ начинает выполнять команды с этого адреса.

Программная инициализация

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

  • Инициализировать указатель стека SP (как правило, указывается вершина ОЗУ)
  • Инициализировать сторожевой таймер в зависимости от требований приложения
  • Сконфигурировать периферийные модули в зависимости от требований приложения

Дополнительно можно оценить состояние флагов сторожевого таймера, флэш-памяти и неисправности осциллятора для определения источника сброса.

2.2 Прерывания

Приоритеты прерываний показаны на рис. 2.4. Приоритеты определяются порядком расположения модулей в соединяющей их цепи. Чем ближе модуль к ЦПУ/NMIRS, тем выше его приоритет.

Прерывания делятся на три типа:

  • Системное (системный сброс)
  • Немаскируемое (NMI)
  • Маскируемое

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-4 Приоритеты прерываний
Рис.2-4 Приоритеты прерываний

2.2.1 Немаскируемые прерывания

Немаскируемые прерывания NMI не маскируются общим битом разрешения прерываний (GIE), но могут управляться индивидуальными битами включения прерывания (ACCVIE, NMIIE, OFIE). Когда происходит немаскируемое прерывание NMI, все биты разрешения NMI-прерываний автоматически сбрасываются. Выполнение программы продолжается с адреса, содержащегося в векторе немаскируемого прерывания (0FFFCh). Программное обеспечение пользователя должно установить необходимые биты NMI-прерывания, чтобы оно было разрешено вновь. Блок-схема источников NMI-прерываний показана на рис.2.5.

Немаскируемое прерывание NMI может быть вызвано тремя событиями:

  • Появление фронта сигнала на выводе RST/NMI
  • Появление неисправности осциллятора
  • Нарушение доступа к флэш-памяти

Вывод Reset/NMI

При включении микроконтроллера вывод RST/NMI конфигурируется как вывод сброса. Его функциональное назначение определяется в регистре управления сторожевым таймером WDTCTL. Если вывод RST/NMI запрограммирован на функцию сброса, ЦПУ будет находиться в состоянии сброса до тех пор, пока на этом выводе присутствует сигнал низкого уровня. После смены уровня на этом входе на лог.«1», ЦПУ начинает выполнять программу с команды, адрес которой хранится в векторе сброса (0FFFEh).

Если вывод RST/NMI сконфигурирован программой пользователя как вход вызова немаскируемого прерывания, фронт сигнала, выбранного битом NMIES вызовет NMI-прерывание, если установлен бит NMIIE. Также будет установлен флаг NMIFG.

Примечание: Удержание вывода RST/NMI в состоянии лог.«0».
Когда вывод RST/NMI сконфигурирован в NMI-режиме, сигнал, вызывающий NMI-прерывание, не должен удерживаться на выводе RST/NMI в состоянии лог.«0». Если появится сигнал PUC от какого-либо источника, когда NMI-сигнал имеет низкий уровень, микроконтроллер будет сброшен, поскольку сигнал PUC изменит назначение вывода RST/NMI и он станет входом сигнала сброса.


 
Примечание: Модификация NMIES.
Когда выбран режим NMI и изменен бит NMIES, появление NMI-прерывания определяется уровнем сигнала на выводе RST/NMI. Если бит выбора фронта NMI-сигнала изменен до выбора режима NMI, немаскируемое прерывание NMI не генерируется.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-5 Блок-схема источников немаскируемого прерывания
Рис.2-5 Блок-схема источников немаскируемого прерывания

Неисправность осциллятора

Сигнал неисправности осциллятора позволяет предотвратить ошибки, связанные с неправильным функционированием осциллятора. Установкой бита OFIE можно разрешить генерацию NMI-прерывания при неисправности осциллятора. С помощью флага OFIFG процедура обработки NMI-прерывания может проверить, было ли NMI-прерывание вызвано неисправностью осциллятора.

Сигнал неисправности осциллятора может быть вызван PUC-сигналом, поскольку он переводит осциллятор LFXT1 из режима HF в режим LF. Сигнал PUC также отключает осциллятор XT2.

Нарушение доступа к Flash-памяти

Флаг ACCVIFG устанавливается, когда происходит нарушение доступа к Flash-памяти. Генерация NMI-прерывания при нарушении доступа к Flash-памяти происходит при установленном бите ACCVIE. Проверкой флага ACCVIFG в процедуре обработки NMI-прерывания можно определить, было ли вызвано прерывание нарушением доступа к Flash-памяти.

Пример программы обработки немаскируемого прерывания NMI

NMI-прерывание имеет много возможных источников. NMI-прерывание автоматически сбрасывает биты разрешения прерываний NMIIE, OFIE и ACCVIE. Пользовательская процедура обработки NMI-прерывания сбрасывает флаги прерывания и включает биты разрешения прерываний в соответствии с требованиями приложения так, как показано на рис.2.6.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-6 Алгоритм процедуры обработки NMI-прерывания
Рис.2-6 Алгоритм процедуры обработки NMI-прерывания

Примечание: Разрешение NMI-прерывания с помощью ACCVIE, NMIIE и OFIE
Установка битов разрешения NMI-прерывания ACCVIE, NMIIE и OFIE не должна производится в теле процедуры обработки NMI-прерывания, за исключением случая, когда это происходит непосредственно перед командой RETI. В противном случае могут появиться вложенные NMI-прерывания, что приведет к переполнению стека и дальнейшей непредсказуемой работе.

2.2.2 Маскируемые прерывания

Маскируемые прерывания вызываются периферийными устройствами, имеющими возможность вызова прерываний, включая ситуацию переполнения сторожевого таймера в активном режиме. С помощью индивидуальных битов разрешения прерывания можно отключать источники прерываний как по отдельности, так и все сразу с использованием общего бита разрешения всех прерываний (GIE) в регистре статуса (SR).

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

2.2.3 Обработка прерывания

Если периферийное устройство запросило прерывание и включены биты общего разрешения прерываний GIE и индивидуальный бит разрешения прерывания от этого устройства, будет вызвана процедура обработки прерывания. Для вызова немаскируемого (NMI) прерывания достаточно установки только индивидуального бита разрешения прерывания.

Получение прерывания

Время задержки вызова прерывания составляет 6 машинных циклов, с момента приема запроса на прерывание и до начала выполнения первой команды процедуры обработки прерывания, как показано на рис.2.7. Логика обработки запроса прерывания имеет следующую последовательность:

  1. Любая текущая команда выполняется до конца;
  2. Содержимое программного счетчика PC, указывающего на следующую команду, помещается в стек;
  3. Содержимое регистра статуса SR помещается в стек;
  4. Если поступило несколько прерываний во время выполнения последней команды, обрабатывается прерывание с наивысшим приоритетом, остальные ожидают обслуживания;
  5. Автоматически сбрасывается флаг одного источника прерывания. Флаги запроса остальных прерываний остаются установленными в ожидании обслуживания программным обеспечением.
  6. Регистр SR очищается, за исключением бита SCG0, остающегося неизменным. Процессор переходит из режима пониженного потребления в активный режим;
  7. Содержимое вектора прерывания загружается в РС и начинается выполнение процедуры обработки прерывания с загруженного адреса.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-7 Процесс прерывания
Рис.2-7 Процесс прерывания

Возврат из прерывания

Подпрограмма обработки прерывания заканчивается такой командой:

RETI (возврат из подпрограммы обработки прерывания)

Для возврата из прерывания необходимо 5 машинных циклов, чтобы выполнить действия, показанные на рис.2.8.

  1. Восстанавливается из стека содержимое регистра SR. Становятся актуальными все предыдущие установки GIE, CPUOFF и пр., в не зависимости от установок, использовавшихся в процедуре обработке прерывания.
  2. Восстанавливается из стека содержимое программного счетчика PC и начинается выполнение программы с того места, где она была прервана.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.2-8 Возврат из прерывания
Рис.2-8 Возврат из прерывания

Допускаются вложенные прерывания, если бит GIE установлен во время выполнения процедуры обработки прерывания.

2.2.4 Векторы прерываний

Векторы прерываний и стартовые адреса расположены в адресном диапазоне с 0FFFFh по 0FFE0h, как показано в таблице 2.1. Вектор программируется пользователем с помощью указания 16-разрядного стартового адреса соответствующей процедуры обработки прерывания. Полный перечень векторов прерываний приводится в справочном руководстве каждого конкретного устройства.

Таблица 2.1. Источники прерываний, флаги и векторы

Источник прерывания Флаг прерывания Характер прерывания Адрес слова Приоритет
Включение питания, внешний сброс, сигнал сторожевого таймера, проверка пароля Flash-памяти WDTIFG
KEYV
Сброс 0FFFEh 15, наивысший
NMI-прерывание, неисправность осциллятора, нарушение доступа к Flash-памяти NMIIFG
OFIFG
ACCVIFG
Немаскируемое
Немаскируемое
Немаскируемое
0FFFCh 14
Определяется устройством     0FFFAh 13
Определяется устройством     0FFF8h 12
Определяется устройством     0FFF6h 11
Сторожевой таймер WDT   Маскируемое 0FFF4h 10
Определяется устройством     0FFF2h 9
Определяется устройством     0FFF0h 8
Определяется устройством     0FFEEh 7
Определяется устройством     0FFECh 6
Определяется устройством     0FFEAh 5
Определяется устройством     0FFE8h 4
Порт ввода/вывода Р2 С P2IFG.0 по P2IFG.7 Маскируемое 0FFE6h 3
Порт ввода/вывода Р1 С P1IFG.0 по P1IFG.7 Маскируемое 0FFE4h 2
Определяется устройством     0FFE2h 1
Определяется устройством     0FFE0h 0, низший

2.2.5 Регистры специального назначения (SFRs)

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

2.3 Режимы работы

Семейство MSP430 разработано для приложений с ультранизким потреблением мощности и имеет различные режимы работы, показанные на рис.2.10.

Режимы работы учитывают три различные потребности:

  • ультранизкое потребление
  • скорость и пропускную способность
  • минимизацию потребления тока конкретной периферией

Типичное потребление тока микроконтроллерами семейства MSP430 показано на рис.2.9.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.2-9 Типичное потребление тока устройствами 13х и 14х в зависимости от режима работы

Режимы низкого энергопотребления 0-4 конфигурируются с помощью битов CPUOFF, OSCOFF, SCG0 и SCG1 в регистре статуса. Преимущество включения битов управления режимом CPUOFF, OSCOFF, SCG0 и SCG1 в состав регистра статуса SR состоит в том, что текущий режим работы может быть сохранен, путем помещения содержимого SR в стек во время работы процедуры обработки прерывания. Выполняемая программа возвращается к предыдущему режиму работы, если сохраненное содержимое регистра SR не было изменено процедурой обработки прерывания. Выполнение программы может продолжится в другом рабочем режиме, если процедура обработки прерывания изменит значение регистра SR в стеке. Обращение к битам управления режимом и стеку может производиться с помощью любой команды.

При изменении любого бита управления режимом, выбранный режим работы активизируется немедленно. При отключении любой системы тактирования, блокируются также периферийные устройства, работающие от этой системы. Периферийные устройства также могут отключаться с помощью соответствующих им индивидуальных управляющих регистров. Состояние всех выводов портов ввода/вывода и ячеек ОЗУ остается неизменным. «Пробуждение» возможно через все разрешенные прерывания.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.2-10 Режимы работы основной системы тактирования MSP430

SCG1 SCG0 OSCOFF CPUOFF Режим Состояние ЦПУ и систем тактирования
0 0 0 0 Активный ЦПУ и все системы тактирования активны
0 0 0 1 LPM0 ЦПУ и MCLK отключены; SMCLK и ACLK активны
0 1 0 1 LPM1 ЦПУ, MCLK и DCO-осцил. отключены; DC генератор отключен, если DCO не используется для MCLK или SMCLK в активном режиме; SMCLK и ACLK активны
1 0 0 1 LPM2 ЦПУ, MCLK, SMCLK и DCO-осцил. отключены; DC генератор остается включенным; ACLK активно
1 1 0 1 LPM3 ЦПУ, MCLK, SMCLK и DCO-осцил. отключены; DC отключен; ACLK активно
1 1 1 1 LPM4 ЦПУ и все системы тактирования отключены

2.3.1 Вход и выход из режимов пониженного энергопотребления

Появление прерывания выводит микроконтроллер семейства MSP430 из любого режима пониженного энергопотребления.

Программный поток выглядит так:

  • Вход в процедуру обработки прерывания:
    • Содержимое регистров PC и SR сохраняется в стеке;
    • Биты CPUOFF, SCG1 и OSCOFF автоматически сбрасываются;
  • Параметры для возвращения из процедуры обработки прерывания:
    • Исходное содержимое регистра SR восстанавливается из стека, что приводит к возобновлению работы устройства в предыдущем режиме;
    • Биты регистра SR, сохраненного в стеке, могут быть модифицированы процедурой обработки прерывания, что приведет к переходу в другой рабочий режим после выполнения команды RETI.
    ; Пример входа в режим LPM0
    BIS #GIE+CPUOFF, SR             ; Вход  в режим LPM0
    ;      ...                      ; Программа останавливается в этом месте
    ;
    ; Выход в режим LPM0 из процедуры обработки прерывания
    BIC #CPUOFF, 0(SP)              ; Выход в режим LPM0 по команде RETI
    RETI
    ; Пример входа в режим LPM3
    BIS #GIE+CPUOFF+SCG1+SCG0, SR   ; Вход в режим LPM3
    ;       ...                     ; Программа останавливается в этом месте
    ;
    ; Выход в режим LPM3 из процедуры обработки прерывания
    BIC #CPUOFF+SCG1+SCG0,0(SP)     ; Выход в режим LPM3 по команде RETI
    RETI
    

Нахождение в режимах пониженного энергопотребления в течение длительного времени

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

    ; Пример входа в режим LPM4 с низшими установками DCO 
    BIC #RSEL2+RSEL1+RSEL0,&BCSCTL1         ; Установка низших значений RSEL
    BIS #GIE+CPUOFF+OSCOFF+SCG1+SCG0, SR    ; Вход в режим LPM4
    ;   ...                                 ; Останов программы
    ;
    ; Процедура обработки прерывания
    BIC #CPUOFF+OSCOFF+SCG1+SCG0, 0(SR)     ; Выход в режим LPM4 по команде RETI
    RETI
    

2.4 Принципы создания приложений с низким энергопотреблением

Часто, наиболее важным фактором для снижения энергопотребления является использование системы тактирования MSP430 для увеличения времени пребывания микроконтроллера в режиме LPM3. Типичное потребление тока в этом режиме составляет менее 2 мкА при функционирующей схеме тактирования реального времени и активированной системе прерываний. Модуль ACLK использует часовый кристалл 32 кГц, а ЦПУ тактируется от DCO (выключенного в нормальном режиме), который имеет время «пробуждения» 6 мкС.

  • Использование прерываний, «пробуждающих» процессор и управляющий программный поток;
  • Периферийные устройства должны включаться только при необходимости;
  • Следует использовать интегрированные периферийные модули с низким энергопотреблением вместо функций, реализуемых программными методами. К примеру таймер А и таймер В могут автоматически генерировать сигнал ШИМ и делать захват внешней синхронизации без использования ресурсов ЦПУ;
  • Вместо опроса флагов и длительных программных вычислений следует использовать рассчитываемое ветвление и быстрые таблицы преобразований;
  • Нужно избегать частого вызова подпрограмм и функций, увеличивающих непроизводительные издержки;
  • В длинных программных процедурах необходимо использовать однотактные регистры ЦПУ.

2.5 Подключение неиспользуемых выводов

Правильное подключение всех неиспользуемых выводов приведено в таблице 2.2.

Таблица 2.2. Подключение неиспользуемых выводов

Вывод Потенциал Комментарии
AVCC DVCC  
AVSS DVSS  
VREF+ Свободный  
VeREF+ DVSS  
VREF-/VeREF- DVSS  
XIN DVSS  
XOUT Свободный  
XT2IN DVSS Устройства 13х, 14х, 15х и 16x
XT2OUT Свободный Устройства 13х, 14х, 15х и 16x
C Px.0 по Px.7 Свободный Переключены к функции порта, направленного на вывод
RST/NMI DVSS или VCC «Подтягивающий» резистор 100 кОм
Test/VPP DVSS Устройства P11x
Test DVSS Устройства 11х и 12x
TDO Свободный  
TDI Свободный  
TMS Свободный  
TCK Свободный  

 

Раздел 3 16-разрядное RISC CPU

В этом разделе описывается ЦПУ MSP430, режимы адресации и набор команд.

3.1 Введение в ЦПУ

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

ЦПУ обладает следующими возможностями:

  • RISC-архитектура с 27 командами и 7 режимами адресации;
  • Ортогональная архитектура, при которой каждая команда пригодна для каждого режима адресации;
  • Полный доступ ко всем регистрам, включая программный счетчик, регистры статуса и указатель стека;
  • Однотактные регистровые операции;
  • Большой 16-разрядный регистровый файл, уменьшающий количество обращений к памяти;
  • 16-разрядная адресная шина, обеспечивающая прямой доступ и ветвление во всем диапазоне памяти;
  • 16-разрядная шина данных, позволяющая напрямую манипулировать параметрами шириной в слово;
  • Генератор констант немедленно предоставляет шесть используемых наиболее часто значений, уменьшая размер кода;
  • Прямой обмен между ячейками памяти без промежуточной записи в регистр;
  • Команды и адресация в форматах «слово» и «байт».

Блок-схема ЦПУ показана на рис.3.1.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments 3.2 Регистры ЦПУ

3.2 Регистры ЦПУ

ЦПУ включает шестнадцать 16-разрядных регистров. Регистры R0, R1, R2 и R3 имеют специальное назначение. Регистры с R4 по R15 являются рабочими регистрами общего назначения.

3.2.1 Программный счетчик (PC)

16-разрядный программный счетчик (PC/R0) указывает на следующую команду, которая будет выполняться. Каждая команда состоит из четного числа байтов (два, четыре или шесть), поэтому PC инкрементируется соответственно. Команды доступа в адресном пространстве 64 кБайт выполняются к границам слов, поэтому PC выравнивается к четным адресам. На рис.3.2 показана организация программного счетчика.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-2 Программный счетчик

Программный счетчик PC может быть адресован всеми командами и во всех адресных режимах. Некоторые примеры:

    MOV #LABEL, PC    ; Переход к адресу с меткой LABEL
    MOV LABEL, PC     ; Переход к адресу, содержащемуся в переменной LABEL
    MOV @R14, PC      ; Косвенный переход по косвенному содержимому R14
    

3.2.2 Указатель стека (SP)

Указатель стека (SP/R1) используется ЦПУ для хранения адресов возврата из подпрограмм и прерываний. Стек основан на предекрементной постинкрементной схеме. Кроме того, указатель стека SP может использоваться со всеми командами и во всех адресных режимах. На рис.3.3 показана организация SP. Указатель стека SP инициализируется в ОЗУ пользователем и выравнивается к четным адресам.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-3 Указатель стека

    MOV  2(SP),R6     ; Элемент стека I2 в R6
    MOV  R7,0(SP)     ; Перезапись в вершину стека (TOS) содержимого R7
    PUSH #0123h       ; Помещение числа 0123h на вершину стека (TOS)
    POP  R8           ; R8 = 0123h
    

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-4 Использование стека

Особенности использования «SP» в качестве аргумента команд PUSH и POP описаны и показаны на рис.3.5.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-5 Последовательность PUSH SP – POP SP

Указатель стека изменяется после выполнения команды PUSH SP. Указатель стека не изменяется после команды POP SP. Команда POP SP помещает SP1 в указатель стека SP (SP2=SP1).

3.2.3 Регистр статуса (SR)

Регистр статуса (SR/R2), используемый как регистр источника или получателя, может адресоваться в регистровом режиме только с помощью команд-слов. Прочие комбинации режимов адресации используются для поддержки генератора констант. На рис.3.6 показаны биты регистра статуса SR.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-6 Биты регистра статуса

В таблице 3.1 приведено описание битов регистра статуса.

Таблица 3.1. Описание битов регистра статуса

Бит Описание
V Бит переполнения. Этот бит устанавливается, если результат арифметической операции имеет переполнение в области знаковых переменных.
ADD(.B),ADDC(.B) Устанавливается, когда:
Положительный + Положительный = Отрицательный
Отрицательный + Отрицательный = Положительный
в противном случае сбрасывается
SUB(.B),SUBC(.B),CMP(.B) Устанавливается, когда:
Положительный – Отрицательный = Отрицательный
Отрицательный – Положительный = Позитивный
в противном случае сбрасывается
SCG1 Системный тактовый генератор 1. Когда этот бит установлен, SMCLK выключен.
SCG0 Системный тактовый генератор 0. Когда этот бит установлен, генератор DCO выключен, если DCOCLK не используется для MCLK или SMCLK.
OSCOFF Выключение осциллятора. Когда этот бит установлен, осциллятор LFXT1, использующий кристалл, выключен, если LFXT1CLK не используется для MCLK или SMCLK.
CPUOFF Выключение ЦПУ. Когда этот бит установлен, ЦПУ выключено.
GIE Общий бит разрешения прерываний. Когда этот бит установлен, маскируемые прерывания разрешены. Когда сброшен, все маскируемые прерывания запрещены.
N Бит отрицательного результата. Этот бит устанавливается, когда результат операции с байтом или словом отрицательный и сбрасывается, когда результат не отрицательный.
Операции со словами: N устанавливается по значению бита 15 результата
Операции с байтами: N устанавливается по значению бита 7 результата
Z Бит нуля. Этот бит устанавливается, когда результат операции с байтом или словом равен «0» и очищается, если результат не равен «0».
C Бит переноса. Этот бит устанавливается, когда результат операции с байтом или словом имеет перенос и очищается, когда переноса нет.

3.2.4 Регистры генератора констант CG1 и CG2

Шесть обычно используемых констант генерируются с помощью регистров R2 и R3 генератора констант, что исключает необходимость использования дополнительного 16-разрядного слова в программном коде. Константы выбираются путем изменения режима адресации (As) регистра-источника, в соответствии с таблицей 3.2.

Таблица 3.2. Значения генераторов констант CG1, CG2

Регистр As Константа Комментарий
R2 00 - - - - - Регистровый режим
R2 01 (0) Режим абсолютной (безусловной) адресации
R2 10 00004h +4, побитовая обработка
R2 11 00008h +8, побитовая обработка
R3 00 00000h 0, обработка по словам
R3 01 00001h +1
R3 10 00002h +2, побитовая обработка
R3 11 0FFFFh -1, обработка по словам

Генератор констант обладает следующими преимуществами:

  • Не требуются особые команды
  • Код не содержит дополнительного слова для шести констант
  • Не требуется код (команда) доступа к памяти для получения константы

Ассемблер автоматически использует генератор констант, если одна из шести констант используется как непосредственный исходный операнд. При использовании регистров R2 и R3 в режиме генерации констант, адресация к ним не может быть явной – они действуют только как регистры-источники.

Генератор команд – расширенная система команд

Набор RISС-команд семейства MSP430 состоит только из 27 команд. Однако, генератор констант позволяет поддерживать MSP430-ассемблеру 24 дополнительные эмулированные команды. К примеру, команда с одним операндом:

CLR dst
эмулируется командой с двумя операндами такой же длины:

MOV R3,dst
где #0 замещается ассемблером, а R3 используется в режиме As=00

Команда INC dst замещается командой ADD 0(R3),dst

3.2.5 Регистры общего назначения R4-R15

Двенадцать регистров с R4 по R15 являются регистрами общего назначения. Все эти регистры могут быть использованы в качестве регистров данных, указателей адресов или индексных значений и доступны с помощью команд работы с байтами или словами, как показано на рис.3.7.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

Пример операции регистр-байт
R5=0A28Fh
R6=0203h
Mem(0203h)=012h
ADD.B            R5,0(R6)
            
                  08Fh
                 +012h
                  0A1h
Mem(0203h)=0A1h
C=0, Z=0, N=1
  (младший байт регистра)
+ (адресуемый байт)
-------------------------
->(адресуемый байт)
Пример операции байт-регистр
R5=01202Fh
R6=0223h
Mem(0223h)=05Fh
ADD.B       @R6,R5
            
        05Fh
       +002h
      00061h
R5=00061h
C=0, Z=0, N=0
  (адресуемый байт)
+ (младший байт регистра)
-------------------------
->(младший байт регистра,
ноль в старшем байте)

Рис.3-7 Операции регистр-байт / байт-регистр

 

3.3 Режимы адресации

Семь режимов адресации для операнда источника и четыре режима адресации для операнда назначения могут адресовать полное адресное пространство без исключений. В таблице 3.3 приводится конфигурация битов для режимов As (источник) и Ad (назначение).

Таблица 3.3 Режимы адресации операндов источника/получателя

As/Ad Режим адресации Синтаксис Описание
00 / 0 Регистровый режим Rn Содержимое регистра является операндом
01 / 1 Индексный режим X(Rn) Значение (Rn+X) указывает на операнд. X сохранен в следующем слове
01 / 1 Символьный режим ADDR Значение (PC+X) указывает на операнд. X сохранен в следующем слове. Использован индексный режим X(PC)
01 / 1 Абсолютный (безусловный) режим &ADDR Слово, следующее за командой, содержит абсолютный адрес. X сохранен в следующем слове. Использован индексный режим X(SR)
10 / - Косвенный регистровый режим @Rn Содержимое Rn использовано как указатель на операнд
11 / - Косвенный автоинкремент @Rn+ Содержимое Rn использовано как указатель на операнд. Содержимое Rn впоследствии увеличивается на 1 для байтовых команд и на 2 для команд-слов.
11 / - Прямой (непосредственный) режим #N Слово, следующее за командой, содержит непосредственную константу N. Использован косвенный автоинкрементный режим @PC+

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

Примечание: использование меток EDE и TONI
Везде в документации по семейству MSP430 используются универсальные метки EDE и TONI. Они являются только метками, не имеющими никакого специального назначения.

3.3.1 Регистровый режим

Таблица 3.4. Описание регистрового режима

Код ассемблера Содержимое ПЗУ
MOV R10,R11 MOV R10, R11
Длина: Одно или два слова
Операция: Пересылка содержимого R10 в R11. Содержимое R10 не изменяется.
Комментарий: Действительно для источника и получателя.
Пример: MOV R10,R11
 
  До   После
R10
0A023h
R10
0A023h
R11
0FA15h
R11
0A023h
PC
PCold
PC
PCold+2

 

Примечание: данные в регистрах
Данные в регистре могут быть доступны с помощью байтовых команд или команд-слов. Если используются байтовые команды, старший байт всегда будет содержать в результате «0». Биты статуса обрабатываются согласно результату байтовой команды.

3.3.2 Индексный режим

Таблица 3.5. Описание индексного режима

Код ассемблера Содержимое ПЗУ
MOV 2(R5),6(R6) MOV X(R5),Y(R6)
X=2
Y=6
Длина: Два или три слова
Операция: Пересылка содержимого с исходного адреса (равного сумме содержимого R5 + 2) по адресу назначения (содержимое R6 + 6). Регистры источника и получателя (R5 и R6) не изменяются. В индексном режиме программный счетчик автоматически инкрементируется таким образом, что выполнение программы продолжается со следующей команды.
Комментарий: Действительно для источника и получателя
Пример: MOV 2(R5),6(R6):

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

3.3.3 Символьный режим

Таблица 3.6. Описание символьного режима.

Код ассемблера Содержимое ПЗУ
MOV EDE,TONI MOV X(PC),Y(PC)
X=EDE-PC
Y=TONI-PC
Длина: Два или три слова
Операция: Пересылка содержимого с исходного адреса EDE (равного сумме содержимого PC + X) по адресу назначения TONI (содержимое PC + Y). Слова после команды содержат разницу между PC и адресами источника или получателя соответственно. Ассемблер автоматически вычисляет и вставляет смещения X и Y. В символьном режиме программный счетчик автоматически инкрементируется так, что выполнение программы продолжается со следующей команды.
Комментарий: действительно для источника и получателя
Пример: MOV EDE,TONI ;Адрес источника EDE=0F016h
;Адрес получателя TONI=01114h

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

3.3.4 Абсолютный режим

Таблица 3.7. Описание абсолютного режима

Код ассемблера Содержимое ПЗУ
MOV &EDE,&TONI MOV X(0),Y(0)
X=EDE
Y=TONI
Длина: Два или три слова
Операция: Пересылка содержимого с исходного адреса EDE по адресу назначения TONI. Слова после команды содержат абсолютные адреса источника и получателя. В абсолютном режиме программный счетчик автоматически инкрементируется так, что выполнение программы продолжается со следующей команды.
Комментарий: Действительно для источника и получателя
Пример: MOV &EDE,&TONI ;Адрес источника EDE=0F016h
;Адрес получателя TONI=01114h

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

Этот режим адресации предназначен главным образом для аппаратных периферийных модулей, расположенных по абсолютным, фиксированным адресам. Они адресуются в абсолютном режиме, что гарантирует переносимость программы (например, при написании позиционно-независимого, переносимого кода).

3.3.5 Косвенный регистровый режим

Таблица 3.8. Описание косвенного регистровый режима

Код ассемблера Содержимое ПЗУ
MOV @R10,0(R11) MOV @R10,0(R11)
Длина: Одно или два слова
Операция: Пересылка содержимого с исходного адреса (содержится в R10) по адресу назначения (содержится в R11). Регистры не изменяются.
Комментарий: Действительно только для операнда источника. В качестве операнда получателя подставляется 0(Rd)
Пример: MOV.B @R10,0(R11)

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

3.3.6 Косвенный автоинкрементный режим

Таблица 3.9. Описание косвенного автоинкрементного режима

Код ассемблера Содержимое ПЗУ
MOV @R10+,0(R11) MOV @R10+,0(R11)
Длина: Одно или два слова
Операция: Пересылка содержимого с исходного адреса (содержится в R10) по адресу назначения (содержится в R11). Регистр R10 инкрементируется после выборки на 1 для байтовых операций или на 2 для команд-слов, таким образом указывается следующий адрес без дополнительных действий. Это полезно для обработки таблиц.
Комментарий: Действительно только для операнда источника. В качестве операнда получателя подставляется 0(Rd) плюс вторая команда INCD Rd.
Пример: MOV.B @R10+,0(R11)

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

Автоинкремент содержимого регистра происходит после выборки операнда. Этот процесс показан на рис.3.8.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

3.3.7 Прямой режим

Таблица 3.10. Описание прямого (непосредственный) режима

Код ассемблера Содержимое ПЗУ
MOV #45h,TONI MOV @PC+,X(PC)
45
X=TONI-PC
Длина: Два или три слова.
На одно слово меньше, если может использоваться константа генераторов CG1 или CG2.
Операция: Пересылка непосредственной константы 45h, находящейся в слове, следующем за командой, по адресу назначения TONI. Когда происходит выборка источника, программный счетчик указывает на слово, следующее за командой, и выполняется пересылка содержимого по назначению.
Комментарий: Действительно только для операнда источника
Пример: MOV #45h,TONI

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

 

 

Раздел 4 Основной модуль тактирования

Основной модуль тактирования обеспечивает тактирование устройств семейства MSP430x1xx. В этом разделе описывается работа с основным модулем тактирования. Этот модуль реализован во всех устройствах семейства MSP430x1xx.

4.1 Введение в основой модуль тактирования

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

Основной модуль тактирования включает в себя два или три источника тактовых импульсов:

  • LFXT1CLK: низкочастотный / высокочастотный осциллятор, который может использоваться как с низкочастотными часовыми кварцевыми резонаторами на 32768 Гц, так и со стандартными кристаллами, резонаторами или внешними источниками тактирования в диапазоне от 450 кГц до 8 МГц.
  • XT2CLK: дополнительный высокочастотный осциллятор может использоваться со стандартными кристаллами, резонаторами или внешними источниками тактовых сигналов в диапазоне от 450 кГц до 8 МГц.
  • DCOCLK: встроенный осциллятор с цифровым управлением (DCO) с характеристикой RC- типа.

От основного модуля тактирования можно получить три тактовых сигнала:

  • ACLK: вспомогательное тактирование. Модуль ACLK – это буферизированный LFXT1CLK источник тактовых импульсов с делителем на 1, 2, 4 или 8. ACLK программно выбирается для конкретных периферийных модулей.
  • MCLK: основное тактирование. Модуль MCLK программно выбирается как LFXT1CLK, XT2CLK (если доступен) или DCOCLK. MCLK делится на 1, 2, 4 или 8. MCLK используется ЦПУ и системой.
  • SMCLK: второстепенное тактирование. Модуль SMCLK программно выбирается как LFXT1CLK, XT2CLK (если доступен) или DCOCLK. SMCLK делится на 1, 2, 4 или 8. SMCLK программно выбирается для конкретных периферийных модулей.

Блок-схема основного модуля тактирования показана на рис.4.1.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-1 Блок-схема основного тактирования
Рис.4-1 Блок-схема основного тактирования

Примечание: XT2 осциллятор

Осциллятор XT2 отсутствует в устройствах MSP430x11xx и MSP430x12xx. Вместо XT2CLK используется LFXT1CLK.

4.2 Функционирование основного модуля тактирования

После сигнала PUC источником для модулей MCLK и SMCLK является DCOCLK c частотой около 800 кГц (см. параметры в справочном руководстве конкретного устройства) и LFXT1 для модуля ACLK в режиме LF.

Управляющие биты регистра статуса SCG0, SCG1, OSCOFF и CPUOFF конфигурируют рабочие режимы MSP430 и позволяют включать или отключать отдельные части основного модуля тактирования. См. раздел «Сброс, прерывания и рабочие режимы». С помощью регистров DCOCTL, BCSCTL1 и BCSCTL2 осуществляется конфигурирование основного модуля тактирования.

Основное тактирование может конфигурироваться и реконфигурироваться программным обеспечением в любой момент времени в ходе выполнения программы, например:
 

BIS.B #RSEL2+RSEL1+RSEL0,&BCSCTL1
BIS.B #DCO2+DCO1+DCO0,&DCOCTL; установка максимальной частоты DCO

4.2.1 Возможности основного модуля тактирования в приложениях с малым потреблением мощности

В приложениях на основе MSP430x1xx с питанием от батарей обычно существуют следующие противоречивые требования:

  • Низкая тактовая частота для экономии энергии и увеличения времени работы от батарей;
  • Высокая тактовая частота для быстрой реакции на события и обеспечения возможности быстрой обработки информации

Основной модуль тактирования позволяет пользователю обходить вышеперечисленные противоречия путем выбора наиболее оптимального из трех возможных сигналов тактирования: ACLK, MCLK и SMCLK. Для оптимальной производительности с низким энергопотреблением модуль ACLK может быть сконфигурирован на работу от часового кварцевого резонатора на 32768 Гц, обеспечивающим стабильное тактирование для системы и малое потребление в режиме ожидания. MCLK может настраиваться на работу от интегрированного модуля DCO, который активируется только при появлении запроса на обработку прерывания. SMCLK можно конфигурировать на работу как от часового кварцевого резонатора, так и от DCO, в зависимости от требований периферии. Гибкое распределение тактовых сигналов и наличие система деления тактовой частоты обеспечивает тонкую настройку индивидуальных потребностей тактирования.

4.2 Функционирование основного модуля тактирования

После сигнала PUC источником для MCLK и SMCLK является DCOCLK c частотой около 800 кГц (см. параметры в справочном руководстве конкретного устройства) и LFXT1 для ACLK в режиме LF.

Управляющие биты регистра статуса SCG0, SCG1, OSCOFF и CPUOFF конфигурируют рабочие режимы MSP430 и позволяют включать или отключать отдельные части основного модуля тактирования. См. раздел «Системный сброс, прерывания и рабочие режимы». С помощью регистров DCOCTL, BCSCTL1 и BCSCTL2 осуществляется конфигурирование основного модуля тактирования.

Основное тактирование может конфигурироваться и реконфигурироваться программным обеспечением в любой момент времени в ходе выполнения программы, например:

BIS.B #RSEL2+RSEL1+RSEL0,&BCSCTL1		;
BIS.B #DCO2+DCO1+DCO0,&DCOCTL			; установка максимальной частоты DCO

4.2.1 Возможности основного модуля тактирования в приложениях с малым потреблением мощности

В приложениях на основе MSP430x1xx с питанием от батарей обычно существуют следующие противоречивые требования:

  • Низкая тактовая частота для экономии энергии и увеличения времени работы от батарей
  • Высокая тактовая частота для быстрой реакции на события и возможность быстрой обработки информации

Основной модуль тактирования позволяет пользователю обходить вышеперечисленные противоречия путем выбора наиболее оптимального из трех возможных сигналов тактирования: ACLK, MCLK и SMCLK. Для оптимальной производительности при низком энергопотреблении ACLK можно сконфигурировать на работу от часового кварцевого резонатора на 32768 Гц, обеспечивающего стабильное тактирование системы и малое потребление в режиме ожидания. MCLK может настраиваться на работу от интегрированного модуля DCO, который активируется только при появлении запроса на обработку прерывания. SMCLK можно конфигурировать на работу как от часового кварцевого резонатор, так и от DCO, в зависимости от требований периферии. Гибкое распределение тактовых сигналов и наличие системы деления тактовой частоты обеспечивает тонкую настройку для удовлетворения индивидуальных потребностей в тактировании.

4.2.2 Осциллятор LFXT1

В режиме LF (XTS=0) осциллятор LFXT1 обеспечивает ультранизкое потребление тока при использовании часового кварцевого резонатор на 32768 Гц. Часовой кварцевый резонатор подключается к выводам XIN и XOUT без каких-либо дополнительных компонентов. При работе осциллятора LFXT1 в режиме LF используются внутренние нагрузочные конденсаторы на 12 пФ. Они включаются последовательно, обеспечивая нагрузку 6 пФ, необходимую для стандартного кварцевого резонатор 32768 Гц. При необходимости могут быть добавлены дополнительные конденсаторы.

Осциллятор LFXT1 также поддерживает высокочастотные кристаллы или резонаторы, когда находится в режиме HF (XTS=1). Высокоскоростные кристаллы или резонаторы подключаются к выводам XIN и XOUT и нуждаются в использовании внешних конденсаторов на обоих выводах. Параметры конденсаторов должны соответствовать требованиям, приведенным в спецификациях кристаллов или резонаторов.

Программное обеспечение может отключить осциллятор LFXT1 установкой OSCOFF, если этот сигнал не используется в качестве источника для SMCLK или MCLK, как показано на рис. 4.2.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-2 Сигналы выключения осциллятора LFXT1
Рис.4-2 Сигналы выключения осциллятора LFXT1

Примечание: характеристики осциллятора LFXT1
    Низкочастотным кристаллам, в зависимости от типа, часто требуются сотни миллисекунд для старта. Это допускается для осциллятора LFXT1 в LF режиме.
    Осцилляторы с ультранизким потреблением, такие как LFXT1 в режиме LF необходимо защищать от шумов других источников. Кварцевый резонатор следует размещать как можно ближе к MSP430 с заземленной площадкой под ним, а трассировку проводников от кристалла выполнять с защитными заземляющими проводниками.
    При работе осциллятора LFXT1 в режиме LF требуется подключение резистора 5,1 МОм между выводами Xout и Vss, когда Vcc < 2,5 В.

4.2.3 Осциллятор XT2

Некоторые устройства имеют второй кристаллический осциллятор XT2. XT2 является источником сигнала XT2CLK, а его характеристики идентичны LFXT1 в режиме HF. Бит XT2OFF отключает осциллятор XT2, если XT2CLK не используется для MCLK или SMCLK, как показано на рис. 4.3.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-3 Сигналы выключения осциллятора XT2
Рис.4-3 Сигналы выключения осциллятора XT2

4.2.4 Осциллятор с цифровым управлением (DCO)

DCO представляет собой интегрированный автогенератор с характеристикой RC-типа. Как у любого осциллятора RC-типа, его частота зависит от температуры, напряжения и отличается от устройства к устройству. Частота DCO может подстраиваться программным обеспечением с помощью битов DCOx, MODx и RSELx. Цифровое управление осциллятором позволяет стабилизировать частоту, несмотря на характеристику RC-типа.

Отключение DCO

Программное обеспечение может отключать DCOCLK, когда он не используется в качестве источника для SMCLK или MCLK, как показано на рис.4.4.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-4 Включение/выключение DCO
Рис.4-4 Включение/выключение DCO

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

После сигнала PUC для DCO генератора выбирается встроенный резистор, устанавливаются значения RSELx=4 и DCOx=3, в результате DCO стартует с усредненной частоты. В качестве источника для MCLK и SMCLK используется DCOCLK. Поскольку при выполнении кода ЦПУ тактируется от сигнала MCLK, который использует быстростартующий DCO, выполнение кода начинается менее чем через 6 мкС после сигнала PUC.

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

  • Фундаментальная частота определяется инжекцией тока в DC генератор через внутренний либо внешний резистор. Бит DCOR позволяет выбрать внутренний или внешний резистор.
  • Три бита RSELx позволяют выбрать для DCO один из восьми номинальных диапазонов частот. Эти диапазоны определены для конкретного устройства в соответствующем ему справочном руководстве.
  • Три бита DCOx делят диапазон DCO, выбранный с помощью битов RSELx на 8 уровней частоты, различающихся примерно на 10%.
  • Пять битов MODx выполняют переключение между частотой, устанавливаемой битами DCOx и следующей более высокой частотой, устанавливаемой DCO+1.

Диапазоны DCOx и RSELx, а также возможные шаги изменения частоты показаны на рис. 4.5.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-5 Диапазон DCOx и шаги RSELx
Рис.4-5 Диапазон DCOx и шаги RSELx

Использование внешнего резистора (Rosc) для DCO

Температурный коэффициент DCO может быть уменьшен при использовании внешнего резистора Rosc в качестве источника тока для DC генератора. На рис. 4.6 показана типичная зависимость частоты DCO от температуры для встроенного и внешнего резисторов. Использование внешнего резистора Rosc уменьшает температурный коэффициент DCO примерно на -0.05%/С. Подробные характеристики приведены в справочном руководстве на конкретное устройство.

Резистор Rosc также позволяет работать DCO на высоких частотах. К примеру, встроенный резистор с номинальным сопротивлением около 200 кОм позволяет работать модулю DCO на частоте приблизительно до 5 МГц. Когда используется внешний резистор Rosc сопротивлением около 100 кОм, DCO может работать на частотах до 10 МГц. Пользователю необходимо соблюдать осторожность, чтобы не превысить максимальную частоту MCLK, указанную в справочных данных, даже если DCO способен работать на более высоких частотах.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-6 Зависимость частоты  модуля DCO от температуры
Рис.4-6 Зависимость частоты модуля DCO от температуры

4.2.5 DCO модулятор

Модулятор смешивает две DCO-частоты: fDCO и fDCO+1, вырабатывая промежуточную эффективную частоту между fDCO и fDCO+1 и распределяет энергию тактирования, что приводит к снижению электромагнитных помех (EMI1). Модулятор смешивает частоты fDCO и fDCO+1 для 32 тактовых циклов DCOCLK и может конфигурироваться с помощью битов MODx. Когда MODx=0, модулятор выключен.

Смешивание частот модулятором происходит согласно следующей формуле:

t=(32-MODx) * tDCO + MODx * tDCO+1

Поскольку fDCO меньше эффективной частоты, а fDCO+1 выше, погрешность эффективной частоты в сумме равна нулю. Накопления погрешности не происходит. Погрешность эффективной частоты равна нулю каждые 32 цикла DCOCLK. На рис. 4.7 показана работа модулятора.

Параметры настройки модулятора и управления DCO конфигурируются программно. Сигнал DCOCLK может сравниваться со стабильной, заранее известной частотой и подстраиваться с помощью битов DCOx, RSELx и MODx. Замечания по применению и примеры кода для конфигурирования DCO можно найти на сайте www.ti.com/sc/msp430" target="_blank">http://www.ti.com/sc/msp430.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-7 Диаграмма сигналов модулятора
Рис.4-7 Диаграмма сигналов модулятора

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

В основном модуле тактирования имеется возможность определения возникновения неисправности осциллятора. Детектор неисправности осциллятора представляет собой аналоговую схему мониторинга сигналов LFXT1CLK (в режиме HF) и XT2CLK. Неисправность осциллятора определяется, когда любой из этих тактовых сигналов отсутствует в течение приблизительно 50 мкС. Когда обнаруживается неисправность осциллятора, а источником для сигнала MCLK выступает либо LFXT1 в режиме HF, либо XT2, происходит автоматическое переключение MCLK на работу от DCO, как от источника тактовых импульсов. Это позволяет продолжить выполнение программного кода, даже в ситуации, когда кварцевый генератор остановился.

Если установлены флаги OFIFG и OFIE, происходит запрос немаскируемого прерывания NMI. Процедура обработки NMI-прерывания может проверить флаг OFIFG, что позволит выявить возникшую неисправность осциллятора. Очистка флага OFIFG должна производиться программным обеспечением.

Примечание: определение неисправности осциллятора LFXT1 в режиме LF не производится.
    Определение неисправности осциллятора выполняется только для LFXT1 в режиме HF и для XT2. Детектирование неисправности осциллятора модуля LFXT1 в режиме LF не производится.

Флаг OFIFG устанавливается сигналом неисправности осциллятора XT_OscFault. Сигнал XT_OscFault устанавливается при POR, когда модули XT2 или LFXT1 в режиме HF имеют неисправность осциллятора. Когда XT2 или LFXT1 в режиме HF останавливаются программным обеспечением, сигнал XT_OscFault вырабатывается немедленно, и остается активным пока осциллятор не будет перезапущен, и снимается примерно через 50 мкС после рестарта осциллятора, как показано на рис. 4.8.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-8 Сигнал неисправности осциллятора
Рис.4-8 Сигнал неисправности осциллятора

Определение неисправности осциллятора

Сигнал XT_OscFault переключает флаг OFIFG так, как показано на рис. 4.9. Сигнал LFXT1_OscFault имеет низкий уровень, когда LFXT1 находится в LF режиме.

В устройствах, у которых модуль XT2 отсутствует, флаг OFIFG не может быть очищен, когда LFXT1 в режиме LF. Источником для сигнала MCLK может являться LFXT1CLK в режиме LF при установке битов SELMx, даже если флаг OFIFG остается поднятым.

В устройствах, имеющих XT2, флаг OFIFG может очищаться программно, когда LFXT1 находится в режиме LF и далее остается очищенным. Источником для сигнала MCLK может являться LFXT1CKL в режиме LF независимо от состояния флага OFIFG.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-9 Прерывание при неисправности осциллятора
Рис.4-9 Прерывание при неисправности осциллятора

Использование кварцевого резонатора для формирования MCLK

После сигнала PUC основной модуль тактирования использует DCOCLK для формирования MCLK. Если необходимо, в качестве источника сигнала для MCLK можно использовать LFXT1 или XT2. Для смены источника тактирования сигнала MCLK с модуля DCO на тактирование от кварцевого резонатора (LFXT1CLK или XT2CLK) используется следующая последовательность команд:

  1. Переключение на кварцевый резонатор
  2. Очистка флага OFIFG
  3. Ожидание в течение примерно 50 мкС
  4. Проверка OFIFG и повторение шагов с 1-4 до тех пор, пока OFIFG остается очищенным.
; Выбор LFXT1 (в режиме HF) для MCLK
BIC #OSCOFF,SR 					; включение осциллятора
BIS.B #XTS,BCSCTL1 				; установка режима HF 
L1 BIC.B #OFIFG,&IFG1 				; очистка OFIFG
MOV #0FFh,R15 					; задержка
L2 DEC R15 					;
JNZ L2 						;
BIT.B #OFIFG,&IFG1 				; повторная проверка OFIFG
JNZ L1 						; повторение проверки, если необходимо
BIS.B #SELM1+SELM0,&BCSCTL2			; выбор LFXT1CLK

4.2.7 Синхронизация сигналов тактирования

Когда происходит переключение MCLK или SMCLK на другой источник опорной тактовой частоты, переключатель синхронизируется, чтобы избежать критических состояний «гонки» сигналов. Это показано на рис. 4.10:

  1. Текущий тактовый цикл продолжается до следующего фронта сигнала исходного источника.
  2. Уровень тактового сигнала (MCLK) остается высоким до следующего фронта сигнала нового источника.
  3. Выбирается новый источник тактирования и далее MCLK продолжает работать от него, начиная с полного периода нового источника.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.4-10 Переключение MCLK с DCOCLK на LFXT1CLK
Рис.4-10 Переключение MCLK с DCOCLK на LFXT1CLK

 

4.3 Регистры основного модуля тактирования

Перечень регистров основного модуля тактирования приведен в таблице 4.1.

Таблица 4-1. Регистры основного модуля тактирования

Регистр Обозначение Тип регистра Адрес Исходное состояние
Регистр управления DCO DCOCTL Чтение / запись 056h 056h после PUC
Регистр 1 управления системой основного тактирования BCSCTL1 Чтение / запись 057h 084h после PUC
Регистр 2 управления системой основного тактирования BCSCTL2 Чтение / запись 058h Сбрасывается после POR
Регистр 1 разрешения прерываний SFR IE1 Чтение / запись 0000h Сбрасывается после PUC
Регистр 1 флагов прерываний SFR IFG1 Чтение / запись 0002h Сбрасывается после PUC

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

7 6 5 4 3 2 1 0
DCOx MODx
rw-0 rw-1 rw-1 rw-0 rw-0 rw-0 rw-0 rw-0
DCOx Биты 7-5 Выбор частоты DCO. Эти биты определяют, какая из восьми дискретных частот DCO будет использоваться при выбранных установках RSELx.
MODx Биты 4-0 Выбор модулятора. Эти биты определяют, как часто частота fDCO+1 используется в течение периода 32 циклов DCOCLK. В течение оставшихся циклов (32-MOD) используется частота fDCO. Эти биты не задействуются, когда DCOx=7.

BCSCTL1, регистр 1 управления системой основного тактирования

7 6 5 4 3 2 1 0
XT2OFF XTS DIVAx XT5V RSELx
rw-(1) rw-(0) rw-(0) rw-(0) rw-0 rw-1 rw-0 rw-0
XT2OFF Бит 7 Выключение XT2. Этот бит выключает осциллятор XT2.
 
0 включение XT2
1 выключение XT2, если он не используется для MCLK или SMCLK.
XTS Бит 6 Выбор режима LFXT1
 
0 режим низкой частоты
1 режим высокой частоты
DIVAx Биты 5-4 Делитель для ACLK
 
00 /1
01 /2
10 /4
11 /8
XT5V Бит 3 Не задействован. XT5V должен быть всегда сброшен.
RSELx Биты 2-0 Выбор резистора. Внутренний резистор имеет восемь различных величин сопротивления. Значение сопротивления резистора определяет номинальную частоту. Низшая номинальная частота выбирается при установке RSELx=0.

BCSCTL2, регистр 2 управления системой основного тактирования

7 6 5 4 3 2 1 0
SELMx DIVMx SELS DIVSx DCOR
rw-(0) rw-(0) rw-(0) rw-(0) rw-0 rw-0 rw-0 rw-0
SELMx Биты 7-6 Выбор MCLK. Эти биты позволяют выбрать источник для MCLK.
 
00 DCOCLK
01 DCOCLK
10 XT2CLK, когда XT2 имеется в микросхеме. LFXT1CLK, когда XT2 отсутствует.
11 LFXT1CLK
DIVMx Биты 5-4 Делитель для MCLK
 
00 /1
01 /2
10 /4
11 /8
SELS Бит 3 Выбор SMCLK. Эти биты позволяют выбрать источник для SMCLK.
 
0 DCOCLK
1 XT2CLK, когда XT2 имеется в микросхеме. LFXT1CLK, когда XT2 отсутствует.
DIVSx Биты 2-1 Делитель для SMCLK
 
00 /1
01 /2
10 /4
11 /8
DCOR Бит 0 Выбор резистора для DCO.
 
0 Внутренний резистор
1 Внешний резистор

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

7 6 5 4 3 2 1 0
            OFIE  
            rw-0  
  Биты 7-2 Эти биты могут быть использованы другими модулями. См. справочное руководство конкретной микросхемы.
OFIE Бит 1 Разрешение прерывания при возникновении ошибки осциллятора. Этот бит разрешает прерывание OFIFG. Поскольку другие биты в регистре IE1 могут использоваться для других устройств, рекомендуется вместо команд MOV.B или CLR.B применять команды BIS.B или BIC.B.
 
0 Прерывание запрещено
1 Прерывание разрешено
  Бит 0 Этот бит может быть использован другими модулями. См. справочное руководство конкретной микросхемы.

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

7 6 5 4 3 2 1 0
            OFIFG  
            rw-0  
  Биты 7-2 Эти биты могут быть использованы другими модулями. См. справочное руководство конкретной микросхемы.
OFIFG Бит 1 Флаг прерывания при возникновении ошибки осциллятора. Поскольку остальные биты в регистре IFG1 могут использоваться для других устройств, рекомендуется вместо команд MOV.B или CLR.B применять команды BIS.B или BIC.B.
 
0 Прерывание не ожидается
1 Прерывание ожидается
  Бит 0 Этот бит может быть использован другими модулями. См. справочное руководство конкретной микросхемы.

 

 

 

 

 

 

 

 

содержание      ..      1       2         ..

 

 

///////////////////////////////////////