Я использую микроконтроллер STM32F051 в своем проекте. Системное требование - минимальное потребление тока. Сигналы, которые я обрабатываю, имеют очень низкую частоту (почти постоянный ток). Я уменьшаю системную частоту с 48 МГц до 8 МГц (выключаю PLL) и практически не вижу снижения тока моей платы. Уменьшение примерно на 5 мА. В техническом описании говорится о снижении на ~ 25 мА по сравнению с 48 МГц по сравнению с 8 МГц. Ты знаешь почему?
Я использую GPIO, 3 таймера, UART и АЦП (3 канала)
Я использую F051 в двух проектах и обнаружил, что значения в таблице данных довольно точны, хотя я не проводил полной проверки, как с другими микроконтроллерами.
Мои точки выборки очень ограничены, но они были взяты с минимальным набором активных периферийных устройств (сумма Ivdd и Ivdda):
И значения в таблице данных довольно близки к этому. Немного запутанно найти реалистичные значения, но таблица типичных значений в режиме выполнения с обработкой данных из флэш-памяти вполне пригодна для использования:
Итак, этот говорит вам, что с отключенными периферийными устройствами (что близко к вашему варианту использования) вы получите около 8 мА при снижении частоты с 48 МГц до 8 МГц.
АЦП - это немного расточительный компонент, который я не уверен, как он масштабируется с частотой, но я подозреваю, что он не очень хорошо масштабируется.
Вы должны увидеть падение на 17 мА при переключении на 8 МГц.
В техническом описании указано 22 мА при 48 МГц с PLL и всеми включенными периферийными устройствами (но не используемыми). И 4,4 мА при 8 МГц с отключенной PLL и включенной периферией.
Это также не принимает во внимание ток, используемый АЦП/ЦАП или GPIO.
К этому необходимо добавить любой подтягивающий/нижний или управляемый GPIO. Сюда же нужно добавить выборки АЦП и нагрузку на ЦАП.
analog in
привело к наименьшему потребляемому току (может вызвать проблемы с электромагнитными помехами, если их не подключить, имейте это в виду).Даже если я использую свой MCU с тактовой частотой 1 Гц (это очень медленно!), но подключаю резистор + светодиод к GND к одному из выходов и заставляю светодиод загораться, я могу заставить установку использовать, скажем, 10 мА. Выключите светодиод, и он потребляет 1 мкА.
Я хочу сказать: потребление тока любым MCU зависит не только от того, какую тактовую частоту он использует, но и от того, что подключено к выходам. Если выход должен отдавать ток (как в моем примере со светодиодом выше), то вы увидите, что этот ток возвращается в ток питания.
Кроме того, MCU в режиме ожидания будет потреблять намного меньше тока, чем тот же MCU, выполняющий тяжелые вычисления.
Следует определить, где потребляется ток. Выключите как можно больше блоков и включите их один за другим, чтобы определить, какой блок сколько потребляет.
Также обратите внимание, что потребление тока может сильно варьироваться, большинство продуктов с низким энергопотреблением рассчитаны на низкий рабочий цикл . Скажем, MCU потребляет 10 мА в активном состоянии, но он активен только в течение 1 секунды каждые 5 минут. Тогда средний ток:
1 сек / (5 x 60 сек) * 10 мА = 1/300 * 10 мА = 33 мкА
Это средний ток, поэтому при работе от батареи это может привести к многомесячному сроку службы батареи (конечно, в зависимости от батареи).
фгриё
DDonkey
битмак