usbhub + usbasp + ch341 + j-link = one PCB

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Все началось с того, что мне в большом количестве понадобилось собрать/отладить устройства на базе AVR. Я взял USBASP, открыл документацию и с радостью обнаружил, что у него есть встроенная поддержка uart.

Как оказалось, потратив пару-тройку дней на поиск разнообразных драйверов, запустить такой мост под windows - задача маловероятная (с пингвинами все дружится практически "из коробки"). Если это не так - пишите в комментариях, но я не нашел ни одного работоспособного подтверждения в сети. В качестве временного решения собрал костыль: USBHUB + USBASP + USB-UART(ch340). Все работает, но как минимум - не эстетично, как максимум - устройства иногда отваливаются (с USB портами у моего старичка lenovo x230 все ок). Если подключать без USBHUBа, то заняты 2 из 3 usb портов + короткие провода (USBASP и USB-UART обычно имеют USB-разъемы сразу на плате).

Решено: изобретаю велосипед с подключением всего окружения на одной плате одним проводом с разъемом type-C.

Вспомнил про ch341 (у него есть конфигурационный вход, позволяющий работать как USB-SPI/I2C мост, а также как USB-UART, в т.ч. с наличием #DTR, но об этом позже).

Начал разработку платы с USBHUBа. Выбор пал на дешевый FE1.1.

На 4pda нашел тему про сh341 и "доработки", в т.ч. про дополнительную плату с согласователями уровней (для прошивки SPI флешек с 1.8в). Зачем городить бутерброд, если можно поставить согласователи на саму плату.

Добавил согласователи на UART (один переключатель на плате позволяет выбрать питание usbasp и одновременно уровень сигналов uart 5в/3.3в).

Пока неспешно собирал схему, параллельно столкнулся с проблемой китайских j-link адаптеров со слетающими прошивками. Решил добавить еще и программатор для ARM (В первой версии платы поставил обычный st-link на stm32f103, в последней версии j-link на stm32f205).

Три USB порта хаба заняты, четвертый usb вывел на USB-A (питание платы через предохранитель на 1А).

Терпеть не могу суперпозицию USB, с подключением с третьей попытки, потому поставил USB-typeC.

Как раз обзавелся самодельным микроскопом (eken h9 + гелиос 44-2).

Вывел разъем для прошивки adruno-плат без встроенного usb-uart (как раз нога #DTR через конденсатор), просто потому что смог.

Добавил аналоговый мультиплексор 4052, чтобы переключать UART между usbasp/внешним разъемом/stm32f205(для прошивки).

Бонусом - получилась "вещь в себе" - самопрошивающийся программатор. ch341 в режиме SPI может прошить usbasp, а в режиме UART может прошить stm32f205 (для старого бутлоадера 2.0), либо прям по USB (DFU для версии бутлоадера 3.0)

В итоге плата стала 4-слойной с размерами 70 мм х 35 мм.

Надеюсь, кому-нибудь мой опыт пригодится.

Гербера, инструкции по сборке, список элементов, схему, прошивки выложил на https://4pda.to/forum/index.php?showtopic=884713&st=6720#entry106407720

Моя первая статья на Хабре, кидайте тряпками.

Источник: https://habr.com/ru/post/592211/


Интересные статьи

Интересные статьи

Цель статьи, – показать примеры управления реализацией стратегии с помощью корпоративной единой информационной площадки на доступном инструменте, - Битрикс24. В статье на простом языке обсуждаются воз...
Всем привет! Не так давно на работе в рамках тестирования нового бизнес-процесса мне понадобилась возможность авторизации под разными пользователями. Переход в соответствующий р...
Кто бы что ни говорил, но я считаю, что изобретение велосипедов — штука полезная. Использование готовых библиотек и фреймворков, конечно, хорошо, но порой стоит их отложить и создать ...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.