Наверх

Релейный аудио-коммутатор

9 апреля 2019 г.

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

Техническое задание

Требования к коммутатору я поставил следующие:

  1. Должен уметь коммутировать стерео аудиосигнал с одного из четырех входов (минимум) на один из четырех выходов (минимум).
  2. Должен вносить как можно меньшие искажения в коммутируемый сигнал.
  3. Иметь высоту корпуса не выше 50 мм.
  4. Иметь простое управление.

Далее, чтобы определиться с конструкцией устройства, я стал продумывать дизайн передней панели и остановился на таком эскизе:

Органами управления являются три кнопки - POWER для включения и выключения устройства, SELECT IN для выбора входа и SELECT OUT для выбора выхода. Отображать информацию я решил на полюбившемся мне индикаторе HCMS-2915. Он имеет восемь знаков, каждый из которых имеет 5х7 точек.

Элементная база

Коммутировать аналоговый сигнал можно различными способами, мой выбор пал на сигнальные реле. Это один из наиболее простых и качественных способов коммутации при условии применения хороших сигнальных реле с позолоченными контактами. Мною уже применялись реле IM03TS, поэтому в данный проект я заложил именно их (хотя реально я купил их аналог - HFD4/5).

Управлять всем этим будет микроконтроллер AVR. 4 входа и 4 выхода в сумме подразумевают использование минимум 8 реле с двумя переключающими группами контактов. А восемь реле очень удобно складываются в один байт данных, необходимых для управления, и для экономии выводов МК удобно управлять ими через сдвиговый регистр. Одно реле потребляет около 30 мА тока, что в принципе укладывается в допустимый диапазон выходных токов стандартного сдвигового регистра модели 595, но для большей универсальности в плане применения реле я применил TPIC6B595 с мощными (до 150 мА) выходами, тем более они были в наличии. Загружаться данные в регистр будут по интерфейсу SPI.

Конструкция

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

Коммутационная плата - релейный модуль

Плата управления

Плата кнопки

Как можно заметить на рисунках, я решил не останавливаться на 8 входах, а сделать коммутационную плату расширяемой - к ней можно подключить точно такую же плату, и входов/выходов станет 16, а можно сделать и 32...

Схемы каждой из плат довольно простые, ниже приведена схема основного модуля - релейного.

Интерфейс

При включении коммутатора в сеть он находится в дежурном режиме, что индицирует свечение светодиода POWER. Нажатие кнопки POWER переводит коммутатор в активный (рабочий) режим, при котором включается индикатор. Хоть он и имеет всего 8 символов, его вполне хватает для отображения всего, что требуется.

Цифрами обозначаются выбранные вход и выход, и их циклическое изменение производится кнопками SELECT IN и SELECT OUT. Кроме этого имеются два дополнительных значка. Значок между цифрами входа/выхода в виде стрелки индицирует включение режима MUTE и может иметь два типа отображения (включен MUTE / отключен MUTE):

При включении режима MUTE сигнал со входа не передается ни на один из выходов. Наличие или отсутствие стрелки интуитивно дает понять, что сигнал со входа проходит или не проходит на выход. Включается и выключается режим долгим нажатием (1 с) на кнопку SELECT OUT.

Значок блокировки отображает включение режима, при котором кнопки SELECT IN и SELECT OUT не меняют вход. Сделано для защиты от случайной смены входа или выхода. Включается и выключается долгим нажатием (1 с) на кнопку SELECT IN.

Как было сказано ранее, количество коммутационных плат может меняться по желанию пользователя, но как правило оно определяется при создании устройства и не меняется в нормальном режиме эксплуатации. Поэтому реализована настройка количества релейных модулей, и для ее включения необходимо в дежурном режиме нажать кнопку POWER с зажатой кнопкой SELECT OUT. Назовем это первоначальной конфигурацией коммутатора. Первым этапом настройки будет выбор количества релейных модулей.

Их максимальное количество я ограничил 4 штуками, чего должно быть более чем достаточно для разумных применений. Изменение параметра осуществляется нажатием кнопок SELECT IN и SELECT OUT. В этом режиме нажатие кнопки POWER включает следующий режим настройки - настройку количества входов и выходов. Можно распределить входы и выходы между имеющимися 8 разъемами - доступны все варианты от 1/7 до 7/1. По умолчанию включено 4/4.

Нажатие кнопки SELECT IN прибавляет количество входов, уменьшая при этом количество выходов, нажатие кнопки SELECT OUT прибавляет количество выходов, уменьшая количество входов.

Следующее нажатие кнопки POWER включает настройку яркости индикатора:

Доступны 16 градаций яркости, отображаемых в %, которые переключаются кнопками SELECT IN и SELECT OUT. Яркость индикатора при этом изменяется в соответствии с выбранным вариантом.

Следующее нажатие кнопки POWER переводит устройство в активный режим работы.

В процессе эксплуатации может потребоваться изменить настройки, но количество релейных модулей, как правило, остается постоянным. Поэтому реализован режим настройки, в котором доступна только настройка распределения входов/выходов и яркости индикатора. Переход в него осуществляется одновременным зажатием кнопок SELECT IN и SELECT OUT на 1 с. Выход из режима осуществляется точно также.

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


1 мая 2019 г.

Видеообзор функционала



30 июня 2019 г.

Процесс постройки

Устройство реализовано в китайском корпусе YGK-031 240 на 45 на 160 мм. Родная передняя панель корпуса послужила основой для крепления плат. А фальш-панель я заказывал отдельно у себя в городе.

Работа над ошибками

После подробного тестирования (снял спектры) выяснилось, что неактивные выходы дают наводку 50Гц на подключенные к ним усилители. Что, в принципе, было ожидаемо. Поэтому схема релейного модуля была чуть переделана - в нее добавились нагрузочные резисторы, чтобы неактивные выходы и входы не висели в воздухе. Плюс был исправлен косяк со сбросом сдвигового регистра.

Конфигуратор

Долго витали мысли добавить функцию настройки имен входов. Правда их длина ограничена всего тремя символами, но лично для меня это будет удобно. Но память микроконтроллера была занята почти полностью и какие-либо программные доработки потребовали был его замены на старшую модель ATtiny84, тут хоть корпус у них совершенно одинаков. Кроме этого, задавать имена, выбирая буквы всего тремя доступными кнопками на восьми символах дисплея, очень неудобно. Поэтому было принято решение хранить имена в энергонезависимой памяти, а прописывать их туда специальным конфигуратором. Программа конфигуратор была написана на языке C# и имеет следующий интерфейс:

Большую часть окна занимают поля ввода имен входов и выходов. Количество активных полей зависит от заданных настроек в левой части окна (Relay modules Count, Inputs Count, Outputs Count). Задав необходимые имена, можно сохранить файл (кнопка Save) в формате HEX для загрузки в EEPROM память контроллера, выбрав перед этим используемую модель. Вся прошивка помещается в ATtiny44, но сделал на всякий случай возможность загрузить и в ATtiny84, хоть она и дороже и дефицитнее. Кнопка Defaults сбрасывает все имена и настройки на значения по умолчанию.

С именами оно смотрится симпатичнее (имеется ввиду "Mercury DAC → Prometheus HeadAmp"):

Выводы

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

Скачать программу-конфигуратор (EXE)
Скачать полный архив проекта (ZIP)