...

пятница, 29 ноября 2019 г.

Простой USB-UART преобразователь с гальванической развязкой

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

У меня стояла задача сделать для себя любимого простой, дешевый, компактный и главное гальванически развязанный преобразователь 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 из ВОМа.

Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий