Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Таймеры включения питания PWRT и запуска генератора OST



Таймер включения питания обеспечивает задержку в 72мс (номинальное значение) по сигналу схемы сброса POR или BOR. Таймер включения питания работает от внутреннего RC генератора и удерживает микроконтроллер в состоянии сброса по активному сигналу от PWRT. Задержка PWRT позволяет достигнуть напряжению vdd номинального значения.

Таймер запуска генератора обеспечивает задержку в 1024 такта генератора (вход OSC1) после окончания задержки от PWRT (если она включена). Это гарантирует, что частота кварцевого/керамического резонатора стабилизировалась. Задержка OST включается только в режимах HS, XT и LP тактового генератора после сброса POR или выхода микроконтроллера из режима SLEEP.

Детектор пониженного напряжения питания BOD

Микроконтроллеры PIC12F675 имеют интегрированную схему сброса по снижению напряжения питания. В случае, если напряжение vdd опускается ниже vbor на время большее (или равное) tbor то происходит сброс по снижению напряжения питания.

При любом виде сброса микроконтроллер находится в состоянии сброса, пока напряжение vdd не будет выше vbor- После нормализации напряжения питания микроконтроллер находится в состоянии сброса еще 72мс, если -PWRTE=0.

Если напряжение питание vdd стало ниже vbor во время работы таймера по включению питания, микроконтроллер возвращается в состояние сброса BOR, а таймер инициализируется заново. Каждый переход напряжения питания vdd через границу vbor инициализирует PWRT, создавая задержку в 72мс. При включении схемы BOD всегда нужно включать таймер PWRT.

Последовательность удержания микроконтроллера в состоянии сброса

При включении питания выполняется следующая последовательность удержание микроконтроллера в состоянии сброса: сброс POR, задержка PWRT (если она разрешена), задержка OST (после завершения задержки PWRT). Полное время задержки изменяется в зависимости от режима работы тактового генератора и состояния бита -PWRTE.

Если сигнал -MCLR удерживается в низком уровне достаточно долго (дольше времени всех задержек), после перехода -MCLR в высокий уровень программа начнет выполняться немедленно, что может быть полезно при одновременном запуске нескольких микроконтроллеров, работающих параллельно.

1.4.3. Сторожевой таймер WDT

Встроенный сторожевой таймер WDT работает от отдельного RC генератора, не требующего внешних компонентов. Это позволяет работать сторожевому таймеру WDT при выключенном тактовом генераторе (выводы OSC1, OSC2) в SLEEP режиме микроконтроллера. В нормальном режиме работы при переполнении WDT происходит сброс микроконтроллера. Если микроконтроллер находится в SLEEP режиме, переполнение WDT выводит его из режима SLEEP с продолжением нормальной работы.

WDT имеет номинальное время переполнения 18мс (без предделителя). Если требуется большее время переполнения WDT, необходимо программно подключить предделитель в регистре OPTION_REG с коэффициентом деления от 1: 2 до 1: 128. С включенным предделителем время переполнения может достигать 2.3с.

Команды CLRWDT и SLEEP сбрасывают сторожевой таймер и предделитель, если он подключен к WDT, откладывая сброс устройства.

1.4.4. Режим энергосбережения SLEEP

Переход в режим энергосбережения происходит по команде SLEEP. При переходе в режим SLEEP:

• Сторожевой таймер WDT сбрасывается, но продолжает работать

• В регистре STATUS бит -PD сбрасывается в '0'

• Бит -ТО устанавливается в '1'

• Тактовый генератор микроконтроллера выключен

• Порты ввода/вывода остаются в том же состоянии, что и до выполнения команды SLEEP (высокий уровень, низкий уровень, третье состояние).

Для снижения энергопотребления в SLEEP режиме все каналы ввода/вывода должны быть подключены к vdd или VSS при отсутствии токов из внешней схемы через выводы портов, выходы модуля компараторов и источника опорного напряжения выключены. Выводы, находящиеся в третьем состоянии должны иметь высокий или низкий уровень сигнала, чтобы избежать токов переключения входных буферов. Должны учитываться внутренние подтягивающие резисторы, включенные на входах GPIO. На входе -MCLR должен быть высокий уровень сигнала.

Микроконтроллер выйдет из режима SLEEP по одному из следующих событий:

1. Внешний сброс по сигналу на входе -MCLR;

2. Переполнение сторожевого таймера WDT (если он разрешен);

3. Периферийное прерывание (по сигналу INT, изменение уровня сигнала на входах GPIO и др.).

Внешний сброс по сигналу -MCLR вызывает сброс микроконтроллера. Два других события вызывают продолжение выполнения программы. Биты -ТО и -PD в регистре STATUS могут использоваться для определения причины сброса микроконтроллера. Бит -PD сбрасывается в '0' при переходе в режим SLEEP. Бит -ТО сбрасывается в '0' если произошло переполнение WDT.

При выполнении команды SLEEP происходит предвыборка следующей инструкции (РС+1). Если прерывание должно выводить микроконтроллер из режима SLEEP, соответствующий бит разрешения прерывания устанавливается в '1'. Микроконтроллер выходит из режима SLEEP независимо от состояния бита GIE. Если GIE=0, выполняется следующая инструкция после SLEEP без перехода по вектору прерываний. Если GIE=1, исполняется следующая инструкция после SLEEP и происходит переход на подпрограмму обработки прерываний (адрес 0004h). Когда выполнение какой-либо команды при выходе из режима SLEEP нежелательно, необходимо поле команды SLEEP вставить NOP.

При выходе из режима SLEEP сторожевой таймер WDT сбрасывается, независимо от источника «пробуждения».

Система и формат команд

Микроконтроллер PIC12F675 имеет систему команд аккумуляторного типа, которая ортогональна и разделена на три основных группы:

• Байт ориентированные команды

• Бит ориентированные команды

• Команды управления и операций с константами

Каждая команда состоит из одного 14 - разрядного слова, разделенного на код операции (OPCODE), определяющий тип команды и один или несколько операндов, определяющие операцию команды (рисунок 9).

Для байт ориентированных команд 'f' является указателем регистра, а 'd' указателем адресата результата. Указатель регистра определяет, какой регистр должен использоваться в команде. Указатель адресата определяет, где будет сохранен результат. Если 'd'=0, результат сохраняется в регистре W. Если 'd'=1, результат сохраняется в регистре, который используется в команде.

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

В командах управления или операциях с константами 'k' представляет восемь или одиннадцать бит константы или значения литералов.

Система команд включает 35 операций и представлена в таблице 2. Все команды выполняются за один машинный цикл, кроме команд условия, в которых получен истинный результат и инструкций изменяющих значение счетчика команд PC. В случае выполнения команды за два машинных цикла, во втором цикле выполняется инструкция NOP. Один машинный цикл состоит из четырех тактов генератора.

Любая команда, которая определяет регистр памяти данных как часть команды, выполняется по принципу «Чтение - Модификация - Запись» (R - М -W). Сначала выполняется чтение регистра, изменяются данные, а затем результат сохраняется в регистре назначения (зависит от состояния бита 'd'). Чтение выполняется даже, если производится только запись данных.

Байт-ориентированная команда

13 8 6 0
OPCODE d f

 

Бит-ориентированная команда

13 10 9 7 6 0
OPCODE d f

 

Команды управления и операций с константами

13 8 7 0
OPCODE k

Рисунок 9 - Формат команд микроконтроллера PIC12F675

Таблица 2. Набор команд микроконтроллера семейства MicroChip


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 1405; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь