Предисловие


У меня дома есть пара комплектов хороших советских акустических систем. Но техника эта довольно старая и просто не может включаться с пульта или автоматически, а постоянно подходить к усилителю звука и включать/выключать его просто лень. Это проблему я и решил. Сначала была куплена ардуино и проект был сделан на ней, но качество работы меня не устроило и проект был переделан под STM32F103C8. В итоге у меня получилось устройство, которое имеет 4 аудио-входа, 1 аудио-выход, вход 220В и выход 220В. При наличии хотя бы одного активного аудио-входа на выходе 220В появляется напряжение, тем самым включая усилитель звука, и активный аудио-канал передается на выход.

Сложности при разработке


Казалось бы все просто: если АЦП получает не 0, тогда считать канал активным. Все почти так, но это работает только если включить источник аудио-сигнала и выключить на нем звук. При выключенном состоянии разные устройства дают разные помехи, тк они не полностью обесточены. Да и у плохих источников звука микроконтроллер мог улавливать помехи при выключенном звуке, причем довольно сильные. И это именно помехи источника, помехи на моей внешней аудиокарте STMка не видит, более того тихий звук с нее — 0.

Как сделать себе такое?


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

Что нам понадобится:

  • печатная плата
  • программатор ST-Link v2
  • 1 чип STM32f103C8
  • 4 реле для коммутации входного аудио-канала на выход
  • 1 реле для коммутации 220В для включения усилителя
  • AC-DC понижающий преобразователь 220В — 5В(можно взять со старой зарядки телефона)
  • сетевой провод и разъем для подачи тока нашему устройству и усилителю
  • розетка
  • резисторы, конденсаторы и другая мелочь

Естественно нам понадобятся аудио-провода и minijack штекера с гнездами.

Хотелось бы заострить внимание на выборе реле… Если с выбором 220В реле все предельно понятно: оно должно «уметь» коммутировать 220В переменное напряжение и управляться 3.3В. То с выбором звуковых реле не все так просто. Далеко не каждое реле, даже твердотельное, не будет давать помехи на выходе, а нам это очень важно. Я живу в Минске и не смог ничего найти подходящего и по адекватной цене, поэтому были заказаны с известного китайского магазина 4 реле PVT322A. Возможно в вашем регионе вы сможете найти что-то подешевле.

Схема и разводка


Раз уж начали, то продолжим изучать аппаратные особенности. На схеме, которую вы можете найти в репозитории в папке Eagle нужно подобрать токоограничительные резисторы(R4-7) под ваши реле. В моем случае это 30 Ом. Так же есть катушка L1: выбирайте любой фильтр, сглаживающий высокочастотные помехи.

Заказать печатную плату вы можете на PCBWAY или JLCPCB. Цены у них низкие, я заказывал у JLCPCB и они выставили мне счет всего в 2$. При заказе печатной платы вам нужны будут гербер файлы, вы из сможете найти все в той же папке или сами сгенерировать.

Перейдем к программной части


Рассказывать как подключить программатор к компьютеру, установить среду программирования и драйвер я не буду, т.к. этих инструкций очень много и они предельно доступные. На моей схеме предусмотрены выходы для программаторы. Я использовал Visual Studio 2017 + VisualGDB. Скачав проект из того же репозитория мы сможем открыть проект. Сразу же обратим на файл Settings.cpp.

Settings.cpp
#define DEBUG0 0//init USART and send all measurement values
#define DEBUG1 1//init USART and send information about recognition music or not
#define DEBUG2 0//just init USART
#define MaxEqualToZeroValue 3 //the value which equal or less is equated to zero
#define MaxAvarageForNoise (float)0.4//this is max avarage of measurement values so that the sound is considered noise for NOT active channel
#define MaxAvarageForActiveNoise (float)0.06//this is max avarage of measurement values so that the sound is considered noise for active channel
#define CountOfConsecutiveZeroValueForNoise 250//if count of consecutive zero values bugger it that sound is equated to noise
#define MinCountOfZeroValue 550//it's minimum count of zero values to equate to music(not consecutive)
#define USE_LED 1
#define LED_GPIO_PERIPH RCC_APB2Periph_GPIOC
#define LED_GPIO_GROUP GPIOC
#define LED_GPIO_PIN GPIO_Pin_13
#define USE_AMP 1
#define AMP_GPIO_PERIPH RCC_APB2Periph_GPIOB
#define AMP_GPIO_GROUP GPIOB
#define AMP_GPIO_PIN GPIO_Pin_12


Все настройки в этом файле задокументированы, но мы все равно остановимся на каждой настройке.

#define DEBUG0 0
#define DEBUG1 1
#define DEBUG2 0

Если присвоить дефайну DEBUG0 единицу, то наше устройство перестанет что либо делать, кроме того, что выводить по UARTу значения, которые он получает с аудио-входов в формате, который может «переварить» SerialPortPlotter.

Если же присвоить единицу DEBUG1, то устройство уже будет полностью функционировать, но будет выводить немного информации о работе по UARTу. Это все нужно исключительно для отладки.

Присвоение DEBUG2 даст всего лишь инициализацию UARTа. Если вы не понимаете, зачем это, то и не надо :-)

#define MaxEqualToZeroValue 3

Далее у нас параметр отвечающий значение которого или менее будет считать нулем. Как уже было ранее сказано некоторые источники звука плохого качества и сильно зашумлены.

#define MaxAvarageForNoise (float)0.4

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

#define MaxAvarageForActiveNoise (float)0.06

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

#define CountOfConsecutiveZeroValueForNoise 250

Этот параметр исключительно для оптимизации расхода процессорного времени. Если устройство встречает подряд заданное количество нулей, то оно считает, что это сигнал не звук.

#define MinCountOfZeroValue 550

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

#define USE_LED 1
#define LED_GPIO_PERIPH RCC_APB2Periph_GPIOC
#define LED_GPIO_GROUP GPIOC
#define LED_GPIO_PIN GPIO_Pin_13
#define USE_AMP 1
#define AMP_GPIO_PERIPH RCC_APB2Periph_GPIOB
#define AMP_GPIO_GROUP GPIOB
#define AMP_GPIO_PIN GPIO_Pin_12

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

Перейдем к следующим настройкам:

Открыв файл main.cpp, в самом начале функции
int main()
вы найдете определение кучи переменных.

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

const uint8_t channelsCount = 2;

Это количество входных аудиоканалов, которые будут использоваться.

const uint8_t countOfIterationsForSwitch = 5;

Количество циклов измерения, необходимое для изменения состояния активное/пассивное.

const uint8_t ADCSampleTime = ADC_SampleTime_239Cycles5;

Этот параметр отвечает за качество измерения. Оно установлена максимальное, не рекомендую его менять.

const uint16_t measurementsDuration = 2000;

Это время в ms, в течение которого будет производится один цикл измерений.

const uint32_t measurementFrequencies[] = { 1000, 1000, 1000, 1000 }; 

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

Заключение


Ну вот и все. Все необходимые настройки я описал. Осталось только собрать схему, скомпилировать проект, залить прошивку в микроконтроллер и радоваться.

В заключении хотелось бы сказать, что нельзя просто так оставить входной аудио-провод «не воткнутым» ни во что, нужно его вставить в какое либо устройство или заглушку в виде гнезда minijack, в котором все контакты соединены между собой.


Если у вас источники звука довольно хорошие, то вы можете поставить низкие параметры настроек, но для переключения состояния звука может потребоваться его выключение (не из розетки). Возможно когда нибудь я добавлю ссылку на 3D модель корпуса, но пока у меня нет 3D принтера и корпус на данный момент такой. Но это только пока: 3D принтер уже собирается :-)


Это моя первая статья, буду рад любой аргументированной критике. Понимаю, что это не шедевр, но я старался как мог.

Спасибо за прочтение.

UPD1: Добавлены изображения схемы и разводки в статье.

UPD2: Добавлены в репозиторий изображения схемы и разводки, добавлены новые коментарии в коде.

