7.3.3. События модуля ICG

(Руководство разработчика по микроконтроллерам семейства HCS08)

Модуль ICG может устанавливать два флага и генерировать запросы на прерывания или сигналы внутреннего сброса по этим событиям:

  • LOLS — указывает на то, что частота FLL вышла из полосы точного установления;
  • LOCS — указывает на то, что ICG «потерял» опорную частоту.

Каждый их этих флагов, если он установлен, также устанавливает флаг ICGIF в регистре состояния ICGS1, после чего генерируется запрос на прерывание.

Бит LOLRE в регистре ICGC2 используется для выбора реакции на событие выхода частоты из полосы точного установления (бит LOLS). При LOLRE = 1 генерируется внутренний сброс, иначе — запрос на прерывание.

Аналогично бит LOCRE в регистре ICGC2 используется для выбора реакции на событие «потери» частоты (бит LOCS). При LOCRE = 1 генерируется внутренний сброс, иначе — запрос на прерывание. Событие LOCS также вызывает автоматическое изменение режима работы модуля тактирования. Если ICG работал в режиме FEE, т.е. тактировался от FLL с внешним опорным генератором, и произошел отказ внешнего генератора, то модуль переходит в режим SCM, т.е. DCO начинает генерировать частоту самостоятельно. А если в режиме FEE «потеряна» частота с выхода DCO, то реализуется режим FBE, т.е.частота тактирования образуется без использования умножителя. Если ICG работал в режиме FBE, то отказ внешнего генератора приведет к переходу в режим SCM. В каждом из этих случаев биты CLKS и CLKST автоматически изменяются в соответствии с новым режимом.

Биты LOCS и LOLS автоматически устанавливаются в 0 во время сброса МК по любой причине. Также биты сбрасываются, если записать 1 в бит ICGIF, при этом сам бит ICGIF также сбрасывается.

Биты LOCS и LOLS по умолчанию генерируют запрос на прерывание. Поэтому программист должен предусмотреть специальную подпрограмму прерывания для этого случая, если опция генерации внутреннего сброса не будет установлена.

Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>