В какой-то момент понадобилось мне в очередной раз прошить ESP8266. Причем плата планировалась максимально компактной и малопотребляющей, да к тому же перепрошивка не планировалась. То-есть ставить на плату свой мост смысла не было.
Но меня ужасно достали эти жутко неудобные UART мосты по типу

Строятся они все в основном на 4х видах мостов:
-
CH340
-
CP2102
-
PL2303
-
FT232
Из плюсов конечно доступность и цена. Но минусов значительно больше. Нужно пихать это в USB удлинитель или хаб, платы голые и легко чего-нибудь замкнуть. Отдельно пару слов о питании.
При отладке многих малопотребляющих устройств, либо прошивки по UART- не грех взять питание с того же USB. Так вот на этих свистках питание организовано никак. Нет никаких защит, 5В либо заведено напрямую с коннектора, либо через диод, что еще хуже за счет падения напряжения. К тому-же тот же длинный удлинитель неплохо его сажает.
Ну делать так делать
Было решено собрать свой мост и это самое питание реализовать нормально. Да и вообще от основных задач отвлечься. К тому же я начинал работать с новым для меня ПО- DipTrace, и практиковаться конечно лучше на том, чего не жалко.
Мост я решил делать на CH340. Для меня это давно знакомый и хорошо себя зарекомендовавший чип и я его ставил на многие свои платы.

Ch340 это классический USB serial мост. Доступен в разных модификациях, отличающихся количеством выводов, корпусом и немного функционалом. Самый распространенный- CH340G, версия C от него отличается встроенным RC осциллятором, не требующим кварца, ее я и буду использовать.
Питание
Если сам мост задача крайне простая- USB разъем да сам чип, то схемотехника питания уже поинтереснее.
Базовые задачи были такие- 2 стабилизированные линии 5 и 3.3В и нормальная защита по току и отсечкой либо ограничением. По ходу дела я подумал- не плохо бы добавить мониторинг потребления. Это бывает нужно при разработке автономных устройств, либо питающихся от того же USB. К тому же давно хотелось сделать чегонибудь на ATTINY85 с маленьким OLED.
Так вот получилось то что получилось.
USB компьютера отдает в среднем до 1А. Итого имеем 5Вт. Из этого бюджета на выходах у нас ограничение в 500мА. 5*0.5 и 3.3*0.5 = 4.15Вт , остается 850мВт на потери и питание самого моста.
Многие решения здесь конечно излишне и сделаны просто чтобы пощупать руками такую схемотехнику. Например шунты здесь стоят по линиям питания, а не по земле как обычно. Так чтобы извлечь разницу напряжения с шунта был использован дифференциальный усилитель.

Любой линейный стабилизатор имеет падение напряжение, поэтому чтобы получить чистые 5В пришлось поставить DC DC на mt3608, создающий линию 6.6В.
Диф усилители здесь выдают напряжение с шунта, а потом мы усиливаем это напряжение для компаратора ограничения тока и АЦП системы мониторинга.
Мониторинг

Для мониторинга стоит маленький OLED диагональю 0.91 дюйма. Мозги- ATTINY85.
Как можете заметить- ног у нашей тиньки на все не хватит. У нас 2 значения тока и 2 значения напряжений. Поэтому я поставил мультиплексор, и на 4 входящих значения мы тратим 3 ноги- 2 на адресацию и 1 это собственно АЦП, на который мультиплексор будет заводить напряжения по очереди. Добавив какой-нибудь счетчик можно раздуть количество входов практически до бесконечности.
Собственно мост

Ну тут без комментариев. Выведены все ноги порта. Для защиты стоят резисторы по всем линиям. 3.3В логика организована очень просто- TX просто делителем догоняется до 3.2В, а RX у CH340 даже при питании 5В неплохо чувствует 3.3В логику.
Так-же по выходам по светодиоду, ток рассчитан около 1-2мА чтобы максимально не мешать обмену.
Плата

Плата нарисована односторонняя, соответствующая возможностям ЛУТ. На всю плату всего 2 перемычки, не считая пары нулей. Рассыпуха размера 0805.

Эх, печаль...
Нарисовав это все, и даже вытравивив плату я вдруг осознал что печально для такого питания иметь всего 1 UART. Да и с питанием я что-то замудрил, есть же INA219 практически повторяющая мою ДИФ схему. В общем желание отступило, и его заняло другое.
Подумалось мне поставить USB хаб на плату, и вытащить еще как минимум один UART. В наличии есть GL850G. Но он 4х канальный. Тогда почему бы не влепить еще и STlink и USBasp? Ну вот в это и вылилось продолжение проекта. Такой мега отладчик-программатор получается) О нем и будет во второй части.
Автор: Владислав