Skip to main content

Рабочий автомат

Модуль «Рабочий автомат» представляет собой 24-разрядный таймер. Данный таймер считает «вверх» на частоте системы. Начало работы данного модуля автоматически означает переход системы в режим «Глубокий сон» (более подробно смотрите пункт «Режим «SLEEP»»). По окончанию счета будет сформировано немаскируемое прерывание, которое выведет систему из режима «Глубокий сон».

Особенности работы

Актуальное значение периода счета обязательно должно быть записано перед включением модуля «Рабочий автомат». Таймер модуля «Рабочий автомат» работает на частоте системы. Это значит, что перед запуском данного модуля для снижения энергопотребления пользователь обязан переключить систему на частоту тактирования от RC-генератора в регистре CMM_CTRL.

Существует два способа запуска модуля «Рабочий автомат»:

  • классический запуск;
  • запуск с ожиданием.

При классическом запуске пользователь переключает частоту тактирования (модуль CMM). Пользователю необходимо узнать о завершении данного процесса по прерыванию, либо по чтению из статусного регистра CMM_ST (бит SWITCH). И только после этого пользователь может запустить модуль «Рабочий автомат». По записи сигнала EN в регистр FSM_CTRL модуль начнет счет «вверх» на частоте системы и переведет микроконтроллер в режим «Глубокий сон».

Для запуска с ожиданием пользователь должен записать «1» в бит EN_WSW регистра FSM_CTRL. Модуль «Рабочий автомат» будет ожидать события переключения частоты (модуль CMM). Пользователю необходимо записать команду на переключение частоты в регистр CMM_CTRL. По окончанию процесса переключения модуль «Рабочий автомат» автоматически начнет счет и инициирует процесс перехода в режим «Глубокий сон».

По окончанию счета «Рабочий автомат» сформирует прерывание, по которому микроконтроллер начнет выход из режима «Глубокий сон».

Регистры «Рабочего автомата»

АббревиатураДоступОписание
2C00hFSM_CTRLWРегистр управления
2C01hFSM_PRD2RWРегистр периода счета 2
2C02hFSM_PRD1RWРегистр периода счета 1
2C03hFSM_PRD0RWРегистр периода счета 0

FSM_CTRL

Бит76543210
НазначениеРезервEN_WSWEN
Начальное значение0

EN_WSW (Enable Wait Switch and Work) – разрешение работы модуля по переключению частоты:

  • 1 – ожидать переключения;
  • 0 – модуль выключен.

EN – разрешение работы модуля:

  • 1 – модуль включен;
  • 0 – модуль выключен.

FSM_PRD2

Бит76543210
НазначениеPRD
Начальное значение0

PRD – период счета таймера, старшая часть.

FSM_PRD1

Бит76543210
НазначениеPRD
Начальное значение0

PRD – период счета таймера, средняя часть.

FSM_PRD0

Бит76543210
НазначениеPRD
Начальное значение0

PRD – период счета таймера, младшая часть. 

Значение, до которого будет считать модуль, определяется как:
Nclk = PRD + 1, где Nclk – количество тактов системной частоты.