Содержание / Contents
- 1 Суть идеи
- 2 Подробнее об аттенюаторе
- 3 Об управлении
- 4 Впечатления
- 5 Осциллограммы работы регулятора
- 6 Об изготовлении и деталях
- 7 Файлы
Это моя первая статья подобного рода, поэтому прошу сильно не ругать. Все началось с того, что я собрал пару довольно приличных колонок. Слушал я их через ресивер Kenwood середины 90-х, который новые колонки тянул плоховато. Встал вопрос о сборке нового усилителя.
Первое, что встречает на своём пути звуковой сигнал в усилителе, это входной буфер и регулятор громкости. С них я и решил начать. Поскольку усилитель планируется довольно большой (моноблок на 4 канала по ~100 Ватт), то размещать переменный резистор на передней панели и тянуть к нему проводку через весь корпус не хотелось, да и 4-канальный переменник ещё найти надо.
Вторая идея – использовать цифровые резисторы. Однако чипы найти оказалось непросто, да и цена у них тоже не маленькая.
Идея четвертая – регулятор на релюшках, известный как «регулятор Никитина». Не пошёл по причине отсутствия достаточного количества особых реле и точных резисторов.
И решил я придумать чего-нибудь сам.
Небольшой обзор микросхем регуляторов громкости.
Электронная регулировка громкости обычно выполняется или на усилителях с переменным коэффициентов усиления (VGA — Variable Gain Amplifier), например на SSM2160, или на переключаемых делителях на резисторах, различных
исполнений. Наиболее популярны — цифровые потенциометры (например DS1802 от Dallas-Maxim), регулятор CS3310 фирмы Cirrus Logic (Crystal Semiconductors), совместимая с ней PGA2310 фирмы Burr-Brown (сейчас — Texas
Instruments), LM1972 фирмы National Semiconductors. Последние — несколько дешевле и более доставаемые, кроме того — несмотря на лучшие «объективные характеристики» CS3310, многие отмечают более приятное
звучание у LM1972, хотя она и имеет несколько более высокое проникновение сигналов управления в звуковой канал во время регулировки. Хочу предупредить — многочисленные попытки использовать 3-х канальную микросхему
LM1973 закончились полным провалом. При том, что внутри LM1972 и LM1973 наверняка одно и то же, с последней звук получается существенно хуже. Почему — не знаю, принял как экспериментальный факт.
В последнее время появились более новые микросхемы от TI — PGA4311, которые мало того что 4-х канальные, но по утверждениям разработчиков обеспечивают более высокие параметры чем PGA2310. (Есть также 2-х канальная
версия PGA2311). Микросхема от AnalogDevices SSM2160 хотя и обеспечивает все требуемые регулировки по 6 каналам, по качестуу звука уступает PGA.
Различные микросхемы типа LM1036 (а также 174УН10/12) не обеспечивают надлежащего качества звучания, поэтому не рассматриваются вовсе. Разумеется, в данном кратком обзоре приведены не все существующие варианты
электронных регуляторов, а только несколько типичных представителей.
↑ Файлы
Полная схема и печатка: ▼ Shema-pechatka.7z 160,5 Kb ⇣ 102Архив версии 1.
Прошивка, исходники, модель для Proteus. Стартовая версия, вместо энкодера — кнопки. Реализовано только управление регулятором. ▼ digitvolume_1v.7z 91,15 Kb ⇣ 54
Архив версии 2.
Прошивка, исходники, модель для Proteus. Реализовано управление как с энкодера (PORTD 0 и PORTD 1) так и с обычных кнопок (PORTD 2 и PORTD 3), так же добавлена индикация на алфавитно цифровой цифровой дисплей подключаемый на PORTB, а также модель от протеуса с добавленным дисплеем. ▼ digitvolume_2v.7z 74,85 Kb ⇣ 86
Памяти в контроллере осталось много, если кто-то будет собирать данную конструкцию, то сможете задействовать контроллер по полной, например добавить функцию часов или еще чего. Программа для МК написана в Code Vision AVR.
Спасибо за внимание!
Идеи для доработки
Есть мысль реализовать переключение треков. Дополнительные кнопки добавлять не хочется, а вот с имеющейся можно поиграть. Первый возможный вариант — это как на телефонной гарнитуре: двойное нажатие — следующий трек, тройное — предыдущий. Второй вариант — нажать на рукоятку и повернуть: поворот по часовой стрелке — следующий трек, против часовой — предыдущий. Или вообще комбинированный вариант, когда по двойному/тройному нажатию будет переключение, а поворот с нажатием будет работать как перемотка вперед/назад. Я пока не решил как мне больше нравится, поэтому еще не реализовал ни один из вариантов.
↑ Суть идеи
Придумал следующее (в интернете аналогов не нашёл, а если и есть то это совпадение): аналоговый сигнал поступает на разделительный конденсатор C1 и операционный усилитель U1 (Рисунок 2), включённый по инвертирующей схеме с коэффициентом усиления 0.3, задаётся резисторами как R3/R2. Необходимость ослаблять сигнал выяснялась после сборки первого экспериментальной образца. Причина будет описана ниже. Далее сигнал подаётся на ключи управляемого микроконтроллером аттенюатора типа «R2R». Затем (Рисунок 3) на не инвертирующий усилитель (вторая половина U1) с коэффициентом усиления примерно 4 (1+ R29/R28) и далее по назначению, например, оконечный усилитель или, как в моем случае, кроссовер для биампинга.
Рисунок 2. Входной буфер
Рисунок 3. Выходной буфер
Важное замечание.
Автор опробовал свою разработку с пультом ДУ от аппаратов Philips. Понятно, что не у каждого дома есть продукция этой известной марки, поэтому были предприняты попытки проверить совместимость других пультов. Под руку подвернулся универсальный пульт «EuroSky 8» (на фото он справа черный):
Этот пульт неплохо управлял различными устройствами в доме, но, когда его запрограммировали на работу с аудиоустройствами, наблюдались ошибки при отработке вспомогательных функций. Оказалось, что некоторые пульты некорректно отрабатывают стандарт RC-5.
Редакцией журнала «Электор» была проведена модернизация программного обеспечения данного устройства с целью минимизации ошибок при работе с различными пультами разных производителей. Проведенные тесты с универсальным пультом Philips SBC RU 865 показали отличную работу. С другими универсальными пультами ДУ также проблем возникнуть не должно.
Если у вас есть тестер для пультов ДУ, то проверить соответствие вашего пульта стандарту RC5 можно с помощью приведённой ниже таблицы:
Здесь для примера представлены некорректные коды, которые передавал пульт «EuroSky 8». В правой колонке представлены правильные коды команд.
Статья подготовлена по материалам журнала «Электор».
Удачного творчества! Главный редактор «Радиогазеты».
Применение электронной модели
Электронный регулятор громкости устанавливается практически на всех звуковых девайсах. Изменять колебания при этом можно различными способами. Чаще всего можно встретить плавные контроллеры, которые позволяют очень тонко настаивать звук, однако есть и скачковые системы. В таком случае изменение параметров осуществляется пошагово и резко. В студиях звукозаписей имеются многоканальные устройства для микшеров. Они позволяют регулировать множество эффектов. Если рассматривать комбинированный электронный регулятор громкости, то многое в данном случае зависит от акустической системы.
Профессиональные модели
Профессиональные регуляторы микросхемы имеют многоканальные. Учитывая это, для нормальной работы им требуется Находится он, как правило, рядом с конденсатором. Рассчитана система на нагрузку 8 бит. Замыкающий механизм в устройстве установлен обычный. Коэффициент шума прибора максимум достигает 55 дБ. Показатель нелинейного искажения в некоторых случаях способен превышать 0.001 %.
Рабочая частота в среднем колеблется в районе 2000 Гц. С равномерностью такие схемы проблемы испытывают редко. Выходное напряжение прибора равняется 0.5 В. Резисторная развязка сопротивление максимум выдерживает 3 Ом. Преобразователи в системе предусмотрены, а крепятся они к плате только через дроссель. Конденсаторов в стандартной модели имеется около трех единиц. Их вполне достаточно, чтобы справляться с различными сигналами. Возле гнезда устройства обязательно располагается
LM4780 (LM3886) в инвертирующем включении)
В инвертирующем включении, усилитель LM3886 (и ее сдвоенный вариант – LM4780, представляющие собой физически два кристалла 3886 в одном корпусе) обладает лучшим звучанием, по сравнению с «обычным«
неинвертирующим, но для обеспечения устойчивости, в любом ее включении ее коэффициент усиления не должен быть
меньше 10 (некоторые рекомндуют даже 20-30), а резистор обратной связи – желательно должен не превышать 50кОм. Это определяет входной резистор ) а следовательно, и входное сопротивление усилителя) не более 3-5к
Ом,что весьма мало и требует использования различного вида буферов. Низкое выходное сопротивление PGA2310/2311 позволяет ей быть таким буфером, но не следует забывать, что ее собстенное входное сопротивление
составляет 10кОм, что в отдельных случаех может потребовать установки буфера для нее самой!
При установке Кус=10 в выходном усилителе и максимальном усилении в регуляторе громкости-буфере 30 (вариант Full), при максимально допустимой мощности 60W@8Ohm, чуствительность получается около 70мВ, что очень
избыточно. Поэтому целесообразнее использовать вариант Gain3 (общее усиление 30 и чуствительность 0.7в). При меньшей мощности – может более полезным окажется вариант “NoGain”, с одновременным увеличением усиления
выходного каскада до 15-20 (зависит от того, какую чуствительность хочется получить – старую стандатную 0.7в, или
же 2 в, сответствующие 0дБ на выходе ЦАПа). Или же использовать вариант “Full” с аппаратной регулировкой границ.
В любом случае, следует руководствоваться следущим правилом – если чуствительность надо увеличить, и усиление в
оконечном каскаде (LM3886/4780) достаточно для обеспечения устойчивости (отсутствия самовозбуждения), то лучше увеличивать чуствительность усилением в регуляторе громкости, чем в выходном каскаде. Это связано как в
шумовыми характеристиками, так и с постоянной составляющей на выходе.
Как видите на схеме, между регулятором громкости и выходным усилителем отсутствует разделительный конденсатор, и напряжение смещения регулятора, будет в Кус выходного каскада приложено к динамику. Поэтому этот Кус и
желательно иметь поменьше (лишь бы обеспечивалесь устойчивость!). По той же причине, лучше использовать PGA2311 вместо 2310, т.к. она обладает вдвое меньшим напряжением смещения. Поскольку сама LM4780 (LM3886)
не является предметом данного повествования, на схеме не показаны ее блокировочные конденсаторы по питания и цепочки Бушеро на выходе. Величина резистора R10 зависит от напряжения питания выходого каскада. Для более
полной информации – не поленитесь посмотреть в даташит и многочисленные FAQ’и по этим микросхемам, я не думаю что в статье про регуляторы громкости стои их дублировать J
Схемы индикации.
Блок индикации на основе микросхемы К155РЕ3:
увеличение по клику
Непосредственно счётный узел построен на счётчиках IC1 и IC2. Переключателями S1-S5 задаётся первоначальный уровень громкости (в двоичном коде!!!), который устанавливается при включении устройства. Цепь R6, C1 обеспечивает загрузку выставленного значения.
На микросхемах IC6, IC7 формируются сигналы остановки счёта при достижении крайних значений : 0 и 32 (64дБ).
Инверторы IC8 включены для устранения щелчков при регулировании громкости. Буферные транзисторы VT1-VT5 взяты с большим запасом практически под любое реле. Тип и напряжение питания реле не указываю — на Ваш выбор.
Микросхема IC3 используется как преобразователь двоичного кода в двоично-десятичный. Преобразование происходит «один в один», то есть индикация осуществляется от 0 до 32 (напоминаю, что шаг регулировки 2 дБ и соответственно глубина регулировки будет 64 дБ.) При желании сделать индикацию в децибелах, достаточно изменить прошивку IC3. (Опять напоминаю, что микросхемы К155РЕ3 однократно программируемые. Таким образом для смены прошивки придётся использовать новую микросхему). «Прошивка» очевидна, поэтому не приводится.
IC4, IC5 управляют семисегментными индикаторами с общим анодом. При использовании индикаторов с общим катодом IC4 и IC5 необходимо заменить на К514ИД1, а резисторы R7-R19 исключить.
Блок индикации на основе микросхемы К155ПР7:
увеличение по клику
Здесь всё, как в предыдущей схеме, только вместо микросхемы памяти используется специализированная микросхема для преобразования двоичного кода в двоично-десятичный. Преобразование происходит «один в один», то есть индикация осуществляется от 0 до 32 (напоминаю, что шаг регулировки 2 дБ и соответственно глубина регулировки будет 64 дБ.)
Блок индикации без микросхем памяти. Учитывая, что вышеуказанные микросхемы на сегодняшний день являются довольно труднодоставаемыми, была разработана схема индикации на обычных счётчиках:
увеличение по клику
Подробнее о схеме: непосредственно счётный узел построен на счётчиках IC1 и IC2. Для формирования двоично-десятичного кода используются IC3, IC4. Переключателями S1-S5 (в двоичном коде!!!) и S6-S10 (в двоично-десятичном коде!!!) задаётся первоначальный уровень громкости, который устанавливается при включении устройства. Цепь R6, C1 обеспечивает загрузку выставленных значений.
На микросхемах IC7, IC9 формируются сигналы остановки счёта при достижении крайних значений : 0 и 32 (64дБ).
Инверторы IC8 включены для устранения щелчков при регулировании громкости. Буферные транзисторы VT1-VT5 взяты с большим запасом практически под любое реле. Тип и напряжение питания реле не указываю — на Ваш выбор.
IC5, IC6 управляют семисегментными индикаторами с общим анодом. При использовании индикаторов с общим катодом IC5 и IC6 необходимо заменить на К514ИД1, а резисторы R7-R19 исключить.
Недостатки схемы: 1. необходимость двойного задания начального уровня громкость — S1-S5 в двоичном коде и S6-S10 тоже самое, но в двоично-десятичном коде.(если использовать общие группы переключателей, что часто встречается в Интернете, будет несоответствие между показаниями индикатора и реальным уровнем громкости).
2. из-за помех по цепям питания возможно несоответствие между показаниями индикатора и реальным уровнем громкости. Для избежания этого необходимо обязательно на каждый счетчик установить по цепям питания шунтирующие конденсаторы, а на выключателе питания использовать искрогасящие цепи. При такой организации схема эксплуатируется уже в течении 2 лет и показала надёжную работу!
Продолжение следует…
Изготовление конструкции
Схема паяется на печатной плате из фольгированного стеклотекстолита. Плата не содержит перемычек, а два кажущихся разрыва в цепи массы будут местами пайки корпуса кнопок. Монтаж следует начать с припаивания интегральных микросхем, потому что это делается гораздо удобнее, когда нет выступающих элементов от другой стороны. Порядок пайки остальных элементов произвольный. Схему необходимо питать напряжением 5 В, желательно стабилизированным.
Полезное: Самодельная инфракрасная печь
Готовые для пайки платы
Определенным неудобством является программирование микроконтроллера, так как здесь не предусмотрено разъема программирования. Чтобы запрограммировать МК U1 — подпаяйте аккуратно к его выводам тонкие провода, которые затем будут подключены к программатору. Вывод VB (VBias) соединен с массой схемы, однако, если необходимо подключение этого входа к другой полярности, просто вырежьте фрагмент дорожки между выводами на плате. Когда потенциометр работает для регулировки громкости предусилителя и амплитуда сигнала, что на него подается не превышает 0,5 вольта, то выход VB следует поляризировать относительно отрицательного напряжения -5 В относительно массы. Это обеспечит правильную передачу аналогового сигнала.
кнопочный регулятор — потенциометр
Следует иметь в виду, что потенциометр имеет максимально допустимое напряжение, которое может присутствовать на любом из контактов (относительно GND) от -0.1 до +7 В для Vb = 0 и от -5 до +7 В для Vb = -5 В. При эксплуатации регулятора следует позаботиться о том, чтобы не превышать указанные допустимые границы напряжений. Когда вы питаете схему от отдельного БП, необходимо убедиться, что масса потенциометра (GND) и масса схемы назначения связаны между собой.
Фьюзы биты
На рисунке показаны настройки фузов для микроконтроллера ATTiny13
Простой регулятор громкости и баланса на LM1972.
LM1972 обеспечивает раздельную регулировку громкости по двум каналам в диапазоне от 0 до -78dB, с шагом 0.5dB в диапазоне 0 — -48dB и с шагом 1dB в диапазоне -48 — -78dB. Управление осуществляется простым 3-х
проводным интерфейсом (SPI) как показано на рисунке ниже.
При необходимости управления более чем двумя каналами (т.е. более чем одной микросхемой) существует две возможности. В простейшем случае, когда нужно управлять всеми каналами синхронно, например два канала фронта и
два канала тыла, т.е. не требуется регулировка баланса «фронт-тыл» — можно просто объединить сигналы управления
двух микросхем (возможность регулировки баланса «лево-право» при этом сохраняется). Разумеется — таким образом
можно запараллелить не только две, но и больше микросхем (получив управление громкостью синхронно по 2*N каналам) — на рисунке ниже, слева. Если же требуется полностью раздельное управление по все каналам — следуют
включить микросхемы в цепочку, т.е. подав выход данных (DO) одной на вход данных (DI) другой, как показано на рисунке ниже, справа.
Сигналы тактирования (clock) и загрузки/сдвига (load/shift) при этом подаются параллельно на все микросхемы. Более подробные сведения приведены в даташите на микросхему на сайте производителя
Самый простейший регулятор громкости для стереоусилителя показан на рисунке ниже. Он не имеет никакой индикации (она просто не нужна). Регулировка осуществляется двумя ОБЫЧНЫМИ потенциометрами — громкость и баланс,
причем среднее положение баланса индицируется светодиодом, и кнопкой «MUTE», также с индикацией.
Может возникнуть вопрос — если все равно используются обычные потенциометры, для чего нужно все это? Дело в том, что в данной схеме не нужны сдвоенные потенциометры определенного номинала с логарифмической
характеристикой — используются более простые, с линейной. К тому же нет никаких жестких требований к номиналу
сопротивления — можно использовать от единиц до десятков килоом, и самое главное — качество звука вообще никак не
зависит от качества потенциометров, через них не проходит сигнал, они только регулируют напряжение, которое измеряется АЦП микроконтроллера и преобразуется последним в сигналы управления LM1972. Так как использован
весьма дешевый и малогабаритный 8-ногий микроконтроллер, возникает некоторый «дефицит» его выводов (об
одновременном использовании выводов микроконтроллеров в разных целях — читайте в статье «Аппаратные хитрости использования PIC-контроллеров» в РХ 3,4/1999 или на сайте поэтому в данной схеме применено следующее
подключение светодиодов — они подключены к сигналам DATA и CLOCK, и слегка «мерцают» во время регулировки
(что можно также считать «фичей»). Использована та особенность 3-х проводного интерфейса, что при неактивном
состоянии линии load/shift (часто обозначаемой также как CS — Chip Select) сигналы данных и тактирования могут иметь любые значения.
Схема может на первый взгляд показаться несколько громоздкой, но присмотритесь внимательно — стабилизаторы питания и блокировочные конденсаторы составляют чуть ли не больше половины схемы! Ведь собственно сама схема
— это регулятор LM1972 и микроконтроллер PIC12C671. Плюс одна кнопка, два потенциометра и два светодиода с балластными резисторами.
Для обеспечения нормальной работы регулятора требуется большое входное сопротивление последующего усилителя, если это не так — рекомендуется включить между регулятором и усилителем буферный каскад на лампе или
хорошем операционном усилителе (ОРА2132, ОРА2134 и т.п.)
Особое внимание следует обратить на разводку
земляного провода — LM1972 имеет выводы, как для аналоговой, так и для цифровой «земли», а также «защитные
выводы» вокруг аналоговых входов и выходов. Входной сигнал не должен превышать 3в (RMS), входное сопротивление регулятора 40 кОм
Для питания пригоден любой двухполярный источник, с напряжением +9-15в.
«прошивку» микроконтроллера вместе с исходным текстом можно взять на сайте редакции и на сайте автора на сайте автора.
Примечание: я получил несколько собщений, что микроконтроллер PIC12С671 не везде доступен, хотя и дешев. Да и для любителей — проще иметь дело с микроконтроллером, у которого многократно перешиваемая
память программ («F»), а не однократная («С»). Поэтому для этой и других схем, где упоминается PIC12С671, я
выкладываю также прошивку под легче доставаемый PIC12С672, и под «многократный» PIC12F675
Проблематика регулировки громкости.
Регулировка громкости в действительно высококачественной аудиоаппаратуре, несмотря на кажущуюся простоту, представляет некоторую проблему. С одной стороны — минималистски настроенные любители «высокого
конца» иногда считают вообще ненужными регуляторы громкости (а тем более баланса), музыка должна звучать с определенным, заранее настроенным уровнем, считают они.
С другой стороны — в реальных условиях, согласитесь, не иметь регулировки громкости несколько неудобно. Что должен обеспечивать регулятор громкости? Линейную зависимость громкости от поворота ручки регулятора (или
иного управляющего устройства) для чего сам регулятор должен быть логарифмическим. Само по себе это требование выполнить не так сложно, но регулятор желательно должен быть сдвоенным, а обеспечить синхронность
регулировки (т.е. зависимость сопротивления от угла поворота), тем более в логарифмическом потенциометре — не так просто, всегда существует технологический разброс. Естественно, регулятор не должен вносить никаких
«шорохов и тресков» и вообще как можно меньше воздействовать на сам сигнал. Неплохо также иметь возможность дистанционного управления (причем с беспроводным пультом, а не дергать за «вожжи») .
Для решения всех этих вопросов существует много решений — «аудиофильские» регуляторы громкости ALPS, для дистанционного управление — моторизированные, (причем совершенно непонятно — почему именно
«Альпс»? Боурнс и Хонивелл делают ничуть не хуже, скорее даже лучше. Правда, дороже, особенно Хонивелл — учитывая аэрокосмическую направленность этой фирмы). ). Золотые переключатели с наборами
«аудиофильских» резисторов, еще более «аудиофильские» — входные трансформаторы с отводами (например английской фирмы Sowter, замечу что трансформаторы от Александра Воробьева — ничем не хуже.
Саша — большой респект.) и «золотыми переключателями», а также порой незаслуженно презираемые «высококонечниками»Н.Сухов, электронные регуляторы. Последние и впрямь весьма неоднозначны,
поскольку очень разнообразны в спектре выпускаемой продукции — от действительно качественных по звуку, до пригодных разве что в «бумбоксах», звуковых картах компьютеров и в автомагнитолах.
В данном цикле мы рассмотрим несколько вариантов регулировки громкости — на микросхемах и на реле, варианты управления на микроконтроллерах — от самых простейших до более сложных.
↑ Подробнее об аттенюаторе
Делал я своё время генератор сигналов на 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 Вольт желательно организовать от стабилизированного, отфильтрованного источника питания.
Как настроить регулятор в «Виндовс»?
Осуществить настройку регулятора довольно просто. Находится значок данного элемента на панели «Пуск». Нажав на него один раз левой клавишей, можно изменять предельную частоту. В некоторых случаях пользователь не видит указанный значок. Происходит это из-за того, что регулятор громкости Windows не добавлен в область уведомлений. Обычно он переносится в автоматическом режиме операционной системой. Однако данное действие можно выполнить и вручную через панель управления. Также причина может заключаться в отсутствии файла Sndvol.exe. В таком случае его копию нужно сохранить на компьютере.
Как устроен регулятор?
Важным элементом регулятора принято считать микросхемы. По своим параметрам они довольно сильно могут отличаться. Если рассматривать профессиональные модели, то там имеется до 100 различных контактов. Дополнительно в регуляторе наличествует контроллер, который занимается изменением предельной частоты прибора. С помехами в устройстве справляются конденсаторы. В простой модели их имеется до четырех. Обычно можно встретить в регуляторе Их частотность, как правило, указывается в маркировке.
В профессиональных моделях конденсаторы устанавливаются электролитические. Проводимость у них гораздо лучше, но стоят они дорого. Резисторов в стандартной схеме можно встретить до десяти единиц. Отличаются они между собой по предельному сопротивлению. Самые простые модели способны похвастаться параметром в 2 Ома. Резисторы с такими показателями встречаются довольно часто. Наконец, последним элементом регулятора следует назвать замыкающий механизм. Чаще всего он представлен в виде кнопки, однако есть модели со сложной системой индикации.
Схема регулятора тембра
Регуляторы тембра и громкости контроллер имеют операционный. Подходит он для усилителей разной мощности. Диоды в данном случае устанавливаются довольно редко. Выпрямители есть только в моделях, где транзисторов менее трех штук. Резисторы в приборах включаются с маркировкой «ВС». у них довольно хорошая, но они чувствительны к высоким температурам. Конденсаторы во многих моделях стоят биполярные. Предельное сопротивление регуляторы тембра и громкости способны выдерживать на уровне 3 Ом. В стандартной модели гнездо имеется «РРА» для обычного кольца. Дроссель с резистором соединяются только через преобразователь.
Пара прыжков с бубном
Ибо до танцев не дотягивает. С первого раза получилось немного не так как хотелось и регулировка работала наоборот(при вращении по часовой стрелке звук уменьшался). Решение было простым и банальным: я заменил
#define PIN_ENCODER_A 0 #define PIN_ENCODER_B 2 на #define PIN_ENCODER_A 2 #define PIN_ENCODER_B 0 то есть поменял местами входные пины.
Потом я решил, что изменение громкости на 24% при полном обороте рукоятки — это слишком медленно. И я просто дублировал код, эмулирующий нажатие кнопок увеличения и уменьшения громкости:
if (enc_action > 0) { TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_UP); } else if (enc_action < 0) { TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_DOWN); } было заменено на if (enc_action > 0) { TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_UP); TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_UP); } else if (enc_action < 0) { TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_DOWN); TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_DOWN); } А потом я подумал, что отдельная кнопка приглушения музыки музыки бесполезна — можно просто крутнуть регулировку влево. А вот возможность поставить музыку на паузу будет гораздо интереснее. Для реализации этого, я заменил TrinketHidCombo.pressMultimediaKey(MMKEY_MUTE); на TrinketHidCombo.pressMultimediaKey(MMKEY_PLAYPAUSE); Список возможных клавиш можно подсмотреть в файле «TrinketHidCombo/TrinketHidCombo.h».
Электронные регуляторы тембра
Все электронные регуляторы отличаются компактными размерами, и предельное напряжение выдерживают большое. В данном случае они не способны работать без усилителя. Стабилизаторы, как правило, применяются только линейные. Цепи диодов располагаются сразу за платой.
Искажения устройством подавляются за счет резисторов. С предельной частотой регулятору помогают справиться стабилизаторы. Выпрямители устанавливаются крайне редко. Энергопотребление таких устройств высокое, а в преобразователях они не нуждаются. Увидеть указанные приборы на микшерах можно довольно часто.
Доброго времени суток.
Сегодня я решил объединить несколько вопросов в одну статью (тем более, что решение по обоим проблемам будет одинаковое).
Как правило, при исчезновении значка громкости (да и вообще при разных проблемах с ним) достаточно проделать ряд нехитрых шагов, чтобы восстановить работу. Приведу их ниже по порядку.
Тонкомпенсированный регулятор громкости на резисторе без дополнительных отводов
Такой регулятор можно собрать и на доступном каждому переменном резисторе без дополнительных отводов. Схема такого регулятора приведена на следующем рисунке.
Использование резистора без отводов приводит к необходимости применения дополнительных деталей, однако это не сильно усложняет схему.
Обе приведенные схемы реализуют относительный подъем только в области низких звуковых частот. Относительный он потому, что отсутствие активных элементов не позволяет осуществить подъем, превышающий исходный сигнал, вместо этого осуществляется ослабление остальной части сигнала. Этот принцип заложен с основу любого пассивного фильтра звуковых частот.
Вторая схема была собранна и опробована. Элементы корректирующих цепей были напаяны непосредственно на выводы сдвоенного переменного резистора. Подобные пассивные регуляторы лучше устанавливать после предусилительного каскада и перед выходными каскадами.
Прослушивание в различных условиях продемонстрировали эффективность данной схемы, а ее применения оказалось достаточно для использования в домашних условиях на низких уровнях громкости. Тонкомпенсированный регулятор громкости позволяет сохранять тональный баланс записи без завала на низких частотах