October 18 2017 12:24:21
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Команда STOP
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА НС08

В режиме останова (Stop mode) переводятся в нерабочее состояние генераторы центрального процессора и периферийных модулей, включая сторожевой таймер. Следовательно, приостанавливается выполнение программы центральным процессором и прекращают функционирование те периферийные модули, принцип действия которых обуславливает наличие пересчетных схем в составе модуля. В рабочем состоянии остаются только те модули, которые не требуют тактирования:

* Модуль внешних прерываний IRQ08.

* Модуль сканирования клавиатуры КВ108.

* Модуль прерываний по контрольным точкам BREAK08.

* Модуль распознавания пониженного напряжения питания LVI08, если работа модуля в режиме останова разрешена.

МК HC908GP32/20 имеют следующую особенность функционирования в режиме останова. Модуль CGM08 этих МК выполнен по усовершенствованной схеме. Он допускает работу генератора на кварцевом резонаторе G1 в режиме останова, если бит OSCSTOPEN регистра конфигурации CONFIG2 установлен. В составе МК HC908GP32/20 имеется модуль базового таймера ТВМ08, который тактируется генератором кварцевого резонатора с частотой fXCLK. Если работа генератора на кварцевом резонаторе разрешена, то модуль ТВМ08 также будет работоспособным в режиме останова. Запросы на прерывание от модуля ТВМ08 могут быть использованы для периодического перевода МК из режима останова в активный режим работы.

Команда STOP, в отличие от команды WAIT, оказывает влияние на регистры специальных функций модулей формирования тактовой частоты CGM08 и сторожевого таймера СОР08.

Команда STOP сбрасывает бит BCS регистра управления синтезатором частоты PTCL, при этом сигнал fBUS снимается от генератора на кварцевом резонаторе. Если возврат из режима останова произойдет по прерыванию, то следует произвести повторную частичную инициализацию (установить бит BCS в 1), иначе скорость выполнения программ останется заниженной.

Команда STOP обнуляет предделитель сторожевого таймера, поэтому модуль СОР08 находится в неактивном состоянии при работе МК в режиме останова. Однако команда STOP не оказывает влияния на состояние триггеров счетчика сторожевого таймера. Поэтому время срабатывания сторожевого таймера после перехода МК в активный режим работы нельзя определить однозначно. Рекомендуется перед выполнением команды STOP или сразу после выхода из режима останова сбросить сторожевой таймер, чтобы переполнение таймера стало не случайным событием во времени, а ожидалось через интервал периода работы СОР.

img032

Команда STOP переводит МК из активного режима работы в режим останова. Временная диаграмма этого процесса приведена на Рис. 3.17.

Многие МК семейства НС08, в том числе HC908GP32/20, HC908AZ60 и HC08AZO/16/24/32, в одном из регистров конфигурации имеют специальный бит разрешения выполнения команды STOP (см. п. 3.5.10). Этот бит также обозначен как STOP. Если бит STOP установлен, то выполнение команды STOP переводит МК в режим останова, если бит STOP сброшен, то при считывании из памяти кода команды STOP генерируется внутренний сброс по несуществующему коду команды.

Внимание! После сброса МК бит STOP установлен в 0, следовательно, попытка выполнения команды STOP вызовет внутренний сброс по несуществующему коду команды.

Если МК находится в режиме останова, то его переход к активному режиму работы могут вызвать следующие события:

* Внешний сброс при поступлении сигнала низкого логического уровня на вход ØRST МК.

* Сброс по сигналу модуля LVI08 при снижении напряжения питания, если работа модуля в режиме останова разрешена.

* Прерывание по внешнему запросу при поступлении сигнала низкого логического уровня на вход ØIRQ МК.

* Прерывание по запросу от модуля прерываний по контрольным точкам BREAK08.

* Прерывание по внешнему запросу от модуля сканирования клавиатуры KBI08.

* Прерывание по запросу от модуля базового таймера ТВМ08, если работа генератора на кварцевом резонаторе в составе модуля формирования тактовой частоты CGM08 разрешена -только для МК HC908GP32/20 (см. Табл. 3.33).

Возврат МК из режима останова в активный режим работы происходит с задержкой, длительность которой равна 4096 периодам fBUS. В МК HC908GP32/20, HC908AZ60 и HC08AZ0/16/24/32 предусмотрена возможность уменьшения времени задержки до 32 периодов fBUS. Для этого следует установить бит SSREC в одном из регистров конфигурации МК (обычно CONFIG1 или MORA). Однако выбирать этот режим следует только при тактировании МК от высококачественных кварцевых резонаторов, которые обладают малым временем установления частоты колебаний.

Внимание! При подсчете времени возврата МК из режима останова в активный режим работы помните, что МК в этот период времени тактируется пониженной частотой

Это особенно важно для HC908GP20/32 при тактировании от "часового" кварцевого резонатора fXCLK =32.768 кГц.

Временная диаграмма возврата МК из режима ожидания в активный режим работы по запросу на прерывание приведена на Рис. 3.18.

img033

3.5.3. ОСОБЕННОСТИ РАБОТЫ В СОСТОЯНИИ СБРОСА

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

Переход МК семейства НС08 в состояние сброса незамедлительно прекращает выполнение текущей команды и устанавливает внутренние ресурсы МК в следующее состояние:

* В качестве источника синхроимпульсов назначается генератор на кварцевом резонаторе:

fBUS=fXCLK/4

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

* В программный счетчик PC центрального процессора загружается начальный адрес прикладной программы пользователя (вектор начального запуска или вектор сброса), который записан в ячейках памяти с адресами $FFFE (старший байт) и $FFFF (младший байт). Занесение вектора начального запуска в указанные ячейки памяти выполняется на этапе программирования МК.

* Указатель стека SP центрального процессора устанавливается в состояние $FF, назначая область стековой памяти в нулевую страницу ОЗУ МК.

* Регистр признаков CCR устанавливается в состояние, при котором значения всех признаков, кроме маски прерывания I, произвольны. Глобальная маска прерывания I принимает значение 1, тем самым все прерывания в МК, кроме программного по команде SWI, запрещаются.

Внимание! В большинстве практических случаев частота кварцевого резонатора fXCLK  окажется меньше расчетной частоты fVCLK синтезатора. Следовательно, после сброса МК будет выполнять программу в замедленном темпе. Такой режим будет длиться не менее 50 мс (время установления точного значения синтезатора частоты). По истечении этого отрезка времени программа должна убедиться, что бит LOCK=1, и переключить мультиплексор модуля формирования тактовой частоты CGM08 на выход CGMVCLK. Через три периода сигнала на выходе синтезатора частоты МК будет тактироваться с частотой

fBUS=fVCLK/4

Полезный совет! Не следует использовать в качестве стековой памяти область нулевой страницы ОЗУ. Обращение к ячейкам памяти именно нулевой страницы поддерживается командами с эффективными способами адресации. Эти команды имеют малую длину кода, в результате размер прикладной программы существенно уменьшится. Кроме того, сокращается время выполнения прикладной программы. Поэтому переинициализируйте указатель стека на другое начальное значение.

Переход МК семейства НС08 в состояние сброса может быть инициирован как внешним сигналом, так и внутренними ресурсами МК. Внешний сброс поступает, если на вход начального запуска RST в течение интервала времени t³tIRR=50 не подан сигнал низкого логического уровня. Одновременно устанавливается в 1 бит PIN в регистре SRSR модуля системной интеграции SIM08.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.02 секунд 2,255,332 уникальных посетителей