Товары из Китая

Модуль Type C to UART


Модуль Type C to UART

Была когда-то в обиходе фраза " В Греции все есть". В текущих реалиях ее можно было бы перефразировать, " В Китае все есть". И все к этому более-менее привыкли / адаптировались. В какой-то момент я поменял свой телефон с microUSB на уже всем привычный Type C. И через некоторое время оказалось, что найти дома шнур microUSB стало сильно сложнее, чем Type C. Кроме всего прочего, здесь недавно подняли тему Гайвер-лампы, которую я повторил. И снова оказалось, что программировать и питать лампу через один и тот-же Type C разъем банально удобней. Встраивать в поделки мне очень нравится модули ESP-M3. Они очень компактного размера. По-этому не имеют встроенного uart-а. Все сложилось, и я решил прикупить себе модулей Type C to UART, зашел на Aliexpress, и… ничего не нашел. НИЧЕГО, Карл. Дальнейшее развитие событий и отсыл к пословице «Хочешь сделать хорошо — либо делегируй задачу профессионалам, либо сделай сам» под катом

Задача изначально казалась простой. Type C уже давно в обиходе, значит и преобразователей китайцы должны были наштамповать. На уже привычной элементной базе. Но потратив на поиски такой банальщины несколько дней — я понял, что готового ничего интересного нет.

В процессе поиска наткнулся на сайт человека, который столкнулся с похожей проблемой. Прошерстил github, и понял, что полностью устраивающего меня варианта в доступе нет. Ок. Остается делегирование, либо сам. Я решил, что вариант «сам» — лично мне интересней.

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

С задачей понятно, устройство должно:

1) Быть Type C to UART преобразователем, очень желательно, отлично работающим на 921600 (практически все поделки от esp отлично шьются на этой скорости). Соответственно — есть возможность уменьшить время однотипной задачи — уменьшаем.

2) Быть с разъемом Type C Female, т.е. «мама», для встраивания в готовые устройства.

3) Этот же разъем предполагается использовать для питания устройства, поскольку до 100Вт (китайских 🙂 ) можно использовать один и тот-же разъем, это удобно и аккуратно.

4) Поскольку завелось все с момента очередного всплытия gyver lamp — то на ней и обкатываем. Строить ее я собрался на ESP-M3. И это вносит ограничение на обновление по воздуху, поскольку там используется esp8285, а у нее всего 1МБ флешка. Но об этом чуть ниже вспомним. Соответственно — распиновку подгоню под эту плату, для аккуратности.

5) Опять же — использую вполне конкретную плату, соответственно GPIO0 для прошивки нужно дергать вручную. Учтем.

6) На данной плате будут и другие устройства, многим вполне хватит 500мА при 3.3В, но реле / силовая часть вполне может питаться от 12В и выше. Учтем.

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

8) Желательно, но не обязательно, что бы можно было спаять все одним паяльником, без применения паяльной пасты / фена / печи.

Именно первая ссылка подсказала, что есть у китайцев CH330N в SOP-8 корпусе, для которой еще и кварц не нужен. Ее и было решено использовать. Есть еще CH340N, в этом же корпусе. И по факту, как я понял — это какая-то программируемая логика, подгоняющаяся под конкретную задачу на финальном этапе. У меня из 10шт в ленте — девять 330N, один 340N.

С питанием — у меня уже есть опыт использования KF33, но опять-таки начало приходить много подделок, плюс выбирал из доступного, плюс что-то свеженькое, проект то некоммерческий. Остановился на LT17633 высокое допустимое входное напряжение, до 20В, мало обвязки, достаточная нагрузочная способность, низкое собственное потребление Цена в районе $0,7 когда подбирал (по факту, скорее всего из-за временного отсутствия в результате цена оказалась $7, что запредельно, пришлось искать на али, нашел).

Свои изделия делаю в KiCad, но и здесь решил поэкспериментировать, поигравшись с автотрассировкой в EasyEda. На текущий момент — там и трехмерная визуализация присутствует и автотрассировщик. Плата мелкая — выбор сделан.

Модуль Type C to UART

Схема не сложная, выбирал компоненты из доступных на складах (думал заодно протестировать полный цикл от одного поставщика — JLCPCB). Прикинул по справочнику Стеля размер платки — получил 20х20мм. Вроде нормально. Нарисовал схему, раскинул детальки, включил автотрассировку и… получил плату со второй итерации. Опс. Так скоро не ожидал, начал смотреть, удобны ли эти 20х20 — понял, что не очень. Уменьшил размеры, сделал продолговатую плату, с возможностью припаивания на плату. Внешне получалось примерно так:

Модуль Type C to UART

Вроде бы нормально, но трассировка не завершается, неразведенными остаются от 3 до 9 линий. Менял, компоновал — не выходит. Заодно пощупал принцип автотрассировщика, он начинает работать, когда есть свободное время, но китайцы трудолюбивый народ, и начиналась трассировка один раз из 10-ти. Почитал, что можно скачать модуль трассировщика локально, и запускать тот-же автотрассировщик локально. И да — это работает каждый раз 🙂 Стало чуть быстрей, но не разводится все-равно.

