Цифровой регулятор громкости с опторазвязкой цифровой и аналоговой части

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

Найти “примерно такой же” резистор очень сложно даже в крупных городах. Причем чаще всего “ломаются” резисторы регуляторов громкости. Регуляторы тембра и баланса используются реже и служат гораздо дольше. К счастью, полный выход из строя сдвоенного (“стерео”) переменного резистора случается крайне редко. Обычно хотя бы один из резисторов полностью или частично исправен. И, “зацепившись” за эту часть регулятора. можно “вылечить” все устройство!

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

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

Знать, как именно устроены подобные микросхемы — совершенно не обязательно (фактически, это операционный усилитель с электрически изменяемым коэффициентом усиления), нужно только помнить, что при уменьшении напряжения на регулирующем входе громкость обычно также уменьшается. И даже если переменный резистор “восстановлению не подлежит” — тоже не все потеряно. В таком случае можно использовать цифровой регулятор громкости, который управляется кнопками.

Такие регуляторы бывают двух типов: автономные и требующие использования дополнительного процессора. Первые (например, КА2250, ТС9153) регулируют только громкость. “Качество регулировки” — довольно скверное, но их стоимость сравнительно невелика. “Процессорные” регуляторы раза в два дороже автономных, но гораздо “круче”: и регулировка более линейная, и, помимо регулировки громкости, можно регулировать тембр, баланс, звуковые эффекты (псевдостерео — стерео из моносигнала, как у TDA8425 или псевдоквадра-стерео в микросхемах серии ТЕАбЗхх).

Есть также селектор каналов на входе и некоторые другие “примочки”. Но распространение таких регуляторов, даже несмотря на весьма выгодное соотношение цена- качество, ограничивает необходимость использования внешнего, заранее запрограммированного процессора. Специализированные запрограммированные процессоры для работы с подобными микросхемами автор в продаже не встречал.

Большинство микросхем с электронной регулировкой громкости предназначены для работы в кассетном магнитофоне. Они имеют пару чувствительных и малошумящих предварительных усилителей, пару усилителей мощности с электронной регулировкой громкости, и рассчитаны на низковольтное питание (1,8…6,0 В при потребляемом токе около 10 мА).

↑ Суть идеи

Придумал следующее (в интернете аналогов не нашёл, а если и есть то это совпадение): аналоговый сигнал поступает на разделительный конденсатор C1 и операционный усилитель U1 (Рисунок 2), включённый по инвертирующей схеме с коэффициентом усиления 0.3, задаётся резисторами как R3/R2. Необходимость ослаблять сигнал выяснялась после сборки первого экспериментальной образца. Причина будет описана ниже. Далее сигнал подаётся на ключи управляемого микроконтроллером аттенюатора типа «R2R». Затем (Рисунок 3) на не инвертирующий усилитель (вторая половина U1) с коэффициентом усиления примерно 4 (1+ R29/R28) и далее по назначению, например, оконечный усилитель или, как в моем случае, кроссовер для биампинга.

Рисунок 2. Входной буфер

Рисунок 3. Выходной буфер

↑ Дальнейшие идеи

Идея разработана Питером Бэксандаллом (Peter Baxandall), который знаменит своим регулятором тембра и другими разработками. У него есть проект «улучшенного регулятора громкости» на операционных усилителях и потенциометре в цепи обратной связи. Зависимость регулировки практически совпадает с конструкцией на пассивных элементах, описанной выше, и так же близка к логарифмической, но схема на активных элементах может обеспечить как усиление, так и ослабление сигнала. Пример такой конструкции можно найти в Проекте 24, а основная идея показана на рис. 3.


Входной буфер (U1A) необходим для обеспечения высокого входного сопротивления. Максимальный коэффициент усиления каскада на U1A равен 10 (20 дБ), а минимальный коэффициент усиления 0 (максимум затухания). Входной импеданс является переменной величиной, в зависимости от установки потенциометра.
При минимальном усилении, входной импеданс равен полному сопротивлению потенциометра 50 кОм. Входной импеданс падает примерно до 27 кОм при повороте ручки потенциометра на 50%, и примерно до 4,3 кОм на максимуме. Входной импеданс намного меньше, чем у потенциометра из-за наличия обратной связи от конечного операционные усилителя. Эти цифры сопротивлений похожи (но немного ниже, чем у пассивного варианта (если используется потенциометр 100 кОм), и здесь требуется низкое выходное сопротивление источника сигнала, иначе логарифмическая зависимость не будет соблюдаться.

Фактическое значение VR1 не имеет значения, потенциометры от 10 кОм до 100 кОм будут работать одинаково хорошо, хотя это будет влиять на входное сопротивление. Зависимость регулировки от угла поворота показана на рис. 4.


Обратите внимание, что из-за отсутствия дополнительного резистора по схеме рис. 1, здесь не нивелируется разность в разбросе резисторов разных каналов, поэтому для их лучшего баланса между собой, надо уделить внимание идентичности сопротивлений. Усиление в 20 дБ будет избыточно для большинства предусилителей. Как правило, достаточно усиления 10 дБ. Для получения такого усиления достаточно увеличить R2 до 3,3 кОм.

↑ Подробнее об аттенюаторе

Делал я своё время генератор сигналов на ATmega8, где в качестве ЦАПа использовалась «R2R» матрица. Решил регуляторе применить нечто похожее. Опишу подробно старший разряд регулятора, остальные отличаются только порядковыми номерами элементов. Входной сигнал через резистор R4 подаётся на элемент R2R матрицы (так как регулятор 6-битный – резисторы 6R2 и 6R1 соответственно). Управляется данный бит транзистором Q1, который при открытии шунтирует сигнал на землю. Резистор R5 запирает базу в отсутствии управляющего сигнала. Чтобы избежать проникновения помех из цифровой части, решил открывать транзистор через оптопару U3. Питание на транзистор оптопары подаётся через токоограничивающий резистор R6, ток диода ограничен резистором R7. Номиналы особо не подбирал, просто смотрел, чтобы по току укладываться в данные с даташитов. Оптопара отпирает транзистор при появлении логической единицы на соответствующем выходе сдвигового регистра U7. Небольшое замечание: для младшего бита резисторы 1R1 и 1R2 должны иметь одинаковый номинал равный 2R.


Рисунок 4. Схема аттенюатора и список деталей

↑ Об управлении

Для управления работой регулятора применён микроконтроллер ATMega8, но можно использовать и любой другой МК, отвечающий следующим требованиям: три свободных линии порта ввода/вывода (clock для тактирования регистра, data для передачи данных и storage для фиксации данных). Ниже приведена функция, посылающая данные на сдвиговый регистр. На авторство не претендую, т.к. данный код можно встретить на сайте AVR devices. Ничего сложного в ней нет – цикл по числу передаваемых бит, в котором накладывается маска, для выделения одного бита и соответствующий вывод в порт, а в конце дёргаем строб для фиксации данных в регистре. Функция отправки данных в регистр под спойлером.
Показать / Скрыть текст

#define SH_CP PORTC.0 // строб данных #define DS PORTC.1 // данные #define ST_CP PORTC.2 // строб сохранения данных // вывод в сдвиговый регистр void putout (unsigned char temp) { unsigned char copy_temp; unsigned char counter; copy_temp = temp; for (counter = 0; counter < 8; counter++) { // цикл для 8 битов // Проверяем крайний левый бит если он равен 1 то записываем в линию данных 1 if (copy_temp & 0Ч80) {DS = 1;} else {DS = 0;} // иначе записываем 0 //Дёргаем ногой, чтоб пропихнуть бит в регистр SH_CP = 1; SH_CP = 0; copy_temp = copy_temp < < 1 ; // Сдвигаем все биты переменной темp влево на один бит } //Дёргаем ногой для сохранения данных в регистре. ST_CP = 1; ST_CP = 0; DS = 0; };


Стоит сказать, что данный аттенюатор работает в инверсном режиме относительно битов данных: при выводе в регистр значения «0» громкость будет максимальна, «63» – минимальна. Аттенюатор, при необходимости, легко масштабируется на некоторое число бит с увеличением количества ступеней регулирования.

На печатной плате младший разряд подведён к выводу Q1 регистра (а не Q0, как было бы логичнее), связано это с небольшими трудностями в разводке дорожек, так как Q0 находится на другой стороне микросхемы нежели выводы Q1-Q7. Имея это ввиду, следует сдвинуть выходной код в лево на один разряд («<< 1» в С или «shl 1» в Asm). В моей программе можно заметить сдвиг не в лево, а вправо связано это вот с чем: для управления у меня стоит механический энкодер и алгоритм его обсчёта изменяет переменную-счётчик на 4 за один щелчок, то есть изначально переменная громкости считается со сдвигом влево на 2 разряда.

↑ Впечатления

Сваять самому цифровой регулятор громкости мне было для начала просто интересно. Я не очень-то надеялся на успех и был приятно удивлён результатом. Спаял первую версию, подключил генератор и осциллограф и увидел, как с поворотом энкодера стала плавно падать амплитуда сигнала. Ура! Решил подключить к усилителю. И тут выяснилось, что при амплитуде, большей чем 1300 мВ нижняя полуволна начинает обрезаться. Связано это с пробоем транзистора обратным напряжением, о чем я сначала не подумал.
Во второй версии появился входной буфер с коэффициентом усиления 0,3. Я посчитал, что для сигнала линейного уровня этого хватит, ведь напряжение пробоя для применённых транзисторов bc547 составляет 650 мВ и -650/0.3 = ок.2 Вольт, что вполне достаточно для работы с линейным выходом (итоговая допустимая входная амплитуда ограничена напряжением питания операционного усилителя +15 Вольт и -2 Вольта пробоем транзистора).

На слух разницы я не заметил по сравнению с обычным переменным резистором. Хорошо бы измерить коэффициент нелинейных искажений, но, к сожалению нечем. Думаю, данную конструкцию можно применять не только как регулятор уровня звукового сигнала, но и любого сигнала с соответствующей заменой ключевых транзисторов. Питание цифровой части +5 Вольт. Питание аналоговой части двуполярное ±15 Вольт желательно организовать от стабилизированного, отфильтрованного источника питания.

Микросхема TDA1524A.

Блок регуляторов разработан на основе микросхемы TDA1524A. Выбор пал на неё просто потому, что она оказалась одной из микросхем, требующих минимальной обвязки, и её удалось приобрести на местном рынке по разумной, хотя, на мой взгляд, слегка завышенной цене, которая составила 2$.

Микросхема TDA1524 может питаться от напряжения от 7,5 до 16,5 V, при потребляемом токе 15… 56 mA.

Диапазон регулировки по высоким частотам составляет: –15… +15dB (±3dB), а по низким частотам: –19… +17dB (±3dB).

↑ Осциллограммы работы регулятора

Извиняюсь за качество фото, да и осциллографа получше тоже нет.


Рисунок 5. Сигнал на входе


Рисунок 6. Выходной сигнал при максимальном уровне


Рисунок 7. Сигнал на половине громкости


Рисунок 8. И сигнал при «нуле» (предел измерения был уменьшен в 10 раз)

↑ Моно-версия

Следующий трюк использован в некоторых гитарных усилителях. Используются сдвоенные потенциометры, что не слишком подходит для стерео, так счетверенные линейные потенциометры достаточно дефицитны. Схема показана на рис. 5.


Приближение к логарифмической зависимости очень хорошее, по крайней мере, в диапазоне 30 дБ, это несколько лучше, чем у версии, показанной на рис. 1. Зависимость регулировки от угла поворота показана на рис. 6.


При уменьшении уровня от максимального в диапазоне 25 дБ, зависимость почти линейна (т.е. действительно логарифмическая). Это хороший способ получить хороший результат, но, как уже отмечалось, для стереоусилителя требуется счетверенный потенциометр. Это ограничивает полезность данного решения.

↑ Об изготовлении и деталях

Плата получилась односторонняя 70х45 мм (рисунок 9). Стоит отметить, что на плате реализован один канал регулятора, соответственно, если нужно стерео необходимо изготовить две платы. Все микросхемы в DIP корпусах. Резисторы коллекторов оптопар 0.25 Ватт (можно и меньше), остальные 0805 SMD. Операционный усилитель хорошо бы использовать получше, в моем варианте AD822 (пробовал TL072 и разницы заметной не услышал).


Рисунок 9. Печатная плата


Рисунок 10. Пара собранных каналов

↑ Примечания переводчика

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

Спасибо за внимание!

↑ Файлы

Полная схема и печатка:

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]