- Делаем свою USB звуковую карту с гальванической развязкой
- Выбор микросхемы кодека
- Аудио коннекторы
- Гальваническая развязка по питанию
- Развязка интерфейса
- Ну и по мелочи
- Заключение
- Простой USB-UART преобразователь с гальванической развязкой
- Концепт
- Проект
- Панелизация
- Сборка и тестирование
- Финал
- Избавляемся от помех и наводок с USB-изолятором: просто, дёшево, эффективно
Делаем свою USB звуковую карту с гальванической развязкой
Началось все как обычно, от нефиг делать от избытка свободного времени я решил сделать что-то эдакое. Тут я вспомнил, что друзья жалуются в дискорде на мой микрофон, слышны какие-то цифровые помехи, а если начать копировать файлы на компьютере то вообще. Купить нормальную звуковую карту? Это не про нас.
Кого заинтересовало прошу под кат.
Выбор микросхемы кодека
Вообще я не любитель делать электронику из чего попало, даже для себя, особенно из китайских компонентов с али, по этому первым делом идем на digikey и ищем что-нибудь. Первой мыслью было взять полноценную микросхему кодека и подключить его к STM32, а уж от него USB. В принципе это не сложно, но в какой-то момент я понял, что не хочу так заморачивайся и решил найти что-то «все в одном». Гугл настойчиво выдавал CM108 от C-Media Electronics, производитель в Тайване. Что ж, ну ладно, пусть будет так
Кодек требует себе EEPROM, и даже предлагает конкретную, аналог от STMicroelectronics M93C46-WMN6TP быстро нашелся на том же digikey (Integrated Circuits (ICs) > Memory). На всякий случай подключил его питание через фильтр, чтобы не привел нам ничего плохого в питание кодека.
Так же кварц, и т.к. я любитель сделать все по меньше и компактней то ставлю серию ABM3 (ABM3-12.000MHZ-B2-T) 5 на 3.2 мм (не ставить же гигантский HC-49)
Аудио коннекторы
После ищем сами коннекторы для наушников и микрофона. Я лично предпочитаю CUI для аудио и простых бытовых коннекторов питания 5.5, всегда их ставлю, конечно же поиск на digikey (Connectors, Interconnects > Barrel — Audio Connectors).
В моем случае у меня уже был готов компонент в библиотеке под SJ2-3574A-SMT т.к. раньше я его уже использовал, можно было бы выбрать разноцветные (у CUI есть), но мне не хотелось (для себя же делаю, как-нибудь разберусь).
Обычно последовательно ставят конденсаторы (0.47uF или 1uF, можно 4.7uF), это может быть тантал или керамика, но лучше всего использовать пленочные. В референс схеме в даташите предлагают 470uF, что слишком уж много, выбираем 0.47uF (если нужны очень низкие басы то можно и 1uF). Пленочные конденсаторы есть в SMD корпусах, что очень удобно, я поставил ECP-U1C474MA5 в корпусе 1206.
Гальваническая развязка по питанию
А теперь самое интересное
CM108 имеет 2 режима, 100mA и 500mA, разумеется я выбрал по жирнее, чтобы с размахом, 500mA * 5V = 2.5W, немного с запасом нам нужно найти развязку где-то на 3W, выставляем параметры (в разделе Power Supplies — Board Mount > DC DC Converters) и смотрим, что по дешевле, так же не забывая отсеивать производителей, которым вы не очень доверяете. Выбор пал на CC3-0505SF-E от TDK (хотя мне очень хотелось поставить от мураты!). Стоит он жирно, 11 баксов, но ничего не поделаешь.
После него я поставил фильтр, не забывая про конденсаторы 0.01uF и 0.001uF чтобы отсеять всякую ВЧ ересь т.к. она пролезает даже через гальванику. Ещё 100uF электролит, он точно лишним не будет.
Развязка интерфейса
Развязка питания это хорошо, но не помешает развязать и сам USB интерфейс. В разделе Digital Isolators (Isolators > Digital Isolators) можно найти подходящее, я выбрал ADUM4160 от Analog Devices.
Не забываем подтянуть DATA P на USB интерфейсе к 3.3V, т.к. это говорит хосту (ПК), что в порт воткнули девайс и надо бы начать с ним работать, по-хорошему в микросхеме эта подтяжка должна быть внутри, но её почему-то нет.
Ну и по мелочи
Сам USB конектор конечно же от Molex, ещё можно от TE или Wurth. Или поискать и у других, но я считаю что подобные конекторы лучше выбирать у этих трех, остальные хороши, но в другом.
Так же я решил, что если столько денег ушло на чистое питание, то делать надо все хорошо до конца, и развязка цифровой земли и аналоговой не исключение. Более того, вместо обычной перемычки на плате я поставил фильтр BLM15 (при разводки платы разделение земли лучше пододвинуть поближе к главной земле, т.е. к GND выводу нашего изолятора по питанию, там и должна расходится цифровая и аналоговая земля)
Заключение
Ну, на этом все, плату я развел в 4 слоя стандартного класса, после подготовки производства она будет стоить около 130р. Так же 4 слоя лучше в плане того, что полигоны питания, земли и цифровой земли лучше делать собственно полноценными полигонами, по-хорошему вообще на каждое питание свой слой, но у меня питание и цифровая земля на одном.
От идеи до полной разводки ушло где-то полтора часа. Плата вышла размером 22 на 66 мм.
Честно говоря, пока писал статью уже расхотелось заказывать плату (ну как всегда), так что пусть будет хотя бы статья.
Источник
Простой USB-UART преобразователь с гальванической развязкой
В процессе разработки электронных устройств под управлением микроконтроллеров часто возникает задача передать какие-то данные с устройства на компьютер или наоборот. Вероятно самым простым способом является использование USB-UART переходников, которых существует великое множество, но я решил сделать свой «велосипед» и поделиться результатом с вами.
У меня стояла задача сделать для себя любимого простой, дешевый, компактный и главное гальванически развязанный преобразователь USB-UART. Основной кейс для меня — отладка через printf по uart, да да, я в курсе про SWO и иные методы, но мне удобнее работать именно с uart-ом. Наличие изоляции для меня критично, т.к. в основном мне приходится проектировать силовые преобразователи, которые могут легко спалить, например, usb порт моего ноутбука. Правда если у вас в устройствах нет высокого напряжения, то расслабляться тоже не стоит, какие-нибудь 12В так же прекрасно могут вывести из строя ваш ПК. Разумеется не стоит забывать и о помехах, гальваническая развязка частично препятствует попаданию всякой гадости в usb порт.
Как видите у развязанных преобразователей интерфейсов одни плюсы, но тут некоторые возразят: «Зачем? Все же есть на Алиэкспресс». Тут ответ простой — меня не устроили ни цена готового устройства, ни его габариты, ни качество. В итоге за пару часов я «изобрел велосипед», который удовлетворит все мои хотелки и после изготовления получилось вот так:
Хотите обезопасить свои usb порты и узнать зачем так много? Тогда поехали :))
Концепт
Изначально я хотел лишь сделать себе парочку «свистков» для отладки, а в будущем еще и использовать их для отправки заказчикам, например, чтобы безопасно обновить прошивку через встроенный bootloader или снять логи, если что-то пошло не так. Отсюда и была задача сделать очень дешевую железку, чтобы не жалко было раздавать направо и налево. Правда все пошло немного иначе…
В своем телеграм-канале я сделал объявление с предложением присоединиться к заказу, ведь при увеличение партии уменьшалась стоимость устройства. В итоге за день набралось заказов на 50 штук + 10 штук себе, больше набирать не стал уже. Собственно поэтому на КДПВ не 10 штук, а несколько больше. Забегая вперед скажу, что такой мелкосерийный заказ позволил уменьшить стоимость одного устройства с
375 руб, что довольно неплохо.
Еще одной особенностью преобразователя стало то, что на нем не установлен гальванически развязанный dc/dc преобразователь на 5В. Структурная схема выглядит так:
Как видите изолятор ISO7721 с левой стороны запитывается от 5В самого USB, а с правой стороны вы должны подать уже напряжение нужного вам логического уровня. Данный изолятор работает при стандартных уровнях 2.5, 3.3 и 5В, то есть если вы работаете с STM32, то на пин VREF подаете +3.3В, а если с ATmega8, то подаете уже +5В. Довольно удобно и у такого решения есть ряд плюсов.
Во-первых, установка нормального dc/dc ведет к удорожанию устройства в 2 раза и вот зачем нам это, если питание со стороны usb есть всегда, а питание со стороны МК тоже будет, ведь иначе и принимать от него нечего.
Во-вторых, если мы устанавливаем, например, dc/dc с входным напряжением 5В, а выходным 3.3В, то мы с него уже вряд ли запитаем какой-нибудь МК на 5В. Мне это не особо нужно, но кому-то наверняка потребуются 5В, ведь не одними атмегами и кортексами живем.
Проект
Теперь к главному — к проекту. Выполнен он в Altium Designer, исходник проекта открыт, библиотеки для AD так же открыты, если вдруг кому-то понадобятся. Для тех, у кого нет Altium-а, я выгрузил все необходимые файлы и самое главное — Gerber-файлы для заказа печатных плат.
- AltiumProject — исходный проект в AD19
- Documents — принципиальная схема в формате PDF и спецификация (BOM)
- Manufacture — набор файлов для производства печатной платы (Gerber и NC Drill)
- Mechanical — 3D модель устройства
Панелизация
Мне предстояло заказать не 10 плат для себя, а несколько больше, поэтому было решено собрать в панель. Наверняка в будущем я так же буду собирать себе минимум по 10-20 штук данных преобразователей, а осуществлять установку компонентов на 10 плат сразу гораздо удобнее и быстрее. Так же решил сразу заказать 100 плат, ведь все равно пригодятся в дальнейшем, а у китайских лоукостеров (сам заказывал на PCBway) ценовая политика строится так, что 100 плат стоят как 60.
В итоге у меня заказ был на 10 панелей по 10 плат, толщина текстолита нестандартные 2 мм, что несколько увеличило стоимость. С доставкой заказ вышел в 98$ или 0,98$/шт. Толщину выбрал больше, т.к. при 2 мм текстолите он идеально плотно вставляется между выводами разъемов PLS, а это облегчает монтаж, ну и дополнительная жесткость и прочность платы как бонус.
Спустя некоторое время ко мне приехали вот такие панельки:
А так же и трафарет для нанесения на них пасты:
Для тех, кто захочет собрать себе данный преобразователь на github в папке Manufacture имеются gerber-файлы и для единичной платы, и для панели на 10 плат, как на фото.
Сборка и тестирование
Так как устройство простое и состоит всего из 18 компонентов, то ошибиться тут особо не где, все заработало сразу, единственное откуда могут придти проблемы — это монтаж, обычно если что-то не работает, то смотрите на пайку разъема USB и корпуса QFN, все остальное не должно вызывать проблем. Все резисторы, конденсаторы и светодиоды имеют размер 0603, тоже не должны вызывать проблемы при пайке феном или в печке, да и паяльником тоже вполне под силу даже новичку.
После сборки 60 штук нужно было проверить перед рассылкой, я сделал просто — взял разъем PBD-4, который является ответной частью для PLD-4, на нем закоротил ноги RX и TX, чтобы получить «эхо», то есть отправленные с терминала данные тут же принимались им самим. И собственно не забываем подать 3.3 или 5В на выводы VREF и GND разъема.
Получаем простой и быстрый способ протестировать устройства. Тестировал с терминалом YAT, просто отправляя строку и если все хорошо, то она тут же прилетала обратно:
Финал
Как результат данного мелкого проекта стала рассылка преобразователей по десятку городов, для конечного получателя стоимость преобразователя вышла в 375 руб/шт + пересылка 1 классом авиапочтой еще 175 руб. В теории можно было сделать еще дешевле, заказав компоненты в Китае, а не на digikey, но мне так спокойнее, когда я уверен, что Samsung это все таки Samsung, а Yageo таки Yageo.
На самом деле дешево получилось по одной простой причине — в проекте нет коммерческой составляющей. Если накинуть сюда все временные расходы, а так же прибыль, то цена была бы не такая интересная, благо задачи «заработать» не стояло.
Надеюсь кому-то данный проект будет интересен и вы его повторите без проблем. Для удешевления на github есть описание замен, если вы не сможете купить позиции по part-number из ВОМа.
Источник
Избавляемся от помех и наводок с USB-изолятором: просто, дёшево, эффективно
Коротко о главном: Цена – 5-6$ (На таобао. На Али — дороже). Скорость – USB 2.0 Full Speed, Устройства с питанием от шины USB работают плохо – не хватает тока, но доработка возможна.
Что это такое, и зачем оно может вам понадобится? (Далее абзац – максимально просто и понятно, для гуманитариев, технарей попрошу с советами не лезть).
Это устройство обеспечивает гальваническую развязку (то есть, ток перестает течь) порта USB. Обычному пользователю такое нужно нечасто, так как сценарии его применения очень специфические, но часто, столкнувшись с проблемами, которые можно решить этим устройством, большинство пользователей так и не находят им правильного решения. Самая распространенная проблема – наводка на звуковой тракт (шумы, помехи, искажения), при одновременном подключении источника по USB и аудио входам. Расскажу про них на своем примере. У меня есть синтезаторы Yamaha PSR E-413, Casio CT-X5000, я их подключаю к компьютеру для использования в качестве устройства воспроизведения MIDI файлов (всё работает нормально), и хочу это самое воспроизведение оцифровать, с помощью внешней или встроенной звуковой карты. (вот тут уже появляются проблемы). Как только подключу синтезатор и звуковую карту к друг другу (при уже подключенном USB порте), сразу из динамиков синтезатора, даже если выкрутить громкость на минимум, становится слышен писк (в случае с Casio) или гул (в случае с Yamaha). Соответственно, эти помехи присутствуют и в записи, что делает её непригодной для использования. Причина простая – после подключения обычным, аналоговым кабелем, в системе появляются два «земляных» провода, и через них, наводки попадают на вход звуковой карты. Другой сценарии – у вас дома небольшая студия, гитары, синтезатор, микшер, и вы решили записать ваше выступление в компьютер, специально для этой цели купили хорошую, дорогую звуковую карту, подключаете её к компьютеру и к микшеру, и в записи получаете ужасный фон и треск. Проблема опять в «второй земле» (которая на этот раз, получается через общую шину заземления), через которую наводки попадают на вход.
Решение этой проблемы имеет несколько вариантов, и у всех свои особенности и недостатки, расскажу об некоторых из них.
- Убираем второй земляной провод, перерезав его или в аудио кабеле, или в USB кабеле. Решение ОЧЕНЬ плохое, так как в случае перерезания земли в аудио кабеле, наводки хотя и уменьшатся, но вы получите много новых – земля в USB кабеле не предназначена для работы в качестве таковой для источников звука. А если перережете массу в USB кабеле, то результат может быть ещё более плачевным – работать то будет, но если вы случайно отсоедините аудио кабель от одного из устройств, то порты USB повиснут в воздухе, и вполне могут сгореть – были прецеденты в моей практике.
- Ставим изолирующий аудио трансформатор. Это самое простое решение, но имеет и свои минусы – любой трансформатор вносит искажения в звук, а такой, который их вносит в минимальном количестве, может стоить и долларов 200, а то и больше.
- Применяем USB изолятор – наиболее практичное и элегантное решение, которое имеет много плюсов, но имеет и некоторые недостатки, которые, впрочем, легко можно исправить. (об этом поговорим далее)
Что касается технарей, думаю, объяснять вам, для чего может понадобится USB изолятор – смысла нет. Тут и подключение осциллографов и анализаторов к «горячим» источникам, поиск и локализация разных глюков, и многое другое. Так что переходим собственно к герою обзора.
Сердцем данного изолятора является микросхема ADUM3160 – одна из наиболее доступных и базовых среди USB изоляторов от фирмы Analog Devices. Поддерживаются режимы USB Low Speed, USB 2.0 Full speed. Поддержки High speed – нет. В отличие от рекомендованной производителем схемы включения, китайцы, в целях экономии ресурсов, разработали собственную «обвязку, которая, хотя и работает, но обеспечивает крошечный ток на выходе, и соответственно, прожорливые устройства, которые берут питание от USB порта, работать не будут.
Качество изготовления, традиционно для китайских фирм, входящих в холдинг “Noname”, очень высокое и соответствует всяким ISO 9001, кто бы сомневался. Тут и не отмытый флюс, и криво припаянный USB разъем, и видавшее всё компоненты, заботливо собранные на лучших свалках Китая. Но как ни странно, всё более-менее работает, и проблем с стабильностью нет.
Устройство снабжено аж тремя разноцветными светодиодами и одним DIP переключателем, который служит для выбора режима работы (USB 2.0 Full speed/low speed)
Красный – горит, когда на устройство подано питание.
Синий – горит, когда выбран режим USB 2.0 Full Speed (как можно убедится по фото, светом синего светодиода можно сбивать дроны и слепить пролетающих мимо ястребов)
Зелёный – горит, когда выбран режим USB 2.0 Low Speed. (для чего этот режим, я так и не понял, большинство устройств в таком режиме работать отказываются)
Изолятор в системе никак не «видится» — он совершенно «прозрачный», и просто обеспечивает развязку. Работа с устройствами, у которых имеется свой источник питания, проблем не вызывает – всё работает стабильно, без провалов в скорости и «отваливания» устройства. А вот что касается устройств, которые берут питание с USB – то тут ждёт беда. Максимальный выходной ток, при котором напряжение на выходе держится в районе 5 вольт, около 50мА. В переводе на человеческий это значит, что всякие мелкие программаторы, анализаторы, переходники USB<>LPT, USB<>RS-232 работать будут, а вот USB осциллографы, звуковые карты, и прочие «энергичные» потребители – работать не будут. Приведу список того, что работает, и что не работает через этот изолятор.
- Программаторы Microchip PicKit 2, PicKit 3 (только, если прошиваем «голый» МК. Если в обвязке есть потребители, типа ЖК экрана или чего-то другого, то тогда будут глюки)
- USB<>RS-232 переходники типа CH-340, PL-2303 и некоторые другие.
- Анализатор Saelae Logic
- Принтер HP LaserJet CP 1025 Color
- Принтер HP LaserJet 2015n
- Флешка SanDisk Cruzer Contour 8GB
- Синтезатор Yamaha PSR E-413
- Синтезатор Casio CT-X5000
- Осциллограф Hantek DSO-2090.
- Звуковая карта Behringer U-CA202
- Звуковая карта Lexicon Alpha
- Мобильные телефоны (даже в режиме передачи файлов)
- ТВ Тюнер Astrometa DVB-T2
- Внешние жесткие диски, в том числе, и с использованием SSD.
- Зарядное устройство Turnigy AccuCel-6 80W
Так как я брал этот изолятор для применения с синтезаторами, вопрос неработоспособности некоторых устройств для меня не актуален, но я на всякий случай, сделал простой тест – выпаял преобразователь B0505, и на выходной каскад подал питание от отдельного, трансформаторного блока питания 5 вольт 350мА (зарядка от Nokia). Всё что не работало, заработало без сучка и задоринки. (разумеется, кроме внешних жестких дисков, которым не хватило этих самих 350мА). Так что, в случае необходимости подключения прожорливой нагрузки, просто заменяем преобразователь на более мощный, или подаём питание на выходной каскад с отдельного, гальванически развязанного блока питания.
И под конец, напомню ещё раз. Скорость у устройства — USB 2.0 Full speed, т.е. 12мбит, т.е. скорость копирования файлов, в лучшем случае, будет составлять не более 1.5мб в секунду. И хотя с применяемыми мной измерительными приборами это проблем не вызвало, вполне вероятно, что некоторое конкретное устройство в таком режиме не будет полноценно работать. К сожалению, протестировать весь спектр устройств у меня возможности нет, так что перед покупкой уточняйте, насколько ваше устройство может работать в режиме USB 2.0 Full Speed.
Источник