Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2754
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

10. Схема тактирования

Почти каждая цифровая схема нуждается в способе синхронизации своих внутренних элементов или синхронизации с другими схемами. Тактовый сигнал – это генерируемый некоторым устройством периодический сигнал, являющийся самым распространенным видом сердечного ритма в цифровой электронике.

Однако один и тот же тактовый сигнал не может использоваться для питания всех компонентов и периферийных устройств, предоставляемых такими современными микроконтроллерами, как STM32. Кроме того, энергопотребление является критическим аспектом, напрямую связанным с тактовой частотой используемого периферийного устройства. Возможность выборочного отключения или уменьшения тактовой частоты некоторых компонентов микроконтроллера позволяет оптимизировать общее энергопотребление устройства. Все это требует, чтобы тактирование было организовано в иерархическую структуру, предоставляя разработчику возможность выбирать разные частоты и источники тактового сигнала.

В данной главе дается краткое введение в составную сеть распределения тактирования микроконтроллера STM32. Ее цель – предоставить читателю необходимые инструменты для понимания и управления схемой тактирования, показывающие основные функции модуля HAL_RCC. Данная глава будет дополнена Главой 19, посвященной управлению питанием.

10.1. Распределение тактового сигнала

Тактовый сигнал (clock) – это генерируемый некоторым устройством прямоугольный сигнал, обычно с коэффициентом заполнения 50%, как показано на рисунке 11.

Рисунок 1: Типовой тактовый сигнал с коэффициентом заполнения 50%

Тактовый сигнал колеблется между уровнями напряжения VL и VH, которые для микроконтроллеров STM32 составляют часть напряжения питания VDD. Самым главным параметром тактового сигнала является частота, которая указывает, сколько раз напряжение переходит от уровня напряжения VL к уровню VH в секунду. Частота выражается в герцах.

1 Важно отметить, что прямоугольный сигнал, представленный на рисунке 1, является «идеальным». Настоящий прямоугольный сигнал источника тактового сигнала (clock source) имеет трапецеидальную форму.

Схема тактирования

272

Большинство микроконтроллеров STM322 могут тактироваться двумя отдельными источниками тактового сигнала: внутренним RC-генератором3 (называемым внутренним высокочастотным (High Speed Internal, HSI)) или внешним выделенным кварцевым гене-

ратором4 (называемым внешним высокочастотным (High Speed External, HSE)). Суще-

ствует несколько причин предпочесть внешний кварцевый генератор внутреннему RCгенератору:

Внешний кварцевый генератор обеспечивает более высокую точность по сравнению с внутренней RC-цепью, погрешность которой оценивается с точностью до 1%5, особенно когда рабочие температуры печатной платы далеки от температуры окружающей среды 25°C.

Некоторые периферийные устройства, особенно высокоскоростные, могут тактироваться только внешним выделенным кварцевым генератором, работающим на заданной частоте.

Вместе с высокочастотным генератором6 можно использовать другой источник тактового сигнала, подключаемый к низкочастотному генератору, который, в свою очередь, может тактироваться внешним кварцевым генератором (называемым внешним низкочастотным (Low Speed External, LSE)) или внутренним отдельным RC-генератором (называемым внутренним низкочастотным (Low Speed Internal, LSI)). Низкочастотный генератор используется для управления часами реального времени (Real Time Clock, RTC) и неза-

висимым сторожевым таймером (Independent Watchdog, IWDG).

Частота высокочастотного генератора не устанавливает рабочую частоту ни ядра Cortex- M, ни других периферийных устройств. Составная сеть распределения, также называемая схемой тактирования (clock tree), отвечает за распространение тактового сигнала в микроконтроллере STM32. Используя несколько программируемых блоков фазовой автоподстройки частоты (ФАПЧ, англ. Phase-Locked Loops, PLL) и предделителей, можно при необходимости увеличить/уменьшить частоту источника (см. рисунок 2), в зависимости от характеристик, которые мы хотим достичь, максимальной скорости используемых периферийного устройства или шины и общего энергопотребления системы7.

2Существуют некоторые микроконтроллеры STM32, особенно с малым количеством выводов, которые не могут тактироваться внешним источником тактового сигнала.

3https://en.wikipedia.org/wiki/RC_oscillator

4https://en.wikipedia.org/wiki/Crystal_oscillator

51% точность может показаться хорошим компромиссом, особенно если учесть, что вы можете сэкономить место на печатной плате и на затратах на выделенный кварцевый генератор, являющийся устройством, цена которого немаловажна. Однако для критичных к временной точности приложений 1% может быть огромным отклонением. Например, день составляет 86 400 секунд. Погрешность, равная 1%, означает, что в худшем случае мы можем потерять (или получить лишних) до 864 секунд, что равно 14,4 минутам! И, если температура будет повышаться, ситуация может ухудшиться. По этой причине обязательно использование внешнего низкочастотного кварцевого генератора, если вы собираетесь использовать RTC. Однако существует решение для повышения данной точности. Подробнее об этом позже.

6В данной книге мы будем ссылаться на высокочастотный генератор как на «абстрактный» источник тактового сигнала, который имеет два взаимоисключающих «реальных» источника: HSE-генератор или

HSI-генератор. То же относится и к низкочастотному генератору.

7Помните, что энергопотребление микроконтроллера примерно линейно зависит от его частоты. Чем выше частота, тем больше энергии он потребляет.