Uart usb подключение: Подключение адаптера USB 2.0 to TTL UART Module CP2102 к OrangePi, BananaPi
|Содержание
Урок 10. Работа с UART интерфейсом
В этом уроке я расскажу про UART интерфейс в микроконтроллерах AVR и про работу с ним в BASCOM-AVR. UART это универсальный асинхронный приёмопередатчик. Сам интерфейс достаточно распространён и имеется практически во всех AVR микроконтроллерах, исключения лишь составляет микроконтроллер Attiny13 и еще некоторые. Передача данных осуществляется по биту в равные промежутки времени, этот промежуток времени задаётся скоростью в бодах, вот например стандартные скорости: 4800 бод, 9600 бод, 19200 бод, 38400 бод и т.д. Следует также учесть, что скорость должна быть одинаковой с обеих сторон подключения. Кстати приёмник и передатчик работают независимо. Подключение UART осуществляется по трём линиям: RXD – приём, TXD – передача и GND – общий (минус). Подключать UART надо, так сказать «наоборот» RXD к TXD, а TXD к RXD как на картинке ниже:
С помощью UART также можно можно связать микроконтроллер и компьютер, но есть одна проблема: у UART интерфейса логические уровни 0 и +5 вольт, а в компьютере логические уровни в интерфейсе RS-232 могут быть от -25 до -3 вольт и от +3 до +25 вольт. Решить эту проблему нам поможет конвертер уровней, его можно собрать на транзисторах, а лучше использовать специальную микросхему MAX232. Вот самая распространенная схема подключения MAX232:
Работа с UART в BASCOM-AVR
Прежде всего, перед началом работы с UART нужно указать скорость в бодах, делается это командой: $baud = (скорость). Например: $baud = 9600 .Также не забываем указывать реальную частоту тактового генератора командой $crystal = (скорость Hz), в ином случае скорость работы программы будет не совпадать со скоростью работы микроконтроллера и в итоге приём или передача данных будет неверная. Пример написания команды $crystal на частоту 8МГц: $crystal = 8000000. Кстати, имеет смысл открыть окно настроек в BASCOM-AVR (Options>Compiler>Communications):
В этом окне настроек вы можете указать скорость работы UART, тактовую частоту тактового генератора и посмотреть процент ошибок при выбранной тактовой частоте. Но лучше указывать скорость и тактовую частоту непосредственно в самой программе. Кстати процент ошибок при тактовой частоте в 4МГц очень мал (0.16%), но все, же есть. Если вы хотите чтобы процент ошибок был нулевой надо подобрать такую тактовую частоту, которая будет кратна скорости работы UART. Например, при тактовой частоте 3.6864 МГц и скорости работы UART в 115 200 бод процент ошибок будет нулевым.
И так, после указания тактовой частоты и скорости работы UART можно приступить к работе с самим интерфейсом. Чтобы послать, что-либо в UART есть команда Print (переменная или текст в кавычках), вот пример её использования: Print «Hello, world!». Кроме текста в кавычках можно выводить и переменные, причём сразу несколько разделяя точкой с запитой, например: Print «Weight:» ; a ; «kg» или так Print «Hello,» ; «world!» . Также с UART можно и принять, делается это командой Input (текст или переменная в кавычках для посылки), (переменная, куда записывать полученные данные). Как видим всё очень просто: сначала пишем в кавычках текст, который передастся в UART, а потом указываем переменную, в которую запишутся данные полученные данные из UART. Вот пример: Input «Weight:», a
Работа с UART на практике
Ну а теперь попробуем «порулить» UART на практике, сначала соберём простую схему:
Потом наберём простую программку, (используя полученные знания) и откомпилируем её. Вот и она:
$crystal = 8000000 $baud = 9600 Dim A As Byte Print "Hello, world!" Print "Hello http://cxem.net" Input "Size:" , A Print "Size=" ; A ; "bytes" End
А работать эта программка будет так: сначала будет посылать в UART текст, а потом будет ждать приёма данных (в данном случае числа) которые запишутся в переменную a и позже пошлёт текст вместе с переменой. Для тех, кому лень компилировать, в файлах к уроку есть готовая прошивка. Прошиваем микроконтроллер, подключаем выводы микроконтроллера RXD, TXD (подключаем, как я писал выше) и GND к COM порту компьютера (через конвертер уровней) или к USB (USB – UART переходник), открываем на компьютере программу для работы с COM портами, например: Terminal by Bray, Hyper Terminal или Terminal emulator в BASCOM-AVR, указываем COM порт к которому подключились, указываем скорость в бодах, смотрим в окно программы, подаём питание на микроконтроллер и радуемся. Необходимо также учесть, что после прошивки микроконтроллера необходимо установить фьюз биты на нужную нам тактовую частоту генератора в данном случае (для программки выше) на 8МГц. На 8МГц можно использовать внутренний тактовый генератор микроконтроллера и установить фьюз биты вот так (для PonyProg2000):
В железе:
На фотографии у меня плата для программирования Attiny2313, USB-UART переходник и программатор USBtiny. Ниже вы можете посмотреть видео, как это работает
Файлы для урока (проект в Proteus, исходник, прошивка) прилагаются
Урок 11. Работаем с DS1307 микросхемой часов реального времени
Прикрепленные файлы:
- mc129. rar (12 Кб)
Теги:
- Proteus
- UART
- AVR
- Микроконтроллер
- BASCOM-AVR
UART и с чем его едят / Хабр
После Vogue истерии появилось множество вопросов, как подключить плату к компьютеру. И многие люди даже не понимают, что же такое UART. И я решил рассказать здесь какой это мощный инструмент.
Роутер превращается в компьютер, если к нему по UART подключить клавиатуру и дисплей
От телеграфа к COM-порту
Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт, тот самый который стоит у тебя в компе). Это, наверное, самый древний компьютерный интерфейс. Он дожил до наших дней и не потерял своей актуальности.
Надо сказать, что изначально интерфейс УАПП появился в США как средство для передачи телеграфных сообщений, и рабочих бит там было пять (как в азбуке Морзе). Для передачи использовались механические устройства. Потом появились компьютеры, и коды ASCII, которые потребовали семь бит. В начале 60-х на смену пришла всем известная 8-битная таблица ASCII, и тогда формат передачи стал занимать полноценный байт, плюс управляющие три бита.
В 1971 году, когда уже начался бум микросхем, Гордон Белл для компьютеров PDP фирмы Western Digital сделал микросхему UART WD1402A. Примерно в начале 80-х фирмой National Semiconductor был создан чип 8520. В 90-е был придуман буфер к интерфейсу, что позволило передавать данные на более высоких скоростях. Этот интерфейс, не претерпев практически никаких изменений, дошел и до наших дней
Физика интерфейса
Чтобы понять, что роднит и отличает разные UART-интерфейсы, разберем принцип работы самого популярного и любимого нами протокола RS-232. Дотошно расписывать все тонкости его работы я не буду. Об этом написан ни один десяток мегабайт статей, и если ты умеешь пользоваться Гуглом, то без проблем найдешь всю необходимую информацию. Но основы я расскажу, благо с ними можно уже круто всем рулить, а всякие фишки используются очень редко.
Основные рабочие линии у нас – RXD и TXD, или просто RX и TX. Передающая линия – TXD (Transmitted Data), а порт RXD (Received Data) – принимающая.
Эти линии СОМ-порта задействованы при передаче без аппаратного управления потоком данных. При аппаратном потоке задействованы еще дополнительные интерфейсные линии (DTS, RTS и пр.). Выход передатчика TX соединен с входом приемника RX и наоборот. Электрический принцип работы RS-232 отличается от стандартной 5-вольтовой TTL логики. В этом протоколе логический нуль лежит от +3 до +12 вольт, а единица от -3 до -12, соответственно. Промежуток от -3 до +3 вольт считается зоной неопределенности. Учти, что все напряжения указаны относительно корпуса компьютера, или земли. Теперь, я думаю, ты понимаешь, зачем в компьютерном блоке питания существует сразу два напряжения: -12 и +12 вольт. Они были введены специально для работы СОМ-порта.
Приём сигнала по RS-232 (взято из книги М.Гук «Аппаратные интерфейсы ПК»)
Такая большая амплитуда рабочих напряжений, целых 24 вольта, нужна в первую очередь для помехоустойчивости линий связи. По стандарту, длина кабеля, по которому у нас бегают данные, может быть 15 м. Хотя на практике люди умудрялись заставлять его работать даже на 25 м. Электрические параметры RS-232 – это главная характеристика, которая отличает его от других протоколов семейства UART.
Следующие характеристики – формат посылки и скорость передачи данных – полностью применимы ко всем видам UART и обеспечивают их совместимость через несложные схемы сопряжения.
Стандартная посылка занимает 10 бит. Но правило это распространяется только на стандартные настройки СОМ-порта. В принципе, его можно перенастроить так, чтобы он даже интерфейс One-Wire понимал. В режиме простоя, когда по линии ничего не передается, она находится в состоянии логической единицы, или -12 вольт. Начало передачи обозначают передачей стартового бита, который всегда равен нулю. Затем идет передача восьми бит данных. Завершает посылку бит четности и стоповый бит. Бит четности осуществляет проверку переданных данных. Стоповый бит говорит нам, что пересылка данных завершена. Надо отметить, что STOP-бит может занимать 1, 1.5, и 2 бита. Не стоит думать, что это дробные биты, это число говорит только о его длительности. Стоповый бит, как и стартовый, равен нулю.
Сигнал UART на экране осциллографа. Виден старт бит, данные и стоповый бит. Спасибо DIHALTза картинку
Скорость работы
Даже если тебе раньше никогда не приходилось работать с СОМ-портом, по крайней мере, в модеме ты должен знать номинальные скорости работы: 9600, 28800, 33600, 56000 и т.п. Сколько бит в секунду убегает из нашего порта? Вот смотри, допустим, скорость у нас 9600 бит в секунду. Это означает, что передача одного бита будет занимать 1/9600 секунды, а пересылка байта – 11/9600. И такая скорость для байта верна только в случае, если стоп-бит будет занимать один бит. В случае, если он занимает два стоп-бита, то передача будет 12/9600. Это связано с тем, что вместе с битами данных передаются еще специальные биты: старт, стоп и бит четности. Линейка скоростей СОМ-порта стандартизирована. Как правило, все устройства работают на трех стандартных скоростях: 9600, 19200, 115200. Но возможны другие варианты, даже использование нестандартных скоростей или скорости, меняющейся во времени, – с этим я сталкивался при разборе полетов очередного устройства.
Такой разный протокол
Видов UART существует великое множество. Я не буду перечислять их наименования, ибо, если ты владеешь английским, то сумеешь и сам нагуглить. Но самые основные не отметить нельзя! Напомню, что главное отличие интерфейсов состоит в среде и способе передаче данных. Данные могут передаваться даже по оптоволокну.
Второй по распространению интерфейс после RS-232 – это RS-485. Он является промышленным стандартом, и передача в нем осуществляется по витой паре, что дает ему неплохую помехоустойчивость и повышенную скорость передачи до 4 мегабит в секунду. Длина провода тут может достигать 1 км. Как правило, он используется на заводах для управления разными станками.
Надо сказать, что IRDA, или инфракрасная связь, которая встроена в большинство телефонов и КПК, тоже по сути является UARTом. Только данные передаются не по проводам, а с помощью инфракрасного излучения.
В SMART-картах (SIM, спутниковое телевиденье, банковские карты) – тех самых устройствах, которые мечтает похачить каждый уважающий себя фрикер – тоже используется наш любимый UART. Правда, там полудуплексная передача данных, и логика работы может быть 1,8/3,3 и 5 вольт. Выглядит так, будто RX запаян с TX на одном конце и на другом – в результате, один передает, другой в этот момент слушает, и наоборот. Это регламентировано стандартом смарт-карт. Так мы точно знаем, сколько байт пошлем, и сколько нам ответит карточка. Тема достойна отдельной статьи. В общем, запомни, что UART есть практически везде.
Устройства, которые имеют на своём борту UART, по часовой стрелке: мышка, ридер-эмулятор SMART-карт, КПК Palm m105, отладочная плата для микроконтроллера ATtiny2313 (или AT89C2051), модем.
Сопряжение интерфейсов
Я уже глаза намозолил разными интерфейсами, но как с ними работать-то? Ну, с обычным RS-232 понятно, а, допустим, с 5-вольтовым юартом как быть? Все просто: существуют различные готовые микросхемы-преобразователи. Как правило, в маркировке они содержат цифры «232». Увидел в схеме микруху с этими цифирями – будь уверен: скорее всего, это преобразователь. Через такие микросхемы с небольшим обвязом и сопрягаются все интерфейсы UART. Я не буду рассказывать о промышленных интерфейсах, а скажу о тех преобразователях, которые интересуют нас в первую очередь.
Самый известный преобразователь интерфейса – это микросхема, разработанная фирмой MAXIM, которая и получила от нее часть своего названия (max232). Для ее работы требуется четыре конденсатора от 0,1 микрофарады до 4 микрофарад и питание 5 вольт. Удивительно, что эта микросхема из 5 вольт генерирует отрицательное напряжение, чтобы сопрягать 5-вольтовый UART с RS-232.
Существуют микросхемы сопряжения USB с UART, например, микросхема ft232rl. В Ubuntu для этой микросхемы уже встроены драйвера. Для Windows их придется качать с официального сайта. После установки драйверов в системе появится виртуальный СОМ-порт, и с ним уже можно рулить различными устройствами. Советую не принимать эти микросхемы, как единственно возможные. Найдется громадное количество более дешевых и интересных аналогов, посему наседай на Гугл и поймешь, что мир UARTа – это круто.
В целом, микросхемы стоят достаточно дорого и порой можно обойтись более сложными, но зато более дешевыми схемами на паре транзисторов.
Что нам это дает?
Как ты понял, интерфейс UART присутствует во многих устройствах, в которых стоит какой-либо процессор или контроллер. Я даже больше скажу: если там стоит контроллер, то юарт есть стопудово (только он не всегда может использоваться). Как правило, по этому интерфейсу идет наладка и проверка работоспособности девайса. Зачастую производитель умалчивает о наличии этого интерфейса в изделии, но найти его несложно: достаточно скачать мануал на процессор и, где находится юарт, ты будешь знать. После того, как ты получишь физический доступ к железяке по нашему интерфейсу, можно его настроить на свое усмотрение или даже заставить работать, так как надо тебе, а не как задумал производитель. В общем, – выжать максимум возможностей из скромного девайса. Знание этого протокола дает также возможность подслушать, что же творится в линиях обмена между различными процессорами, так как часто производители организуют целые юарт-сети в своем устройстве. В общем, применений много, главное – интуитивно понимать, как это делать.
Апдейтим роутер
Намедни я намутил себе WiFi-роутер WL-520GU и, прочитав статью Step’a «Level-up для точки доступа» (][ #106), успешно установил туда Linux. Но у меня возникли проблемы с монтированием swap-раздела жесткого диска. Так появилась необходимость посмотреть лог загрузки точки доступа – подмонтировался раздел или нет – причем, как говорится, на лету, чтобы сразу вносить необходимые изменения. Шестым чувством я подозревал, что в моем роутере просто обязан быть UART. Я взял в руки крестовую отвертку и начал его разбирать. Дело тривиальное, но с заковыркой – потайные винтики находятся под резиновыми ножками (если решишь повторить, помни, что при разборе ты лишаешься гарантии). Моему взору предстала достаточно скучная плата, где все «chip-in-one»: один центральный процессор, в который включено все, внешняя оператива, флеша, преобразователь питания и рядок разъемов с кнопками. Но на плате была не распаянная контактная площадка, точнее сказать, отверстия под иголки. Их было четыре штуки. Вот он UART, это очевидно! По плате даже без мультиметра видно, что крайние иголки – это +3,3 вольта и второй – земля. Средние контакты, соответственно, RX и TX. Какой из них что, легко устанавливается методом научного тыка (спалить интерфейс очень проблематично).
Сразу хочу отметить, что интерфейс UART в каждом роутере выглядит по-разному. В большинстве случаев, это не распаянные отверстия на плате. Правда, в одном роутере от ASUS я даже встретил полностью подписанный разъем.
Собираем преобразователь
Чтобы подключить роутер к компу, необходимо сопрячь интерфейсы RS-232 с UARTом роутера. В принципе, можно подключить к USB, используя указанную выше микросхему FT232RL, – что я и сделал при первой проверке роутера. Но эта микросхема – в достаточно сложном для пайки корпусе, посему мы поговорим о более простых решениях. А именно – микросхеме MAX232. Если ты собираешься питаться от роутера, то там, скорее всего, будет 3,3 вольта, поэтому лучше использовать MAX3232, которая обычно стоит в КПК (схему распайки нетрудно найти в инете). Но в моем роутере присутствовало питание +5 вольт на входе, а указанных микросхем у меня великое множество, и я не стал заморачиваться. Для сборки нам потребуются конденсаторы 0,1 мкФ (4 штуки) и сама микросхема. Запаиваем все по традиционной схеме, и начинаем эксперименты.
Исходники для сборки
На выход я сразу повесил 9-пиновый разъем типа «папа», чтобы можно было легко подключить нуль-модемный кабель. Если ты помнишь, во времена DOSа такими кабелями делали сетку из двух компов и резались в «Дюкнюкем». Провод для наших целей собрать несложно. Правда, получится не полный нуль-модем и через него особо не поиграешь, но рулить точкой доступа будет самое то! Тебе понадобятся два 9-пиновых разъема типа «мама», корпуса к ним и провод, например, от старой мышки или клавы (главное, чтобы в нем было три провода). Сначала соединяем земли ¬- это пятый контакт разъемов; просто берем любой провод и с обоих сторон припаиваем к 5-му контакту. А вот с RX и TX надо поступить хитрее. С одного конца провода запаиваем на 3-й контакт, а с другого – на 2-й. Аналогично с третьим проводом, только с одного конца запаиваем на 2-й контакт, с другого – на 3-й. Суть в том, что TX должен передавать в RX. Прячем запаянные разъемы в корпус — и готов нуль-модемный кабель!
Распаянные иголки на плате роутера.
Для удобства монтажа в материнку роутера я впаял штырьковый разъем, а в монтажку с MAX232 – обратный разъем и вставил платку, как в слот. RX и TX роутера подбираются экспериментально.
Собраная плата
Теперь надо запитать микросхему преобразователя. Общий провод у нас присутствует уже прямо в разъеме на мамке роутера. А вот + 5 вольт находится прямо у входа питания роутера, в месте, где подключается адаптер. Точку нахождения 5 вольт определяем вольтметром, измеряя разные узлы относительно земли роутера.
Подключаем питание. Включаем и начинаем наши злостные эксперименты.
Прожигаем отверстие для вывода проводов
Распаянный СОМ-порт
Всё в сборе. Обратите внимание, что красный провод питания идёт к разъёму адаптера роутера. Узелок внутри сделан, для того чтобы рывком на оторвать припаянные провода.
Настройка терминала
Нам нужно настроить терминальную программу. В Винде все достаточно просто: запускаем Hyper Terminal, отключаем программную и аппаратную проверку данных, выставляем скорость 115200 и один стоповый бит. А вот в Линухе дело обстоит чуть хитрее. У меня Ubuntu, и рассказывать буду про нее. Для начала разберись, как в твоей сборке именуется СОМ-порт. В моем случае СОМ1 был ttyS0 (если использовать к примеру микросхему FT232, то он будет именоваться ttyUSB0). Для работы с ним я использовал софтинку minicom.
Запускай ее с параметрами: minicom -l -8 -c on -s. Далее выбирай «Настройки последовательного порта»:
Последовательный порт /dev/ttyS0
* Скорость/четность/биты 115200 8N1
* Аппаратное управление потоком — нет
* Программное управление потоком — нет
Сохраняем настройки. Софтина попробует проинициализировать модем — не обращай внимания. Чтобы вызвать меню, нажми <ctrl-a z>. Там можно менять настройки, например: включить/выключить эхо — Е.
Настройка
Я не рекомендую подключать микросхему преобразователя к роутеру, дабы проверить ее функционал. Допускается только брать с него питание. Проверка проходит очень просто — необходимо перемкнуть RX с TX. Сначала перемыкаешь в СОМ-порте 2-й и 3-й контакт — проверяешь настройки терминалки. Пишешь что-то на клаве: если символы возвращаются, значит, все ОК. Также проверяешь кабель, те же контакты. Потом подключаешь микросхему, и уже у нее на выходе ставишь перемычку. Я заостряю на этом внимание, потому что, например, у меня возникли проблемы, и ничего не работало, пока я все не проверил и не нашел ошибку.
После всех настроек можешь смело цеплять к роутеру и искать RX-TX на роутере, периодически выдергивая из него питание. Если все сделано правильно, то при подаче питания ты увидишь лог загрузки роутера. Принимай поздравления, теперь у тебя полный аппаратный рут, так, будто ты сидишь за монитором с клавой роутера.
Лог загрузки роутера в программе minicom
Автономное плаванье
Согласись, делать через терминальную программу то же самое, что удобнее сделать через SSH – не айс. Мне хотелось превратить роутер в автономный Linux-компьютер, со своей хитрой архитектурой. Для этого нужно, чтобы данные с клавиатуры передавались по UART, и по нему же выводились на монитор. Паять и разрабатывать устройство было лениво. Тогда-то и пришла идея заюзать для этих целей пылящийся без дела КПК. По сути, наладонник будет исполнять роль контроллера клавиатуры и дисплея, ну и служить сопряжением интерфейсов.
Сначала я попробовал древнейший Palm m100. Но, видимо, у него очень маленькая буферная память, и от количества данных, которые идут с роутера, ему становилось плохо. Я взял другой — промышленный КПК, с нормальным СОМ-портом и терминалкой. Подключил, вставил в док и, в результате, получил небольшой линукс-компьютер. В принципе, вместо дорогущего промышленного КПК подойдет большинство наладонников, работающих под операционкой WinCE, главное – найти подходящий терминальный софт.
Линукс компьютер 🙂
Итоги
Итак, я показал небольшой пример использования UART. Если ты вкуришь в этот протокол, то поверь, станешь просто повелителем различных железок. Есть он практически везде, и через него можно сопрягать, казалось бы, совершенно разные вещи. К примеру, к тому же роутеру при небольших настройках подключается мобильный телефон по юарту, – и раздает с него интернет. В общем, применений куча. Не бойся экспериментировать, самообразовываться и реализовать свои идеи.
Этот пост является отредактированной для хабра версией моей статьи в Хакере № 05/09 «Главный инструмент фрикера».
Литература:
1. Михаил Гук «Аппаратные интерфейсы ПК» — просто студенческая библия по персоналке.
2. en.wikipedia.org/wiki/RS-232
3. easyelectronics.ru/tag/rs232
Понимание различий между UART и USB
2022-01-26
Джессика Хопкинс
USB и UART — распространенные коммуникационные интерфейсы, используемые во встроенных системах для отправки и получения данных между устройствами. UART считается одним из первых интерфейсов связи, применяемых к компьютерам. Однако более новый протокол USB заменил многие системы UART, но оба они по-прежнему широко распространены во встраиваемой промышленности. В этой статье мы расскажем о связи USB и UART, а также об их взаимосвязи.
UART to USB в компьютерах
Когда компьютеры были впервые представлены, вспомогательные устройства, такие как мыши и принтеры, часто подключались с помощью кабелей к последовательному порту компьютера и соответствовали новому стандарту последовательной передачи данных, называемому RS-232. Устройства UART были созданы, чтобы быть совместимыми с этой связью.
Последовательный порт DB-9 на печатной плате
USB, однако, почти полностью заменил эти устаревшие кабели и разъемы, которые работают с использованием связи UART. USB, последовательный протокол, который также соответствует стандарту RS-232, был представлен как более продвинутый и стандартизированный способ связи устройств посредством квитирования, обнаружения устройств, автоматического согласования скорости и т. д. UART все еще используется сегодня, но в основном используется в модулях GPS и Bluetooth, Arduino и других микроконтроллерах.
Мы предоставим некоторые сведения об интерфейсах связи USB и UART, чтобы лучше понять их сходство и различия.
Общие сведения о связи UART
UART, или универсальный асинхронный приемник/передатчик, представляет собой аппаратный протокол связи, который использует асинхронную последовательную связь с настраиваемой скоростью. Асинхронность означает, что он не использует тактовый сигнал для синхронизации выходных битов передающего UART с битами выборки на принимающем UART. UART также считается «универсальным», поскольку параметры, включая скорость передачи и скорость передачи данных, настраиваются разработчиком.
Связь UART состоит из двух устройств UART, которые обмениваются данными напрямую друг с другом. UART на устройстве-отправителе или передающий UART получает параллельные данные от ЦП (микропроцессора или микроконтроллера) и преобразует их в последовательные данные. Эти последовательные данные передаются на UART на принимающем устройстве или на принимающий UART. Принимающий UART преобразует принятые последовательные данные обратно в параллельные данные и отправляет их в ЦП.
Схема связи UART
При связи по UART требуется только два провода для связи, включая сигналы передатчика (Tx) и приемника (Rx). Данные передаются от вывода Tx передающего UART к выводу Rx принимающего UART. Протоколы последовательной связи, такие как RS-232, RS-422 или RS-485, передаются с использованием UART.
Данные UART передаются по шине в виде пакета. Пакет состоит из стартового бита, кадра данных, бита четности и стоповых битов. Бит четности используется в качестве механизма проверки ошибок для обеспечения целостности данных. Вместо использования часов приемный и передающий UART должны иметь одинаковую скорость передачи данных, что позволяет системе знать, где и когда были синхронизированы биты.
Общие сведения о USB-коммуникациях
USB, или универсальная последовательная шина, представляет собой протокол последовательной шины на основе токенов, запланированный хостом, который был разработан для замены множества кабелей и разъемов, необходимых для подключения периферийных устройств к главному компьютеру, и вместо этого реализует более стандартизированное соединение. USB отвечает многим требованиям, необходимым для этого, включая возможность самоидентификации на шине и горячее подключение для возможностей plug-and-play.
Порты USB на портативном компьютере
Для обмена данными по USB имеется USB-хост или ведущее устройство, которое инициирует все обмены данными по шине. Обычно это компьютер или другой контроллер. Периферийное устройство или ведомое устройство подключено к хосту и запрограммировано на предоставление хосту информации, необходимой для успешной работы.
Пример топологии USB-шины
Когда USB-устройство подключается к хост-устройству, оно пересчитывается. На этом этапе хост распознает устройство и присваивает ему уникальный 7-битный адрес. Затем хост запрашивает у устройства его дескрипторы, которые содержат конкретную информацию об устройстве.
В зависимости от этого обмена информацией данные передаются и принимаются по шине с использованием различных полей и типов пакетов данных USB, а также различных типов передачи данных. Подробнее об особенностях этого можно узнать здесь.
Существуют различные типы разъемов USB со специальными контактами, которые позволяют кабелю и разъему выполнять определенные функции. Разъемы USB состоят из дифференциальных контактов данных (-, +) для передачи данных, VBUS для напряжения шины, заземления и контактов экрана.
USB также имеет различные спецификации кабеля, которые были представлены на протяжении многих лет, каждый из которых поддерживает свою собственную скорость передачи данных:
- Низкоскоростной USB (USB 1.0): 1,5 Мбит/с
- Полноскоростной USB (USB 1.1): 12 Мбит/с
- Высокоскоростной USB (USB 2.0): 480 Мбит/с
- SuperSpeed USB (USB 3.2 Gen 1): 5 Гбит/с
- SuperSpeed USB 10 Гбит/с (USB 3.2 Gen 2×1): 10 Гбит/с
- SuperSpeed USB 20 Гбит/с (USB 3.2 Gen 2×2: 20 Гбит/с
- USB4: 40 Гбит/с
Мост USB-UART
USB стал предпочтительным протоколом последовательной связи между цифровыми продуктами, такими как компьютеры и периферийные устройства, поскольку он может передавать данные по более длинным кабелям и обеспечивает более высокую скорость передачи. Однако UART по-прежнему используется сегодня для определенных приложений и часто встречается в старых устройствах.
Чтобы преодолеть разрыв между старыми и новыми устройствами, разработчикам может потребоваться сохранить работоспособность устаревших путей передачи между системами USB и UART. Преобразователь USB в UART – это интегральная схема, используемая для отправки или приема последовательных данных от USB-порта в последовательные данные, которые могут быть получены или отправлены через интерфейс UART. Это небольшое устройство, которое подключается к вашему USB-порту и имеет по крайней мере выходы заземления, Rx и Tx. Он действует как последовательный порт для вашего компьютера, и компьютер отправляет данные на этот порт, где модуль преобразует их в сигналы UART.
Как Total Phase поддерживает отладку USB/UART
Total Phase предлагает различные анализаторы протокола USB для мониторинга и отладки трафика USB в режиме реального времени. Наша линейка анализаторов протокола USB Beagle включает:
Анализатор протокола Beagle USB 12:
Анализатор протокола Beagle USB 12 может ненавязчиво контролировать полно/низкоскоростной USB (12 Мбит/с/1,5 Мбит/с)
Beagle USB 480 Анализатор протокола:
Анализатор протокола Beagle USB 480 может ненавязчиво контролировать высокоскоростной порт USB 2. 0 (до 480 Мбит/с) и предлагает декодирование на уровне класса. Также можно использовать наш анализатор протокола Beagle USB 480 для мониторинга шины RS-232 и захвата данных UART. Пожалуйста, посетите этот блог для получения дополнительной информации.
Анализатор протокола питания Beagle USB 480 — Standard и Ultimate Edition:
Анализатор протокола питания Beagle USB 480 — Standard и Ultimate Edition может ненавязчиво контролировать высокоскоростной порт USB 2.0 (до 480 Мбит/с) и предлагает класс- уровень декодирования. Этот инструмент обеспечивает графическое отображение значений тока и напряжения VBUS в режиме реального времени, а также интерактивную и двунаправленную корреляцию значений тока/напряжения с данными USB. Версия Ultimate также поддерживает расширенные триггеры USB 2.0.
Beagle USB 5000 V2 SuperSpeed Анализатор протокола -стандартные и конечные издания:
Анализатор протокола SuperSpeed USB 5000 V2. декодирование на уровне класса. Версии Standard и Ultimate могут выполнять простое и расширенное сопоставление/запуск USB 2.0 и USB 3.0. Для расширенных триггеров USB 3.0 стандартная версия позволяет определить одно состояние с одним совпадением для каждого потока, а версия Ultimate позволяет определить до восьми состояний с тремя совпадениями для каждого потока на состояние.
Для получения дополнительной информации о том, как наши анализаторы протоколов USB могут помочь в отладке ваших собственных систем USB, свяжитесь с нами по адресу [email protected].
Кроме того, чтобы узнать больше о различиях между UART и другими протоколами, такими как I2C и SPI, см. следующие блоги:
- Понимание разницы между UART и SPI
- Понимание различий между UART и I2C
- I2C, SPI и UART — введение и сравнение их сходств и различий
Последовательные мосты USB-UART
Преобразователи или мосты USB-UART представляют собой последовательный порт для вашего компьютера и отправляют последовательные данные по паре проводов. Их можно использовать для последовательного подключения к другому устройству. В этом посте мы рассмотрим, как это работает.
Приложения
С точки зрения хакеров наиболее интересным применением UART являются встроенные устройства. Большинство встроенных устройств имеют разъем UART на плате. Устройство отправляет консольный вывод и принимает команды через интерфейс UART. Часто это дает прямой доступ к корневой оболочке.
Связь UART иногда также необходима для взаимодействия с отладочной платой, такой как Arduino или ESP8266, хотя большинство этих плат имеют встроенный преобразователь USB в последовательный порт.
Несколько других протоколов основаны на связи UART, например, порты IrDA, DMX, MIDI и смарт-счетчика P1. Их можно использовать с мостами USB-UART, но для их работы требуется дополнительный взлом.
Связь с помощью UART
Когда два устройства обмениваются данными с помощью UART, они соединяются как минимум тремя проводами:
- Общая масса, или 0 В, или отрицательный провод источника питания.
- Передающий контакт (Tx) одного устройства подключен к приемному контакту (Rx) другого устройства.
- Аналогичным образом Rx подключается к Tx.
- Для изолированных адаптеров Vcc или положительный провод источника питания.
Теперь устройства могут отправлять данные друг другу, изменяя напряжение на линиях Tx, и считывать данные, проверяя напряжение на линии Rx. UART использует бинарный протокол, поэтому существует только два уровня напряжения: высокий и низкий.
Нет тактового сигнала и согласования между двумя устройствами. Для правильной связи оба устройства должны быть заранее настроены на использование одной и той же скорости связи, называемой скоростью передачи данных.
Скорость в бодах
Скорость в бодах — это число битов в секунду, передаваемых по проводу. Обычная скорость передачи составляет 9600 бит в секунду. В этом случае один бит занимает 1 ∕ 9600 секунды или 104 мкс.
Передающая сторона переключает сигнал каждые 104 мкс, а принимающая сторона проверяет напряжение на линии каждые 104 мкс. Это все еще будет работать, если это на пару процентов. Это иногда происходит с микроконтроллерами, у которых есть проблемы с поддержанием точных часов.
Наиболее распространенными скоростями передачи являются 9600 и 115200. Кроме того, существует несколько стандартных скоростей передачи, таких как 19200 и 38400. Теоретически вы можете использовать любую скорость передачи данных, но старые интерфейсы поддерживают только стандартные скорости передачи данных. Можно использовать разные скорости передачи для отправки и получения, хотя это довольно редко.
Стартовый, стоповый биты и биты четности
Кадры UART состоят из стартового бита, семи или восьми битов данных, дополнительно бита четности и одного или двух стоповых битов. На сегодняшний день наиболее распространенной конфигурацией является использование восьми битов данных, без бита четности и одного стопового бита, или 8N1. Таким образом, передающая сторона сначала отправляет стартовый бит, затем восемь битов данных, а затем стоповый бит.
Уровни напряжения
UART используют два напряжения: одно напряжение указывает на 0 бит, а другое напряжение указывает на 1 бит. Какое именно напряжение используется, зависит от устройства:
- Последовательные порты RS232 используют отрицательное и положительное напряжения, до -15В и 15В.
- Некоторые устройства используют 0 В и 5 В, например Arduino Uno, работающий от 5 В.
- Большинство устройств используют 0 В и 3,3 В.
- Некоторые устройства используют 0 В и 1,8 В.
Для RS232 отрицательное напряжение равно логической 1, положительное напряжение равно 0. Для большинства других устройств UART 0 В соответствует 0 биту, а более высокое напряжение соответствует 1 биту.
Чтобы не поджарить устройство, важно использовать правильное напряжение. Подключение вашего 3,3-вольтового моста к 15-вольтовой линии RS232 быстро разрушит его.
Напряжение в диапазоне от 0 до напряжения питания (Vcc) также называется уровнями напряжения TTL. Уровни напряжения TTL 5 В считают все выше 2 В высоким логическим уровнем и, таким образом, могут также получать данные от устройств UART 3,3 В. Таким образом, в этом случае можно обмениваться данными с 5-вольтовым UART, используя 3,3-вольтовый UART.
Модуль преобразователя USB в UART
Чтобы ваш компьютер мог общаться по UART, вам необходимо устройство, которое преобразует компьютерные байты в сигналы UART; модуль преобразователя USB в UART. Это небольшое устройство, которое подключается к вашему USB-порту и имеет по крайней мере выходы заземления, Rx и Tx. Он притворяется последовательным портом к вашему компьютеру. Компьютер отправляет данные на этот последовательный порт, а модуль преобразует их в сигналы UART.
Отличия микросхем
Мост USB-UART имеет микросхему специально для этой цели. Существует несколько часто используемых семейств микросхем:
- Цзянсу Циньхэн / ЧМ Ч440
- Силикон Лабс CP2102
- Продуктивный PL2303
- ФТДИ ФТ232
Имеются разные версии с разными характеристиками:
Чип | Цена | Напряжение ввода/вывода | Максимальная скорость передачи | Размер буфера | GPIO | Лист данных |
---|---|---|---|---|---|---|
Ч440 | 0,25 € | 3,3/5 В | 2 Мбит/с | 32 + 32 В | 0 | Ч440 |
Ч441 | 0,75 € | 3,3/5 В | 2 Мбит/с | 32 + 32 В | 0 | Ч441 |
СР2102 | 0,75 € | 3,3 В 1 | 1 Мбит/с | 576 + 640 Б | 0 | СР2102/9 |
КП2102Н | 1,50 € | 3,3 В | 3 Мбит/с | 512 + 512 Б | 7 | КП2102Н |
PL2303HXD | 0,90 € | 1,8–3,3 В 1 | 12 Мбит/с | 512 Б | 4 | ПЛ2303ХСД |
PL2303TA | 0,70 € | 1,8–3,3 В | 6 Мбит/с | 512 Б | 2 | ПЛ2303ТА |
ФТ232Р | 3,50 € | 1,8–5 В | 3 Мбит/с | 128 + 256 В | 4 | ФТ232Р |
FT231X | 1,80 € | 1,8–4 В | 3 Мбит/с | 512 + 512 Б | 4 | ФТ231С |
- CP2102 и PL2302HXD выдают максимум 3,3 В, но могут принимать до 5 В на входе, что делает их совместимыми с 5-вольтовыми устройствами UART.
Помимо различий в чипах, качество драйверов также различается между различными чипами. Некоторые чипы имеют драйверы Windows, встроенные в Windows или распространяемые через Центр обновления Windows, что обеспечивает работу по принципу plug-and-play. Другие чипы имеют драйверы, которые надежно приводят к сбою операционной системы при чтении и записи на устройство значительных объемов данных. Linux является исключением в этом отношении, поскольку драйверы Linux пишутся, поддерживаются и проверяются разработчиками ядра, а не производителем чипа.
FTDI является самым длинным и ранее был единственной реализацией, доступной для мостов USB-UART. Они были настолько распространены, что мост часто называли FTDI по названию компании, изготовившей микросхему преобразователя. В настоящее время их быстро вытесняют гораздо более дешевые китайские микросхемы-преобразователи.
Поддельные чипы FTDI
Чипы FTDI FT232 довольно популярны и относительно дороги (3,50 евро). Это привело к росту количества подделок из Китая. Эти имитации имеют логотип FTDI и работают правильно, и их трудно отличить от подделок.
FTDI это не понравилось. В 2014 году они выпустили обновление драйвера, которое работает только с настоящими чипами FTDI, и блокируют поддельные чипы. Позже они отказались от этого неоднозначного поведения, но это серьезно подорвало их репутацию. Несмотря на это, поддельные чипы FT232 по-прежнему широко используются и доступны.
Отличия адаптеров
Самые дешевые адаптеры просто имеют USB-порт и контактный разъем, напрямую подключенный к чипу. Обычно они выставляют только землю, положительное напряжение (Vcc), Rx и Tx, а не другие модемные линии управления данными, такие как RTS и CTS.
Существуют также адаптеры с гальванической развязкой. Они используют землю и Vcc устройства, с которым вы хотите связаться, и не соединяют электрически устройство с вашим компьютером. Это защитит ваш компьютер от высокого напряжения, предотвратит появление контуров заземления и уменьшит шум. Эти адаптеры дороже, но они могут спасти жизнь вашему компьютеру, если вы когда-нибудь по ошибке подключите мост к высокому напряжению.
Руководство покупателя
При выборе моста USB-UART имейте в виду следующее:
- Уровень напряжения. Определите уровень напряжения, который вы хотите использовать. Некоторые мосты поддерживают как 3,3 В, так и 5 В, и есть небольшая перемычка для переключения напряжения.
- Драйверы. Проверьте, есть ли драйверы для моста, который вы хотите купить, для вашей платформы.
- Мигающие светодиоды. Они выглядят круто и могут помочь вам в устранении неполадок.
- USB-разъем. Некоторые мосты подключаются прямо к вашему компьютеру, но часто удобно иметь USB-кабель между компьютером и мостом, чтобы у вас было больше места на столе. Мосты с разъемами mini-USB довольно распространены, но я предпочитаю разъемы micro-USB.
- Особенности. Вам нужны специальные функции, такие как инвертированные сигналы или специальное СППЗУ? Проверьте техпаспорт чипа.
- Скорость. Вам нужны особенно быстрые или необычные скорости? Проверьте техпаспорт чипа.
- Гальваническая развязка. Как описано выше, электрическое отключение соединения USB от контактов ввода-вывода защищает компьютер от повреждения.
- Сигналы управления модемом. Если вам нужны управляющие сигналы RTS, CTS, DSR, DTR, DCD и RI, убедитесь, что ваш мост имеет для них контакты.
Я думаю, что чипы FTDI самые лучшие. Они также самые дорогие, и трудно определить, есть ли у вас настоящий чип или дешевая подделка.
Для обычного использования UART подойдет любой чип. С самым дешевым мостом на AliExpress (0,50 евро) вы можете нормально общаться со встроенными устройствами.
Драйверы
Ваш компьютер должен уметь общаться с модулем, а для этого вам нужны драйверы. Если вы подключите модуль к компьютеру, вы должны получить последовательный порт. Если этого не происходит, вероятно, вам нужен драйвер.
В Linux драйверы поставляются с ядром. Наиболее распространенные микросхемы поддерживаются, начиная с версии ядра 2.6 и выше, а драйверы в последних версиях все еще улучшаются.
MacOS поставляется со встроенными драйверами для определенных микросхем. Некоторые микросхемы FTDI поддерживаются в MacOS 10.9 или 10.10, а некоторые микросхемы Ch440 и PL2303 поддерживаются в MacOS 10.14. Для других чипов нужны драйвера на MacOS. Например, драйвер Ch440 можно установить с помощью homebrew с помощью следующей команды:
варочная бочка устанавливает wch-ch44x-usb-serial-driver
В качестве альтернативы вы можете использовать отличное приложение Serial для macOS, которое поставляется с собственными драйверами.
В Windows вам потребуются драйверы. Для чипов FTDI их можно получить через Центр обновления Windows, а для других установщик можно найти на сайте производителя.
Некоторые из этих драйверов сомнительного качества и могут сделать вашу систему нестабильной. Я мог надежно вывести из строя свой Mac, прочитав и записав большой объем данных в последовательный порт при использовании драйвера Ch440.
Поиск имени последовательного порта
Мост USB-UART добавляет к вашему компьютеру последовательный порт. Чтобы общаться через UART, вы должны читать и писать в правильный последовательный порт. Если вы не можете найти правильный порт, возможно, у вас проблемы с драйверами или USB-подключением к мосту.
Linux
Устройство называется что-то вроде /dev/ttyUSB0. Если вы подключите устройство и посмотрите в журналах ( sudo dmesg
), строка обычно указывает, где подключено вновь найденное устройство:
macOS
Устройство называется примерно так /dev/tty.wchusbserial1410. Я не нашел надежного способа получить имя файла этого порта. Вы можете попробовать следующее:
- Просмотрите журналы с помощью
sudo dmesg
. - Выведите список USB-устройств, используя
ioreg -p IOUSB
или перейдя в «Об этом Mac», «Системный отчет», «USB».
Если ничего не помогает, перечислите все файлы в /dev, подключите устройство, снова перечислите и сравните два:
$ ls /dev > перед. txt $ ls /dev > после.txt $ diff до.txt после.txt 268а269,270 > cu.usbserial-1410 > cu.wchusbserial1410 444а447,448 > tty.usbserial-1410 > tty.wchusbserial1410
Windows
В Windows порт называется COM3 или другим номером. Вы можете найти правильный номер порта в диспетчере устройств.
Связь с последовательным портом
Вам необходимо программное обеспечение, которое устанавливает скорость передачи данных, а также отправляет и получает байты через последовательный порт. Используйте tio в Linux, Putty в Windows и Serial в macOS. Не используйте экран
.
При использовании Putty в Windows отключите квитирование программного обеспечения, которое включено по умолчанию. В меню Serial установите Flow control на None .
Обычно требуется программное обеспечение, которое поддерживает произвольные скорости передачи данных и информирует вас о том, что происходит. В связи с этим экрана
и gtkterm
недостаточно. В то время как экран
может установить последовательное соединение и может работать правильно, он не информирует вас, когда он не может делать то, что вы хотите. Если вы запустите команду screen /dev/ttyUSB0 128000
, вы можете ожидать, что скорость передачи будет установлена на 128000. Однако это неподдерживаемая скорость передачи, и экран
молча возвращается к 9600. Вроде все в порядке, за исключением скорости передачи. неправильно.
Еще более странно, что screen /dev/ttyUSB0 4098
использует скорость передачи 115200, потому что константа ядра B115200
равна 4098
, а screen интерпретирует данное число в любом случае.
у.е. 9Команда 0429, по крайней мере, сообщает вам, что скорость передачи данных не поддерживается.
Все, что вы вводите, отправляется по последовательной линии, что может затруднить выход из программы. Для выхода используйте следующие сочетания клавиш:
- экран: ctrl-a, k, y
- тио: ctrl-t, q
- у. е.: ~. введите
Поиск интерфейса UART на устройстве
Если вы хотите подключиться к встроенному устройству, первым делом нужно найти правильные контакты на плате. Часто имеется ряд из четырех или пяти контактов, по крайней мере, с заземлением, Vcc, Rx и Tx. Иногда штифты отсутствуют и остаются только отверстия. Часто такое соединение маркируется как J5 или другим номером.
На следующем изображении вы видите интерфейс UART на модеме Huawei. Устройство пришло с пустыми контактными площадками, и я припаял к нему контакты. На шелкографии можно увидеть маленькую таблицу с описанием контактов: Tx, Gnd, Vcc, Rx. Контакты на правой стороне — это контакты JTAG. Наличие UART и JTAG в одном разъеме позволяет легко подключить отладочный кабель к плате для отладки. По тем же причинам отладочные порты часто находятся сбоку платы.
Если вы подозреваете, что контакт является линией UART, первым делом измерьте напряжение с помощью мультиметра. Сначала найдите хорошее соединение для общей массы и подключите к нему черный провод мультиметра. Затем измерьте напряжение на подозрительных контактах красным щупом. Линия Tx будет 3,3 В в режиме ожидания. Продолжайте измерения, перезагружая устройство. Данные часто отправляются при загрузке, поэтому мы можем использовать это, чтобы определить, отправляются ли данные по линии. Если данные отправляются, напряжение временно упадет ниже 3 В в соответствии с показаниями мультиметра.
Теперь вы определили, что линия имеет допустимое напряжение и на ней есть активность. Это еще не означает, что линия является линией UART, она может использовать другой протокол, такой как I2C или SPI. Один из способов определить это — использовать логический анализатор или осциллограф для просмотра электрических сигналов. Или вы можете подключить мост USB к UART и посмотреть, работает ли он.
В примере ниже камера имеет пять отверстий, изначально спрятанных под белой наклейкой. Это позволяет получить доступ к интерфейсу UART извне. Однако я не смог заставить это работать и припаял провода к контактным площадкам. Пэды имеют маркировку TP41, TP42 и т. д., где TP означает контрольную точку.
Подключение к устройству
Перед подключением к устройству убедитесь, что оно излучает напряжение, совместимое с вашим мостом. Линии RS232, например, используют -15 и +15 В, что может легко испортить ваш мост. Даже если напряжение приемлемо, вы можете установить резистор 300 Ом между вашим мостом и устройством, чтобы предотвратить слишком большие токи.
При подключении моста UART к устройству подключите землю, Tx и Rx. Rx моста соединяется с Tx устройства и наоборот.
Необходимость подключения Vcc зависит от того, используете ли вы изолированный мост. Если у вас есть изолированный мост, между вашим USB-портом и контактами ввода-вывода нет электрического соединения. Тем не менее, контакты ввода-вывода все еще должны выдавать напряжение, и для этого сторона ввода-вывода нуждается в Vcc.
Если ваш адаптер не изолирован, подключение Vcc вашего моста к устройству может повлиять на напряжение, уже подаваемое на устройство. Если устройство получает питание от другого источника питания, оно уже имеет определенный уровень напряжения на выводе Vcc. Если вы подключите вывод Vcc моста, а напряжение будет другим, будет протекать ток, который может повредить устройство.
Альтернативой является отключение устройства от источника питания и подача питания через мост USB-UART. Однако большинство мостов могут подавать только до 100 мА или около того, что недостаточно для большинства устройств.
Определение скорости передачи данных
Обычный способ — попробовать стандартные скорости передачи данных до тех пор, пока вывод не станет разборчивым. В качестве альтернативы скорость передачи данных можно определить путем измерения длины самого короткого импульса. При скорости передачи 9600 один бит занимает 1 ∕ 9600 секунды. Поэтому, если мы измерим длительность одного бита, мы сможем определить скорость передачи данных.
Проще всего это сделать с помощью логического анализатора, который просто показывает синхронизацию в интерфейсе:
В качестве альтернативы это возможно с помощью микроконтроллера, использующего входной захват для измерения длительности импульса. Я создал программу автобода, которая работает на Arduino Uno и может надежно определять скорость передачи данных до 200 000 бит/с.
При использовании неправильной скорости передачи обычно отображается тарабарщина, хотя также возможно, что вы вообще ничего не видите.
Устранение неполадок
Первый шаг — определить, где находится проблема: между вашим компьютером и мостом или между мостом и устройством, к которому вы хотите подключиться?
Обнаружение проблемы
- Получает ли ваш компьютер дополнительное устройство COM или tty при подключении моста? Если нет, то у вас проблема с драйвером.
- Проверьте светодиоды на мосту.
- Загорается ли индикатор Tx при отправке данных? Тогда соединение между вашим компьютером и мостом в порядке.
- Светодиод Rx горит, но вы ничего не видите в своем терминальном приложении? Тогда соединение между мостом и устройством в порядке, а проблема между вашим компьютером и мостом.
- Отключите мост от устройства и соедините Rx и Tx моста вместе. Отражается ли ваш ввод в терминале? Тогда соединение с мостом в порядке.
Проблемы с USB
- Проверьте, распознает ли ваша операционная система устройство USB.
- В Linux: lsusb
- В macOS: ioreg -p IOUSB
- В Windows: проверьте диспетчер устройств.
- Просмотр журналов (с помощью dmesg) при подключении устройства к компьютеру.
- Отключите мост, перечислите все устройства (ls /dev), снова подключите мост и сравните их.
- Попробуйте использовать другой заведомо исправный USB-кабель.
- Повторите то, что вы делаете пару раз, чтобы исключить временную проблему.
Удаленные проблемы
- Правильная ли скорость передачи данных?
- Использует ли мост ту скорость передачи данных, о которой вы думаете?
- Использует ли устройство инвертированную линию передачи данных?
- Требуется ли для устройства активация последовательной связи? Есть ли у него линия запроса данных?
- Правильно ли заземление подключено к устройству?
Заключение
Использование моста USB-UART может быть довольно простым, если он работает, или может быть болезненным, если он не работает.