Комментарии (75)


  1. yarkov
    15.09.2019 14:45

    А что было не так с Ардуино? Какие проблемы возникли?


    1. NetBUG
      15.09.2019 16:08

      АЦП медленный.
      Ну и в продакшн использовать AVR-устройства довольно странно


      1. madcatdev
        15.09.2019 19:34
        +1

        Ну и в продакшн использовать AVR-устройства довольно странно

        По какой причине?


        1. NetBUG
          16.09.2019 13:39

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


      1. CrashLogger
        16.09.2019 13:34
        +1

        Чего я только не видел в продакшене на AVR… От вендинговых автоматов до систем СКУД и оборудования для автосервисов.


        1. safari2012
          17.09.2019 18:29

          у меня в холодильнике либхер стоит mega 32L


    1. sergeyfk Автор
      15.09.2019 17:21

      Он не то чтобы медленный. Он сильно шумит, да и вообще он 10-бит, а у STM 12.


  1. Buhram
    15.09.2019 14:55
    +2

    А зачем вообще в таком девайте ставить твёрдотельные реле? С работой прекрасно справились бы герконовые реле, которые специально предназначены для малоточных сигнальных применений.


    1. NetBUG
      15.09.2019 16:09

      А я ждал чип типа MAX4910 или что-то подобное от Philips — которые используются в магнитолах для переключения входов


      1. IgorPie
        15.09.2019 18:02

        Можно на будущее накинуть CD4053/4066 — классика.
        или DG417 — DG419


        1. NetBUG
          15.09.2019 20:11

          Спасибо, никак CD4066 не мог вспомнить. Ищу CD4056 — а это регистр.

          А у 4066 искажений не слишком много?


          1. olartamonov
            15.09.2019 20:32

            А у 4066 искажений не слишком много?


            Очень зависит от амплитуды сигнала и сопротивления нагрузки. При сигнале < ±1 В и нагрузке > 10 кОм искажения будут порядка 0,01 %.

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

            Если же нужно работать на низкоомную нагрузку (< 1 кОм) с минимальным уровнем искажений, то тут всё чуть сложнее.


            1. IgorPie
              15.09.2019 20:45

              Оффтоп: нас уже потихоньку подготавливают к забвению бренда TI. Скоро будут как голландский сыр, 561КТ3 — патриотичнее.


              1. olartamonov
                15.09.2019 20:54

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

                P.S. Да, физики могут по-прежнему купить всё что угодно через официальный TI Store, проставив галочку «Military use: NO».


              1. sim2q
                16.09.2019 05:55

                КТ3 — не полный аналог, там какой то косяк
                для этих целей у нас в магнитофоностроении применяли 547КП1


            1. safari2012
              17.09.2019 18:34

              а PVT322A чем плох? почему спрашиваю, у самого подобная затея застряла на этапе «механический тумблер».


              1. olartamonov
                18.09.2019 07:04

                Я вообще первый раз вижу, чтобы оптореле применяли для переключения аудио. Зачем? Гальваническая развязка там не нужна, чего там с линейностью на малых напряжениях — да чёрт его знает.


          1. sim2q
            16.09.2019 05:22

            Уже много где в не совсем дешёвой технике видел 74HC40xx в аудио. В пульте-звуковой карте.


    1. sergeyfk Автор
      15.09.2019 17:23

      Видимо не хватило образования выбрать что-то более дешевое/подходящее)


      1. madcatdev
        15.09.2019 19:37
        +1

        Есть специализированные микросхемы — аудиокоммутаторы с несколькими входами и одним выходом.


        1. safari2012
          17.09.2019 18:35

          не поделитесь ссылкой(ами)?


          1. madcatdev
            19.09.2019 12:03

            Выше уже писали, CD4051(2,3) или что-то подобное.


    1. zoonman
      15.09.2019 19:44
      +1

      Да там даже G6K-2F-Y хватило бы с головой. Я думаю, тут главный момент в отстутствии щелчков и т.п. Я больше чем уверен, что есть специализированные решения, которые умеют цеплять активный вход. Честно говоря, там нужен простой аналоговый компаратор. Использовать контроллер можно, если добавить туда FFT и выпилить из детекции 45-65 Hz. Тогда может получиться очень интересное и невосприимчивое к наводкам решение.
      С конструктивной точки зрения такие вещи нужно убирать в металлический корпус и не разводить 220V рядом со слаботочкой.
      Посту очень нужна схема. Не у всех есть Egle. Я вот предпочитаю KiCad и ставить его ради одной схемы не хочется.


      1. Buhram
        15.09.2019 20:38

        ИМХО, такое электромагнитное реле для этой схемы может не подойти. У всех силовых реле есть такой параметр как минимальный ток через контакты. Если ток будет ниже, то на них будет нарастать оксидная пленка, они не будут самооочищаться. Со временем этот процесс ускоряется и доходит до того, что реле перестает работать. Особенно учитывая что у него посеребренные контакты.
        У правильных низкоточных реле контакты покрыты золотом так как, во первых, оно не окисляется, а во вторых у него самое низкое контактное сопротивление. Есть еще реле с контактами, смоченными ртутью, но это уже совсем космос.
        Поэтому для низкоточных цепей и приходится использовать реле типа Omron G6K/G6Z и РЭВ-18/20. Дорого, но другого выхода нет.


        1. zoonman
          15.09.2019 21:48

          У Omron и Axicom там какой-то сплав серебра с золотом у G6K реле. G6Z — это уже для высоких частот, overkill для данной схемы. Хотя релюшка шикарная.


          1. olartamonov
            15.09.2019 22:01

            У G6Z нормирован импеданс контактов в диапазоне до 3 ГГц. Для аудио это нафиг не надо.


          1. Buhram
            15.09.2019 22:01

            Высокочастотность это «побочный» эффект исполнения.
            Забыл уточнить, не обычный G6K, а с припиской -RF. Обычные G6K тоже не годятся)


        1. katzen
          16.09.2019 12:17

          Герконы же. И контакты не окисляются.


      1. IgorPie
        15.09.2019 20:55

        Простите, это не к вам лично, просто наболело, выругаюсь на зомбированность нашим образованием: везде советуют FFT, даже там, где хватит пары биквадов, а это от силы 8 умножений. И не обязательно float, как у автора (кортекс м3 не может в аппаратный float) а на фиксированной точке, аналоге q31 (обычный int, по сути) легко делается.
        И это не понты, а двойной выигрыш: меньше энергопотребление, значит меньше и квартплата, и перегрев планеты, пусть хоть на чуть-чуть.

        Чипы управления с зерокроссом — есть, но купить их очень непросто.


      1. sergeyfk Автор
        15.09.2019 22:21

        Учел ошибки, подкорректирую завтра


  1. GreyPhantom
    15.09.2019 15:13
    +2

    Дожили, STM в роли компаратора, Микроскоп вместо молотка.


    1. Max-812
      15.09.2019 16:51
      +1

      Сейчас модно ругать AVR и пихать везде где нужно и не нужно STM. :) Стоит он копейки, так что почему нет?


    1. IgorPie
      15.09.2019 17:52

      вдруг он пиковый детектор? к тому же, фильтровать то что летит по входу надобно.


  1. Gritsuk
    15.09.2019 15:35

    Правильно я понял, что при отсутствии сигнала в течение 2 секунд усилок выключается? Если так, посмотрите, например, «Космическую одиссею 2001»


    1. sergeyfk Автор
      15.09.2019 17:28

      Почти правильно поняли: необходимо measurementsDuration * countOfIterationsForSwitch (мс) для смены состояния активное/пассивное. Фильм обязательно посмотрю.


  1. IgorPie
    15.09.2019 15:40

    Советские колонки — пассивные. Вы выход усилителя мощности переключали, или чего?
    Процесс — расписан, а ТЗ — не понятно.


    С телефона схему не посмотреть (было бы неплохо ее картинкой в пост). Но, имхо, ничего не мешало при 5В питании использовать 5В реле на ножках толерантных к 5В. Использовать не push pull, a OD и коммутировать землю. Тогда список доступных реле расширяется, а ток якоря — меньше. Это если не требуются токовыке ключи.


    1. sergeyfk Автор
      15.09.2019 17:30

      Я коммутировал или обрывал цепь питания 220В, от которой питается усилитель.


      1. IgorPie
        15.09.2019 17:53

        А схема даже не в PDF. Может, еще что-то можно сразу поправить.
        220В тоже заведено на ту же плату? Тут попахивает элементарной техникой безопасности.

        В целом, как первый блин, девайс весьма годный. Навыки со временем придут.
        Реле на аудио не особо нужны, можно найти аудио мультиплексоры.
        Если очень хочется реле (там свои плюсы есть), то уже писал что можно взять на 5 вольт.

        По варезу: жить будет проще, если порог срабатывания логарифмировать, потому что громкость — величина логарифмическая. Но, без схемы не все понятно. Берется ли только положительная полуволна, и стоят ли буферы на входе АЦП.


        1. sergeyfk Автор
          15.09.2019 18:46

          220В на саму плату не заводится. От платы идут управляющие провода на реле, а к реле еще и 220В приходит. 220В на печатную плату это мощно)


          1. olartamonov
            15.09.2019 19:55

            Реле 220 только с запасом выбирайте, усилитель с трансформаторным БП — мощная индуктивная нагрузка.


          1. Polaris99
            16.09.2019 14:19

            А какие проблемы у печатной платы с 220В?? А то мы делаем и не подозреваем про проблемы.


            1. neprog
              17.09.2019 00:55

              Может произойти электрический пробой, в статье всё отлично описано:
              https://m.habr.com/ru/post/428023/


              1. Polaris99
                17.09.2019 01:38

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


  1. sintech
    15.09.2019 15:59

    Корпус — класс! Удачи с проектом. Главное чтобы устройство выполняло возложенные на него задачи, оптимизация и экономия на компонентах это следующий этап.


  1. crustal
    15.09.2019 17:08

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

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


    1. sergeyfk Автор
      15.09.2019 17:27

      А что делать с необходимостью нескольких входов?


      1. IgorPie
        15.09.2019 17:52

        б/у микшер за косарь, как вариант.


        1. crustal
          16.09.2019 19:05

          Пишет про хороший усилитель, то есть это два разных ящика — один усилитель мощности, а другой — микшер/предварительный усилитель малой мощности, его можно не отключать. У меня был такой комплект Эстония УП-010 и Эстония УМ-010. В УМ-010 трансформатор ватт наверное на 400. Вряд ли тогда его разработчикам могло присниться в страшном сне, что этот трансформатор будут включать/выключать по сто раз в день.


          1. olartamonov
            16.09.2019 19:55

            И что там этому трансформатору будет?..


            1. riva257
              17.09.2019 00:56

              Ничего, просто гудеть современник начнёт как электричка, но это не точно…


  1. Dorogonov_DA
    15.09.2019 18:16

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

    Но, правда, я пришёл к варианту в виде полностью аналоговых входных модулей, содержащих предусилитель для развязки, компаратор, реле, для коммутации сигнала, и примитивную логику, генерирующую сигнал «занято», блокирующй все остальные модули, кроме активного. Получается универсальный модуль, которых можно воткнуть в параллель хоть десяток, но с точки зрения проходящего сигнала — они практически совершенно пассивны (да, можно посчитать, какие искажения внесут небольшие ёмкости по входу предусилителей, но это, скорее всего, микроскопическая величина).


  1. Serge78rus
    15.09.2019 18:31

    На КДПВ на плате видно аж целых два кварцевых резонатора. Зачем? Ну допустим, что для вывода отладочной трассировки через USART, тактировать контроллер желательно от кварца. Но второй то зачем? Более того, если посмотреть исходники, то видно, что используется тактирование от HSI — внутреннего RC генератора. Т. е. не используется и один.

    Кстати, насчет исходников: если планируете их выкладывать на github, то либо пишите комментарии на английском, либо используйте хотя бы кодировку utf-8. В противном случае при просмотре в браузере получаем крякозябры, так как github выдает страницы в utf-8.


    1. sergeyfk Автор
      15.09.2019 18:48

      Это ошибки проектирования, первый опыт. Можно использовать HSE, но по неопытности впаял неподходящий кварц, а поменять на подходящий руки недоходят. Кодировку проверю, коментарии добавлю, спасибо.


      1. IgorPie
        15.09.2019 20:58

        там нет неподходящих кварцев, если что. Просто пересчитываются все параметры на новый кварц, в кубе или утилитке под Excel


        1. olartamonov
          15.09.2019 21:17

          Вообще-то есть.

          AN2867 «Oscillator design guide for STM8AF/AL/S and STM32 microcontrollers»

          Там как расчёты, так и таблицы совместимости разных моделей кварцев с разными сериями МК.

          P.S. Но маловероятно, что автор попал на это — обычно даже неподходящий по параметрам кварц при комнатных условиях заводится и работает.


          1. IgorPie
            15.09.2019 21:45

            я это и имел в виду.
            Да и кварц в данном проекте — не нужен, частота дискретизации, вроде бы 1кГц, точность не нужна, вполне делается даже на HSI без PLL


        1. sergeyfk Автор
          15.09.2019 22:25

          Вроде в даташите написано, что кварц должен быть в определенном частотном диапазоне. Возможно я не прав. Только начал изучать МК


          1. olartamonov
            15.09.2019 22:31

            Для STM32F1 — да, от 4 до 16 МГц. Для других чипов другие диапазоны.

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


          1. IgorPie
            15.09.2019 23:38

            Да и 1.74МГц тоже бы завелся. 25 — не пробовал, есть подозрение, что на MD и шустрее — заведется.
            8 МГЦ — классика жанра, потому что через PLL можно настроить на 12МГц для USB и 12.288 (с небольшой погрешностью) для аудио (48кГц х 256). Его легко купить, на али продадут 50 штук по цене 1й штуки в чипдипе.


  1. madcatdev
    15.09.2019 19:49

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


    В заключении хотелось бы сказать, что нельзя просто так оставить входной аудио-провод «не воткнутым» ни во что, нужно его вставить в какое либо устройство или заглушку в виде гнезда minijack, в котором все контакты соединены между собой.

    Попробую угадать — АЦП начинает ловить сетевые наводки частотой 50 Гц?


    1. sergeyfk Автор
      15.09.2019 22:28

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


  1. olartamonov
    15.09.2019 21:22

    web.archive.org/web/20110717104059/www.fclab.ru/2011/07/14/2715

    До сих пор две пары колонок с ним работают.


    1. IgorPie
      15.09.2019 21:48

      TO-220 корпуса — питание? Как организовали, что 100дБ С/Ш? (схема не попала в веб архив).


      1. olartamonov
        15.09.2019 22:06

        TO-220 — да, линейные стабилизаторы питания. Подробностей про децибелы я не помню уже никаких вообще, но вообще предварительный усилок там на AD823 с биполярным питанием, он весьма хорош.


        1. IgorPie
          15.09.2019 23:41

          в статье написано про 100+ дБ, а значит чип ЦАПа должен иметь ну очень качественное питание, вот оно-то и интересно.


          1. olartamonov
            15.09.2019 23:53

            Я сейчас с некоторым трудом вспомнил, что там, кажется, WM8740, а уж как там питание сделано… Многовато лет прошло.

            Я даже не помню, что и как там измерялось на эти 100 дБ.


  1. Fenja
    15.09.2019 21:52
    +3

    Если хочется посмотреть на схему, а Eagle устанавливать лень, то есть png:

    Схема и плата

    Открыть в новой вкладке.


    1. IgorPie
      15.09.2019 23:50

      Светодиоды через 30Ом, выглядит жестко.
      Буферов аудио — нет. АЦП со своим невысоким входным сидит на линии. Диодов в проходе нет, конденсаторов (отсечь вероятную постоянку) — тоже. Отрицательная полуволна аудио гасится средствами защиты МК. За что вы его так?
      Питание АЦП все же надо фильтровать хотя бы LC.

      Для человека, который сошел с ардуины, ну, терпимо, скрипя зубами )


      1. Serge78rus
        16.09.2019 01:50

        Питание АЦП там как раз через LC и зафильтровано, просто названия цепей непривычные: VDD — для аналога и +3V3 для остального.


      1. sim2q
        16.09.2019 06:05

        Светодиоды через 30Ом, выглядит жестко
        Причём в оптронах ИК, а у них около 1В падение всего
        Буферов аудио — нет. АЦП со своим невысоким входным сидит на линии
        начитался про ADC и теперь тоже ставлю через ОУ


        1. IgorPie
          16.09.2019 09:37

          Тут даже не в демонах АЦП дело, а что проходящий сигнал шунтируется входным от АЦП (лень в даташит смотреть). Следовательно, становится тише и проседают ВЧ.


  1. xFFFF
    15.09.2019 23:22

    Можно коммутировать через мультиплексор ADG709.


  1. Snob66
    17.09.2019 00:56

    Над корпусом стоит поработать.


  1. stalinets
    17.09.2019 23:04

    У китайцев есть готовое неплохое устройство, как раз недавно заказывал себе такое. Искать по названию «hifi audio 4 pairs RCA input Source Selector Signal Selector Switching For Audio Preamp Power Amplifier DIY Kit /assembled board».
    Четыре выхода, один коммутируемый через реле выход. Стоит рублей 650. Управление — ручкой-аттенюатором.
    Чтобы сделать управление «с пульта», можно или удлинить шину и сделать пульт (ручку) выносным, или добавить радиобрелок + какую-то не особо сложную схему для удалённого переключения управляющих релюшками сигналов.
    По-моему, это проще, чем городить микроконтроллер.


    1. sergeyfk Автор
      19.09.2019 14:09

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