У меня стояла задача сделать для себя любимого простой, дешевый, компактный и главное гальванически развязанный преобразователь USB-UART. Основной кейс для меня — отладка через printf по uart, да да, я в курсе про SWO и иные методы, но мне удобнее работать именно с uart-ом. Наличие изоляции для меня критично, т.к. в основном мне приходится проектировать силовые преобразователи, которые могут легко спалить, например, usb порт моего ноутбука. Правда если у вас в устройствах нет высокого напряжения, то расслабляться тоже не стоит, какие-нибудь 12В так же прекрасно могут вывести из строя ваш ПК. Разумеется не стоит забывать и о помехах, гальваническая развязка частично препятствует попаданию всякой гадости в usb порт.
Как видите у развязанных преобразователей интерфейсов одни плюсы, но тут некоторые возразят: «Зачем? Все же есть на Алиэкспресс». Тут ответ простой — меня не устроили ни цена готового устройства, ни его габариты, ни качество. В итоге за пару часов я «изобрел велосипед», который удовлетворит все мои хотелки и после изготовления получилось вот так:
Хотите обезопасить свои usb порты и узнать зачем так много? Тогда поехали :))
Концепт
Изначально я хотел лишь сделать себе парочку «свистков» для отладки, а в будущем еще и использовать их для отправки заказчикам, например, чтобы безопасно обновить прошивку через встроенный bootloader или снять логи, если что-то пошло не так. Отсюда и была задача сделать очень дешевую железку, чтобы не жалко было раздавать направо и налево. Правда все пошло немного иначе…
В своем телеграм-канале я сделал объявление с предложением присоединиться к заказу, ведь при увеличение партии уменьшалась стоимость устройства. В итоге за день набралось заказов на 50 штук + 10 штук себе, больше набирать не стал уже. Собственно поэтому на КДПВ не 10 штук, а несколько больше. Забегая вперед скажу, что такой мелкосерийный заказ позволил уменьшить стоимость одного устройства с ~640 руб до ~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-файлы для заказа печатных плат.
Все исходники проекта расположены на github
- 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 из ВОМа.
Комментарии (49)
mastergril
29.11.2019 16:10Интересно, если вместо куска текстолита в зазоре сделать прорезь, сильно улучшит характеристики? На первый взгляд на текстолите может быть влага, которая снизит его свойства.
NordicEnergy Автор
29.11.2019 16:12Вырез имеет смысл делать только под корпусом, если расстояния между выводов недостаточное. Между полигонами же есть смысл увеличить зазор, т.к. вырез по всей ширине платы сделать все равно не получится.
olartamonov
29.11.2019 16:28+3Да, но зачем?
USB-изолятор на ADuM4160 сильно универсальнее, а с учётом, что надо их ну несколько штук, будет оно 300 рублей стоить или 1300…NordicEnergy Автор
29.11.2019 16:34+2Против ADuM-а ничего против не имею, вариант развязать USB таки оптимальный, но дорого и корпус здоровый. Я просто планирую их клепать больше 2-х штук.
olartamonov
30.11.2019 12:07+2У китайцев на ADuM3160 они по 500-600 рублей готовые, типа вот например. И это очень удобно, ибо обычно одного UART мало, а используется программатор-отладчик с SWD/JTAG и UART одновременно.
sav13
29.11.2019 17:01У JPCPCB можно сделать нормальную панелизацию однотипных плат без этих извратов с фрезеровкой и дырочками между платами.
И обрезку лишнего, что немного экономит на доставкеNordicEnergy Автор
29.11.2019 17:13Ее где угодно можно сделать, но мне спокойнее самому собрать панель как мне хочется, с нужными реперными точками под pick-and-place станок и прочей прелестью.
Что касается извратов… кто-то собирает панель без фрезеровки и «дырочек»? Или может вы про скрайбирование (V-cut) говорите? Если о нем, то эта технология кое как актуальная на очень большой серии, но по своей сути бесполезна, если плата имеет НЕ прямоугольную форму. Например, закругления на углах платы не сделать, если панель под V-cut собрана.sav13
29.11.2019 17:17Именно про V-cut
Плата потом просто удобно разламывается руками.
Про круглую форму согласен, если она имеет хоть какой то смысл.
А так с этими дырочками по бокам платы немного неаккуратно смотрятся. А напильником сглаживать 100 плат как то не очень технологичноNordicEnergy Автор
29.11.2019 17:23Смысл скруглять углы платы для себя увидел, когда в процессе работы, то уронишь, то стукнешь чем нибудь — со временем он начинает рассыпаться, но опять же это мои тараканы.
А так с этими дырочками по бокам платы немного неаккуратно смотрятся
А это потому, что плата сама по себе мелкая, на размерах 50х50 мм уже ничего не видно. Хотя тут с вами соглашусь, в следующий раз возможно закажу сразу разделенные платы, т.к. время на доработку наждачкой оказалось больше, чем сэкономленное время на монтаже.
smutek_blaznu
29.11.2019 20:53У меня стояла задача сделать для себя любимого простой, дешевый, компактный и главное гальванически развязанный преобразователь USB-UART.
Ну добавили бы к имеющемуся «USB to UART» одну оптопару в одном направлении и одну в обратном, стоят копейки, как «USB to UART», так и оптопары.NordicEnergy Автор
29.11.2019 20:55Это пришлось бы колхозить на готовое устройство, а так у меня миниатюрная аккуратная плата с цифровым изолятором. Не люблю колхозные решения.
smutek_blaznu
29.11.2019 23:01-4Не люблю колхозные решения.
Тот же колхоз, только в профиль, уже бы ноутбук разработали с нуля с UART и встроенным цифровым изолятором. А оптопары можно также собрать на миниатюрной аккуратной платке с DB9 коннектором или тупо собрать на той же плате, что и микроконтроллер. Платку с оптопарами можно было бы и к обычному PC с COM портом подключить при необходимости. Дорогой цифровой изолятор для COM порта — это как для лошади двойной турбонаддув, IMHO.
(временно на этом аккаунте, потом вернусь на «crustal»)NordicEnergy Автор
30.11.2019 01:16Дорогой? Он стоит 1 бакс. DB9 миниатюрный? У меня плата в 5 раз меньше одного этого разъема, видимо у нас разное понятие о "миниатюрности".
DenisHW
29.11.2019 23:46+2Спасибо за статью.
У вас на входе REGIN нет bypass конденсвтора. А еще, там стандартно ставятся ограничители выбросов на стабилитронах. А так, при большой индуктивности кабеля можно повредить устройство.
И RST вход тоже желательно фильтровать.
Это все для надежности и EMC.NordicEnergy Автор
30.11.2019 01:25Да, все верно, но тут осознанно решил не ставить защитную сборку (диоды+tvs) и ещё один кондёр на regin, чтобы место сэкономить. У меня в таком виде ср2102 стоит на отладке и в паре проектов, проблем не возникало. Хотя и провод у меня 50 см и нормального качества, подозреваю проблемы могут быть на длине больше метра и с тонкой жилой, там индуктивность уже высокая.
А на счёт rst, обычно везде он в воздухе висит, все таки лучше поставить туда какие нибудь 0.1 мкФ прям на ногу?
DenisHW
30.11.2019 01:46+1Я обычно перестраховываюсь, ставлю 100 нан, да. Думаю, что если в воздухе висит, то может и пусть висит, а вот если к нему цепь подключена, как у вас резистор (уже антенна), то наверное, лучше перестраховаться.
NordicEnergy Автор
30.11.2019 10:41Тогда в следующей ревизии добавлю, действительно лишним не будет. Возможно есть смысл тогда рассмотреть 0402 или двухсторонний монтаж и все таки поставить tvs-ы в каком нибудь мелком SC-70-6 и на REGIN кондер. В общем надо покрутить платку еще… Спасибо за советы)
grando_luddito
30.11.2019 20:27+1Вижу кучу плат друг на друге, царапающихся и постоянные ошибки юного жулика:
"12В так же прекрасно могут"
"Так же решил сразу заказать 100 плат"
"в будущем я так же буду собирать себе"
"А так же и трафарет"
в проекте нет коммерческой составляющей.
Да-да, как и в этом клоне автора R4ABI:
https://toster.ru/q/275846
Аналоги преобразователя на реальные 1500В (ADUM3201ARZ):
https://ru.aliexpress.com/item/32884972438.html
https://ru.aliexpress.com/item/4000406072472.html
Адрес почты hardware.sitara@gmail.com засветился на хабре у R4ABI, на
https://github.com/chertov/Invertor/blob/master/README.md
где связь с ютуб-каналом Ильи-нордика
https://www.youtube.com/channel/UC5By7iwP9gssozXwc2Ydw4A
"По определённым причинам пришлось пересоздать канал просто."
https://www.youtube.com/watch?v=6vyxp9pLixo&lc=UgzrWFevMJsjZGktcV14AaABAg.8XuS4KJtU-c8XuZQtssqIr
Nordic Energy: "пишите на почту ilya.galkin@nordic-energy.ru"
https://www.youtube.com/watch?v=jAVQnPgYp6I&lc=Ugz3Tv1QShzXNEklK7V4AaABAg.8iimiPUnCi18iin5ogCc8TNordicEnergy Автор
30.11.2019 22:28+1Да вы просто Шерлок Холмс, целое расследование провели :) Но насколько я знаю не для кого не секрет, что r4abi это я (все таки это позывной, который привязан к ФИО) + вроде и тайной это никогда не было. Если у вас есть каике-то ко мне финансово-юридические претензии, то добро пожаловать в суд, где вы покажите договор, выскажите свою точку зрения и если я буду не прав, то все ваши претензии удовлетворят.
Если же я вам просто не нравлюсь, то могу лишь посочувствовать — от данного недуга наука еще лекарства не открыла. Хотя можете минусануть карму (наверное уже сделали), минусануть статью, наверняка станет полегче.
P.S. спасибо что рекламируете меня под разными статьями, напишите в личку, буду платить вам комиссию 10% с новых заказов за помощь в их поиске))
grando_luddito
01.12.2019 13:13Ваша просветительская деятельность похвальна, раз уж "поколение Z" книжки читать не хочет, из-за клипового мышления видео лучше понимает. Но зачем документацию к ранее опубликованным статьям убрали? Студенты не прочтут теперь.
можете минусануть карму (наверное уже сделали), минусануть статью
Издеваетесь? Не могу и никогда положительной кармы не было.
А вам личный, как минимум трёхголовый ботнет на хабре даёт возможности: продажи инвайтов, платной накрутки кармы, многократного минусования и выдавливания оппонентов.
Сколько бы зрителей было у ютуба, если бы там банда старожилов затыкала неугодные мнения вплоть до невозможности новым участникам выкладывать свои видео?
NordicEnergy Автор
01.12.2019 13:46книжки читать не хочет, из-за клипового мышления видео лучше понимает
Не вижу в этом ничего плохого, видео разные бывают. У меня они на канале в основном около-развлекательные, разве что кроме курса по альтиуму, а вот лекции из MIT и других универов топовых явно не хуже книг. Правда читать конечно тоже надо, не спорю.
Но зачем документацию к ранее опубликованным статьям убрали?
Вы полагаю про ups. Он довольно старый и смотря на документацию 3-4-х летней давности становится грустно «как я вообще такое мог сделать», поэтому берегу нервы студентов. Я думаю это нормальный процесс осознавать, что раньше было хуже, чем сейчас.
продажи инвайтов, платной накрутки кармы, многократного минусования и выдавливания оппонентов
Вот это вы выдали)) У меня десяток инвайтов, я готов их продать, но кому? Вряд ли кому-то нужно покупать инвайт и накручивать карму. Выдавливать оппонентов 3-мя голосами? Да и я не занимаюсь таким, вроде мы довольно свободно общаемся и вам никто не ставит минусов, если заметили.
банда старожилов затыкала неугодные мнения
О, не поверите, но мои комментарии под чужими статьями тоже иногда улетают в глубокий минус, если мнение не совпадает с автором и большинством. Это нормальный процесс, большинство карает меньшинство, демократия.
grando_luddito
01.12.2019 14:51У меня десяток инвайтов, я готов их продать, но кому?
В магазинах аккаунтов — от 50 долларов продаются. Накрутка кармы тоже. Это могут покупать корпорации, которые хотят что-то впаривать. Или имидж улучшать, например при рекламном бюджете 1 млн. долл. в год на ГМО.
Это нормальный процесс, большинство карает меньшинство, демократия.
нет, это меньшинство, написавшее статью или купившее карму, карает большинство. Минус за комментарий не равен минусам в карму с последующей возможностью отвечать 1 раз в неделю или вообще быть выкинутым.
"В особо острых темах на Хабре надо быть либо "как все" (конъюнктурщиком, то бишь), либо придётся распрощаться с кармой. Причём, очень многие минусуют в карму тупо "из вредности".
Даже самые конструктивные и обоснованные аргументы нещадно минусуются "по инерции". Поэтому давно уже свалил оттуда..."
https://pikabu.ru/story/karma_khabra_6449929NordicEnergy Автор
01.12.2019 14:59В магазинах аккаунтов — от 50 долларов продаются. Накрутка кармы тоже.
Я даже не знал, что такие есть :D А ведь люди могли бы просто попросить, я бы и так пригласил.
Минус за комментарий не равен минусам в карму
Знакомо, поэтому последний год стараюсь не писать комментарии за пределами своих статей. У меня по классике: написал статью и +10 в карму дали, потом пару комментов написал и -20. Зря вы так ополчились на авторов, думаю многие от ситуации с кармой так же страдают как и обычные читатели. Я лично в карму не минусую, очень редко могу статье поставить и то, если там ну прям откровенная дичь.
очень многие минусуют в карму тупо «из вредности»
Есть такое, тут или смириться или уйти на другой ресурс. Я для себя русскоязычной альтернативы хабра не вижу, да и в англоязычном сегменте по железу из интересного разве что hackaday и hackster.
Mogwaika
02.12.2019 12:20+1Так что он натворил-то? Вы кулстори со своей стороны распишите подробно тут в комменте…
NordicEnergy Автор
02.12.2019 17:56-1Я всех кинул и ем детей — это все, что вам нужно знать про меня. Читайте тему на электрониксе про меня, вам понравится. Там правда как всегда без пруфов, вернее пруфы почему-то только как я парочку судов выиграл, но это ведь не отменяет того, что я ем детей? Ну и потерпевшие рассказали только свое видение, но чтиво дух захватывает, вам понравится :)) Особенно там интересно в плане уровня технических специалистов, как люди рассказывают, что невозможно сделать преобразователь 6 кВт в 2U корпусе.
Mogwaika
02.12.2019 18:43-1Да никто не выкладывает ни заданий, ни ркд, которые вы им передавали, ни фоток и подробностей… Судов с тз и договором я тоже не увидел, на словах договариваться это на свой страх и риск обеих сторон, там много мнений может быть и с третьей стороны сложно составить мнение.
Кароч, пишите больше статеек и не скрывайте старые наработки.
Strannik_rus
30.11.2019 22:28Добрый день. Прошу практического совета как разбираться в электронике как вы. Работаю киповцем, но понимая электроники нет(. Буду благодарен за ответ
constnw88
01.12.2019 11:55+1Читал разных самоучителей. Читаешь — всё понятно, книгу закрыл — забыл. Потом в командировке директора попросил объяснить по дороге (ездим далеко, времени много), объяснил, как ему его учитель физики на примере трубопровода и всё встало на места. Нужно найти не того, кто знает, а того, кто понятным вам способом объяснить азы сможет. После становится понятной литература, по которой можно до нужного уровня самостоятельно дойти.
Winnie_The_Pooh
01.12.2019 13:57Добрый день! Не рассматривали ли Вы в качестве такого изолятора bluetooth модули типа hc-04...06? Цена в районе 180 р, наличие огромного воздушного промежутка :) — вроде бы должно подходить для Вашей задачи. Или есть какие-то подводные камни? Интересны Ваши рассуждения :)
NordicEnergy Автор
01.12.2019 14:12Добрый!
Радиоканал выглядит очевидным и простым способом, тоже пару раз думал о всяких sub-1GHz, чтобы голые данные гнать, но во всех вариантах с радио довольно высокие задержки. Однозначно выше, чем просто uart. Во многих задачах это наверняка будет не критично и можно реализовать, но если система управления на мк работает приближено к реал-тайму, то задержки уже негативно сказываются.
Видел статью у ребят из НПФ Вектор, там они сделали довольно интересно — используют МК как осциллограф, то есть пишут данные с АЦП в ОЗУ в реальном времени, а потом медленно передают по CAN развязанному. Возможно вот такой подход, только с радио вместо CAN был бы интересным.Gryphon88
01.12.2019 14:29Извините, а не поделитесь ссылкой? Никак не пойму, как поставить грамотные отметки времени, чтобы периодически (в идеале — постоянно) синхронизировать состояние МК и его эмулятора на ПК.
NordicEnergy Автор
01.12.2019 15:01Конечно, вот: habr.com/ru/company/npf_vektor/blog/389123
Gryphon88
02.12.2019 00:46Извините, может, я чего-то не понял, но получается что:
1. Заводят таймер, который по прерыванию пишет в массив или кольцевой буфер пишет значение переменой, а в mail loop после всех профильных задач передают на ПК. Таймстемп здесь элементарно выводится из порядкового номера
или
2. В конце анализируемой функции или прерывания записывается в кольцевой буфер 2 значения: собственно значение переменной и значение таймера, который тикает без прерываний. Буфер передаётся из main loop
Я правильно понял принцип?NordicEnergy Автор
02.12.2019 09:54Как я понимаю при запуске по триггеру какому-то, данные из АЦП начинают писаться в буфер, например, 1000 выборок. Как только записали — передали все их на комп и построили график. То есть быстрое накопление и потом по таймеру, например, медленная передача.
grando_luddito
04.12.2019 09:52А вот так сделана 6-8 кВ развязка USB в фирменном мультиметре.
В электросчётчиках ИК канал тоже весьма суровый.
REPISOT
Откуда 2500 изоляции? У вас там нет зазора 6 мм между металлизацией. Так что вырез бесполезен.
NordicEnergy Автор
Совсем бесполезен? Никак на происходящее не влияет?
Ostrovv
Не совсем. Как-то влияет. Но заявленная характеристика не соответствуют устройству.
NordicEnergy Автор
Похоже уже на правду) Но вы правы, да, изначально была цифра 1500В, т.к. всякие дешевые TRACO POWER именно такую изоляцию имеют. Тут есть 2 варианта: написать 1500 вместо 2500 или просто отодвинуть полигоны на 1 мм каждый, а вырез увеличит путь пробоя под корпусом микросхемы.
NordicEnergy Автор
Исправил, спасибо за фидбек.
REPISOT
Обратите также внимание на это, судя по фото у вас корпус «D»:
alexeink
А с чего вы вщяди, что должно быть 6 мм? Практическое расчетное значение по текстолиту — 1 мм/1000 В.
Проверял на практике мегомметром.
Речь не о рабочем напряжении 2500В, а о тестовом.
REPISOT
www.compel.ru/lib/75270
Если вы говорите «прочность изоляции 2500», будьте добры соответствовать.
alexeink
Вы привели ссылку на требования к основной изоляции. Не думаю, что автор задумывал данный прибор для защиты людей от поражения током. Скорее всего, для стабильной работы соединения.
Так что, автор прибора может уверенно писать 2500В. Но лучше добавить — Функциональная изоляция 2500В или 2500Vac.
REPISOT
Автор «уверенно» может ничего не писать. А вот если пишет…