Clock configuration

Настройка "внутренних часов" контроллера

Разберем, что происходит на вкладке "Clock Configuration".

1. Источник тактирования

В первую очередь, нам необходимо выбрать начальный источник постоянной частоты, на основе которого мы можем настроить все остальные частоты. Внутри контроллеров STM32 есть свой внутренний резонатор (HSI), однако он подвержен дрифту в процессе работы, поэтому мы будем использовать внешний резонатор с частотой 12MHz. Для этого, выберем HSE в PLL Source Mux, и в Input frequency установим 12. Input frequency задается характеристиками внешнего резонатора и всегда фиксирован.

Настройка внешнего резонатора (HSE)

На каждом модуле VBCore есть внешний резонатор 12 MHz. Чтобы использовать его, надо в System Core -> RCC выбрать High Speed Clock -> Crystal/Ceramic Resonator. Все остальное CubeIDE сделает за вас.

2. Настройка PLLCLK

Этот блок отвечает за "динамическое" задание частоты, которое может отличаться от частоты входящей. Для этого мы можем выбрать необходимые множители и делители (в нашем случае X80, /2).

3. Выбор источника "system clock"

Тут мы можем выбрать, какую частоту будем использовать для переферии и системной частоты (HCLK). Практически всегда это будет PLLCLK.

Стоит отметить, что в несложных проектах настройку большей части параметров можно вообще пропустить. Достаточно настроить внешнее тактирование, вписать желаемое значение в HCLK и нажать Enter - CubeIDE попробует подобрать все параметры сама.

4. Частота переферии

Далее, мы можем выбрать нужные значения делителей (Prescaler) и множителей (X 1, в нашем случае) для получения необходимой частоты переферии. Переферия делится на две шины (APB1, APB2). Какие таймеры и модули (ADC и пр.) относятся к какой шине можно найти в datasheet на контроллер. Частота, полученная здесь, передается дальше в каждый модуль/таймер, после чего работает уже и его Prescaler (например, prescalser таймера мы настраивали в прошлом примере).

Частота большинства модулей коммуникации (SPI, USART, CAN, ...) настраивается отдельно. Принцип точно такой же, надо выбрать источник или просто вписать желаемую частоту.

Например, на картинке выше можно видеть USART1 (тоже справа, под основной переферией). CAN обычно в правом нижнем углу.

Last updated