Перейти к основному содержимому

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

Общая информация​

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

Микроконтроллер может работать от двух различных источников тактирования:

  • Низкочастотный (встроенный низкочастотный RC-генератор);
  • Высокочастотный (встроенный высокочастотный RC-генератор, кварцевый резонатор, внешний генератор).

Структурная схема​

Структурная схема модуля управления источниками тактовых сигналов системы

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

  • REGISTERS – блок для хранения управляющих данных и статусов;
  • SLEEP_CONTOL – блок управления режимом «SLEEP», предназначен для запуска режимов «Сон процессора» и «Глубокий сон»;
  • CLOCK_SEL – блок выбора частоты тактирования, предназначен для выбора источника частоты тактирования системы;
  • MUX – мультиплексор, предназначен для управления частотами, которые будут переданы в систему;
  • CLOCK_DIVIDER – делитель частоты, предназначен для деления частоты выбранного источника тактирования.

Выбор источника тактирования системы​

При подаче питания тактирование системы осуществляется с внутреннего высокочастотного RC-генератора. Пользователь может изменить источник тактирования путём записи необходимого значения бита RC_FAST_SLOW в регистре CMM_CTRL. Переключение возможно только, если в регистре CMM_CTRL установлены биты RC_FAST_EN и RC_SLOW_EN. В любом другом случае попытка переключения будет проигнорирована, биты не изменят своего значения. На время операции переключения в регистре CMM_ST в активном уровне будет находится бит SWITCH. Когда операция переключения будет завершена, бит SWITCH примет значение 0.

Процесс переключения частот состоит из нескольких этапов. После записи RC_FAST_SLOW команда старта синхронизируется на переключаемую частоту – 2 такта (частоты, на которую происходит переключение). Производится проверка частоты, на которую переключается пользователь – 4 такта (частоты, на которую происходит переключение). Сигнал подтверждения наличия частоты синхронизируется на текущую частоту – 2 такта (текущей частоты). Синхронизация сигнала об отключении текущей частоты – 2 такта (частоты, на которую происходит переключение). Затем снимается команда переключения – 1 такт. Вырабатывается прерывание – 1 такт. Обновляется регистр статуса – 1 такт. При большой разнице частот, процесс переключения на медленную частоту займет порядка 12 тактов медленной частоты.

Деление частоты тактирования​

Текущая частота тактирования системы может быть поделена. Для этого необходимо записать коэффициент в регистр CMM_DIV.

Отключение частоты тактирования​

Пользователь имеет возможность отключить незадействованный источник тактирования путём записи в биты RC_FAST_EN или RC_SLOW_EN регистра CMM_CTRL нулевого значения, таким образом понизив электропотребление системы. Отключение текущей рабочей частоты невозможно. Отключение частоты невозможно во время процедуры переключения источника тактирования.

Выключение источника тактирования во время режима «Глубокий сон»​

Модуль «CMM» имеет два бита настройки отключения источника тактирования во время режима «Глубокий сон». Подробно режим описан в пункте «Режим SLEEP». Запись «1» в один из битов RC_F_SLEEP_STOP или RC_S_SLEEP_STOP регистра CMM_CTRL означает, что при переходе системы в режим «Глубокий сон», соответствующий источник тактирования автоматически будет отключен. При выходе из режима «Глубокий сон» источники тактирования будут работать в соответствии с битами RC_SLOW_EN и RC_FAST_EN. Данная процедура снижает энергопотребление системы во время режима «Глубокий сон».

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

Регистры модуля управления источниками тактовых сигналов системы​

№АббревиатураДоступОписание
2100hCMM_CTRLRWРегистр управления
2101hCMM_DIVRWРегистр делителя частоты
2102hCMM_MSKRWРегистр маски
2103hCMM_STRРегистр статуса

CMM_CTRL​

Бит76543210
НазначениеРезерв*RC_S_SLEEP_STOPRC_F_SLEEP_STOPRC_SLOW_ENRC_FAST_ENRC_FAST_SLOW
Начальное значение000110

* – Не изменять начальное значение.

RC_S_SLEEP_STOP – выключение низкочастотного RC-генератора в режиме «Глубокий сон»:

  • 1 – отключить низкочастотный RC-генератор;
  • 0 – не отключать низкочастотный RC-генератор.

RC_F_SLEEP_STOP – выключение высокочастотного RC-генератора в режиме «Глубокий сон»:

  • 1 – отключить высокочастотный RC-генератор;
  • 0 – не отключать высокочастотный RC-генератор.

RC_SLOW_EN – бит управления включением низкочастотного RC-генератора:

  • 1 – включен;
  • 0 – выключен.

RC_FAST_EN – бит управления включением высокочастотного RC-генератора:

  • 1 – включен;
  • 0 – выключен.

RC_FAST_SLOW – бит управления источником тактирования системы (Fsrc):

  • 1 – тактирование от низкочастотного RC-генератора;
  • 0 – тактирование от высокочастотного RC-генератора.

CMM_DIV​

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

COEF – значение регистра CMM_DIV.

При COEF>0 частота тактирования системы рассчитывается по формуле:

FSYS=FSRC2⋅COEFF_{SYS} = \frac {F_{SRC}}{2 \cdot COEF}

где FSRC – исходная частота от источника XTAL_CLK или RC_CLK.

При COEF=0:

FSYS=FSRCF_{SYS} = F_{SRC}

CMM_MSK​

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

NSWITCH – разрешить прерывание по статусу NSWITCH:

  • 1 – данное прерывание формируется;
  • 0 – данное прерывание не формируется.

Прерывания работают независимо от того, включен генератор или нет

CMM_ST​

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

SWITCH – переключение между частотой высокочастотного и низкочастотного RC-генератора:

  • 1 – идет переключение на выбранную частоту;
  • 0 – система работает на выбранной частоте.

NSWITCH – окончание процесса переключения частоты тактирования:

  • 1 – процесс переключения частоты тактирования окончен;
  • 0 – процесс переключения не окончен или не начинался.