WINCTRL - регистр управления оконным режимом 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

WINCTRL - регистр управления оконным режимом



Бит                  
+0x01
- - WPER[3:0] WEN WCEN
WINCTRL
Чтение/запись (защитный fuse-бит запрограммир.) Чт. Чт. Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап  
Чтение/запись защитный fuse-бит незапрограммир.) Чт. Чт. Чт. Чт. Чт. Чт. Чт/Зап Чт/Зап
Нач значение (значение х задается fuse-битами)     x x x x x    
                       

126. Биты 7:6 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

127. Биты 5:2 - WPER[3:0]: период срабатывания сторожевого таймера в оконном режиме

Данные биты задают период запрещенного сброса сторожевого таймера числом периодов ULP-генератора частоты 1 кГц. Возможные варианты настроек данных бит приведены в таблице 11.2.

Начальные значения бит WPER[3:0] задаются fuse-битами настройки периода срабатывания сторожевого таймера в оконном режиме (WDWP), которые автоматически копируются в этот регистр при подаче питания. Когда сторожевой таймер работает в нормальном режиме, биты WPER[3:0] не используются.

Попытки изменения данных бит будут иметь успех, только если одновременно с этим будет записываться единица в бит WCEN. Биты WPER[3:0] защищены механизмом защиты от изменения конфигурации, который подробно рассмотрен в 3.12 "Защита от изменения конфигурации".

Таблица 11.2. Настройка периода запрещенного сброса сторожевого таймера

WPER[3:0] Групповая конфигурация Типичные значения периода запрещенного сброса WDT
  8CLK 8 мс
  16CLK 16 мс
  32CLK 32 мс
  64CLK 64 мс
  125CLK 0.125 с
  250CLK 0.250 с
  500CLK 0.50 с
  1KCLK 1.0 с
  2KCLK 2.0 с
  4KCLK 4.0 с
  8KCLK 8.0 с
    (резерв)
    (резерв)
    (резерв)
    (резерв)
    (резерв)

128. Бит 1 - WEN: разрешение оконного режима сторожевого таймера

Данный бит разрешает работу сторожевого таймера в оконном режиме. Попытка изменения данного бита будет иметь успех, только при условии одновременной записи лог. 1 в бит WCEN этого регистра. Данный бит защищен механизмом защиты от изменения конфигурации, подробно рассмотренный в разделе 3.12 "Защита от изменения конфигурации".

129. Бит 0 - WCEN: разрешение изменения настроек сторожевого таймера в оконном режиме

Установка данного бита делает возможным изменение настройки рассматриваемого регистра. Во время записи в регистр WINCTRL нового значения необходимо, чтобы одновременно с этим в бит WCEN записывалась лог. 1, иначе изменение содержимого регистра не произойдет. Данный бит защищен механизмом защиты от изменения конфигурации, подробно рассмотренный в разделе 3.12 "Защита от изменения конфигурации". Действие fuse-бита блокировки изменения настроек WDT на данный бит не распространяется.

STATUS - регистр статуса сторожевого таймера

Бит                  
+0x02
- - - - - - - SYNCBUSY
STATUS
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт. Чт. Чт.
Нач значение                

130. Биты 7:1 - Res: резервные биты

Данные биты являются резервными и всегда считываются с нулевыми значениями. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

131. Бит 0 - SYNCBUSY

Когда выполняется запись в регистр CTRL или WINCTRL, сторожевой таймер нуждается в синхронизации по отношению к другим доменам синхронизации. В процессе такой синхронизации бит SYNCBUSY считывается с единичным значением. Бит SYNCBUSY автоматически сбрасывается по завершении синхронизации. Процедура синхронизации имеет место только, когда установлен бит ENABLE сторожевого таймера.

Обзор регистров

Адрес Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 CTRL - - PER[3:0] ENABLE CEN
+0x01 WINCTRL - - WPER[3:0] WEN WCEN
+0x02 STATUS - - - - - - - SYNCBUSY

 

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

