Здравствуй, братан, если ты столкнулся с такой «магической» проблемой при повторении классического задания по источникам питания с соревнований по электронике — это совершенно нормально. Эта задача когда-то была настоящей «ловушкой», мучившей немало людей. При работе с аналоговой частью импульсных источников питания, особенно при параллельном подключении и выравнивании токов, разводка платы и помехи зачастую оказываются важнее самой принципиальной схемы.
На основе предоставленной тобой схемы, описанных явлений и замены основного контроллера, давай всё внимательно разберём по порядку, чтобы прояснить ситуацию:
1. Вопрос о «плавающем» коэффициенте усиления INA199A1 и значении 0.2 мВ
Ты упомянул: ток 0.2 А, падение напряжения на шунтирующем резисторе — 0.2 мВ, коэффициент усиления «скачет».
Здесь явное противоречие с законом Ома:
На схеме шунтирующие резисторы R3 и R12 имеют сопротивление 20 мОм (0.02 Ом). Если реальный ток составляет 0.2 А, то падение напряжения на резисторе должно быть:
0.2 А × 0.02 Ом = 0.004 В (т.е. 4 мВ).
А вот мультиметр показывает всего 0.2 мВ. Это указывает на несколько возможных причин:
- Мультиметр подвергся воздействию высокочастотных импульсных помех: Частота переключения XL4015 составляет около 180 кГц, а пульсации выходного напряжения очень велики. Фильтр нижних частот на входе INA199 (R1/R2/C1) имеет слишком высокую граничную частоту (в районе мегагерц), и он совершенно не способен подавить шум в 180 кГц. При измерении микроскопических постоянных напряжений с большой переменной составляющей показания мультиметра становятся ненадёжными.
- Ток частично обходит шунтирующий резистор: Проверь, нет ли ошибок в трассировке или разводке, из-за которых ток может идти в обход резистора.
Почему коэффициент усиления «плавает»?
Скорее всего, это вызвано проникновением импульсных помех + плохая разводка земли. То, что мультиметр показывает как «выходное напряжение», на самом деле — сигнал, сильно зашумлённый импульсами переключения. Деля одно неточное значение на другое неточное, ты получаешь коэффициент усиления, скачущий от 2 до 200.
Рекомендация: возьми осциллограф и посмотри на вывод выхода INA199 — с большой вероятностью ты увидишь сплошные помехи вместо гладкого постоянного сигнала.
2. Почему данные на OLED такие странные и почему в состоянии OFF ток всё ещё около 1 А?
- Фатальная ошибка — отсутствие четырёхпроводного (кельвиновского) подключения:
Твой шунтирующий резистор — 20 мОм. На печатной плате с медью толщиной 1 унция даже несколько миллиметров дорожки могут иметь сопротивление в несколько миллиом! Если ты не использовал кельвиновское подключение (то есть не вывел от внутренних контактных площадок шунта две отдельные тонкие дорожки к INA199, минуя силовые проводники), то падение напряжения на припое и дорожках будет тоже усиливаться. Именно поэтому ты видишь абсурдные значения типа «ток 1 А».
- «Призраччный ток» в 1 А в состоянии OFF:
- Смещение нуля операционного усилителя: Вывод REF у INA199 заземлён. При однополярном питании операционный усилитель физически не может обеспечить абсолютный ноль на выходе (обычно минимальное выходное напряжение — десятки милливольт). Например, если выход «залип» на 50 мВ, после деления на коэффициент усиления 50 и на 20 мОм микроконтроллер решит, что ток составляет 50 мА.
- Подскакивание уровня земли (Ground Bounce): Когда ты отключаешь один из выходов (или при отсутствии нагрузки), если потенциал между AGND и PGND (силовая земля) плохо согласован, даже разница в несколько милливольт на земле будет воспринята INA199 как сигнал и усилена.
- Различия ADC у STM32 и Air32: Хотя ты сменил контроллер, точность внутреннего опорного напряжения ADC, входное сопротивление и настройки по умолчанию могут немного отличаться. Возможно, в исходном коде автора были программные поправки или калибровочные коэффициенты, учитывающие фоновый шум именно его платы. После замены МК фоновый шум стал другим, и теперь он интерпретируется как 1 А.
3. Работоспособна ли вообще эта схема и как её настроить?
Вывод: схема абсолютно работоспособна — это же классическое решение с тех самых соревнований по электронике (источник постоянного напряжения — главный, источник постоянного тока — подчинённый, регулирование через усилитель ошибки). Но она крайне чувствительна к разводке платы (Layout).
Поскольку плата уже изготовлена, предлагаю тебе последовательный подход к отладке по методу «контроль переменных». Не спеши менять код — сначала нужно убедиться, что аналоговая цепочка работает правильно:
- Тест с постоянным током (чтобы исключить влияние импульсных помех):
Отключи питание. Возьми внешний лабораторный блок питания, переведи его в режим стабилизации тока (например, установи 1 А) и подключи этот ток напрямую к шунтирующему резистору R3.
Затем отдельно подай питание 3.3 В / 5 В на INA199 и МК. Измерь мультиметром напряжение на выходе INA199. Если оно стабильно и равно 1 А \times 0.02 Ом \times 50 = 1 В, значит, INA199 исправен, тип выбран верно, и в условиях постоянного тока всё работает идеально. Следовательно, проблема точно в импульсных помехах и разводке.
- Модификация «искусственным кельвиновским подключением» с помощью проводов:
Раз уж на плате не было предусмотрено кельвиновского подключения, придётся переделать вручную. Перережь дорожки IN+ и IN- у INA199, ведущие к силовым полигонам, и припаяй две очень тонкие эмалированные проволочки непосредственно к основанию металлических выводов 20-миллиомного шунта. Это кардинально улучшит точность измерения тока.
- Программная фильтрация и калибровка (для STM32):
- Увеличь длительность выборки ADC в коде.
- Выполни калибровку при включении: Убедись, что нагрузка отключена (состояние OFF), считай текущее значение ADC и сохрани его как
Offset (нулевое смещение). Во всех дальнейших расчётах используй формулу:
Actual_Current = (ADC_Read - Offset) × Коэффициент.
Это полностью устранит «призрачный ток» в 1 А при выключенном состоянии.
- Проверь соединение земель (GND):
На схеме указаны AGND и GND. Где они соединяются? Если соединение сделано хаотично, то токи большой мощности будут наводить помехи в аналоговой земле. Правильное решение — соединение в одной точке (лучше всего — рядом с минусом входного конденсатора XL4015).
Следующие шаги:
Если у тебя нет осциллографа, настоятельно рекомендую сначала выполнить шаги 1 и 3 (особенно добавить в код логику калибровки при включении). Братан, начни с первого шага — проверь INA199 методом «статической инъекции», убедись, что коэффициент усиления правильный при постоянном токе. После теста продолжим диагностику.