В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

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

📆8 марта 2014   ✒️teXnik   🔎24.537   💬28  

Фото 1. Собранный регулятор

Думаю, каждый, кто занимался сборкой усилителя, сталкивался с выбором регулятора громкости для своего творения. В этой статье я хочу предложить свой вариант решения – цифровой регулятор громкости с опторазвязкой цифровой и аналоговой части.
Это моя первая статья подобного рода, поэтому прошу сильно не ругать. Все началось с того, что я собрал пару довольно приличных колонок. Слушал я их через ресивер Kenwood середины 90-х, который новые колонки тянул плоховато. Встал вопрос о сборке нового усилителя.

Первое, что встречает на своём пути звуковой сигнал в усилителе, это входной буфер и регулятор громкости. С них я и решил начать. Поскольку усилитель планируется довольно большой (моноблок на 4 канала по ~100 Ватт), то размещать переменный резистор на передней панели и тянуть к нему проводку через весь корпус не хотелось, да и 4-канальный переменник ещё найти надо.

Вторая идея – использовать цифровые резисторы. Однако чипы найти оказалось непросто, да и цена у них тоже не маленькая.

Идея третья – взять готовый цифровой аудиопроцессор типа TDA7313. Идея неплохая. Вытравил печатку, запаял, подключил и не понравилось. Что-то со звуком было не то: появился какой-то неприятный окрас. Да и функционал TDA7313 для меня излишен. Регулятор тембра мне не нужен и мультиплексор тоже.

Идея четвертая – регулятор на релюшках, известный как «регулятор Никитина». Не пошёл по причине отсутствия достаточного количества особых реле и точных резисторов.

И решил я придумать чего-нибудь сам.

Суть идеи

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

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


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


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

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


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


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

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


Стоит сказать, что данный аттенюатор работает в инверсном режиме относительно битов данных: при выводе в регистр значения «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 Вольт желательно организовать от стабилизированного, отфильтрованного источника питания.

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

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

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



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



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



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


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

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

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



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


Файлы

Полная схема и печатка: 🎁 Shema-pechatka.7z  160.5 Kb ⇣ 111

Архив версии 1. Прошивка, исходники, модель для Proteus. Стартовая версия, вместо энкодера - кнопки. Реализовано только управление регулятором.
🎁 digitvolume_1v.7z  91.15 Kb ⇣ 63

Архив версии 2. Прошивка, исходники, модель для Proteus. Реализовано управление как с энкодера (PORTD 0 и PORTD 1) так и с обычных кнопок (PORTD 2 и PORTD 3), так же добавлена индикация на алфавитно цифровой цифровой дисплей подключаемый на PORTB, а также модель от протеуса с добавленным дисплеем.
🎁 digitvolume_2v.7z  74.85 Kb ⇣ 97

Памяти в контроллере осталось много, если кто-то будет собирать данную конструкцию, то сможете задействовать контроллер по полной, например добавить функцию часов или еще чего.
Программа для МК написана в Code Vision AVR.

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

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 37 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Регулятор нагрева паяльника из диммера (светорегулятора)... Понадобился мне регулятор нагрева паяльника, так как новый паяльник (да и старый на 80 Ватт)...
Схема на Датагоре. Новая статья Ламповый усилитель для гитарного комбика... Всем привет !! Давно хочу собрать какой нибудь усилитель и колонки чтоб дома можно было слушать...
Схема на Датагоре. Новая статья Полностью экранированный усилитель на TDA1557Q... Как-то давно, лет пять назад, ко мне в кондейку на работе (я автоэлектрик) забегает «потерпевший» —...
Схема на Датагоре. Новая статья USB ЦАП на PCM2702(E)... Захотелось мне построить хорошо звучащую систему на базе ПК. Поскольку, успех во многом зависел от...
Схема на Датагоре. Новая статья Проект «Потеха-3М»: усилитель-моноблок на TDA7256... Собираем усилитель на TDA7256 в корпусе колонке от Кометы! Давным-давно в тридевятом царстве в...
Схема на Датагоре. Новая статья Алюминиевый плинтус в изготовлении корпуса УМЗЧ и небольшая история о сборке усилителя "из мусора" в условиях крайнего Севера... Вся история началась с того, что попал ко мне в руки музцентр со спаленными мозгами, но вполне...
Схема на Датагоре. Новая статья Конструкции на элементах цифровой техники. Фромберг Э. М.... Фромберг Эдуард Михайлович Конструкции на элементах цифровой техники. — М.: Горячая линия-Телеком,...
Схема на Датагоре. Новая статья Определение ёмкости конденсатора по цифровой маркировке из трёх знаков... Цифровая маркировка используется уже довольно давно. На малогабаритных конденсаторах чаще всего она...
Схема на Датагоре. Новая статья Входной буфер и регулятор уровня громкости для УМЗЧ. Часть 1... В усилителях мощности звуковой частоты (УМЗЧ), выполненных по схеме инвертирующего усилителя...
Схема на Датагоре. Новая статья Цифровой двухканальный ампер-вольтметр для блока питания на МК PIC16F876... Подобные устройства часто встречаются в бескрайних просторах Интернета. Я решил изготовить свой...
Схема на Датагоре. Новая статья Усилитель "KiberPank 5.1" с дисплеем и ДУ. TDA7294 + TDA7442D + TDA7448 + TDA7313/TDA7468D... Старенький DVD плеер, сотовый телефон, блок питания от компьютера, несколько микросхем TDA и...
Схема на Датагоре. Новая статья «MICROLAB M-500» на прокачку до «5.1». Часть 2: TDA7448 + ATiny26 = многоканальный Master Volume... Cнова приветствую читателей Датагора! Во второй части статьи «MICROLAB M-500» на прокачку до «5.1»...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

Назад Вперед
<
Читатель Датагора

Chugunov

<
Читатель Датагора

Datagor

<
Читатель Датагора

alx25v

<
Читатель Датагора

Chugunov

<
Читатель Датагора

Sergiy_83

<
Читатель Датагора

Yamazaki

<
Читатель Датагора

Chugunov

<
Читатель Датагора

teXnik

<
Читатель Датагора

teXnik

<
Читатель Датагора

Chugunov

<
Читатель Датагора

teXnik

<
Читатель Датагора

Datagor

<
Читатель Датагора

Sgl

<
Читатель Датагора

teXnik

<
Читатель Датагора

Chugunov

<
Читатель Датагора

teXnik

Назад Вперед

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой