Когда микроконтроллер уходит в сон, ток потребления падает до микроампер, а иногда и наноампер. И вот тут начинается веселье: обычный мультиметр может показать полную чушь, осциллограф — шум, а ты сидишь и не понимаешь, питается ли контроллер вообще. Эта статья — про то, как реально измерить напряжение питания МК в спящем режиме, не исказив результат самим процессом измерения.
- Почему обычное измерение не работает
- Что именно мы хотим измерить
- Метод 1: измерение через токовый шунт и осциллограф
- Метод 2: дифференциальное измерение вольтметром
- Метод 3: высокий импеданс active probe
- Сравнение методов
- Метод 4: встроенный АЦП микроконтроллера
- Типичные ошибки при измерении
- Как сделать измерение правильно: пошаговый план
- Что делать, если напряжение просело
- Сценарии выбора под конкретную задачу
- Заключение
Почему обычное измерение не работает
Проблема не в том, что микроконтроллер спит. Проблема в том, что мы к нему подключаемся.
Типичная ситуация: разработчик ставит щупы мультиметра на пины VCC и GND «для контроля» и видит, что напряжение просело. Думает, что проблема в питании. А на деле мультиметр сам нагрузливает цепь, и это искажает картину.
Вот что мешает корректному измерению:
- Входное сопротивление измерительного прибора — мультиметр на 10 МОм выглядит как нагрузка, а в режиме сна микроконтроллер сам потребляет менее 1 мкА. Прибор становится значимой нагрузкой.
- Ток собственного потребления прибора — особенно у недорогих мультиметров, где усилитель и дисплей тоже что-то тянут.
- Щупы и провода — длинные щупы работают как антенны и как конденсатор, собирают наводки и добавляют паразитную ёмкость.
- Переходные процессы — в момент подключения происходит кратковременный бросок тока, который может «разбудить» МК.
Что именно мы хотим измерить
Прежде чем выбирать метод, определимся, что именно нас интересвает:
- Статическое напряжение на пинах питания МК в Deep Sleep
- Провал напряжения при переходе между режимами (активный → сон → активный)
- Влияние потребления МК на общую линию питания
- Длительность поддержания рабочего напряжения при просадке источника
Если вам нужно просто узнать, доходит ли до контроллера 3.3 В или 5 В — задача одна. Если нужно понять, как ведёт себя линия при переходе между режимами — совсем другая. Поймите свою задачу сначала, и выбор метода станет очевиден.
Метод 1: измерение через токовый шунт и осциллограф
Это самый информативный способ, и именно его я рекомендую для реальной отладки.
Идея простая: разрываем цепь питания, ставим шунт известного номинала, и по падению напряжения на нём восстанавливаем ток потребления. Одновременно контролируем напряжение на МК вторым каналом осциллографа.
- Впаиваем шунт сопротивлением 10–100 Ом в линию питания. Для токов в наноамперах и десятках микроампер 10 Ом дают падение 1–10 мВ — осциллограф это видит.
- Подключаем первый канал осциллографа параллельно шунту (дифференциально, если земля общая).
- Второй канал на пины питания МК.
- Ставим осциллограф в режим «развертка по времени» — обычно 1–10 сек на экран, чтобы увидеть полный цикл: сон → пробуждение → передача данных → снова сон.
- Смотрим осциллограмму: провал напряжения на шунте говорит о токе, провал на МК — о проблеме с питанием.
Минимальные требования к осциллографу: полоса 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 см дорожки и шунт.
- Длинные щупы без экранирования — наводки от осциллографа или окружающей схемы зашумляют измерение до неприличия.
- Забывать про контактное сопротивление — если вы просто приложили щупы к пинам, контактное сопротивление может добавить десятки Ом.
- Не учитывать токи утечки на плате — конденсаторы, делители напряжения, светодиоды — всё это может потреблять ток, и вы измеряете суммарное потребление платы, а не только МК.
- Забывать, что пробуждение меняет картину — если вы измеряете напряжение во время сна, но одновременно подключили осциллограф, его шум может вызвать пробуждение.
Как сделать измерение правильно: пошаговый план
- Определите свою цель: нужно измерить просадку или точное статическое напряжение? От этого зависит метод.
- Выберите оборудование: для просадок — осциллограф со шунтом, для точного напряжения дифференциальный вольтметр.
- Установите шунт: впаиваем резистор 10–100 Ом в линию питания МК. Чем ниже сопротивление, тем меньше влияние, но и тем меньше сигнал на осциллографе.
- Подключите измерительный прибор дифференциально: не используйте длинные провода без экранирования. Измеряйте на самом МК.
- Настройте осциллограф: полоса 20 МГц (чтобы отсечь ВЧ шум), развёртка 1–10 с/дел, режим усреднения (Average, 16 или 32 реализации).
- Дайте МК стабилизироваться: после входа в сон подождите 30–60 секунд перед оценкой средних значений.
- Зафиксируйте форму сигнала: сохраните осциллограмму, запишите среднеквадратичное и пиковое падение напряжения, время восстановления после пробуждения.
- Проверьте влияние измерительного прибора: отключите осциллограф и проверьте, не изменилось ли поведение платы. Если изменилось — ваш прибор влияет на результат.
Что делать, если напряжение просело
Вы измерили, увидели просадку. Теперь нужно понять, нормально это или нет.
Вот ориентиры:
- Просадка менее 50 мВ при переходе из сна в активный режим — обычно нормально, если контроллер не падает ниже минимального рабочего напряжения (смотрите даташит, раздел «Recommended Operating Conditions»).
- Просадка более 200 мВ — тревожный знак. Проверьте ёмкость на линиях питания, сопротивление шунта, качество контактов.
- Если напряжение не восстанавливается в течение десятков мс — возможно, дело в источнике питания (батарея с высоким внутренним сопротивлением, слабый стабилизатор).
Что можно сделать:
- Увеличить ёмкость на линиях питания МК (10–100 мкФ керамика + 1–10 мкФ керамика поближе к пинам).
- Уменьшить сопротивление шунта или убрать его совсем, если он не нужен для постоянного мониторинга.
- Проверить дорожки питания — длинные, тонкие дорожки добавляют сопротивление и просадку.
- Если питание идёт через LDO — проверить, не уходит ли он в режим сброса при нагрузке.
Сценарии выбора под конкретную задачу
Ситуация 1: нужно просто убедиться, что напряжение доходит до МК
→ Используйте дифференциальный вольтметр или нановольтметр. Подключайте непосредственно к пинам МК. Не доверяйте измерениям на стабилизаторе.
Ситуация 2: нужно понять, почему МК сбрасывается при выходе из сна
→ Осциллограф + шунт 10 Ом. Смотрите форму напряжения в момент пробуждения. Ищите просадку ниже минимального рабочего напряжения.
Ситуация 3: нужно измерить ток потребления в спящем режиме
→ Шунт 100 Ом–1 кОм + осциллограф или усилитель на операционном усилителе. Не используйте мультиметр — его шунт слишком большой для микротоков.
Ситуация 4: нужно мониторить напряжение в реальном времени в готовом устройстве
→ Внутренний АЦП МК с периодическим пробуждением. Или внешний компаратор, который будит МК при просадке ниже порога.
Заключение
Измерить напряжение питания микроконтроллера в спящем режиме — задача не сложная, но требующая аккуратности. Главное правило: измеряйте там, где работает микроконтроллер, а не там, где вам удобно поставить щупы. И помните, что сам прибор может исказить результат — всегда проверяйте, не влияет ли измерение на поведение платы.
Начните с простого: поставьте шунт 10 Ом, подключите осциллограф, посмотрите форму напряжения. Этого часто достаточно, чтобы увидеть проблему и понять, куда двигаться дальше.