Отличительные особенности

132. Отдельный вектор у каждого прерывания

133. Малое и предсказуемое время реагирования на прерывания

134. Программируемый многоуровневый контроллер прерываний

135. 3 программируемых уровня прерываний

136. Выборочная схема обработки приоритета низкоуровневых прерываний (фиксированная или карусельная)

137. Немаскируемые прерывания (NMI)

138. Векторы прерываний могут перемещены в начало загрузочного сектора

Обзор

Прерывания сигнализируют об изменении состояния в УВВ и могут использоваться для управления ходом выполнения программы. Каждое из УВВ может поддерживать одно или несколько прерываний и каждое из этих прерываний может быть раздельно разрешено или запрещено. Запрос на прерывание генерируется в том случае, если в какой-либо момент после его разрешения обнаруживается соответствующее ему условие. У каждого прерывания имеется отдельный вектор прерывания.

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

Каждое из прерываний поддерживает возможность настройки уровня его приоритета: низкий, средний и высокий. Прерывания среднего уровня способны прерывать выполнение процедуры обработки прерывания низкого уровня. В свою очередь, прерывания высокого уровня могут прерывать процедуры обработки прерываний низкого и среднего уровней. Приоритетность обработки прерываний равного уровня зависит от числового значения адреса вектора прерывания: чем меньше адрес вектора прерывания, тем выше его приоритет. Опционально, приоритетность прерываний низкого уровня может определяться карусельным методом (round-robin), который гарантирует обработку каждого из прерываний за определенное количество времени.

Также предусмотрена поддержка немаскируемых прерываний (NMI).

Принцип действия

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

После разрешения прерывания и обнаружения его условия, PMIC-контроллер принимает запрос на обработку прерывания. Далее, в зависимости от уровня и приоритета, прерывание переходит либо в статус "подтверждено", либо в статус "отправлено". Если прерывание подтверждается, то в счетчик программы загружается вектор прерывания. По адресу вектора прерывания обычно находится команда перехода к процедуре обработки прерывания. После выхода из процедуры обработки прерывания, возобновляется выполнение программы с того же места, где возникло прерывание. Перед переходом к обслуживанию отправленного прерывания выполняется одна инструкция.

Регистр статуса PMIC-контроллера содержит всю необходимую информацию о состоянии, которая гарантирует возврат PMIC-контроллера на корректный уровень прерывания после выполнения инструкции RETI (возврат из прерывания) в конце процедуры обработки прерывания. Во время выхода из прерывания, PMIC-контроллер перейдет в то состояние, в котором он был перед вводом прерывания. Автоматическое сохранение регистра статуса (SREG) при поступлении запроса на прерывание не предусмотрено. Инструкцию RET (возврат из подпрограммы) нельзя использовать для возврата из процедуры обработки прерывания, т.к. она не возвращает PMIC-контроллер в корректное состояние.

Прерывания

Все прерывания и вектор сброса имеют отдельный адрес в пространстве памяти программ. По наименьшему адресу памяти программ расположен вектор сброса. У каждого из прерываний имеются отдельные биты, с помощью которых можно разрешить или запретить прерывание, а также выбрать его уровень. Данные биты находятся в регистрах управления тех УВВ, которые поддерживают генерацию прерываний. Более детально об этом см. в разделах, посвященных описанию таких УВВ.

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

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

Предусмотрена возможность блокировки прерываний при выполнении кода программы из защищенного сектора, например, когда запрограммированы биты Boot Lock. Такая возможность улучшает защищенность программы (подробности по настройкам lock-бит см. в описании программирования памяти программ).

Прерывания автоматически блокируются на 4 цикла синхронизации ЦПУ после выполнения записи корректной сигнатуры в регистр защиты от изменения конфигурации (см. раздел 3.12 "Защита от изменения конфигурации").



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 284; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.172.68 (0.012 с.)