Первое, с чем необходимо разобраться перед дальнейшим изучением микроконтроллеров STM32, является система управления тактированием и сбросом, именуемая RCC. В этой статье мы рассмотрим, как правильно настроить микроконтроллер на работу от внешнего кварцевого резонатора на 8 МГц. Все статьи цикла можно посмотреть тут: http://dimoon.ru/category/obuchalka/stm32f1
Система тактирования в STM32 в сравнении с микроконтроллерами AVR выполнена довольно замысловато. Давайте разбираться.
У микроконтроллеров STM32 все периферийные устройства (порты ввода-вывода, таймеры, интерфейсы SPI, и т.д.) подключены к так называемым шинам, через которые периферия получает тактовый сигнал и обменивается данными с ведущими устройствами шины (например, с процессором).
В STM32F103x8 три основных шины: AHB, APB1 и APB2. На каждой из шин висит определенная группа устройств:
- AHB: процессорное ядро, память и DMA;
- APB1: USART2, USART3, I2C1/2, CAN, таймеры TIM2..4;
- APB2: порты GPIO, АЦП, USART1, TIM1, SPI1.
В даташите на STM32F103x8 есть блок-схема, в которой указано, какая периферия куда подключена:
Рис. 1. Блок-схема микроконтроллеров STM32F103x8 и STM32F103xB
Схема на рис. 1 поначалу может казаться сложной и непонятной, это нормально, со временем все в голове уложится и ощущение непонимания исчезнет.
А еще есть вот такая таблица, в которой так же указаны периферийные устройства и шины, к которым они подключены:
Рис. 2. Таблица шин и периферийных устройств
Можно заметить, что на рис. 2 возле названия шины (AHB, APB1 и APB2) в скобках указана ее максимальная частота. Так как периферийные устройства получают тактовый сигнал от шины, ее частота задает скорость работы подключенных к данной шине устройств. Далее мы рассмотрим, как настроить частоту каждой из шин микроконтроллера.
Еще одной особенностью системы тактирования STM32 является то, что после сигнала сброса микроконтроллера вся периферия находится в отключенном состоянии и на нее не подается тактовый сигнал. Это сделано с целью снижения энергопотребления всего микроконтроллера. Перед началом работы с любым периферийным устройством необходимо разрешить подачу на него тактового сигнала. Как это сделать рассмотрим далее.
Итак, вот основные тезисы, которые необходимо запомнить:
- Все периферийные устройства в микроконтроллерах STM32 подключены к шинам (AHB, APB1 и APB2), через которые производится взаимодействие с устройствами и подача на них тактовых сигналов;
- Шины микроконтроллера STM32 могут иметь разные частоты тактирования;
- Перед началом работы с периферийным устройством необходимо разрешить подачу на него тактового сигнала.
- Генераторы
- Тактирование периферии
- Источники сигнала SYSCLK
- HSE и PLL
- Что еще?
- Заключение
- Русские Блоги
- Сравнительный анализ шины AMBA по протоколам AHB, APB, AXI
- 1. Обзор AMBA
- 2. AHB автобус
- Состав АХБ
- AHB основной сигнал
- AHB базовая трансмиссия
- Характеристики пакетной передачи AHB и пакетной передачи AXI
- 3. APB автобус
- 🎬 Видео
Видео:ПОСЛЕДНЯЯ СЕРИЯ ПО АПБ!? APB RELOADEDСкачать
Генераторы
В микроконтроллерах STM32F103x8/B присутствует несколько генераторов тактового сигнала:
Рис. 3. Блок-схема системы тактирования, красными прямоугольниками выделены генераторы тактовых сигналов
Первый из них — встроенный RC-генератор на 8 МГц, который называется High-speed internal (HSI) RC oscillator. После сброса микроконтроллер по-умолчанию тактируется как раз от этого генератора. Основным его плюсом является то, что для работы генератора не нужны ни какие дополнительные внешние компоненты. Однако его минус — плохая стабильность генерируемой частоты: при изменении температуры окружающей среды его частота в 8 МГц будет немного плыть. Для нетребовательных ко временнЫм интервалам устройств это может быть не критично, но в некоторых случаях данная особенность является недопустимой.
Следующий — High-speed external (HSE). Этот генератор является альтернативой HSI. Для его работы нужен внешний кварцевый резонатор на частоту 4-16 МГц. Его главным преимуществом в сравнении с HSI является стабильность генерируемой частоты. Так же, при определенной настройке, вывод OSC_IN можно подключить к источнику готового прямоугольного тактового сигнала без использования резонатора.
Далее Low-speed external (LSE). Этот генератор так же требует внешнего кварцевого резонатора, но только на 32768 Гц. LSE используется только для тактирования встроенных часов реального времени RTC, с помощью которых можно вести отсчет текущего времени, если это нужно.
Последний генератор — это Low-speed internal (LSI) RC oscillator. Это встроенный RC-генератор на 40 КГц. Он не отличается особой точностью, однако у него есть очень важная задача: генерация тактового сигнала для сторожевого таймера МК, который перезапустит систему в случае зависания. А еще от LSI можно тактировать RTC, но скорее всего это ни кто делать не будет ?
Читайте также: Допустимые размеры шин для киа рио
Видео:АПС Л19. ШиныСкачать
Тактирование периферии
Процессорное ядро и основная часть периферии использует тактовый сигнал SYSCLK.
Рис. 4. Распределение тактового сигнала SYSCLK
После делителя AHB Prescaler тактовый сигнал распределяется между шинами микроконтроллера. Сигнал HCLK поступает в процессорное ядро, память и периферию шины AHB. FCLK так же идет в ядро. Через фиксированный делитель на 8 тактирование подается на системный таймер Cortex System timer. Делитель APB1 Prescaler формирует сигнал тактирования устройств шины APB1, а APB2 Prescaler для устройств APB2.
Тут правда есть небольшая особенность формирования тактового сигнала для таймеров и АЦП.
Рис. 5. Распределение тактового сигнала шины APB1 между устройствами
Рис. 6. Распределение тактового сигнала шины APB2 между устройствами
Тактовый сигнал на таймеры подается следующим образом. Если делитель шины (APB1 Prescaler или APB2 Prescaler) установлен в единицу, то частота тактирования тактирования таймеров (TIMXCLK или TIM1CLK) будет равна частоте шины. Но, если делитель не равен единице, то частота тактирования таймеров будет в 2 раза больше частоты шины (см. рис. 5, 6). Вот так ? А для АЦП есть свой собственный делитель, который из частоты тактирования шины APB2 формирует сигнал ADCCLK (рис. 6).
Думаю, следует еще обратить внимание на вот эти элементы блок-схемы:
Это есть ни что иное, как устройства подачи тактового сигнала на конкретную периферию (логические элементы 2И). Попробую перерисовать один из них так, чтоб было понятнее, что это и как оно работает:
У каждого периферийного модуля в специальном регистре есть свой бит (SPI1EN, IOPAEN, IOABEN и так далее), при установке которого в единицу разрешается подача на него тактового сигнала. На рис. 8 я привел пример только для тактового сигнала PCLK2 шины APB2, для остальных сигналов (HCLK, PCLK1, TIMXCLK, TIM1CLK) все то же самое.
Видео:APB | История провала одной из самых дорогих ММО в историиСкачать
Источники сигнала SYSCLK
Итак, теперь мы знаем, что основным тактовым сигналом в микроконтроллерах STM32 является SYSCLK. Давайте теперь разберемся, как его получить. В нашем распоряжении 3 варианта: генераторы HSI, HSE и модуль PLL:
Рис. 9. Источники сигнала SYSCLK
После сброса микроконтроллера в качестве источника сигнала SYSCLK по-умолчанию устанавливается встроенный RC-генератор HSI. Прохождение тактового сигнала для этого случая представлено на рис. 10, значения по-умолчанию всех делителей обвел кружочком:
Рис. 10. Конфигурация системы тактирования по-умолчанию
А теперь давайте посчитаем значения всех частот в конфигурации по-умолчанию. Частоты HCLK, FCLK, PCLK1, TIMXCLK, PCLK2, TIM1CLK будут равны 8 МГц, частота Cortex System timer равна 1 МГц, а ADCCLK 4 Мгц.
Если мы хотим задействовать HSE-генератор, то картина будет следующей:
Рис. 11. Выбор генератора HSE в качестве источника тактирования SYSCLK
При использовании кварцевого резонатора на 8 МГц все системные частоты будут такими же, что и в предыдущем случае. Разница только в одном: при использовании генератора HSE стабильность частот лучше, чем при использовании HSI. Однако, если мы хотим получить максимальную производительность всей системы, то нужно в качестве источника SYSCLK использовать блок умножения частоты PLL.
Видео:КАК СЕБЯ ЧУВСТВУЕТ APB Reloaded В 2024 ГОДУ??? (бомбезное тулево)Скачать
HSE и PLL
В микроконтроллерах STM32 модуль PLL может тактироваться как от HSI генератора, так и от HSE. Существует огромное количество вариантов настройки тактирования системы от PLL. Мы остановимся только на одном, в котором используется HSE и все коэффициенты настроены на максимальную производительность системы:
Рис. 12. Схема прохождения тактового сигнала при использовании PLL совместно с HSE
Кварцевый резонатор выбираем на 8 МГц. Далее, сигнал с HSE без деления (настраивается битом PLLXTPRE) поступает на селектор PLLSRC и потом на PLL. Для того, чтобы из 8-и МГц получить 72 МГц, коэффициент умножения PLL должен быть равен PLLMUL=9. Далее, сигнал с PLL частотой 72 МГц через селектор SW поступает на SYSCLK. Так как процессорное ядро мы хотим тактировать максимальной частотой в 72 МГц, AHB Prescaler устанавливаем равный единице (без деления). Для получения частоты шины APB1, равной 36 МГц, APB1 Prescaler ставим равным 2. Шина APB2 имеет максимальную частоту 72 МГц, следовательно, APB2 Prescaler можно установить в 1.
- Кварц HSE на 8 МГц
- PLLXTPRE: без деления
- PLLSRC: HSE генератор
- PLLMUL = 9
- SW = PLLCLK
- AHB Prescaler = 1
- APB1 Prescaler = 2
- APB2 Prescaler = 1
Читайте также: Шин ка палач доминиона
Видео:APB Reloaded. Беспристрастный обзор.Скачать
Что еще?
Здесь мы не рассмотрели еще некоторые блоки системы тактирования, о которых хочется упомянуть.
Clock security system (CSS) — переводится примерно как «система безопасности тактирования». Если, при использовании генератора HSE в качестве источника тактового сигнала для SYSCLK или PLL, произойдет срыв генерации HSE, то CSS автоматически переключит всю систему на работу от встроенного RC-генератора HSI. Таким образом, если что-то случится с кварцем, система не зависнет намертво в неопределенном состоянии, а сможет выполнить какие-то действия, например, перевести объект управления в безопасное состояние (закрыть все вентили, отключить силовые установки, и т.д.)
Модуль часов реального времени RTC может тактироваться от встроенного LSI генератора на 40 КГц, от HSE через делитель на 128, либо от LSE с внешним кварцем на 32768 Гц. Источник тактовых импульсов выбирается с помощью RTCSEL.
Модуль USB получает тактовый сигнал от PLL, причем при частоте на выходе PLL равной 72 МГц есть возможность активировать USB Prescaler с коэффициентом деления 1.5 для получения необходимой частоты 48 МГц.
Microcontroller clock output (MCO) — вывод микроконтроллера, на который можно вывести частоту от одного из источников сигнала: SYSCLK, HSE, HSI либо сигнал с выхода PLL, поделенный пополам. Нужный источник выбирается с помощью битов MCO.
Видео:Гайд по APB. Зелёные модификации персонажа.Скачать
Заключение
Итак, мы рассмотрели основные моменты в системе тактирования микроконтроллеров STM32 на примере STM32F103x8 и STM32F103xB. В других микроконтроллерах STM32 примерно все то же самое, за исключением некоторых нюансов. В следующей части мы познакомимся с регистрами системы тактирования и сброса RCC и рассмотрим пример инициализации RCC.
Видео:КАК ЖЕ ДАВНО Я ТУТ НЕ БЫЛ.. | APB RELOADEDСкачать
Русские Блоги
Видео:КАК ИГРАЕТСЯ в 2023 году- APB ReloadedСкачать
Сравнительный анализ шины AMBA по протоколам AHB, APB, AXI
Видео:Гайд по повышению уровня игры в APB от GentleCatСкачать
1. Обзор AMBA
AMBA (усовершенствованная архитектура шины микроконтроллера)
AHB (усовершенствованная высокопроизводительная шина)
ASB (усовершенствованная системная шина)
APB (усовершенствованный периферийный автобус)
AXI (Расширенный расширяемый интерфейс) Расширенный расширяемый интерфейс
Вместе эти элементы определяют набор стандартов для внутрикристальной связи, предназначенных для высокопроизводительных SoC.
AHB в основном предназначен для высокопроизводительных, высокоскоростных и высокоскоростных системных модулей и может подключать высокопроизводительные модули, такие как микропроцессоры, модули памяти внутри или вне кристалла, а также DMA.
APB в основном используется в низкоскоростных и маломощных периферийных устройствах, которые могут оптимизировать энергопотребление и сложные интерфейсы для периферийных устройств. APB обеспечивает коммуникационный мост между AHB и периферийными устройствами с низкой пропускной способностью, поэтому APB является вторичной шиной расширения для AHB или ASB.
AXI: высокая скорость, высокая пропускная способность, конвейерное соединение, однонаправленный канал, требуется только первый адрес, параллельное чтение и запись, поддержка не по порядку, поддержка невыровненных операций, эффективная поддержка периферийных устройств с высокой начальной задержкой и множество соединений.
Сравнительный анализ производительности нескольких шин AMBA
автобус | AXI | AHB | APB |
Ширина шины | 8, 16, 32, 64, 128, 256, 512, 1024 | 32, 64, 128, 256 | 8, 16, 32 |
Ширина адреса | 32 | 32 | 32 |
Характеристики канала | Каналы чтения и записи адресов и каналы чтения и записи данных независимы | Чтение и запись адресов каналов обмена данными чтения и записи каналов данных | Чтение и запись адресов каналов обмена данными чтения и записи каналов данных не поддерживает параллельные операции чтения и записи |
Архитектура | Мультимастер / ведомое устройство Арбитражный механизм | Мультимастер / ведомое устройство Арбитражный механизм | Одно ведущее устройство (мост) / несколько ведомых устройств Нет арбитража |
Протокол данных | Опорный трубопровод / раздельная передача поддерживает пакетную передачу Поддержка неупорядоченного доступа байт / полуслово / слово Совместите большие и маленькие концы Выровненная операция | Опорный трубопровод / раздельная передача поддерживает пакетную передачу Поддержка неупорядоченного доступа байт / полуслово / слово Совместите большие и маленькие концы не поддерживает невыровненные операции | Одна передача чтения / записи занимает два такта не поддерживает пакетную передачу |
способ передачи | Поддерживает параллельные операции чтения и записи | Не поддерживает чтение и запись параллельных операций | Не поддерживает чтение и запись параллельных операций |
тайминг | Синхронизировать | Синхронизировать | Синхронизировать |
взаимосвязано | многолучевости | многолучевости | Неопределенный |
Читайте также: Зимние шины imperial eco nordic
Видео:БЫСТРАЯ СТРЕЛЬБА И КРАТКО О ВАЖНОМ + Миссия \ APB ReloadedСкачать
2. AHB автобус
Видео:ЖИВА ЛИ ЛЕГЕНДА И КАК В НЕЕ ИГРАЕТСЯ В 2022 - Apb Reloaded #ОБЗОР #APBСкачать
Состав АХБ
Мастер: он может инициировать операции чтения и записи, предоставлять адреса и сигналы управления, и одновременно может быть активирован только один Мастер.
Подчиненный: отвечает на операции чтения и записи в заданном диапазоне адресов и возвращает мастер, состояние успеха, сбоя или ожидания.
Арбитр: Он отвечает за то, чтобы в автобусе одновременно работал только один мастер. Арбитражное соглашение уточняется, но алгоритм арбитража может быть определен согласно заявке.
Декодер: декодирует адрес и предоставляет сигналы выбора микросхемы каждому ведомому.
Каждый AHB требует арбитра и центрального декодера.
Видео:APB: Reloaded | Редактор | Персонаж | МашинаСкачать
AHB основной сигнал
HADDR: 32-битная системная адресная шина
HTRANS: M указывает состояние передачи, NONSEQ, SEQ, IDLE, BUSY
HWRITE: направление передачи 1-запись, 0-чтение
HBURST: тип передаваемого пакета
HWDATA: запись шины данных, запись с M на S
HREADY: S отвечает на M независимо от того, завершена ли операция чтения и записи, 1 — передача завершена, 0 — цикл передачи необходимо продлить. Следует отметить, что HREADY — это сигнал на шине, который является входом M и S, в то же время каждый S должен выводиться из HREADY. Таким образом, для S будет два сигнала HREADY, один с входа шины и один с выхода на мультиплексор.
HRESP: S отвечает на текущий статус передачи, OKAY, ERROR, RETRY, SPLIT.
HRDATA: чтение шины данных, чтение из S в M.
Видео:Что такое CAN шинаСкачать
AHB базовая трансмиссия
Цикл адреса (AP), только один цикл
Цикл данных (DP), определяемый сигналом HREADY, требует нескольких циклов
Первый адресный цикл, затем цикл данных
Видео:ОБЗОР НА ШМОТ! APB RELOADEDСкачать
Характеристики пакетной передачи AHB и пакетной передачи AXI
Протокол AHB требует всех адресов в пакетной передаче и соответствующей взаимосвязи между адресом и блокировкой данных. Последующая пакетная передача должна быть завершена после предыдущей передачи.
AXI нужен только первый адрес пакета. Он может непрерывно отправлять несколько первых адресов пакетной передачи, не ожидая завершения предыдущей пакетной передачи, и можно чередовать несколько данных. Эта функция значительно повышает коэффициент использования шины.
И шина AHB, и шина AXI подходят для высокопроизводительных систем SoC с высокой пропускной способностью, но AXI обладает большей гибкостью и может параллельно читать и записывать каналы, не влияя друг на друга, что более важно, шина AXI поддерживает передачу вне очереди. Может эффективно использовать пропускную способность шины для балансировки внутренней системы. Следовательно, в системе SoC шина AXI является главной, а шина AHB и шина APB соединены через мост, что может повысить гибкость системы SoC и более рационально распределить IP-характеристики шины по различным характеристикам.
Видео:Плюсы и минусы сервисной шины данных I Enterprise service bus (ESB) I kt.teamСкачать
3. APB автобус
Он в основном используется в периферийных устройствах с низкой пропускной способностью, таких как UART, I2C, его архитектура не похожа на шину AHB, являющуюся архитектурой с несколькими хозяевами, единственным ведущим устройством шины APB является мост APB (подключенный к AXI или APB), поэтому нет необходимости в арбитраже некоторых сигналов запроса / предоставления. Протокол APB также очень прост, даже не конвейерная операция, а операция чтения или записи выполняется за два фиксированных тактовых цикла. Его характеристики включают в себя: два такта передачи, без ожидания цикла и ответного сигнала, логика управления проста, всего четыре управляющих сигнала. Передача на APB может быть проиллюстрирована диаграммой состояний, как показано.
1. Система инициализируется в состояние IDLE, в это время операция передачи не выполняется и ведомый модуль не выбран.
2. Когда должна быть выполнена передача, PSELx = 1, PENABLE = 0, система переходит в состояние SETUP и будет оставаться в состоянии SETUP только один цикл. Когда наступает следующий передний фронт PCLK, система переходит в состояние ENABLE.
3. Когда система перейдет в состояние ENABLE, оставьте PADDR, PSEL и PWRITE в состоянии SETUP неизменными и установите PENABLE на 1. Передача останется в состоянии ENABLE только в течение одного цикла и будет завершена после состояний SETUP и ENABLE. После этого, если передача не продолжается, он переходит в состояние IDLE и ждет, а если идет непрерывная передача, он переходит в состояние SETUP.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
🎬 Видео
ЗАШЁЛ В АПБ СПУСТЯ ДОЛГОЕ ВРЕМЯ!? APB RELOADEDСкачать
Б/У РЕЗИНА ИЛИ НОВАЯ РЕЗИНА? Подержанные колеса лучше чем новые шины?Скачать