Гальваническая развязка по питанию.
- Войдите на сайт для отправки комментариев
Всем доброго времени. Прошу помочь решить мои задачу. Я собрал схему захвата звука с аналогового аудиовыхода аудиокарты ПК с последующей световой визуализацией с помощью RGB лент через драйвер TLC5940. И вроде бы все работает. Но на колонки подключенные к тому-же аудиовыходу через Y кабель идут помехи от блока питания RGB лент.
Arduino питается от USB компьютера
TLC5940 питается от Arduino
RGB ленты питаются от внешнего блока питания 12В, подключенного к контактам P1 и P2
GND аудиовхода для захвата звука, GND Arduino и GND блока питания соединены вместе.
Вопрос: как развязать питания RGB лент и Arduino/TLC5940 или (более предпочтительнее) как развязать аудиовход для захвата звука от питания всей схемы, чтобы GND аудиовхода не был связан с питанием Arduino?
Посматриваю в сторону оптрона, но понятия не имею как его правильно подключить.
По моему мнению стоит развязать по питанию ардуинку и TLC5940, запитав TLC5940 от БП лент через 7805 с обвязкой.
Как вариант развязать только аудио канал:
Как вариант развязать только аудио канал:
А чо, так можно было? О_О
для начала, попробовать поставить 3 электролита номиналом этак 100 - 500 мкФ по всем 3 проводам от аудио - попробовать убрать все постоянные из аудиосигнала. Все одно вам качество звука на входе ардуино не сильно важно.
Рекомендую поставить сопротивления перед интегрирующей цепочкой по входу каждого канала. Нагружать выходы на емкости напрямую - я бы так не стал делать.
Не, Гриша. Не поможет. Либо полная гальваническая развязка ( как можно было:). Либо пусть ТС колется, какие помехи его беспокоют. Фон там низкочастотный, свисты, хрипы, что у него за кабель, пробовал ли менять кабель или общую точку для сигнала.. И вообще просто заморочался или ему это действительно надо.
Либо пусть ТС колется, какие помехи его беспокоют.
если помеха связана с постоянной составляющей - конденсаторы помогут, а если нет - только фильтры по питанию.
UPD. ключеное - все ТРИ провода аудио...
1. Если развязать аналоговую часть, то я пробовал на LOC110, если эмулировать в Proteus, то HCNR200.
2. Если развязать цифровую часть, то 6N137, например, или HCPL2630, HCPL2631.
3. Вообще было бы неплохо между TLC5940 и полевыми транзисторами использовать драйвера затворов. Причём питание как на ардуинку, так и на TLC5940, так и на драйвера затворов лучше подавать через диоды, и на ноги питания микросхемы вешать конденсаторы керамика 0.01 мкФ - 1.0 мкФ плюс электролит 10 мкФ - 1000 мкФ.
4. Было бы неплохо если бы вы указали в чем именно проявляются проблемы, тогда проблему можно быстрее локализовать и более эффективно решить.
Сначала надо что-то решить в выходом с видеокарты, просто так грузить выходы на С1, С2 нельзя, о чем уже писал Гриша.
т.е. там уже сейчас нельзя снять нормальный сигнал на куда-то послушать.
По моему мнению стоит развязать по питанию ардуинку и TLC5940, запитав TLC5940 от БП лент через 7805 с обвязкой.
Но ведь земпля от БП все равно пойдёт и к TCL и к Arduino и к Аудиовходу. Или я не понимаю?
Как вариант развязать только аудио канал:
Очень интересно, закажу парочку.
для начала, попробовать поставить 3 электролита номиналом этак 100 - 500 мкФ по всем 3 проводам
Попробую поставить, если только найду у себя такие.... Ставить их последовательно?
AudioJack 1 <-> Arduino A2
AudioJack 2 <-> Arduino A1
AudioJack 3 <-> Arduino GND
Кстати, если провод GND, который идет от аудиовхода на общую землю отключить, т.е. повесить в воздухе, схема не теряет своей работоспособности, т.к. продолжает получать землю по питанию от USB ПК
Рекомендую поставить сопротивления перед интегрирующей цепочкой по входу каждого канала.
Имеется ввиду вот так R7, R8? А какой номинал?
P.S. С1 и С2 это керамика на 0.1 мкф (104)
У меня нет в схеме полевых транзисторов, кроме тех что в самом TLC5940.
Я могу приложить видеозапись с демонстрацией проблемы.
Вот полная схема проекта
https://easyeda.com/com.hemicide/musiclight
1. Элементы R7 C2 и R8 C1 я так понимаю можно убрать. Их роль - предотвращать возбуждение при работе на нагрузку в качестве которой используются динамики наушников или маломощные колонок. В случае работы на резистивную нагрузку (в смысле чисто активную без реактивной составляющей - индуктивной у динамиков) в этих элементах нет необходимости, даже скорее они вредят, срезая высокие частоты.
2. А какова мощность вашей rgb ленты, в смысле вы уверены что TLC5940 может по даташиту тянуть эту нагрузку?
1) C1 и С2 были добавлены как фильтры помех. Я получал сильные помехи на аналоговых входах ардуино, когда аудиокабель подключенный к ардуине висел в воздухе, или если я до него дотрагивался. После добавления в схему подтягивающих резисторов (R4 и R5) я не избавился от помех, но когда добавил C1 и С2 помехи на А1 и А2 ушли полностью.
2) Да, может. Мощность лент подобрана в соответствии с возможностью TLC5940, она по даташиту выдает до 120мА на канал, я ограничил ток до ~110мА. Каждый канал ленты (зависит от цвета) потребляет 100-120мА
Если я отключаю БП во время работы схемы, то помехи уходят. Если я запитываю Ардуино не от USB ПК, а от внешнего стабилизированного напряжения 5в, помехи все равно остаются.
Я, в будущем планирую подключить эту схему в автомобиле, к линейным выходам ГУ, только питание Arduino и TLC буду делать через стабилизатор 14В -> 5В. Поэтому я очень переживаю что помехи из борт сети авто, по минусу будут идти на линейные выходы моего ГУ. Как это происходит сейчас от Блока питания на аудиокарту ПК
Видео, демонстрирующее проблему (звук надо погромче сделать, а то микрофон телефона упорно пытался приглушить шум от колонок)
https://drive.google.com/open?id=1EsjibmLqzoFiNHP7wqWRFkljBoHuPJMt
Нужно поэкспериментировать с поиском пути помех.
Сначала отключаете сигнальные линии от звуковухи, но оставляете землю. т.е. получается две земли от компа. Слушаете.
Потом отцепляете землю звуковухи, остается только земля усби, слушаете.
Запитываете ардуину внешним бп, т.е. совсем без земель от компа, слушаете.
В общем там еще можно парочку вариантов придумать, но это основные. Отпишитесь о результатах.
Есть помехи
Есть помехи
Есть помехи (сигнальные линии от звуковухи подключены, земля висит в воздухе)
Светодиодная лента горит в зависимости от входного уровня на A1 и A2. Верхние две ленты - левый канал, нижние две - правый канал. Когда подключен БП, а GND аудио и юсб не подключены. на входах ардуино А1 и А2 фиксируются сильные помехи. Если в этот момент подключить GND аудио (на видео коричневый провод), то помехи на А1 (правый канал) исчезают, потому что он подключен через керамику 0.1 мкф, левый канал продолжает улавливать помехи, он без керамики. И при этом не важно как запитана ардуина, через ЮСБ или через внешний источник...
На колонки же, т.е. звуковую карту ПК помехи идут всегда
https://drive.google.com/open?id=1EyWrjuUE-Lo2OlgnejydqXThALuD5ouP
hemicide, измерьте мультиметром напряжение между "землёй" USB и минусом внешнего БП 12 вольт, когда тот включен в сеть, но не подключая к ардуино. По переменке и постоянке. Что там будет?
hemicide, вам нужно на время забыть о входах А1, А2 и запустить на ленты просто программную мигалку.
1. Питать ардуину внешним бп и вообще никаких проводов между ардуиной и компом.
Если помех не будет, переходите к 2
2 Прицепить одну только землю к звуковухе.
... dimax предложил более прямой способ завязки через сеть
90%, что шум ловится по воздуху. Так что для начала нужно взять нешумящий бп, или хотя бы шумящий унести подальше от колонок.
Отключил от БД приходящий + на схему, оставил только GND. При этом GND аудио соединен с GND от БП - шумит. Если отключить GND аудио но оставить сигнальный провод от аудио - шумит, но меньше. Я уже ничего не понимаю. Шумит по любому из трех проводов аудио, даже по отдельности!!! И GND и L и R
А еще если разорвать GND от БП и GND от аудио, то у меня по каким-то причинам начинает гореть лента св.диодов, как? (Ардуино и TLC не запитаны вообще) От аудио канала чтоли запитывается?
P.S. Хорошо, выполню все ваши рекомендации ближе к вечеру.
hemicide, вам нужно на время забыть о входах А1, А2 и запустить на ленты просто программную мигалку.
1. Питать ардуину внешним бп и вообще никаких проводов между ардуиной и компом.
Если помех не будет, переходите к 2
2 Прицепить одну только землю к звуковухе.
... dimax предложил более прямой способ завязки через сеть
Уже так пробовал. по п.1 никаких помех нет. Если подцепить только одну землю к звуковухе то помехи идут.
То что предложил dimax уже едет с Aliexpress
Предполагаю, что когда оставляю без питания Arduino и TLC, то ранее подтянутый контакт BLANK(23) у TLC5940 к +5В через 10kom, который отвечал за закрытие всех полевых транзисторов в сборке, остаётся висеть в воздухе, в неопределенном состоянии, и транзисторы недозакрыты чтоли, начинают пропускать ток, внимание, от GND аудиовхода? Т.е. моя бедная аудиокарта нагружается RGB лентами....
Напомню что из питания к схеме у меня подходит только +12В от БП (GND от БП не подключено) и GND от аудиоканала.
Точно нужна развязка земляной петли по аудиовходу...
Развязать по питанию ардуинку и TLC5940, запитав TLC5940 от БП лент через 7805 с обвязкой. Выходы ардуинки развязать оптопарами.
hemicide, измерьте мультиметром напряжение между "землёй" USB и минусом внешнего БП 12 вольт, когда тот включен в сеть, но не подключая к ардуино. По переменке и постоянке. Что там будет?
В переменном режиме - 0.08 В
В постоянном режиме - от 0.08 В до 0.28 В скачет, и когда щупы прикладываю, то на колонках треск слышен
Развязать по питанию ардуинку и TLC5940, запитав TLC5940 от БП лент через 7805 с обвязкой. Выходы ардуинки развязать оптопарами.
Вот так? Все правильно подключил?
http://c2n.me/44Xf7Zr
У меня вопрос по поводу оптрона U6. C Arduino D10 идет сигнал через оптрон на TLC5940 BLANK. Согласно датшиту на TLC, пин BLANK управляется логическим нулём. И когда BLANK подтянут через 10К на +5, то все выходы выключены, когда на BLANK появляется лог. ноль, то все выводы управляются с помощью ШИМ с Arduino D3 -> TLC5940 GSCLK
Как мне получить лог. ноль через оптрон? Если линия BLANK подтянута к +5?
Как мне получить лог. ноль через оптрон? Если линия BLANK подтянута к +5?
Повесить коллектор оптопары на +5В через резистор 4,7к, а эмиттер посадить на землю. Из точки соединения коллектора и резистора взять сигнал. Будет ноль. Только КАЖДЫЙ коллектор отдельно, а не скопом как у Вас. Только сигнал будет инвертированным. Хотя, если подключить светодиод катодом к выходу ардуинки, а анодом к +5 через 300, то все будет хорошо.
В постоянном режиме - от 0.08 В до 0.28 В скачет, и когда щупы прикладываю, то на колонках треск слышен
Это помеха в чистом виде, и она не должна идти по цепи питания. В идеале должен быть отдельный провод между БП, выравнивающий потенциалы. Т.к. это технически вряд ли возможно, то нужно заменить БП на гальванически изолированный (трансформаторный).
В постоянном режиме - от 0.08 В до 0.28 В скачет, и когда щупы прикладываю, то на колонках треск слышен
Это помеха в чистом виде, и она не должна идти по цепи питания. В идеале должен быть отдельный провод между БП, выравнивающий потенциалы. Т.к. это технически вряд ли возможно, то нужно заменить БП на гальванически изолированный (трансформаторный).
это рукажопная схема звуковой, если при подключении щупов к выходу идет подвозбуд на вход схемы. тут только звуковуху менять на другую. проще поставить внешнюю и пробовать с ней. Чем шаманить дальше.
Взял «нешумящий» блок питания и все помехи ушли, даже с аналоговых входах ардуино! НО. Когда работает TLC5940, то на колонках слышен писк, при этом аудио кабель не подключен.
Ставил параллельно питанию с БП электролит 1000nF 16V и керамику на 100nF 50V, вместе и по отдельности, никакого эффекта. Потому что пищит даже при отключенном БП (св. лента не горит)!!!
Т.е. помеха идет по GND на ПК от транзисторов в TLC5940?
Еще есть особенность. Если во время работы схемы, отключать/подключать аудиокабель то у TLC5940 отваливаются каналы (в порядке 15,14,13…0). Видимо срабатывает защита по КЗ, когда я аудиоштекер идущий от Arduino вставляю в разветвитель аудиокарты, замыкая общий GND всей схемы (а он совмещен) на R или L каналы аудиокарты. Нельзя так делать)
Как мне получить лог. ноль через оптрон? Если линия BLANK подтянута к +5?
Повесить коллектор оптопары на +5В через резистор 4,7к, а эмиттер посадить на землю. Из точки соединения коллектора и резистора взять сигнал. Будет ноль. Только КАЖДЫЙ коллектор отдельно, а не скопом как у Вас. Только сигнал будет инвертированным. Хотя, если подключить светодиод катодом к выходу ардуинки, а анодом к +5 через 300, то все будет хорошо.
Прошу растолкуйте что значит "Только КАЖДЫЙ коллектор отдельно"
Я сейчас собрал все по вот такой схеме, но с оптронами вообще ничего не работает
Без оптронов и без изолированного DC DC конвертера работает.
P.S. Резисторы на оптроны не 300 Ом, а 470 Ом
Прошу растолкуйте что значит "Только КАЖДЫЙ коллектор отдельно"
Без оптронов и без изолированного DC DC конвертера работает.
так вы оптроны и не включили. вот загуглил , надеюсь ссыль прилипнет нормально и обратите на тип передачи сигнала "инверсный и не инвертированный "
вы только U6 (R14) коллекторное сопротивление поставили, а про остальные забыли.
ёмаё, виноват, чайник, недодумал до конца.
Я тут кое что попробовал (случайно). Проверял работу оптопары, и на эмиттер вещал светодиод с резистором 470 Ом и схема начала давать признаки жизни
И посмотрев сейчас на схему включения, которые вы предоставили, я все понял!!
Сделаю, напишу, спасибо большое!
Как мне получить лог. ноль через оптрон? Если линия BLANK подтянута к +5?
Повесить коллектор оптопары на +5В через резистор 4,7к, а эмиттер посадить на землю. Из точки соединения коллектора и резистора взять сигнал. Будет ноль. Только КАЖДЫЙ коллектор отдельно, а не скопом как у Вас. Только сигнал будет инвертированным. Хотя, если подключить светодиод катодом к выходу ардуинки, а анодом к +5 через 300, то все будет хорошо.
Прошу растолкуйте что значит "Только КАЖДЫЙ коллектор отдельно"
Я сейчас собрал все по вот такой схеме, но с оптронами вообще ничего не работает
Без оптронов и без изолированного DC DC конвертера работает.
P.S. Резисторы на оптроны не 300 Ом, а 470 Ом
Это никогда не будет работать. У оптопар не та пропускная способность по частоте. <4 кГц на gsclk как ни колдуй не даст нормального результата. "Советчики", как всегда, насоветовали бреда, потому что сами никогда ничего такого не пробовали и осциллографом не щупали. И как я уже писал - гальваническая развязка проблемы не решит, потому что помехи идут по воздуху.
Это никогда не будет работать. У оптопар не та пропускная способность по частоте. <4 кГц на gsclk как ни колдуй не даст нормального результата. "Советчики", как всегда, насоветовали бреда, потому что сами никогда ничего такого не пробовали и осциллографом не щупали. И как я уже писал - гальваническая развязка проблемы не решит, потому что помехи идут по воздуху.
думаю пост 27 будет несколько точнее :)))))
Хорошо хоть, что признался, что только "думаешь". Но лучше бы делом занялся и научился чего-нибудь. Тогда бы знал, а не думал. А то уж больно дохрена мыслителей тут. Полет фантазии запредельный.
Это никогда не будет работать. У оптопар не та пропускная способность по частоте. <4 кГц на gsclk как ни колдуй не даст нормального результата. "Советчики", как всегда, насоветовали бреда, потому что сами никогда ничего такого не пробовали и осциллографом не щупали. И как я уже писал - гальваническая развязка проблемы не решит, потому что помехи идут по воздуху.
1) Согласно даташиту PC817 имеет время открытия\закрытия 4мкс, это примерно 250 кГц, хоть как-то работать-то должно, подумал я.
2) Подтяжка эмиттера к земле через 4,7 кОма ничего не дала. Тишина.
3) Как я уже писал ранее, схема будет использоваться в авто, где, через эту схему, аудиосигнал Гу будет соединён с массой автомобиля, а это неизбежно приведет к шуму в колонках. Вот поэтому я хотел сделать развязку по питанию...
Вот тут я написал что шуми ушли после смены БП
1) Согласно даташиту PC817 имеет время открытия\закрытия 4мкс, это примерно 250 кГц, хоть как-то работать-то должно, подумал я.
Нет. Прочитай даташит внимательно. Там рядом с этой цифрой куча уточнений, которые ты почему-то решил не заметить.
Дело в том, что видимо это все что я смог там вообще понять, и "не заметил" по причине своей безграмотности, а не невнимательности.
В любом случае Вы были правы, скорости им не хватает. Переподключил еще раз, заработало, но я прям вижу как на RGB ленте цвета включаются поочередно, хотя задано гореть белым цветом (т.е. все цвета одновременно)
Что-же мне теперь делать. Столько времени потратил. Результата нет, Мне ведь кроме как у вас и спросить больше не у кого.
Задача у меня та-же. Разорвать земляную петлю между аудиосигналом и питанием схемы.
1) Выше советовали использовать линейную оптопару, но там в обвязке операционные усилители, отдельное питание и еще что-то что меня оттолкнуло, по причине не понимая.
2) Вот такую штуку использовать? Но народ пишет то она даёт -6dB и режет все что ниже 100Гц, т.е. басы
Это никогда не будет работать. У оптопар не та пропускная способность по частоте. <4 кГц на gsclk как ни колдуй не даст нормального результата.
А если взять более быструю оптопару, например HCPL2611, у нее заявлено 10 МГц? (100 ns)
Если уж во что бы то ни стало хочется изолировать, то существуют интегральные цифровые изоляторы, которые проще и дешевле быстрых оптопар. Например ADuM160N
Например ADuM160N
Гарантированная пропускная способность 150 Мбит/с, макс. - быстрее быстрого) Как я понял он 6 канальный, стоит 600р и нигде нет в наличии.
Я тут нашёл кое-что интересное про развязку аналогового сигнала (т.е. аудиосигнала в моём случае) Не пойму что выбрать, глаза разбегаются
Значит нужно найти аналог от другого производителя, или собрать из микросхем с меньшим количеством каналов.
Допустим, ADUM1400CRWZ 4 канала 90 Мбит, а какая схема включения? Соединять напрямую выводы ардуино и ADUM? И какая минимальная скорость мне нужна?
Вот по быстрому накидал схему:
Правильно ли что VE2 подключил на +5В? Как я понял выводы МК работают, когда VE2 в высоком уровне.
И опять же вопрос, что мне надо сделать с VOA чтобы на BLANK получился логический ноль?
"Оно живое"
Заменил все оптроны PC817 на высокоскоростные и схема заработала. Ура!
Всем спасибо. И просто огромное спасибо тебе rkit
Я позже проверю работу схемы только на hcpl2630 и отпишусь.
А зачем вам мучаться с аудиовходом? Я для подобного проекта использовал модуль микрофона с АРУ типа такого - https://learn.adafruit.com/adafruit-agc-electret-microphone-amplifier-max9814
А RGB лентой управляю с помощью ULN2003. для 3-х метров хватает.
А зачем вам мучаться с аудиовходом? Я для подобного проекта использовал модуль микрофона с АРУ типа такого - https://learn.adafruit.com/adafruit-agc-electret-microphone-amplifier-max9814
А RGB лентой управляю с помощью ULN2003. для 3-х метров хватает.
Не хочу чтобы микрофон записывал все звуки вокруг, и как мне кажется четкость работы такого устройства будет не высокой. А что касается ULN2003, то у меня столько выводов на ардуино нет. Делать через сдвиговые регистры не хочу. Лучше аппаратный ШИМ в TLC5940, чем программный в Arduino, который будет отбирать производительность.
В общем, стал я собирать схему только на HCPL-2630. Все подключил, проверил – не работает. Стал проверять каждый канал HCPL-2630 по отдельности, вне схемы. Выяснил что когда св.диод в оптроне горит, на выходе 0.180В, когда не горит 0В. Что за ерунда подумал я, должно же быть 5В и стал усердно искать информацию. И нашел вот такую картинку:
Согласно этому изображения, когда св.диод горит, то на выходе оптрона формируется логический 0 (< 0.8В), а когда не горит, то логическая 1 (> 0.8В).
Подобное описание я находил и на в даташите на этот оптрон, но там было больше расписано про одноканальные с выходным каналом ENABLE. И я подумал что к двухканальным это не относится. Но был разочарован.
И еще нашёл описание на одном из форумов:
Таблица касается обоих типов оптоизолятора. То есть и 6N137, и HCPL2630 ИНВЕРТИРУЮТ сигнал.
Когда через светодиод ток не течет - выходной транзистор закрыт и его коллектор притянут через резистор R3 к шине питания. Когда ток через светодиод потечет - выходной транзистор открывается и его коллектор притягивается к "земле".
Ну, думаю, все пропало. Как же мне теперь передавать высокий уровень через оптрон?
Решение пришло через день, когда пришло понимание принципа работы. И родилась универсальная схема включения этого оптрона:
Когда с D10 на С1 идет высокий уровень, св.диод НЕ ГОРИТ и на выходе VО1 ничего нет. Тогда линия от XLAT притягивается через резистор 4.7К на +5В и получается высокий уровень на XLAT.
Когда с D10 на С1 идет низкий уровень, св. диод ГОРИТ и на выходе VО1 формируется лог. 0. который идет напрямую в XLAT, минуя резистор 4.7К.
Таким образом получается, подал на вход 1, на выходе получил 1. Подал 0, на выходе тоже 0!
По такому принципу я подключил все 5 сигнальных линий. И у меня все стабильно заработало! Скорости в 10мб/c. хватает Я очень рад что смог разобраться. Было интересно!
Вот полная схема. А я буду двигаться дальше.
P.S. Если есть какие-то замечания по схеме, пожалуйста укажите мне на них. Буду исправлять. Всем спасибо!
Когда-то ( лет 25 назад) попался мне телевизор сильно бюджетный. С горячим шасси. И у него для скарта была гальваническая развязка на оптронах с собственным маленьким источником питания, который также и для дежурки использовался. Всё давно придумано.
Не хочу чтобы микрофон записывал все звуки вокруг, и как мне кажется четкость работы такого устройства будет не высокой.
А что вы понимаете под "четкостью". У меня, вот, все четко работает.
Для управления RGB лентой с помощью ULN или мосфетов достачно 3-х пинов.
А чем вас аппаратный ШИМ в Аrduino не устраивает? Производительность он "не отбирает"
А что вы понимаете под "четкостью". У меня, вот, все четко работает.
Это когда звук от излучателя до микрофона может доходить уже искаженным, смешанным, где границы низких в высоких частот могут быть смещены в середину.
Для управления RGB лентой с помощью ULN или мосфетов достачно 3-х пинов.
Для управления одной лентой, да, но у меня 5 лент, независимые друг от друга.
А чем вас аппаратный ШИМ в Аrduino не устраивает? Производительность он "не отбирает"
1) Нет столько аппаратных выводов поддерживающих ШИМ у Ардуины чтобы напрямую управлять через ULN более чем 6 каналами.
2) Низкая частота в 488,28 Гц и низкое разрешение стандартного ШИМа в 8 бит, против 12 в TLC, что существенно сказывается на "мерцании" светодиодов.
2.1) Если изменять настройки таймера 0, то придётся еще и обрабатывать функции времени mills() и delay() по другому/