Решил сделать третью итерацию, расположив все пины с одной стороны — это с одной стороны позволит размещать модуль как в горизонтальном расположении на плате, так и в вертикальном, заодно и подправит геометрию. Итого — одна сторона ограничена необходимым количеством пинов, вторая — разъемом Type C. И третья итерация развелась с третьей попытки. Получилось так:

Модуль Type C to UARTМодуль Type C to UART

Дальше — заказ плат, заказ компонентов, неувязка с питанием, но уже переделывать не хотелось, отбрасывание варианта как сборки на заводе, так и трафарета. Решил не заморачиваться пока.

Время, ожидание, результат:

Модуль Type C to UARTМодуль Type C to UART

Часть железок не доехало, поставил то, что было, спаял — не работает. Опс… Модуль определяется в системе как USB-SERIAL CH340 но дальше — непонятки. Пока разбирался — обнаружил, что впаянная микросхема CH340N, хотя 9 оставшихся на той-же ленте CH330N.

В общем — проблема ни в схемотехнике и ни в микросхеме. Все завелось. Сразу стало понятно, что 100мкФ не удержат питание 2сек, соответственно можно не ставить, развязывающий диод — заменить перемычкой. У модуля есть возможность быть запитанным как от впаянного разъема Type C, так и от любого другого варианта USB, четыре контакта выведены специально для этого. Если использовать встроенный разъем — то можно использовать связку USB A — Type C и Type C — Type C. Если Type C на 4 проводка — то с другой стороны должен быть только USB A (компьютер). Если ответная часть в БП или свежую яблочную продукцию — то питание не поднимется. На вход можно подавать до 20В, т.е. можно подать 12В, с того-же контакта питать силовую часть 12В, а 3.3В нагрузка будет запитана от 3.3В. До 20В напряжение поднимал — все отлично.

Дальше — пришли свежезаказанные ESP-M3, подключил — и меня ждал сюрприз. Посмотрел визуально — отличаются от оригинальных плат от DoIt. Расстроился. Но подключив — обрадовался. В свежих модулях отсюда используются более свежие esp8285 (ESP8285H16), у которых на борту — 2МБ флешка и индустриальным диапазоном температур. И это радует — можно и ОТА использовать, и на улицу выставлять. Просто замечательно.

Тестовая сборка выглядит так:

Модуль Type C to UART

Сюда подпаял и отдельный модуль с Type C, который можно и вынести на достаточное расстояние. Прошивается на 921600 без проблем, с обоих входов.

Модуль Type C to UART

Нажатием на среднюю кнопку — снимается питание с нагрузки (из-за недочета и с ch330n, т.е. порт отваливается в системе, можно просто использовать вместо выдергивания шнурка), нажатием на крайнюю кнопку — прижимается к земле пин, подключенный к ext выводу. В моем случае — это GPIO0, для перевода модуля в режим программирования.

По итогу — получился вполне неплохой модуль, для использования в своих поделках. Спаял себе еще несколько, заодно выявил, что ch340n тоже работает, но не работает свежевынутый из ленты ch330n. Обратил внимание, что один модуль при первом (абсолютно первом) включении стартовал дольше обычного, затем определялся моментально. Из всей совокупности предполагаю, что внутри какая-то программируемая логика, которая при первом включении что-то в себя прописывает, и если неудачно — то ch330n остается в коматозе навсегда. Но это только предположение.

Вот несколько фото, для понимания итоговых размеров.

Модуль Type C to UARTМодуль Type C to UARTМодуль Type C to UARTМодуль Type C to UARTМодуль Type C to UARTМодуль Type C to UARTМодуль Type C to UART

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

Паяются просто паяльником (у меня T12 и жало K).

Питание можно подавать до 20В, без ущерба для платы.

Type C разъем можно припаивать, а можно выносить на 4 проводках.

Кнопкой можно временно приземлять любой нужный контакт при программировании.

Если есть желающие повторить — гербер по ссылке https://drive.google.com/file/d/1y0GJEGyJkRDQfeLgmM0MGsR4YLpyOQaM/view?usp=sharing

Разброс по параметрам можно использовать достаточно приличный, я поставил 4,7кОм, вместо 5,1кОм, 100nF вместо 10nF, резисторы по 20 Ом. Токоограничивающие резисторы, возможно, придется подбирать под используемые светодиоды. В паре, как на схеме — используются одинаковые (я поставил по 1,5кОм), но если использовать два отдельных, то у меня на первой плате получилось 1кОм на красном и 4,7кОм на зеленом, для получения схожей яркости. Еще зеленый и красный светодиод — лучше поменять местами, так более логично при использовании, ИМХО.

Себестоимость комплектующих не считал, однозначно это количество получилось с диким оверпрайсом. Но не в деньгах же счастье… а в их количестве 🙂 Удачи всем.


СМОТРИ ТАКЖЕ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *