Введение
При создании программ для микроконтроллеров серии STM32 [1] основной трудностью является настройка блока синхронизации. Связано это с большим количеством изменяемых параметров, к которым относятся частоты генераторов, шин и периферии, коэффициенты деления и т.д. Кроме того, необходимо знать диапазоны изменения всех этих параметров.
Разработчики микроконтроллеров серии STM32 учли данное обстоятельство и создали специальный программный инструмент Clock configuration tool, позволяющий значительно упростить процедуру настройки блока синхронизации своих микроконтроллеров и правильно настроить тактирование системы.
Описание программного инструмента
Программный инструмент Clock configuration tool обеспечивает визуальную графическую подготовку параметров синхронизации и позволяет генерировать программный код на языке Си. Данный инструмент представляет собой файл формата .xls с макросами.
Программный инструмент Clock configuration tool можно загрузить с сайта компании STmikroelectronics [1] для микроконтроллеров следующих семейств: STM32F0xx, STM32F2xx, STM32F30x31x, STM32F37x38x, STM32F40x41x и STM32L1xx.
Инструмент позволяет вручную выбрать источник системной тактовой частоты SYSCLK, а также подобрать все необходимые коэффициенты предварительных делителей и умножителей PLL. В результате работы инструмента будет создан готовый файл, включающий в себя код программы с необходимыми настройками блока синхронизации. Название генерируемого файла зависит от семейства микроконтроллеров – например, system_stm32f37x.c, system_stm32f4xx.c и т.п. Полученный файл необходим для замены идентичного файла с исходными параметрами, находящегося в каталоге cmsis_boot проекта. В некоторых проектах файл с исходными параметрами по умолчанию имеет название system_stm32f0xx_temp.c.
Рассмотрим использование описываемого инструмента на примере микроконтроллеров семейства STM32F4. После открытия файла STM32F4xx_Clock_Configuration_V1.1.0.xls с помощью программы Excel необходимо разрешить работу макросов. Внешний вид программного инструмента приведён на рисунке 1.

Кнопка View позволяет отображать вид блока синхронизации в полноэкранном формате.
Далее можно выбрать режим конфигурирования: Wizard (мастер подсказок) или Expert (эксперт).
После нажатия программной кнопки Run инструмент предложит выбрать источник тактирования системы, как показано на рисунке 2.

Среди предложенных вариантов присутствуют следующие: HIS – внутренний RC-генератор, PLL (HSI) – внутренний RC-генератор с умножением частоты, PLL (HSE) – внешний кварцевый генератор с умножением частоты.
После выбора источника тактирования необходимо ввести некоторые параметры конфигурации системы, такие как входная частота (при использовании внешнего кварцевого резонатора или генератора), частота тактирования ядра, делители частоты тактирования шин периферии, работа буфера выборки команд и др., после чего, нажав на кнопку Generate, получим файл system_stm32f4xx.c в рабочем каталоге, содержащий готовый код программы с настройками блока синхронизации.
В случае если вводимые параметры приводят к тому, что результат выходит за допустимые пределы, инструмент сообщит об этом. Сбросить все введённые данные можно нажатием программной кнопки Reset.
Для справки ниже приведены расшифровка и перевод всех сокращений, используемых в программном инструменте:
- AHB Advanced Hardware Bus – внутренняя аппаратная шина для обмена данными;
- APB Advanced Peripheral Bus – внутренняя шина для доступа к периферии;
- APB1, APB2 – мосты для доступа к шине APB;
- CPU Central Processor Unit – ядро микроконтроллера Cortex-M4;
- Ethernet MAC – интерфейс локальной сети Ethernet;
- Ext.Clock – внешняя тактовая частота;
- FCPU – тактовая частота Cortex-M4;
- FS Sampling frequency – частота выборки;
- I2S Integrated interchip sound – специальная шина для обмена звуковыми данными;
- I2SCLK – тактовая частота шины I2S;
- MCLK – главная тактовая частота;
- HCLK – тактовая частота шины AHB, она же тактовая частота CPU;
- HSE High-speed external clock – высокоскоростная внешняя тактовая частота;
- HSI High-speed internal clock – высокоскоростная внутренняя тактовая частота;
- PCLK1, PCLK2 – тактовые частоты шин APB1, APB2 соответственно;
- PHY – физический интерфейс Ethernet;
- PLL Phase Locked Loop – фазовая автоматическая подстройка частоты ФАПЧ;
- PLLCLK – тактовая частота PLL;
- PTP Precision time protocol – точный протокол времени;
- RNG Random number generator – генератор случайных чисел;
- RTC Real Time Clock – часы реального времени;
- RTCCLK – тактовая частота RTC;
- SDIO Secure digital input/output interface – интерфейс карт памяти SD;
- SYSCLK – системная тактовая частота;
- TIMCLK – тактовая частота таймера;
- USB on-the-go – интерфейс USB, который может работать и как интерфейс хоста USB, и как интерфейс устройства USB;
- USBHS USB High Speed – высокоскоростной интерфейс USB;
- USB OTG FS – интерфейс USB on-the-go на полной скорости full-speed;
- VDD – напряжение питания.
Использование описанного программного инструмента позволяет не только экономить время на создание программы, но и избавляет разработчика от возможных логических и синтаксических ошибок.
Литература
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

