VBCores Документация
СайтGitHub
  • VBCores
  • Hardware
    • VBCore VB32G4
    • VB STM32 программатор
    • BLDC драйвер 30A
    • DC драйвер 15A
    • Stepper драйвер 10A
    • CAN-FD - Raspberry PI
      • Настройка CAN на RPI
      • Часто возникаемые ошибки при работе с CAN/CAN FD
      • Работа с CAN FD через Python
    • Power board 30A
    • SBus-HID
    • DC-DC преобразователь
    • Ethernet - CAN-FD
    • USB-HUB
    • IMU BNO055
    • IMU BHI360
    • Т-Энкодер
  • Настройка ПО
    • Arduino IDE
      • Подготовка модуля VBCore
      • Установка среды программирования на Windows
      • Установка среды программирования на Ubuntu
        • Возможные ошибки в Ubuntu при работе с Arduino
      • Выбор платы в Arduino IDE
      • Установка базовой библиотеки
      • Структура ПО для Arduino
      • Примеры
        • Работа с CAN и CAN FD на Arduino
        • Работа с I2C
        • I2C detect
        • Датчик BNO055 / I2C
        • Датчик AS5047P / SPI
        • Датчик AS5600 / I2C
        • Работа с бесколлекторными двигателями
          • Simple FOC. Управление скоростью. Нахождение количества пар полюсов.
          • Simple FOC. Управление моментом
          • Чтение данных с датчика тока
        • Работа с коллекторным двигателем
          • Вращение DC мотором
          • Чтение угла по энкодеру. Управление DC мотором по углу
          • Чтение скорости вращения мотора по энкодеру
        • Работа с шаговым двигателем
          • Вращение шагового двигателя.
          • Контроль двигателя по интерфейсу SPI
    • STM32 CUBE IDE
      • Типовые настройки
      • Подсказки начинающим
        • Cube IDE для начинающих
        • Clock configuration
        • Таймеры - прерывания
        • Таймеры - ШИМ
        • Отладка программ
        • Коммуникации - FDCAN
        • Управление DC-мотором
        • Backup программы
  • Cyphal CAN
    • Cyphal CAN
    • PyCyphal
    • Yakut
    • Cyphal Arduino
      • Отправка и получение сообщений по cyphal
  • Работа с ROS
    • Установка Ubuntu, ROS и Arduino
    • ROS_LIB
    • Примеры
      • Publisher. Hello World!
      • Publisher with Subscriber
      • Rotation by DC motor
  • Работа с научным ПО
    • TCP Server
    • LabView
    • Matlab
  • Инструкции
    • Стенд управления двигателями
    • Переделка датчика мотор-колеса
    • Стенд мотор-колеса
    • iPower Motor
    • AS5047p OEM
  • Практические занятия
    • Коллекторный двигатель
      • Устройство коллекторного двигателя
  • RPI Display
Powered by GitBook
On this page
  • 1. Источник тактирования
  • 2. Настройка PLLCLK
  • 3. Выбор источника "system clock"
  • 4. Частота переферии
  1. Настройка ПО
  2. STM32 CUBE IDE
  3. Подсказки начинающим

Clock configuration

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

PreviousCube IDE для начинающихNextТаймеры - прерывания

Last updated 5 months ago

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

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

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

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

На каждом модуле VBCore есть внешний резонатор 8 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 обычно в правом нижнем углу.