RSS блога
Подписка
Модуль 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. На текущий момент — там и трехмерная визуализация присутствует и автотрассировщик. Плата мелкая — выбор сделан.
Схема не сложная, выбирал компоненты из доступных на складах (думал заодно протестировать полный цикл от одного поставщика — JLCPCB). Прикинул по справочнику Стеля размер платки — получил 20х20мм. Вроде нормально. Нарисовал схему, раскинул детальки, включил автотрассировку и… получил плату со второй итерации. Опс. Так скоро не ожидал, начал смотреть, удобны ли эти 20х20 — понял, что не очень. Уменьшил размеры, сделал продолговатую плату, с возможностью припаивания на плату. Внешне получалось примерно так:
Вроде бы нормально, но трассировка не завершается, неразведенными остаются от 3 до 9 линий. Менял, компоновал — не выходит. Заодно пощупал принцип автотрассировщика, он начинает работать, когда есть свободное время, но китайцы трудолюбивый народ, и начиналась трассировка один раз из 10-ти. Почитал, что можно скачать модуль трассировщика локально, и запускать тот-же автотрассировщик локально. И да — это работает каждый раз :) Стало чуть быстрей, но не разводится все-равно.
Решил сделать третью итерацию, расположив все пины с одной стороны — это с одной стороны позволит размещать модуль как в горизонтальном расположении на плате, так и в вертикальном, заодно и подправит геометрию. Итого — одна сторона ограничена необходимым количеством пинов, вторая — разъемом Type C. И третья итерация развелась с третьей попытки. Получилось так:
Дальше — заказ плат, заказ компонентов, неувязка с питанием, но уже переделывать не хотелось, отбрасывание варианта как сборки на заводе, так и трафарета. Решил не заморачиваться пока.
Время, ожидание, результат:
Часть железок не доехало, поставил то, что было, спаял — не работает. Опс… Модуль определяется в системе как 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, который можно и вынести на достаточное расстояние. Прошивается на 921600 без проблем, с обоих входов.
Нажатием на среднюю кнопку — снимается питание с нагрузки (из-за недочета и с ch330n, т.е. порт отваливается в системе, можно просто использовать вместо выдергивания шнурка), нажатием на крайнюю кнопку — прижимается к земле пин, подключенный к ext выводу. В моем случае — это GPIO0, для перевода модуля в режим программирования.
По итогу — получился вполне неплохой модуль, для использования в своих поделках. Спаял себе еще несколько, заодно выявил, что ch340n тоже работает, но не работает свежевынутый из ленты ch330n. Обратил внимание, что один модуль при первом (абсолютно первом) включении стартовал дольше обычного, затем определялся моментально. Из всей совокупности предполагаю, что внутри какая-то программируемая логика, которая при первом включении что-то в себя прописывает, и если неудачно — то ch330n остается в коматозе навсегда. Но это только предположение.
Вот несколько фото, для понимания итоговых размеров.
В общем — теперь у меня есть свежая кучка преобразователей, которые буду использовать везде, где они нужны.
Паяются просто паяльником (у меня 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кОм на зеленом, для получения схожей яркости. Еще зеленый и красный светодиод — лучше поменять местами, так более логично при использовании, ИМХО.
Себестоимость комплектующих не считал, однозначно это количество получилось с диким оверпрайсом. Но не в деньгах же счастье… а в их количестве :) Удачи всем.
Задача изначально казалась простой. 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. На текущий момент — там и трехмерная визуализация присутствует и автотрассировщик. Плата мелкая — выбор сделан.
Схема не сложная, выбирал компоненты из доступных на складах (думал заодно протестировать полный цикл от одного поставщика — JLCPCB). Прикинул по справочнику Стеля размер платки — получил 20х20мм. Вроде нормально. Нарисовал схему, раскинул детальки, включил автотрассировку и… получил плату со второй итерации. Опс. Так скоро не ожидал, начал смотреть, удобны ли эти 20х20 — понял, что не очень. Уменьшил размеры, сделал продолговатую плату, с возможностью припаивания на плату. Внешне получалось примерно так:
Вроде бы нормально, но трассировка не завершается, неразведенными остаются от 3 до 9 линий. Менял, компоновал — не выходит. Заодно пощупал принцип автотрассировщика, он начинает работать, когда есть свободное время, но китайцы трудолюбивый народ, и начиналась трассировка один раз из 10-ти. Почитал, что можно скачать модуль трассировщика локально, и запускать тот-же автотрассировщик локально. И да — это работает каждый раз :) Стало чуть быстрей, но не разводится все-равно.
Решил сделать третью итерацию, расположив все пины с одной стороны — это с одной стороны позволит размещать модуль как в горизонтальном расположении на плате, так и в вертикальном, заодно и подправит геометрию. Итого — одна сторона ограничена необходимым количеством пинов, вторая — разъемом Type C. И третья итерация развелась с третьей попытки. Получилось так:
Дальше — заказ плат, заказ компонентов, неувязка с питанием, но уже переделывать не хотелось, отбрасывание варианта как сборки на заводе, так и трафарета. Решил не заморачиваться пока.
Время, ожидание, результат:
Часть железок не доехало, поставил то, что было, спаял — не работает. Опс… Модуль определяется в системе как 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, который можно и вынести на достаточное расстояние. Прошивается на 921600 без проблем, с обоих входов.
Нажатием на среднюю кнопку — снимается питание с нагрузки (из-за недочета и с ch330n, т.е. порт отваливается в системе, можно просто использовать вместо выдергивания шнурка), нажатием на крайнюю кнопку — прижимается к земле пин, подключенный к ext выводу. В моем случае — это GPIO0, для перевода модуля в режим программирования.
По итогу — получился вполне неплохой модуль, для использования в своих поделках. Спаял себе еще несколько, заодно выявил, что ch340n тоже работает, но не работает свежевынутый из ленты ch330n. Обратил внимание, что один модуль при первом (абсолютно первом) включении стартовал дольше обычного, затем определялся моментально. Из всей совокупности предполагаю, что внутри какая-то программируемая логика, которая при первом включении что-то в себя прописывает, и если неудачно — то ch330n остается в коматозе навсегда. Но это только предположение.
Вот несколько фото, для понимания итоговых размеров.
В общем — теперь у меня есть свежая кучка преобразователей, которые буду использовать везде, где они нужны.
Паяются просто паяльником (у меня 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кОм на зеленом, для получения схожей яркости. Еще зеленый и красный светодиод — лучше поменять местами, так более логично при использовании, ИМХО.
Себестоимость комплектующих не считал, однозначно это количество получилось с диким оверпрайсом. Но не в деньгах же счастье… а в их количестве :) Удачи всем.
Самые обсуждаемые обзоры
+66 |
2871
116
|
+49 |
3161
64
|
+27 |
1983
33
|
+50 |
1862
34
|
Ну ок, при сильном желании можно было сдвинуть. :)
— они трухольное на устанавливают, и подозреваю что usb-с попадает сюда
— они только одну сторону паяют.
— «лишние» компоненты в той же посылке они отправить не могут. Т.е. заставить из запаять одну сторону и получить от них же компоненты в этой же посылке чтобы самостоятельно запаять — не получится.
Отменил же не просто так. Там букет стопов нарисовался.
Хотелось красиво и удобно. Как-то получилось :)
И все-равно для встраивания — не очень удобный вариант, плюс габариты у того модуля раза в 2-2,5 больше.
Мне показался более осмысленным вариантом — свое сделать.
даже странно что одна
я вроде и другие видел такие платки
…
1)
2)
Ну без кнопок
Интересно, как быстро китайцы поставят эту плату на поток и она появится на Али? :-)
Для массового рынка ее на более простой преобразователь переделывать нужно. Так что — возможно и никогда :)
Площадь пятачков большая, паяться удобно, ток должны пропускать приличный.
Брал тут:
Подумываю перевести питание ноутбуков на type-c
Ну это так, «вряд-ли». ))
У меня была подобная идея, те же поиски на Али, те жё мысли насчет своего решения… но ленивый мозг увел к готовым костылям )))
https://aliexpress.ru/item/item/1005001672345014.html
+
https://aliexpress.ru/item/item/4000726122018.html
или на крайняк: https://aliexpress.ru/item/item/4000478737800.html
Увы такие костыли работают не стабильно (
Поэтому придеться колхозить с готовыйм распаянным портом… однако так проще и быстрее.
За регбер особая благодарность, если китайцы не подоспеют в бл. будущем, может и понадобиться.
Сейчас у меня 3-х вольтовые уровни. С 5В логикой тоже работает без проблем. Возможно и на 1.8В будет работать, может только номиналы выходных резисторов нужно будет изменить. Но в целом — пока все устраивает. Перестанет устраивать — сделаю новый дизайн :)
и да, каков процесс программирования ESP, нажал POWEROFF зажал EXT, отжал POWEROFF и потом EXT- так?
Да, процесс именно такой.
2. Нельзя вот так с DP DN поступать как Вы: делать ответвление и оставлять висеть в воздухе без терминации. Звенит обратно знатно, даже на USB 2.0.
3. Как вы собрались получать 20V на входе, если нет триггера?
2. Вынос хвоста для «звона» — меньше миллиметра, остальное под экранированием корпуса. Какую мощность нужно развить, что бы «звон» заметно влиял на линии? Возможно Вы в теории и правы, на текущий момент артефактов не обнаружено (это и не подтверждает их наличие, и не отвергает). Время покажет.
3. а) триггер может находиться со стороны БП, б) БП на 20В тоже подойдет :)
А у CH330 все очень незатейливо — 3.3 и только.
https://aliexpress.ru/item/item/1005001547371460.html
С китайцами вообще каждую пришедшую партию нужно проверять. Один и тот-же поставщик (в большинстве, но к счастью не все) может слать то, что сейчас имеет. И оно мало связано как с описанием, так и с выходным контролем качества у производителя.
Как бы да, по напряжению так и есть. Но ведь LT1763 — линейный стабилизатор, значит на нем будет падать мощность равная разнице напряжений умноженной на ток. А ESP вроде как до 300 мА потребляет, ну уж 100 мА точно кушать может. При 20 В на входе это будет около 1.7 Вт. LT1763 тут через минуту в защиту уйдет (или раньше). Посмотрите в даташите раздел «Thermal Considerations», там даже для 0.71 Вт идет какая-то дикая площадь печатной платы в 25 квадратных сантиметров. И это если другая сторона платы целиком медная, без дорожек.
Правда, исходя из этого, хватило бы и LM1117 в качестве стабилизатора.
А так — программирование и подача рабочего напряжения ведь не связаны между собой. Т.е. один шнурок вставил — с компа залил прошивку (5В). Затем вставляешь рабочий шнурок, и там уже 12В для тех же релюшек. При этом на выходе uart-а всегда 3.3В уровни.
Здесь больше защита от импульсных пиков при 12В питании. Да и питать не обязательно esp нужно. stm32 даже при 20В на входе не нагреет линейник.
Но, как уже выше отметили, скорее всего стабилизатор через несколько минут уйдет в защиту от перегрева, так что защищать ему от «импульсных пиков» ничего не придётся.
Вот примерно подобные импульсные помехи в целом имелись ввиду.
У меня есть любимчик в степ-даунах, при использовании большой дельты — просто использую его.
Остальные 90/% перекроет текущая схемотехника.
В большинстве применений — напряжение вряд-ли будет выше 14.4 (аккумулятор в режиме заряда).
Вот вам несколько результатов по запросу «usb type c ttl»:
https://aliexpress.ru/item/item/32874729163.html
https://aliexpress.ru/item/item/1005002032693217.html
https://aliexpress.ru/item/item/1005002032478657.html
https://aliexpress.ru/item/item/1005002032726014.html
Но с другой стороны — небыло бы этой статьи — небыло бы Вашего коммента :)
https://aliexpress.ru/item/1005001772208796.html
Хочу купить, но вдруг пришлют с одним
По ссылке в тексте — мне пришли 2МБ версии. Но это не значит, что в следующий раз придут такие-же.
С красным проводом — оригинал с 1МБ.
Очевидно, сделать кабель для подключения стандартного адаптера USB-UART было слишком просто, ТС пошёл своим путём, поэтому была разработана плата. :)