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

Управление питанием

489

19.3.2.1. Рабочий режим

По умолчанию и после подачи питания или системного сброса микроконтроллеры STM32F переводятся в рабочий режим (run mode), который является полностью активным режимом, потребляющим много энергии даже при выполнении незначительных задач. Потребление как в рабочем режиме, так и в спящем режиме зависит от рабочей частоты12.

На рисунке 413 показаны уровни энергопотребления некоторых новейших микроконтроллеров STM32F4.

В рабочем режиме основной регулятор обеспечивает полную мощность для домена питания 1,8-1,2 В (ядро ЦПУ, память и цифровые периферийные устройства). В этом режиме выходное напряжение регулятора (около 1,8-1,2 В в зависимости от конкретного микроконтроллера STM32F) может быть изменено программно до различных значений напряжения (подробнее об этом позже). Некоторые новейшие микроконтроллеры STM32F4 предоставляют два рабочих режима:

Нормальный режим (Normal mode): ЦПУ и цифровая логика работают на максимальной частоте при заданном масштабе напряжения (scale 1, scale 2 или scale 3).

Режим высокоинтенсивной работы (Over-drive mode): этот режим позволяет ЦПУ и логике ядра работать на более высокой частоте, чем при нормальном режиме в масштабах напряжения scale 1 и scale 2. Подробнее об этом режиме позже.

Рисунок 4: Потребляемая энергия некоторых микроконтроллеров STM32F4

12Не забывайте, что в спящем режиме отключена только тактовая частота ЦПУ, а остальные периферийные устройства остаются активными. Таким образом, тактовый сигнал HCLK по-прежнему влияет на общее энергопотребление.

13Рисунок взят из руководства по применению от ST AN4365 (http://www.st.com/st-web- ui/static/active/en/resource/technical/document/application_note/DM00096220.pdf).

Управление питанием

490

19.3.2.1.1.Динамическое изменение напряжения в микроконтроллерах

STM32F4/F7

Потребляемая мощность в цепи постоянного тока определяется потребляемым током и напряжением этой цепи. Это означает, что мы можем уменьшить потребляемую цепью мощность, уменьшив напряжение. STM32F4/F7 предоставляет технологию интеллектуального контроля питания под названием Динамическое изменение напряжения (Dynamic Voltage Scaling, DVS), отличающуюся от той, которая реализована в серии STM32L. Идея DVS заключается в том, что многим встраиваемым системам не всегда требуются полные возможности обработки системы, поскольку не все подсистемы всегда активны. В этом случае система может оставаться в активном режиме без максимальной производительности процессора. Напряжение, подаваемое на процессор, затем может быть уменьшено, когда более низкой частоты достаточно. Благодаря такому управлению питанием мы уменьшаем потребляемую мощность батареи, отслеживая входное напряжение процессора в соответствии с требованиями к производительности системы.

DVS заключается в масштабировании выходного напряжения регулятора STM32F4, который подает напряжение на домен питания 1,2 В (ядро, память и цифровые периферийные устройства), когда мы понижаем тактовую частоту в зависимости от потребностей обработки. STM32F4/F7 предлагает три масштаба напряжения (scale 1, scale 2 и scale 3). Максимально достижимая частота ядра для заданного масштаба напряжения определяется конкретным микроконтроллером STM32. Например, STM32F401 предоставляет только два масштаба напряжения, scale 2 и scale 3, которые позволяют работать ядру до 84 МГц и до 60 МГц соответственно. Для управления масштабированием напряжения CubeHAL предоставляет функцию:

HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling);

которая принимает символьные константы PWR_REGULATOR_VOLTAGE_SCALE1, PWR_REGULATOR_VOLTAGE_SCALE2 и PWR_REGULATOR_VOLTAGE_SCALE3. Масштаб напряжения можно изме-

нить только в том случае, если источником тактового сигнала для Мультиплексора системного тактового сигнала является HSIили HSE-генераторы. Итак, чтобы увеличить/уменьшить масштаб напряжения, вы можете выполнить следующую процедуру:

Установите HSI или HSE в качестве источника системной тактовой частоты, ис-

пользуя HAL_RCC_ClockConfig().

Вызовите HAL_RCC_OscConfig() для конфигурации блока PLL.

Вызовите API-интерфейс HAL_PWREx_ConfigVoltageScaling() для настройки масштаба напряжения.

Установите новую системную тактовую частоту, используя HAL_RCC_ClockConfig().

Для получения дополнительной информации по этой теме обратитесь к AN436514.

19.3.2.1.2.Режим высоко-/малоинтенсивной работы в микроконтроллерах

STM32F4/F7

Некоторые микроконтроллеры из семейства STM32F4 и все STM32F7 предоставляют два или даже несколько вспомогательных рабочих режима. Эти режимы называются режи-

мами высокоинтенсивной (over-drive) и малоинтенсивной (under-drive) работы. Первый

14 http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00096220.pdf