Uart usb что это
Общие сведения:
Подключение:
Пример соединения двух UNO:
UART на Arduino:
На Arduino и Arduino-совместимых платах аппаратный UART обозначается символами RX и TX рядом с соответствующими выводами. На Arduino UNO/Piranha UNO это 0 и 1 цифровые выводы:
Arduino UNO/Piranha UNO
В скетче инициализируется функцией begin() в коде функции setup():
Пример:
Piranha ULTRA
На Piranha ULTRA присутствуют два аппаратных UART. Один на тех же выводах, что и UNO, второй на 8 (RX) и 9 (TX) выводах:
В Arduino IDE второй аппаратный UART называется Serial1 (Сериал один), и инициализируется так же как и первый:
Простой пример для копирования буфера первого UART’а во второй и наоборот:
Arduino MEGA
У Arduino MEGA, помимо UART’a на цифровых выводах 0 и 1 как и у UNO, присутствуют ещё три аппаратных UART. На плате это выводы 19 (RX1), 18 (TX1), 17 (RX2), 16 (TX2) и 15 (RX3), 14 (TX3) соответственно. UART совместимый по расположению с UNO обозначен RX0, TX0:
На заметку: На многих Arduino и Arduino-совместимых платах UART0 используется для загрузки скетчей, так что если Ваш скетч не загружается, проверьте эти выводы. Во время загрузки скетча к ним ничего не должно быть подключено.
Отладка проектов при помощи UART
Пример:
Программный UART на Arduino
Помимо аппаратного UART в Arduino можно использовать программный. Программный порт хорошо подходит для простых проектов, не критичных к времени работы кода или для отладки проектов, позволяя не отключать модули использующие UART во время загрузки сетчей. При его использовании нужно лишь помнить что никакой другой код не может выполняться пока программа занимается считыванием данных из него и передача может осуществляться только в полудуплексном или симплексном режимах. Так же на программный RX можно назначать только те выводы, которые поддерживают прерывание по смене уровней. На UNO, например, это все цифровые выводы, кроме 13-го. Прежде чем собирать свой проект, проконсультируйтесь с инструкцией к конкретной плате.
Пример использования программного порта:
UART на Raspberry Pi:
Пример работы с последовательным портом на Python:
Данный пример выводит строку «iArduino.ru» в последовательный порт Raspberry и ждёт данных из последовательного порта.
Подробнее о UART:
Параметры
При обозначении параметров UART принято использовать короткую запись ЦИФРА—БУКВА—ЦИФРА
Таким образом, стандартные настройки в Arduino: 8-N-1
Кадрирование данных
При приёме-передаче данных каждое устройство ориентируется на своё внутреннее тактирование. Обычно это тактирование от 8 до 16 раз быстрее скорости передачи данных и обычно отсчитывается от стартового бита. Именно поэтому необходимо чтобы оба устройства были настроены на одну и ту же скорость передачи.
Так же при передаче данных присутствуют синхронизирующие биты, именуемые старт-бит и стоп-бит. Старт-бит сигнализирует о начале передачи данных и стоп-бит, соответственно об окончании.
Рассмотрим кадр данных:
Старт-бит:
При отсутствии передачи линия удерживается в состоянии логической единицы (в случае TTL Arduino это 5 вольт или Vcc). Как только передающее устройство притягивает линию к 0 (GND или 0 вольт в случае Arduino), это сигнализирует принимающему устройству о том что сейчас будет передача данных.
Данные:
При появлении старт-бита на линии принимающее устройство начинает отсчитывать время в соответствии с установленной скоростью и считывать состояния линии через определённые промежутки времени в соответствии с установленным количеством бит данных, после этого.
Стоп-бит:
По завершении передачи данных принимающее устройство ожидает стоп-бит, который должен быть на уровне логической единицы. Если по завершении кадра удерживается логический ноль, значит данные неверны. Если логический ноль удерживается время, превышающее длину кадра в 1,5 раза, такое состояние именуется break (разрыв линии, исторически пошло от устройств, использующих токовую петлю для передачи данных). Некоторые передатчики вызывают это состояния специально перед посылкой пакета данных. Некоторые приёмники считают такое состояние за неправильно выставленную скорость и сбрасывают свои настройки на установки «по умолчанию».
Скорость передачи данных
Скорость изменения логических уровней (импульсов) на линии принято измерять в бодах. Единица измерения названа так в честь французского изобретателя Жана Мориса Эмиля Бодо.
Скорость при использовании UART может быть любой, единственное требование — скорости передающего и принимающего должны быть одинаковы. Стандартная скорость UART принята за 9600 бод. Arduino без проблем и лишних настроек может принимать и передавать данные на скоростях до 115200 бод.
Так как при передаче данных присутствуют синхронизирующие биты, именуемые старт-бит и стоп-бит, не совсем корректно говорить, что скорость 9600 бод равна 9600 битам в секунду. Если речь идёт о полезных данных, то реальная скорость на 20% ниже. Например, если выставлены параметры 8-N-1 и 9600 бод, то на передачу одного байта уходит десять бит, и 9600/10 = 960 байт, что равно 7680 битам в секунду.
Методы связи
UART позволяет одновременно передавать и принимать данные, однако не всегда это возможно или нужно. Например, если Вам нужно только получать не критические данные (которые можно проверить следующим пакетом, например расстояние, посылаемое лидаром каждые несколько сотен миллисекунд) от цифрового датчика или любого другого устройства и не нужно ничего передавать, такой метод называется симплексным. Всего различают три метода связи:
Простой USB-UART преобразователь с гальванической развязкой
В процессе разработки электронных устройств под управлением микроконтроллеров часто возникает задача передать какие-то данные с устройства на компьютер или наоборот. Вероятно самым простым способом является использование USB-UART переходников, которых существует великое множество, но я решил сделать свой «велосипед» и поделиться результатом с вами.
У меня стояла задача сделать для себя любимого простой, дешевый, компактный и главное гальванически развязанный преобразователь USB-UART. Основной кейс для меня — отладка через printf по uart, да да, я в курсе про SWO и иные методы, но мне удобнее работать именно с uart-ом. Наличие изоляции для меня критично, т.к. в основном мне приходится проектировать силовые преобразователи, которые могут легко спалить, например, usb порт моего ноутбука. Правда если у вас в устройствах нет высокого напряжения, то расслабляться тоже не стоит, какие-нибудь 12В так же прекрасно могут вывести из строя ваш ПК. Разумеется не стоит забывать и о помехах, гальваническая развязка частично препятствует попаданию всякой гадости в usb порт.
Как видите у развязанных преобразователей интерфейсов одни плюсы, но тут некоторые возразят: «Зачем? Все же есть на Алиэкспресс». Тут ответ простой — меня не устроили ни цена готового устройства, ни его габариты, ни качество. В итоге за пару часов я «изобрел велосипед», который удовлетворит все мои хотелки и после изготовления получилось вот так:
Хотите обезопасить свои usb порты и узнать зачем так много? Тогда поехали :))
Концепт
Изначально я хотел лишь сделать себе парочку «свистков» для отладки, а в будущем еще и использовать их для отправки заказчикам, например, чтобы безопасно обновить прошивку через встроенный bootloader или снять логи, если что-то пошло не так. Отсюда и была задача сделать очень дешевую железку, чтобы не жалко было раздавать направо и налево. Правда все пошло немного иначе…
В своем телеграм-канале я сделал объявление с предложением присоединиться к заказу, ведь при увеличение партии уменьшалась стоимость устройства. В итоге за день набралось заказов на 50 штук + 10 штук себе, больше набирать не стал уже. Собственно поэтому на КДПВ не 10 штук, а несколько больше. Забегая вперед скажу, что такой мелкосерийный заказ позволил уменьшить стоимость одного устройства с
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-файлы для заказа печатных плат.
Панелизация
Мне предстояло заказать не 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 из ВОМа.
Пакетный обмен данными по UART
Введение
На сегодняшний день существует много способов организовать обмен данными между Desktop-приложением и устройствами на микроконтроллерах: Wi-Fi, Bluetooth, RF, USB, преобразователи интерфейсов и т.д.
В большинстве из вышеперечисленных вариантов реализован пакетный обмен данными между хостом и устройством. Передаваемые данными с гарантией целостности и доставки будут переданы от передатчика к приемнику.
В случае использования интерфейсов RS-232, RS-485, RS-422 или чистого UART организация пакетного обмена данными ложится на программиста.
В данной статье я хотел бы рассказать о своей реализации обмена данными между устройствами
Постановка задачи
Нужно отправить из Qt-приложения пакет данных на устройство с микроконтроллером STM8. К компьютеру присоединён USB-RS485 преобразователь, а на устройстве соответственно преобразователь RS485-UART. Нужно учесть, что на линии связи возможен высокий уровень помех. В этой ситуации было принято решение написать быструю и легкую библиотеку для гарантии целостности принятых данных. *Гарантию доставки данных брала на себе бизнес-логика. Библиотеку решил назвать Sheller.
Требования к разрабатываемой библиотеки были следующие:
Фиксированная длинна пакета: количество байт, которые пользователь хочет передать не влияют на общую длину пакета, она остается фиксированной;
Минимальное количество внутренних буферов;
Наличие надежной, быстровычисляемой контрольной суммы;
Побайтного занесения данных;
Возможность работы в условиях поврежденных и потерянных байт в пакете;
Выполнение задачи
Принцип работы: определимся с понятием пакета. Пакет представляет собой стартовый байт, данные пользователя и два байта контрольной суммы CRC-16:
В начале использовался алгоритм контрольной суммы CRC8, однако в ходе тестов было выяснено, что при длине пакета в 8 байт количество коллизий было слишком высоким. Тест заключался в следующем: некоторые пакеты специально отправлялись битыми (менялись значения или вовсе удалялся байт из пакета). В итоге на каждый 50000й пакет происходила коллизия CRC и неправильный пакет передавался в бизнес-логику.
Первый случай коллизии происходил, когда значения байтов в пакете были изменены таким образом, что их контрольная сумма осталась прежней:
А во втором случае часть побитого пакета с частью целого пакета соединялись в один пакет, который проходил по контрольной сумме:
*Красной чертой обозначен пакет, последние байты которого не дошли до приемника. Зеленой чертой показан нормальный пакет. Синей чертой изображен пакет, который был отправлен в бизнес-логику.
Поэтому было принято решение перейти на CRC16. При запуске тоже теста было пройдено более 2млн пакетов без коллизий и тест был завершен удачно. Вычисление контрольной суммы происходит по табличному методу для ускорения работы.
В качестве StartByte используется значение 0x23. С помощью этого числа парсер делает предположение, что с этого места начинается пакет. Далее парсер проверяет количество байт в буфере и если их столько же или больше чем длинна пакета, то производится подсчет контрольной суммы. Если подсчитанная и принятая контрольные суммы совпадают, то пакет выдается и бизнес логику приложения.
При приеме байтов мы записываем их в циклический буфер, в основном я это делаю в обработчике прерывания принятого байта.
Работу всей библиотеки можно описать следующей схемой:
Данная библиотека реализована на Си и на C++. C++ версия предназначена в основном для Arduino.
Для проверки работы Sheller на микроконтроллере был написан ShellerTerminal:
*представляет собой обычный COM-port терминал с использованием алгоритма Sheller.
Информацию по использованию библиотеку вы можете найти на GitHub.
USB UART адаптер
Зачем нужен USB UART адаптер
Как следует из названия данный прибор организует мост между компьютером через USB порт и вашим устройством по Serial протоколу. Можно сказать что он является USB COM портом для логики TTL (уровни 1.8v-5v).
С помощью данного прибор можно программировать различные микроконтроллеры, получать информацию на компьютер со прибора по serial порту. Кроме этого применений ему масса:
передача небольших объёмов данных
прошивка различных приборов —разработчики часто делают выход serial для возможности перепрошивки своего устройства
прошивка микроконтроллеров — многие микроконтроллеры имеют Bootloader (специальная программа для загрузки прошивки по serial) загруженный на заводе, и для загрузки прошивки не нужен специальный программатор — достаточно данного устройства.
Нам он будет необходим в первую очередь для прошивки ST-Link. Ну и собственно так как тут нечего программировать — прибор состоит из одной микросхемы — то на этом приборе мы поучимся паять и работать в Kicad. В этой статье подробно рассмотрим как трассировать печатную плату вручную.
Как сделать USB UART адаптер
1. Прочитать эту статью внимательно и до конца!
2. Подготовить или приобрести необходимые инструменты: все для пайки
3. Внимательно прочитать статьи из раздела Обязательная теория.
4. Скачать необходимые файлы по данному прибору с github.
5. Изготовить плату для прибора самостоятельно (это совсем несложно, в нашей инструкции все подробно описано).
6. Приобрести все необходимые комплектующие в виде готового радиоконструктора можно в нашем магазине.
7. Запаять все компоненты на плату, смотри наше видео.
ПРИБОР ГОТОВ, можно пользоваться!
Как работает USB UART адаптер
Для реализации данного моста обычно используется специализированная микросхема, которая с одной стороны имеет usb выход, а с другой — serial выход. Обычно эти микросхемы имеют драйвера для Windows \ Linux и определяются системой как COM — порт. Дальше используется специальная программа для работы через COM порт. Это может быть и программа прошивки микроконтроллера или программа для получения данных от прибора и т. д.
Выбираем микросхему для прибора
По сути данное устройство будет состоять из разъемов, микросхемы и минимальной ее обвязки. Так что, у нас не будет никакого функционального ТЗ в данном случае. Основной критерий по которому мы будем выбирать микросхему — удобство пайки, цена.
Итак, самые распространённые микросхемы для данного девайса:
cp2102 (cp2103) — дешевая отличная микросхема, но имеет корпус QFN28 — то есть безвыводный корпус — паять такую в самом начале пути не очень легко — поэтому мы ее не будем использовать
pl2303 — отличная микросхемы фирмы Prolific — существует очень много вариантов этой микросхемы (в том числе китайские подделки). У нее корпус TSOP28 — отлично подходит для пайки. И старые модификации стоят недорого и отлично работают. Мы будем использовать ее — модификацiия pl2303TA — самый недорогой вариант. Есть модификация Rev. D которая не требует внешний кварц — но она стоит в 2 раза дороже.
CH340 — китайский вариант (оригинал) моста — микросхема хорошая — но ее трудно купить где-либо кроме как в Китае.
FT232R — микросхема от FTDI — отлично подходит и работает — но стоит почти в 2 раза дороже. Ее плюс также в том что не требуется внешний кварц.
Несколько слов о том как подобрать микросхему для своего проекта. Есть очень простой путь. Сначала необходимо найти одну микросхему которая подходит под данную задачу. Набираем в интернете — USB — serial chip и сразу находим — FT232R. Отлично. Далее идет на сайт крупного поставщика микросхем — например — mouser.com. Там в поиске набираем — FT232R. И в разделе интегральных схем видим нашу микросхему.
Самое главное для нас здесь — ЭТО КАТЕГОРИЯ в которую входит микросхема. Здесь это «ИС интерфейс USB». Также смотрим тип «Bridge, USB to UART». Идем в эту категорию и смотрим какие бывают микросхемы. Далее проверяем по datasheets подходит ли она нам.
Итак, наш выбор PL2303TA.
Составляем схему на базе PL2303
Любая схема должна начинаться с чтения Datasheet. Производитель микросхем очень заинтересован в том, чтобы купили именно его чип. В документации он обычно максимально подробно разбираем как пользоваться микросхемой, прикладывает схемы и пишет тонкости и особенности реализации прибора на этом чипе. Посмотрим что советует нам производитель (из документации на чип pl2303HXD):
тут приведена полная схема с трансивером (преобразователь уровня до 9v) для получения полного COM порта. Нам эта часть не нужна. Также схема не содержит кварца, а нам он необходим. Дополнительно можно отметить, что еще не хватает светодидов для сигнализации процесса обмена данными. В итоге поискав различные варианты схемы на данной микросхеме (pl2303 schematic) нашли самую простую схему со светодиодами и кварцев — ее и возьмем.
С точки зрения чертежа схемы в Kicad никих особенностей нет. Проще не чертить соединения проводами, а использовать метки, тем более это будет удобно в дальнейшем при трассировке платы. В итоге получается такая схема (проект в Kicad можно скачать в конце статьи):
Разрабатываем плату в Kicad
Разрабатывая схему, можно сразу прикинуть в какой последовательности будут идти вывода на разъеме. Чтобы было проще лучше чтобы порядок соответствовал выводам на самом чипе. Но в принципе это не столь важно и можно впоследствии быстро переделать.
Прежде чем разрабатывать плату необходимо определится какие у нас будут использоваться разъемы и определить посадочные места. Мы будем делать плату переходник которая втыкается в usb порт и на конце имеет угловые разъемы PIN 2.54mm — это самый распространяенный формат. На конечный разъем мы выведем только наиболее нужные выводы — остальное просто разведем на плате и оставим как дырки на будущее. Основные выводы: RX, TX, 5V, 3.3v, DTR (часто используется как reset схемы микроконтроллера при прошивке). Остальные выводы разведем в самом конце.
Итак, начинаем трассировку платы. В схеме формируем список цепей — Инструменты — сформировать список цепей. Переключаемся в плату и по кнопке Инструменты-Список Цепей — прочитать текущий список цепей. Загружаем все посадочные места в плату. Далее размещаем все посадочные места в авторежиме. Получаем такой набор компонентов.
На данном этапе лучше скрыть лишнюю информацию. Убираем отображение слоев Связи, Скрытый текст, Значения, Обозначения.
Далее начинаем располагаем на будущей плате основные компоненты — разъемы и чип. Так чтобы выводы чипа располагались согласно подключению разъемов. Особенно важно в этом случае чтобы выводы подключения USB были напротив разъема. Наводим мышку на нужный компонент — жмем M — и переносим его чуть ниже на пустое место — формируем будущую плату. Так как плата у нас двух стороняя — то надо сразу определить нужную сторону компонент. Самый просто вариант — все DIP элементы (под которые надо сверлить сквозные отверстия) располагаем с обратной стороны, а все smd элементы с основной стороны — так проще будет подводить дорожки. Для смены стороны используем кнопку F. Так как Kicad умеет подсвечивать связи при переносе элемента, то очень удобно все резисторы связанные с разъемами размещать сразу. Это позволит быстро увидеть связи при переносе микросхемы. Итак, размещаем USB разъем, потом резисторы с ним связанные на сигнальных линиях и потом разъем на другом краю платы:
дальше размещаем чип — так чтобы было как можно меньше пересечений.
Далее размещаем кварц (тоже с обратной стороны — он у нас выводной). Он должен быть как можно ближе к выводам чипа.
После этого размещаем кондецаторы по цепям питания — они должны быть как можно ближе к выводам питания.
После этого соединяем дорожками обязательные выводы — это usb сигнальные — кварц, кондецаторы по питанию. Прикидываем линии питания. Если что-то не удобно — то компоненты двигаем — переносим.
Например кондецатор C3 удобнее перенести вниз чтобы не делать переходное отверстие. Конечно это не очень хорошо — но в данном случае дорожка будет очень небольшая.
После размещения основных элементов размещаем оставшиеся — ориентируясь на подсказки по связям и стараясь не пересекать дорожки.
Теперь осталось разобраться с разъемами и линиями питания — их можно провести по второму слою. В итоге видно, что довольно сложно получается развести светодиоды и подтягивающие резисторы. Они перекрывают остальные выводы. Поэтому проще их перенести на другую сторону — она как раз будет лицевой, и туда же провести линию vddio.
Финально остается задать диаметры переходных отверстий и толщину дорожек — лучше сделать 0.3мм. Выровнять линии и добавить земляные полигоны. Начертить границы платы.
Как пользоваться USB UART конвертером
Для пользования данных приборов в Windows необходимо установить драйвера. Свежие драйвера можно взять на сайте производителя. Если они не подходят, то можно установить более старые драйвера 1.15 — который можно найти в интернет.
После установки драйверов устройство должно определиться как COM порт.
Для Windows самая лучшая программа для работы с COM портом — это Terminal 1.9b (приложена к статье)
Для тестирования нашего устройства необходимо проводами соединить выходы TX — RX. В этом случае мы получим режим эхо — все что будет передано в порт должно тут же возвращаться назад. Скорость при это может быть любая.
Работать с программой очень просто — выбираем порт — можно автоматически по кнопке ReScan или вручную. Задаем скорость и параметры порта. Далее в окне видим все что пришло по терминалу, а в строке SEND можно передать любую информацию. Чтобы передать спецсимволы необходимо использовать запись виды «$1a» в шестнадцетиричном формате.
Для linux устройство должно определится само (драйвера входят в ядро). Неплохая программа — minicom.
Для понимая остальных сигналов данного устройства — DTR, DSR и другие — вот тут есть очень хорошая статья.
Как собирать прибор
Собираем прибор по общим правилам описанным в нашей статье.
Для более быстрой сборки, вы можете приобрести полный набор для пайки, радиоконструтор USB UART адаптер в нашем магазине.
Самостоятельная работа
Попробуйте осуществить трассировку самостоятельно не подглядывая в данную статью.