Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x1xx

реклама

 




Мероприятия:




Раздел 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 Свободный  


<-- Предыдущая страница Оглавление Следующая страница -->


Недорогая и качественная www.emigranty.ru" class="sale">недвижимость в Чехии для российских бизнесменов
    Получить консультации и преобрести компоненты вы сможете у официальных поставщиков фирмы Texas Instruments,

поставщики электронных компонентов






 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники