Как измерить напряжение питания микроконтроллера в режиме сна

Когда микроконтроллер уходит в сон, ток потребления падает до микроампер, а иногда и наноампер. И вот тут начинается веселье: обычный мультиметр может показать полную чушь, осциллограф — шум, а ты сидишь и не понимаешь, питается ли контроллер вообще. Эта статья — про то, как реально измерить напряжение питания МК в спящем режиме, не исказив результат самим процессом измерения.

Почему обычное измерение не работает

Проблема не в том, что микроконтроллер спит. Проблема в том, что мы к нему подключаемся.

Типичная ситуация: разработчик ставит щупы мультиметра на пины VCC и GND «для контроля» и видит, что напряжение просело. Думает, что проблема в питании. А на деле мультиметр сам нагрузливает цепь, и это искажает картину.

Вот что мешает корректному измерению:

  • Входное сопротивление измерительного прибора — мультиметр на 10 МОм выглядит как нагрузка, а в режиме сна микроконтроллер сам потребляет менее 1 мкА. Прибор становится значимой нагрузкой.
  • Ток собственного потребления прибора — особенно у недорогих мультиметров, где усилитель и дисплей тоже что-то тянут.
  • Щупы и провода — длинные щупы работают как антенны и как конденсатор, собирают наводки и добавляют паразитную ёмкость.
  • Переходные процессы — в момент подключения происходит кратковременный бросок тока, который может «разбудить» МК.

Что именно мы хотим измерить

Прежде чем выбирать метод, определимся, что именно нас интересвает:

  • Статическое напряжение на пинах питания МК в Deep Sleep
  • Провал напряжения при переходе между режимами (активный → сон → активный)
  • Влияние потребления МК на общую линию питания
  • Длительность поддержания рабочего напряжения при просадке источника

Если вам нужно просто узнать, доходит ли до контроллера 3.3 В или 5 В — задача одна. Если нужно понять, как ведёт себя линия при переходе между режимами — совсем другая. Поймите свою задачу сначала, и выбор метода станет очевиден.

Метод 1: измерение через токовый шунт и осциллограф

Это самый информативный способ, и именно его я рекомендую для реальной отладки.

Идея простая: разрываем цепь питания, ставим шунт известного номинала, и по падению напряжения на нём восстанавливаем ток потребления. Одновременно контролируем напряжение на МК вторым каналом осциллографа.

  1. Впаиваем шунт сопротивлением 10–100 Ом в линию питания. Для токов в наноамперах и десятках микроампер 10 Ом дают падение 1–10 мВ — осциллограф это видит.
  2. Подключаем первый канал осциллографа параллельно шунту (дифференциально, если земля общая).
  3. Второй канал на пины питания МК.
  4. Ставим осциллограф в режим «развертка по времени» — обычно 1–10 сек на экран, чтобы увидеть полный цикл: сон → пробуждение → передача данных → снова сон.
  5. Смотрим осциллограмму: провал напряжения на шунте говорит о токе, провал на МК — о проблеме с питанием.

Минимальные требования к осциллографу: полоса 10 МГц (хватит за глаза), входное сопротивление 1 МОм не критично, поскольку измерение ведётся дифференциально. Лучше использовать дифференциальный пробник или два активных пробника в режиме «Ch1 — Ch2».

Не используйте дешёвые SDR-донгли или USB-осциллографы с малым разрешением — их шумы обычно порядка 10–50 мВ, что съ了整个 useful signal при измерении просадок в несколько милливольт.

Этот метод позволяет увидеть не только среднее значение напряжения, но и переходные процессы — например, просадку при выходе из сна, когда контроллер резко увеличивает потребление.

Метод 2: дифференциальное измерение вольтметром

Если вам нужны точные статические значения и вы не хотите возиться с осциллографом, используйте дифференциальный вольтметр или цифровой вольтметр с высоким входным сопротивлением.

Подключаете измерительный прибор непосредственно к пинам питания МК — минус к GND МК, плюс к VCC МК. Это важно: измеряйте напряжение на самом микроконтроллере, не на стабилизаторе и не на батарее. Разница в десятки–сотни милливольт на длинных дорожках или на шунте — это нормально.

Какие приборы подходят:

  • Метод точного вольтметра: например, цифровые вольтметры серии 34461A — разрешение до 1 мкВ, собственные погрешности известны и малы.
  • Дифференциальный нановольтметрический преобразователь: типа AD8422, AD629 или INA226 в паре с микросхемой.
  • Метод с двумя вольтметрами: один измеряет VCC_Rail, другой VCC_MCK вы вручную вычитаете разницу — примитивно, но рабочий, если приборы точные.

При измерении в спящем режиме дайте микроконтроллеру хотя бы 10–30 секунд на стабилизацию тока потребления. После входа в Deep Sleep ток может меняться из-за дребезга или установки внутренних стабилизаторов МК.

Метод 3: высокий импеданс active probe

Проблема классических осциллографических пробников — входная ёмкость и сопротивление, которые влияют на измеряемую цепь.

Активные пробники с входным сопротивлением ≥ 100 МОм и ёмкостью менее 1 пФ минимизируют искажение. Подходят для прецизионных измерений, но стоят дорого.

  • Высокоомные пробники типа Tektronix P6150, Tektronix TPP1000 — входное сопротивление ≥ 100 МОм, минимальное влияние на цепь.
  • Пробники на основе операционных усилителей с MOSFET-входом можно спаять самим: повторитель на OPA192, ADA4530-1 — ток входного смещения менее 10 фА, что меньше токов сна МК.

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

Сравнение методов

Метод Точность по напряжению Информативность Сложность подключения Влияние на цепь Когда использовать
Осциллограф + шунт Средняя (1–5 мВ) Очень высокая (видно переходные процессы) Средняя Низкое (шунт 10–100 Ом) Отладка переходных процессов, проверка просадок при смене режимов
Дифференциальный вольтметр Высокая (до 0.1 мВ или точнее) Статическая Низкая Минимальное Точное измерение просадки на линиях питания
Активный высокоомный пробник Высокая Высокая Средняя Очень низкое Когда не можем позволить себе влиять на цепь (например, наноамперные токи)
ADC самого МК Зависит от МК (обычно 3–10 мВ) Средняя (только VCC) Низкая (программная настройка) Отсутствует (измерение внутреннее) Мониторинг в реальном времени, без внешнего оборудования

Метод 4: встроенный АЦП микроконтроллера

Многие современные микроконтроллеры умеют измерять собственное напряжение питания через внутренний АЦП. Это удобно, но для глубокого сна сложно реализовать — АЦП может быть отключен.

STM32F4xx: Используется внутренний источник опорного напряжения (Vrefint, тип. 1.2 В). В спящих режимах функции измерения напряжения питания обычно недоступны, так как АЦП отключается для экономии энергии. Для оценки напряжения во время сна придется временно просыпаться и производить замер через ADC.

ESP32-C3/D0WD: ADC1 доступен в глубоком сне только в ограниченном варианте (только некоторые каналы, управление ULP). Это может быть полезно для мониторинга, но для отладки просадок разнес по времени замера и сна вносит неопределённость.

nRF52840: Есть SAADC, способный работать в System ON idle (лёгкий сон). Для настоящего глубокого сна — АЦП отключается.

Важно помнить: внутренний АЦП измеряет напряжение в момент пробуждения, а не во время сна. Если сначала проснуться, потом измерить — это дают разный результат: просадка уже не видна, и вы можете сделать ложный вывод, что с питанием всё нормально.

Типичные ошибки при измерении

  • Использовать мультиметр с низким импедансом — например, режим «проверка диодов» или измерение тока в разрывней цепи с шунтом 1 кОм и более.
  • Измерять на стабилизаторе вместо на МК — уверенность, что на выходе стабилизатора 3.3 В ничего не даёт, если между ним и МК 5 см дорожки и шунт.
  • Длинные щупы без экранирования — наводки от осциллографа или окружающей схемы зашумляют измерение до неприличия.
  • Забывать про контактное сопротивление — если вы просто приложили щупы к пинам, контактное сопротивление может добавить десятки Ом.
  • Не учитывать токи утечки на плате — конденсаторы, делители напряжения, светодиоды — всё это может потреблять ток, и вы измеряете суммарное потребление платы, а не только МК.
  • Забывать, что пробуждение меняет картину — если вы измеряете напряжение во время сна, но одновременно подключили осциллограф, его шум может вызвать пробуждение.

Как сделать измерение правильно: пошаговый план

  1. Определите свою цель: нужно измерить просадку или точное статическое напряжение? От этого зависит метод.
  2. Выберите оборудование: для просадок — осциллограф со шунтом, для точного напряжения дифференциальный вольтметр.
  3. Установите шунт: впаиваем резистор 10–100 Ом в линию питания МК. Чем ниже сопротивление, тем меньше влияние, но и тем меньше сигнал на осциллографе.
  4. Подключите измерительный прибор дифференциально: не используйте длинные провода без экранирования. Измеряйте на самом МК.
  5. Настройте осциллограф: полоса 20 МГц (чтобы отсечь ВЧ шум), развёртка 1–10 с/дел, режим усреднения (Average, 16 или 32 реализации).
  6. Дайте МК стабилизироваться: после входа в сон подождите 30–60 секунд перед оценкой средних значений.
  7. Зафиксируйте форму сигнала: сохраните осциллограмму, запишите среднеквадратичное и пиковое падение напряжения, время восстановления после пробуждения.
  8. Проверьте влияние измерительного прибора: отключите осциллограф и проверьте, не изменилось ли поведение платы. Если изменилось — ваш прибор влияет на результат.

Что делать, если напряжение просело

Вы измерили, увидели просадку. Теперь нужно понять, нормально это или нет.

Вот ориентиры:

  • Просадка менее 50 мВ при переходе из сна в активный режим — обычно нормально, если контроллер не падает ниже минимального рабочего напряжения (смотрите даташит, раздел «Recommended Operating Conditions»).
  • Просадка более 200 мВ — тревожный знак. Проверьте ёмкость на линиях питания, сопротивление шунта, качество контактов.
  • Если напряжение не восстанавливается в течение десятков мс — возможно, дело в источнике питания (батарея с высоким внутренним сопротивлением, слабый стабилизатор).

Что можно сделать:

  • Увеличить ёмкость на линиях питания МК (10–100 мкФ керамика + 1–10 мкФ керамика поближе к пинам).
  • Уменьшить сопротивление шунта или убрать его совсем, если он не нужен для постоянного мониторинга.
  • Проверить дорожки питания — длинные, тонкие дорожки добавляют сопротивление и просадку.
  • Если питание идёт через LDO — проверить, не уходит ли он в режим сброса при нагрузке.

Сценарии выбора под конкретную задачу

Ситуация 1: нужно просто убедиться, что напряжение доходит до МК

→ Используйте дифференциальный вольтметр или нановольтметр. Подключайте непосредственно к пинам МК. Не доверяйте измерениям на стабилизаторе.

Ситуация 2: нужно понять, почему МК сбрасывается при выходе из сна

→ Осциллограф + шунт 10 Ом. Смотрите форму напряжения в момент пробуждения. Ищите просадку ниже минимального рабочего напряжения.

Ситуация 3: нужно измерить ток потребления в спящем режиме

→ Шунт 100 Ом–1 кОм + осциллограф или усилитель на операционном усилителе. Не используйте мультиметр — его шунт слишком большой для микротоков.

Ситуация 4: нужно мониторить напряжение в реальном времени в готовом устройстве

→ Внутренний АЦП МК с периодическим пробуждением. Или внешний компаратор, который будит МК при просадке ниже порога.

Заключение

Измерить напряжение питания микроконтроллера в спящем режиме — задача не сложная, но требующая аккуратности. Главное правило: измеряйте там, где работает микроконтроллер, а не там, где вам удобно поставить щупы. И помните, что сам прибор может исказить результат — всегда проверяйте, не влияет ли измерение на поведение платы.

Начните с простого: поставьте шунт 10 Ом, подключите осциллограф, посмотрите форму напряжения. Этого часто достаточно, чтобы увидеть проблему и понять, куда двигаться дальше.

radio-blog.ru — электроника и технологии