Skip to main content

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

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

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

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

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

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

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

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

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

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

АббревиатураДоступОписание
2600hFSM_CTRLWРегистр управления
2601hFSM_PRDHRWРегистр периода счета 2
2602hFSM_PRDMRWРегистр периода счета 1
2603hFSM_PRDLRWРегистр периода счета 0

FSM_CTRL

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

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

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

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

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

FSM_PRDH

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

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

FSM_PRDM

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

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

FSM_PRDL

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

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

Значение, до которого будет считать модуль, определяется как:

Nclk=PRD+1,N_{clk} = PRD + 1,

где Nclk – количество тактов системной частоты.