July 10

Шум в аудио

Что мы делаем?

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

Мы уже прошли этап PoC, активной разработки, первых тестов и дошли до этапа второй ревизии платы. Заказчик прислал нам новые образцы, еще один сетап и неожиданно для себя мы обнаружили, что в звуке появился шум, которого раньше не было. Причем шум ярко выраженный, неприятный, определенной частоты.

Условия возникновения шума

Наша плата - только одна часть этой системы, которая состоит где-то из 5 блоков. Не вдаваясь в подробности, но в лучших традициях правила «разделяй и сужай область поиска» мне удалось установить, что проблема была в AC-DC преобразователе, который даёт основное 14V питание для всей системы.

Дело в том, что при передаче аудио "традиционным" способом потребление системы составляет около 500мА, а при передаче цифровым способом - около 300мА. Часть компонентов "традиционного" способа отключается за ненадобностью и общее потребление снижается. Казалось бы, что может пойти не так?

Но для AC-DC преобразователя эти 200мА оказались решающими. При потреблении до 450мА он по сути работает в light mode режиме, который вообще является совсем не лайт для преобразователей питания, и начинает генерировать весьма заметные пульсации по питанию. После 450мА, при переходе в "нормальный" режим работы эти пульсации полностью исчезают.

Как выяснилось, заказчик заменил прежние AC-DC блоки питания на более мощные, о чем разумеется нам не сообщил. И если в старых сетапах проблема не проявлялась, то в последний сетап с новыми платами он заодно добавил и новый AC-DC.

И именно этот шум мы увидели на выходе динамика.

Причина

Первым делом мы разумеется начали проверять питание и все возможные места, где 14V могут просачиваться в линию звука или питание аудиочасти. Но нигде никаких пульсаций не наблюдалось. Питание было очень хорошо отфильтровано: аудио часть питалась после RC фильтра 10R 1000uF, а все LDO имели PSRR 50-60dB.

Разгадка пришла, когда мы начали смотреть в сторону кабелей.

Урезанный сетап, где была локализована инжекция шума в звук выглядит следующим образом: Главная управляющая плата с AC-DC преобразователем запитывает и передает звук на внешнюю плату с аудиовыходом и динамиком.

Они могут находиться на большом расстоянии друг от друга, поэтому чтобы условия тестирования были максимально близки к реальным, блоки соединялись длинным Ethernet кабелем. Собственно, в реальности они так и подключаются друг к другу.

Как часто это происходит во время дебаггинга, первым шагом к разгадке стала случайность.

Я заметил, что один и тот же сигнал на стороне SCU и на стороне Panou имеют разную амплитуду. И хотя провод физически длинный, электрически то он - короткий. Т.е. там не должно быть никакой разницы. Но в любом случае, это заставило обратить внимание именно на подключение.

Как только мы сделали подключение короткими проводами, шум в аудио если не исчез, то очень заметно снизился до приемлемых значений. Сделав несколько подключений, мы убедились, что на уровень шума влияет только провод земли. Как только он становится коротким, шум почти исчезает.

Измерения

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

У длинного провода оно было 500мОм, у короткого - 4мОм.

При этом шум на динамике был 30мВ с длинным и 7мВ с коротким.

Чтож, разница конечно не в 100 раз, как у сопротивления, но хотя бы был выявлен первый тренд!

А если измерить переменное напряжение на самом кабеле, то в случае длинного кабеля оно было 8мВ, а в случае короткого - почти 0мВ.

Цифр много, но какой вывод из этого можно сделать?

  • Между SCU и Panou протекает некий переменный ток
  • Земли между этими платами имеют разницу в потенциале. Причем не только постоянную, но и переменную

Чтобы подтвердить влияние паразитного сопротивления на шум в динамике мы добавили контролируемое сопротивление Rgnd (1Ом, 0.5Ом и 0.33Ом) последовательно с коротким проводом. После чего сделали замеры:

  • AC voltage drop на Rgnd
  • AC voltage шум на входной линии звука
  • AC voltage шум на динамике

Полученные значения подтвердили тренд - чем меньше сопротивление Rgnd, тем меньше шум аудио. Но при этом, AC ток не меняется пропорционально Rgnd.

Источник проблемы

Что ж, мы подтвердили, что между платами протекает некий переменный ток, который вызывает падение напряжения на паразитном сопротивлении провода земли, что в свою очередь вызывает шум в аудио.

Но что это за переменный ток? Почему он течет? И можем ли мы его как-то контролировать?

Для наглядности, давайте представим эквивалентную схему подключения на картинке ниже.

  • На стороне Panou есть свои DC-DC, которые преобразовывают 14V в нужные напряжения. Соответственно, каждый из них имеет свою входную емкость.
  • Суммарно, на всей плате около 600uF входной емкости
  • Такая большая емкость обеспечивает низкоимпедансный путь для AC ripple 800Hz
  • Это переменное напряжение шума протекает через конденсатор и обратно в SCU через паразитное сопротивление провода
  • В результате, протекающий ток вызывает падение напряжения на проводе, тем самым поднимая потенциал земли Panou

По сути мы можем сказать, что импеданс Cinput (вместе с ее ESR) и паразитное сопротивление Rgnd образуют своего рода "делитель напряжения" с Cin в верхнем плече, Rgnd - в нижнем, а средняя точка - это земля Panou.

Значит, мы можем повлиять на шум не только снизив сопротивление, но и снизив входную емкость.

Играемся с делителем

Мы убрали с Panou два 220uF конденсатора и повторили те же самые замеры из первой таблицы. Но даже еще до замеров результат стал понятен, когда этот мерзкий шум перестал быть слышимым.

Как видно из первого столбца, мы посчитали суммарное сопротивление, включая оценку ESR, входной емкости для 800Гц, а значит можем сравнить измеренные значения с теоретическим расчетом.

Единственное, стоит добавить, что помимо Cin в верхнее плечо делителя еще вносит свой вклад паразитное сопротивление провода питания, которое составляет около 330мОм.

Значения очень близки, хоть и имеют небольшую аддитивную разницу. Но тренд подтверждается очень хорошо.

Можно, конечно, оставить входную емкость как есть и добавить последовательное сопротивление в питание 14V на стороне SCU. Последовательное сопротивление 1Ом или 2Ом не только снижает шум на земле, но еще и снижает пульсации на стороне Panou.

Дополнительный 1Ом ощутимо снижает шум, а 2Ом делает его почти не слышимым. Но помимо проблем с падением напряжения и тепловым рассеиванием, остается еще непредсказуемое влияние паразитного сопротивления кабеля, который может быть произвольной длины.

Решение

Опираясь на аналогию с делителем напряжения можно подобать подходящее решение:

  • Увеличить сопротивление верхнего плеча
    • Снизив входную емкость или увеличив последовательное сопротивление по питанию
  • Уменьшить сопротивление нижнего плеча
    • Снизив сопротивление земли
  • Снизить амплитуду пульсаций
  • Выделить отдельный путь для аудио земли
  • Увеличить потребление тока, чтоб выйти из Light mode работы AC-DC

У каждого из этих вариантов есть свои плюсы и минусы, но главное - понимание природы проблемы, которое позволяет принимать осознанное и оптимальное решение, а не тыкаться на рандом.