Потребляемый ток в MCU

Я использую микроконтроллер STM32F051 в своем проекте. Системное требование - минимальное потребление тока. Сигналы, которые я обрабатываю, имеют очень низкую частоту (почти постоянный ток). Я уменьшаю системную частоту с 48 МГц до 8 МГц (выключаю PLL) и практически не вижу снижения тока моей платы. Уменьшение примерно на 5 мА. В техническом описании говорится о снижении на ~ 25 мА по сравнению с 48 МГц по сравнению с 8 МГц. Ты знаешь почему?

Я использую GPIO, 3 таймера, UART и АЦП (3 канала)

Использует ли приложение спящий режим при простое? Это могло бы объяснить это. Некоторые встроенные ОС делают это.
нет, только режим работы
Не ответ, а повод для размышлений: я сделал солидный проект на базе STM32F1, который включал в себя множество методов энергосбережения. Позже я изучил серию STM32L1, которая была намного лучше с точки зрения низкого энергопотребления. Если вы не привязаны к своему UC, вы можете заглянуть в STM32L0 или STM32L1...

Ответы (3)

Я использую F051 в двух проектах и ​​обнаружил, что значения в таблице данных довольно точны, хотя я не проводил полной проверки, как с другими микроконтроллерами.

Мои точки выборки очень ограничены, но они были взяты с минимальным набором активных периферийных устройств (сумма Ivdd и Ivdda):

  • Использование внутреннего генератора:
    • 1 МГц: 0,96 мА
    • 0,5 МГц: 0,75 мА
  • HSE в байпасе:
    • 1 МГц: 0,79 мА
    • 0,5 МГц: 0,54 мА

И значения в таблице данных довольно близки к этому. Немного запутанно найти реалистичные значения, но таблица типичных значений в режиме выполнения с обработкой данных из флэш-памяти вполне пригодна для использования:

типичное потребление тока в рабочем режиме

Итак, этот говорит вам, что с отключенными периферийными устройствами (что близко к вашему варианту использования) вы получите около 8 мА при снижении частоты с 48 МГц до 8 МГц.

АЦП - это немного расточительный компонент, который я не уверен, как он масштабируется с частотой, но я подозреваю, что он не очень хорошо масштабируется.

Вы должны увидеть падение на 17 мА при переключении на 8 МГц.

В техническом описании указано 22 мА при 48 МГц с PLL и всеми включенными периферийными устройствами (но не используемыми). И 4,4 мА при 8 МГц с отключенной PLL и включенной периферией.
Это также не принимает во внимание ток, используемый АЦП/ЦАП или GPIO.

К этому необходимо добавить любой подтягивающий/нижний или управляемый GPIO. Сюда же нужно добавить выборки АЦП и нагрузку на ЦАП.

Любые контакты, которые я не использую, должны ли они быть настроены по умолчанию (GPIO IN) или настроены как Analog_in или как-то иначе?
@Daniel_ee571 для других членов семейства STM32, включение которых analog inпривело к наименьшему потребляемому току (может вызвать проблемы с электромагнитными помехами, если их не подключить, имейте это в виду).
@Daniel_ee571 См. AN4538. Хоть и не для F051, но будет в правильном направлении.

Даже если я использую свой MCU с тактовой частотой 1 Гц (это очень медленно!), но подключаю резистор + светодиод к GND к одному из выходов и заставляю светодиод загораться, я могу заставить установку использовать, скажем, 10 мА. Выключите светодиод, и он потребляет 1 мкА.

Я хочу сказать: потребление тока любым MCU зависит не только от того, какую тактовую частоту он использует, но и от того, что подключено к выходам. Если выход должен отдавать ток (как в моем примере со светодиодом выше), то вы увидите, что этот ток возвращается в ток питания.

Кроме того, MCU в режиме ожидания будет потреблять намного меньше тока, чем тот же MCU, выполняющий тяжелые вычисления.

Следует определить, где потребляется ток. Выключите как можно больше блоков и включите их один за другим, чтобы определить, какой блок сколько потребляет.

Также обратите внимание, что потребление тока может сильно варьироваться, большинство продуктов с низким энергопотреблением рассчитаны на низкий рабочий цикл . Скажем, MCU потребляет 10 мА в активном состоянии, но он активен только в течение 1 секунды каждые 5 минут. Тогда средний ток:

1 сек / (5 x 60 сек) * 10 мА = 1/300 * 10 мА = 33 мкА

Это средний ток, поэтому при работе от батареи это может привести к многомесячному сроку службы батареи (конечно, в зависимости от батареи).

Ток потребления ядра будет зависеть от тактовой частоты. Но, конечно, этот ток — капля в море по сравнению с такими вещами, как GPIO и светодиоды.