Датчики Холла — штука удобная: измеряют ток без разрыва цепи, дают гальваническую развязку и работают на частотах вплоть до сотен килогерц. Но есть проблема — полезный сигнал с выхода датчика часто составляет единицы-десятки милливольт на ампер измеряемого тока. Если вы хотите оцифровать этот сигнал АЦП микроконтроллера или сравнить с порогом компаратора, этот уровень слишком мал. Шум, пульсации питания, наводки от силовой части — всё это легко забивает слабый сигнал.
Разберёмся, как правильно усилить сигнал с датчика Холла, чтобы получить стабильный и чёткий результат, а не просто «поднять усиление побольше».
Что мы усиливаем на самом деле
Прежде чем выбирать схему, нужно понять, с каким сигналом имеем дело. Датчики Холла бывают двух принципиально разных типов, и от этого зависит весь подход к усилению.
Линейные датчики (например, ACS712, ACS723, SS49E, Хол50Х) выдают аналоговое напряжение, пропорциональное измеряемому току. В покое (при нулевом токе) выходное напряжение обычно равно половине напряжения питания. При протекании тока напряжение отклоняется от этой середины в ту или иную сторону.
Датчики с выходами на ток (например, некоторые промышленные версии 4–20 мА) — отдельная история, здесь усиление как таковое обычно не нужно, нужен преобразователь ток-напряжение (I/V).
Далее будем говорить именно о линейных датчиках с аналоговым выходом — это самый распространённый случай для самодельных и мелкосерийных проектов.
Типичные параметры сигнала, с которым приходится работать:
- Чувствительность типового датчика — от 50 до 200 мВ/А (для ACS712 на 5 А это 185 мВ/А, для ACS723 на 50 А — около 40 мВ/А).
- Напряжение покоя — обычно Vcc/2, то есть при питании 5 В это 2,5 В.
- Помехи и шум на выходе — единицы-десятки милливольт даже при хорошей обвязке.
- Полоса пропускания датчика — от 50 кГц (SS49E) до 120 кГц (ACS712), у быстродействующих промышленных — до 200 кГц и выше.
То есть реальная задача: усилить переменную составляющую (дельта от 2,5 В) в 5–50 раз, не задев постоянную составляющую, не внеся заметных искажений и не ухудшив помехоустойчивость.
Какие усилители подходят, а какие — нет
Первое, что приходит в голову — взять операционный усилитель и сделать классическую схему усиления. В целом это рабочий подход, но есть нюансы.
Однополярное питание — главный камень преткновения
Большинство схем на микроконтроллерах питается от одного источника — 5 В или 3,3 В. Сигнал с датчика Холла находится в диапазоне от долей вольта до нескольких вольт и «гуляет» вокруг центральной точки (Vcc/2). Обычные операционные усилители с однополярным питанием плохо работают, когда сигнал близок к нижней шине (земле). У многих ОУ входной диапазон не включает «минусный рельс» — то есть сигнал около 0 В они просто «не видят».
Поэтому нужны односторонние (single-supply) ОУ с rail-to-rail входом и выходом (RRIO). Без этого вы получите клиппинг сигнала и нелинейность в области малых токов.
Подходящые операционные усилители
Вот несколько реально работающих вариантов, которые легко найти и которые нормально ведут себя при однополярном питании:
| Усилитель | Питание | Полоса пропускания | Особенности | Когда использовать |
|---|---|---|---|---|
| MCP6002 | 1,8–6 В | 1 МГц | RRIO, дёшево, типовой | Простые задачи, низкие частоты, бюджетные проекты |
| MCP6022 | 2,5–5,5 В | 10 МГц | RRIO, низкий шум | Когда нужна полоса пошире при тихом выходе |
| OPA2340 | 2,7–5,5 В | 5,5 МГц | RRIO, низкий шум, прецизионный | Точные измерения, низкий уровень помех |
| TS912 | 2–5,5 В | 8 МГц | RRIO, низкое потребление | Автономные устройства от батареи |
| AD8605 | 1,8–5 В | 10 МГц | RRIO, очень низкое напряжение смещения | Измерение малых токов с высокой точностью |
Если питание 5 В — подойдёт практически любой из таблицы. Если 3,3 В — обращайте внимание на минимальное напряжение питания и выходной размах. При 3,3 В выходной размах RRIO-усилителя — примерно 0,05–3,25 В, что уже сужает динамический диапазон.
Три реальные схемы усиления
Схема 1: Инвертирующий усилитель с смещением
Самый простой и рабочий вариант. Сигнал с датчика Холла подаётся через входной резистор на инвертирующий вход ОУ. На неинвертирующий вход подаётся опорное напряжение (обычно Vcc/2 через делитель). Коэффициент усиления задаётся отношением резисторов обратной связи.
Коэффициент усиления: K = R2 / R1
Например, R1 = 1 кОм, R2 = 10 кОм — усиление в 10 раз. При чувствительности датчика 185 мВ/А и токе 1 А выходное напрящение будет изменяться на 1,85 В относительно центральной точки. Это уже вполне нормальный уровень для АЦП.
Важный момент: конденсатор параллельно R2 задаёт верхнюю границу полосы пропускания. Без него схема может усилить ВЧ-помехи и уйти в генерацию. Типичное значение — 100 пФ–10 нФ в зависимости от нужной полосы.
Нижняя граница полосы пропускания определяется входным разделительным конденсатором (если он есть) и номиналами резисторов. Если нужна работа от постоянного тока (измерение постоянного сигнала без временного затухания), разделительный конденсатор не ставят.
Схема 2: Дифференциальный усилитель
Если датчик Холла имеет дифференциальный выход (два выхода с противоположными сигналами) или если вы хотите подавить синфазную помеху — дифференциальный усилитель подходит лучше. Классическая схема на одном ОУ с четырьмя резисторами.
Коэффициент усиления: K = R2 / R1 (при условии R1 = R3, R2 = R4).
Проблема классической дифференциальной схемы — точность усиления зависит от прецизионности резисторов. При разбросе номиналов даже в 1% подавление синфазного сигнала (CMRR) падает до 30–40 дБ, что для измерительных целей часто неприемлемо.
Если нужен именно дифференциальный усилитель с хорошим CMRR — проще взять готовый измерительный усилитель (INA181, INA219, AD620) или использовать специализированные микросхемы с лазерной подстройкой резисторов.
Схема 3: Инструментальный усилитель на трёх ОУ
Для серьёзных задач — когда нужна высокая точность, хорошее подавление синфазной помехи и предсказуемое усиление. Классическая архитектура на трёх операционных усилителях.
Плюсы: высокое входное сопротивление, отличный CMRR, усиление задаётся одним резистором. Минусы: три ОУ, больше места на плате, больше шума по сравнению с одним ОУ.
Для измерения тока на практике эта схема оправдана редко — если только вы не делаете прецизионный измерительный прибор. В большинстве случаев достаточно схемы 1 или 2.
Практические значения усиления для разных датчиков
Подбирать коэффициент усиления нужно исходя из конкретного датчика и разрядности АЦП. Вот ориентиры для типовых комбинаций:
- ACS712 (5 А, 185 мВ/А) + 10-битный АЦП на 5 В: усиление 5–10 раз. При K=10 полный диапазон 5 А даст размах 9,25 В, что уже не влезет в 5 В — значит, для полного диапазона K=5, для измерения малых токов — K=10–20.
- ACS723 (50 А, 40 мВ/А) + 10-битный АЦП: усиление 20–50 раз. При K=50 сигнал 1 А превращается в 2 В — хорошо для оцифровки.
- SS49E (100 мВ/А типово) + 12-битный АЦП: усиление 10–20 раз. При K=20 и токе 5 А получим 10 В — нужно либо уменьшить K, либо питать ОУ от 12 В.
Общее правило: максимальное выходное напряжение усилителя не должно превышать напряжение питания ОУ (а для не-RRIO усилителей — ещё на 1–1,5 В меньше). Если выход «упрётся» в питающую шину — сигнал исказится, и вы будете измерять не ток, а искажения.
Нужен ли фильтр на выходе усилителя
Почти всегда — да. Датчик Холла собирает помехи с окружающих силовых проводов, а усилитель умножает не только полезный сигнал, но и наводки. Без фильтра на выходе вы получите «прыгающие» показания АЦП.
Простейший вариант — RC-фильтр нижних частот на выходе усилителя: резистор 1–10 кОм и конденсатор 100 нФ–1 мкФ. Частота среза:
f = 1 / (2π × R × C)
Для измерения тока в двигателе или инверторе обычно достаточно полосы 100–500 Гц. Для ШИМ-управления — нужна полоса хотя бы в 5–10 раз выше частоты ШИМ. Если ШИМ на 20 кГц — фильтр должен пропускать до 100–200 кГц, а значит, RC-фильтр с частотой среза 100 кГц и выше уже не даст заметного сглаживания.
В таких случаях либо ставят активный фильтр на дополнительном ОУ, либо реализуют цифровую фильтрацию (скользящее среднее, медианный фильтр) в микроконтроллере.
Типичные ошибки при усилении сигнала с датчика Холла
Забывают про постоянную составляющую. Выход датчика в покое — это не 0 В, а Vcc/2. Если усилить сигнал «по переменке» через разделительный конденсатор, потеряется информация о направлении тока. Если усилить «по постоянке» без учёта рабочей точки — выход уйдёт в насыщение. Нужно либо работать с постоянной составляющей, либо вычитать Vcc/2 программно/аппаратно после усиления.
Ставят слишком большое усиление. Кажется логичным: усилить побольше, чтобы АЦП лучше разрешал малые токи. Но при максимальном токе выход упирается в питающую шину, и вы теряете измерения в верхней части диапазона. Лучше выбрать умеренное усиление и делать программную калибровку.
Не учитывают выходной размах ОУ. Обычный ОУ (не RRIO) при питании 5 В может выдать максимум 3,5–4 В и минимум 0,5–1 В. Это мгновенно сужает рабочий диапазон на 20–30%. Проверяйте даташит на параметр Output Voltage Swing.
Входное смещение ОУ усиливается вместе с сигналом. У дешёвых ОУ напряжение смещения входа — 3–7 мВ. При усилении в 20 раз это превращается в 60–140 мВ на выходе, что эквивалентно ошибке в десятки миллиампер или даже сотни миллиампер измеряемого тока. Для точных измерений нужны ОУ с Vos < 1 мВ или нужно делать программную коррекцию нуля.
Плохая разводка земли. Если «земля» датчика Холла, усилителя и АЦП идёт по длинным дорожкам или через переходные отверстия рядом с силовыми токами — вы получите наводки, которые никакой фильтр не уберёт. Звезда заземления, разделение аналоговой и цифровой земли, толстые дорожки — это не прихоть, а необходимость.
Как выбрать схему под свою задачу
Нужно измерять ток двигателя постоянного тока до 5 А с точностью ±5%. Берёте ACS712, MCP6002, инвертирующий усилитель с K=10, RC-фильтр на выходе с частотой среза 1 кГц. Питание 5 В. Программно вычитаете нулевое смещение. Этого достаточно.
Нужно измерять ток инвертора или ШИМ-регулятора до 20 А. Здесь важна полоса пропускания. Берёте ACS723 (полоса 120 кГц), быстрый ОУ (MCP6022 или OPA2340), усиление K=20–30. Фильтр — активный второго порядка или цифровая фильтрация в МК. Обратите внимание на развязку по питанию — отдельный LDO для аналоговой части.
Нужна высокая точность (лучше 1%) в диапазоне 0,1–10 А. Здесь простой ОУ не подойдёт — входное смещение и температурный дрейф не дадут нужной точности. Либо берёте прецизионный ОУ (AD8605, OPA2340) с программной калибровкой, либо используете готовый измерительный усилитель (INA181, INA240), который уже имеет стабильное усиление и хороший CMRR.
Нужна гальваническая развязка между силовой частью и микроконтроллером. Датчик Холла уже даёт развязку по току. Но если нужно дополнительно развязать сигнальную часть — ставьте аналоговый изолятор (ISO124, AMC1100) после усилителя. Это дороже, но безопаснее.
Практический порядок настройки
- Соберите схему на макетке и проверьте, что ОУ не генерирует. Если на выходе — болтающееся напряжение или синусоида на выходе при отсутствии входного сигнала, добавьте конденсатор 100 пФ параллельно резистору обратной связи и проверьте разводку.
- Подайте на вход известный сигнал (например, с делителя напряжения) и измерьте коэффициент усиления осциллографом. Он должен совпадать с расчётным с точностью до 5–10%.
- Подключите датчик Холла без тока и измерьте выходное напряжение усилителя. Это ваш «ноль». Запомните значение — его нужно будет вычитать в программе.
- Пропустите известный ток (например, 1 А через нагрузку с амперметром) и измерьте выходное напряжение. Проверьте линейность — при 0,5 А, 1 А, 2 А напряжение должно меняться пропорционально.
- Если нелинейность превышает допустимую — проверьте, не упирается ли выход в питающую шину и нет ли самовозбуждения на высоких частотах.
Питание аналоговой части
Отдельная тема, о которой часто забывают. Если питать ОУ от того же стабилизатора, что и микроконтроллер, логику, светодиоды — вы получите пульсации на выходе усилителя. Даже если на входе питания ОУ стоит конденсатор 100 нФ, высокочастотные помехи от ШИМ МК проникают через общее сопротивление дорожки питания.
Минимальный набор для нормальной работы:
- Отдельный LDO для аналоговой части (например, AMS1117-5.0 или MCP1700-3302E), если основное питание шумное.
- Керамический конденсатор 100 нФ как можно ближе к выводу питания ОУ.
- Электролитический конденсатор 10–47 мкФ на выходе LDO.
- Разделение аналоговой и цифровой земли с соединением в одной точке (обычно у разъёма питания).
Итог
Усиление сигнала с датчика Холла — задача несложная, но с большим количеством подводных камней. Главное, что нужно запомнить:
- Используйте ОУ с rail-to-rail входом и выходом при однополярном питании.
- Усиление подбирайте так, чтобы максимальный сигнал не превышал выходной размах усилителя.
- Всегда учитывайте постоянную составляющую (Vcc/2) на выходе датчика.
- Ставьте фильтр нижних частот — без него показания будут нестабильными.
- Следите за входным смещением ОУ — при большом усилении оно превращается в ощутимую погрешность.
- Разводка питания и земли важна не меньше, чем сама схема усиления.
Для большинства практических задач — инвертирующий усилитель на одном RRIO-ОУ с коэффициентом 5–20 и RC-фильтром на выходе даёт отличный результат. Не усложняйте схему без необходимости — каждый дополнительный компонент добавляет шум и потенциальную точку отказа.
