Модуль управления источниками тактовых сигналов системы
Общая информация
Модуль управления источника тактовых сигналов системы предназначен для включения, отключения источников тактирования системы, переключения между ними, а также для изменения периода синхросигнала.
Микроконтроллер может работать от двух различных источников тактирования:
- Низкочастотный (встроенный низкочастотный 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. Данная процедура снижает энергопотребление системы во время режима «Глубокий сон».
Отключение источника тактирования, на котором происходит работа во время режима «Глубокий сон», приведет к полной остановке системы, без возможности программного восстановления работоспособности.
Регистры модуля управления источниками тактовы х сигналов системы
№ | Аббревиатура | Доступ | Описание |
---|---|---|---|
2100h | CMM_CTRL | RW | Регистр управления |
2101h | CMM_DIV | RW | Регистр делителя частоты |
2102h | CMM_MSK | RW | Регистр маски |
2103h | CMM_ST | R | Регистр статуса |
CMM_CTRL
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
Назначение | Резерв* | RC_S_SLEEP_STOP | RC_F_SLEEP_STOP | RC_SLOW_EN | RC_FAST_EN | RC_FAST_SLOW | ||
Начальное значение | 0 | 0 | 0 | 1 | 1 | 0 |
* – Не изменять начальное значение.
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
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
Назначение | COEF | |||||||
Начальное значение | 0 |
COEF – значение регистра CMM_DIV.
При COEF>0 частота тактирования системы рассчитывается по формуле:
где FSRC – исходная частота от источника XTAL_CLK или RC_CLK.
При COEF=0:
CMM_MSK
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
Назначение | Резерв | NSWITCH | ||||||
Начальное значение | 0 |
NSWITCH – разрешить прерывание по статусу NSWITCH:
- 1 – данное прерывание формируется;
- 0 – данное прерывание не формируется.
Прерывания работают независимо от того, включен генератор или нет
CMM_ST
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
Назначение | Резерв | SWITCH | NSWITCH | |||||
Начальное значение | 0 | 0 | 0 |
SWITCH – переключение между частотой высокочастотного и низкочастотного RC-генератора:
- 1 – идет переключение на выбранную частоту;
- 0 – система работает на выбранной частоте.
NSWITCH – окончание процесса переключения частоты тактирования:
- 1 – процесс переключения частоты тактирования окончен;
- 0 – процесс переключения не окончен или не начинался.