Com port через usb

Содержание

Com порт не видит устройства

Com порт не видит устройства

Всех приветствую вновь на страницах своего блога и сегодня хочу рассказать, как подключить com порт usb в Windows . Поговорим, что это такое и для чего используется. Я думаю для начинающих сетевых администраторов, да и просто для продвинутых пользователей это будет интересно, для меня в свое время это было просто какой-то магией, позволяющая настраивать серверное оборудование.

Переходник COM — USB

В данной статье приведена подборка схем, позволяющая собрать несложное, но крайне полезное устройство: переходник Com USB.

Последовательный порт (RS-232), или как еще его называют COM-порт, предназначен для обмена информацией между компьютером и периферийными устройствами. Последовательным его назвали потому, что обмен данными по нему происходит бит за битом по одному.

Первоначально COM порт предназначался для соединения модема с компьютером. В дальнейшем к нему стали подключать мышь, сканер прочую периферию. Так же имеется возможность с помощью COM порта организовать прямое соединение двух компьютеров.

На сегодняшний день подавляющее большинство компьютеров не оснащаются RS-232 разъемом, поскольку широкое распространение получил стандарт USB. Но еще существуют многого внешних устройств работающих только с COM портом (различные программаторы, диагностическое оборудование, ресиверы и пр.). Выходом из данной ситуации является использование устройства переходник COM-USB. Ниже приведем несколько вариантов наиболее популярных схем данного переходника.

Драйвер Prolific USB-to-Serial Comm Port в Windows 10, 8, 7 не работает

Данная статья описывает ряд проблем возникающих при работе со старыми адаптерами KLM и ELM327, которые использовались для подключения PC к автомобильным блокам управления. В частности многие автолюбители использовали и сейчас пользуются этими адаптерами для сброса ошибок на своих автомобилях. Если кому-то будет интересна эта тема, то могу подробно расписать, так как сам активно занимался прошивкой и перепрограммированием ЭБУ на отечественных авто и иномарках. Сейчас же эти адаптеры стали довольно бюджетные и любой автолюбитель может сам позволить купить себе такой, только проблем с их работой меньше не становится.

ELM327-USB

Всё что будет описано ниже относится не только к автомобильным USB адаптерам, но и вообще к различному обородуванию которое подключается через USB шину и использует для своей работы драйвер Prolific USB-to-Serial Comm Port.

Несмотря на активное продвижение USB на рынке цифровых технологий, ряд устройств для подключения к ПК используют несколько устаревшие COM-порты. Поскольку в большинстве современных компьютеров отсутствует соответствующий разъём, выходом из ситуации становится переходник «USB-to-COM». В данной статье я поясню, что это за драйвер Prolific для устройства USB-to-Serial Comm Port для операционной системы Windows 10, 8, 7. А также как можно решить ошибку с кодом 10, возникающую при работе с указанным драйвером.

Создание виртуального com порта

Последовательный или COM-порт — это интерфейс стандарта RS-232, который служит для подключения различного оборудования к компьютеру. Из-за ограничения в размере информации (1 бит), передаваемой за один раз, данный порт получил второе название: последовательный. Интересным является тот факт, что в различных интерфейсах, таких как Ethernet или USB информация передаются также — последовательно, однако, такое название за ними не закрепилось.

Что делать если в компьютере нет COM-порта?

Изначально COM-порты использовались для подключения терминалов, модемов и мыши. В современное время основное назначение сводится к подключению всевозможных источников питания, микроконтроллеров, вычислительных систем, кассовых аппаратов и других устройств. Также COM-порт очень активно использовался для синхронизации компьютеров: к примеру, ноутбука с персональным компьютером. Сейчас такой подход сменился использованием USB-порта.

Микроконтроллер + компьютер + своё программное обеспечение

Своё устройство на микроконтроллере я начал “пилить” еще в начале 2019-го. Тогда я даже не думал, что захочу связать его с компьютером, но устройство постоянно эволюционирует, и вот настала пора. Причём нужно не просто связать, а написать своё фирменное ПО, которое будет управлять устройством через USB. С подобной задачей я столкнулся впервые, а беглый поиск в сети выдал такие результаты, после которых появилось ещё больше вопросов и каша в голове. Про свой опыт решения данной задачи “От” и “До” делюсь в этой статье.

Что подключают через com порт

Через com порт ранее подключали модемы, мышки. Сейчас он используется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем, спутниковыми ресиверами, кассовыми аппаратами, с приборами систем безопасности объектов, а также с многими прочими устройствами.

С помощью COM-порта можно соединить два компьютера, используя так называемый «нуль-модемный кабель» (см. ниже). Использовался со времен MS-DOS для перекачки файлов с одного компьютера на другой, в UNIX для терминального доступа к другой машине, а в Windows (даже современной) — для отладчика уровня ядра.

Но в сетевом мире через com порт подключаются к консольному порту сетевых устройств (коммутаторов, роутеров, таких брендов как Cisco или Juniper)

Какая схема подключения к коммутаторам через последовательный порт. Есть переходники, например от фирмы st-lab На одном конце USB который вы подключаете к компьютеру, а второй это com порт.

Com порт не видит устройства

Далее к ком порту подсоединяется вот такой шнурок, com порт, а с другой стороны LAN RJ45, и вся схема дает нам один большой шнурок USB to LAN.

Com порт не видит устройства

на микросхеме FT8U232BM

Основа данной схемы является микросхема FT8U232BM — производителя FIDI Ltd. Устройство построенное по данной схеме поддерживает все сигнальные уровни (DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI) согласно распиновки COM порта.

Для согласования TTL уровней RS232 интерфейса с уровнями микросхемы FT8U232BM используются две микросхемы 74НС00. Микросхема памяти 93С46 предназначена для хранения персонального номера (PID), код изготовителя (VID), а так же заводской номер устройства. Данную микросхему можно и не устанавливать. В этом случае к компьютеру возможно будет подключить всего лишь 1 создающее виртуальный COM-порт устройство. Микросхему памяти AT93С46 возможно заменить на AT93C66, AT93C56. Прошивается 93С46 непосредственно на плате при помощи фирменной утилиты производителя FTDI.

Скачать datasheet FT8U232BM (1,4 MiB, скачано: 2 862)

Скачать драйвер для FT8U232BM (736,4 KiB, скачано: 2 535)

Что такое виртуальный COM-порт?

Виртуальный COM-порт воображает себе наша операционная система, при этом он отсутствует физически. Для «воображения» существуют специальные программы, одну из которых мы рассмотрим позже.

Вступление

О моём устройстве расскажу немного позже, сохраним интригу. Предвидя вопрос типа “В чём смысл этого топика?”, отвечу, что простого и законченного решения в сети я так и не нашёл. Под простым и законченным решением я подразумеваю дуэт микроконтроллера (далее МК) с компьютером (далее ПК) и заготовки кода с функцией автоматического коннекта, а также мега-функцией “поморгать светодиодом”. Пришлось повозиться и собрать все элементы мозайки в единую картину, которую я решил оформить в статью. Надеюсь, она поможет новичкам в вопросе “Как связать микроконтроллер с компьютером через USB” без лишних заумных слов. Уточню, что программированием занимаюсь для удовольствия, поэтому не претендую на образцово-показательный код. Это всего-лишь мой личный опыт, и вам судить, дорогой читатель, насколько он полезен.

ПРОБЛЕМЫ СО СКАЧИВАНИЕМ ИЛИ ИНСТАЛЛЯЦИЕЙ?

Если Вы столкнулись с какими-либо проблемами при скачивании или инсталляции, пожалуйста, свяжитесь со службой технической поддержки AGG Software. Подробнее.

Установка драйверов com порт usb в Windows

К сожалению в Windows подключенные устройства, usb to com не всегда автоматически устанавливаются в системе, и приходится искать для них драйвера. Если вы покупали его сами, то в комплекте шел диск с драйверами, и можно воспользоваться им, если его нет, то смотрим как найти драйвера.

Открываем диспетчер устройств в Windows. Если не знаете как, то нажмите CTR+Pause breake, либо нажмите Win+R и в окне выполнить введите devmgmt.msc. Как видите у меня в разделе Порты (COM и LPT) нашелся на третьем COM порту неизвестный провод, и драйверов для него не нашлось у системы, о чем говорит нам желтый значок.

Com порт не видит устройства

Переходим в свойства данного устройства и выбираем ИД оборудования, у вас будет, что то по типу usbVID_067B&PID_2303&REV_0300, вот его вы копируете и ищите в гугле или яндексе.

Com порт не видит устройства

После чего щелкаем правым кликом по устройству в диспетчере устройств и выбираете установить драйвера, указываете до них путь и ставите, если все ок, то у вас пропадет значок предупреждения.

Далее вы уже можете использовать возможности com порта, с помощью таких утилит на подобие Putty, где вы выбираете пункт Serial и указываете нужный порт Com порта, посмотреть его можно в том же диспетчере устройств.

Com порт не видит устройства

Надеюсь вы научились и разобрались как подключать com порт usb в Windows.

Com порт не видит устройства

To Fix (The Com Ports are not visible in the Device Manager) error you need to follow the steps below:

Совместимость : Windows 10, 8.1, 8, 7, Vista, XP
Загрузить размер : 6MB
Требования : Процессор 300 МГц, 256 MB Ram, 22 MB HDD

Ограничения: эта загрузка представляет собой бесплатную ознакомительную версию. Полный ремонт, начиная с $ 19.95.

Порты Com не отображаются в диспетчере устройств обычно вызвано неверно настроенными системными настройками или нерегулярными записями в реестре Windows. Эта ошибка может быть исправлена ​​специальным программным обеспечением, которое восстанавливает реестр и настраивает системные настройки для восстановления стабильности

Если у вас есть порты Com, которые не отображаются в диспетчере устройств, мы настоятельно рекомендуем вам Загрузка (порты Com не отображаются в диспетчере устройств) .

This article contains information that shows you how to fix The Com Ports are not visible in the Device Manager both (manually) and (automatically) , In addition, this article will help you troubleshoot some common error messages related to The Com Ports are not visible in the Device Manager that you may receive.

Примечание: Эта статья была обновлено на 2019-11-13 и ранее опубликованный под WIKI_Q210794

Упрощенный вариант на FT8U232BM

Это схема упрощенного USB-COM адаптера, который поддерживает только сигнальные линии RX, TX, RTS, CTS RS232 интерфейса. Для согласования уровней com порта с цифровыми уровнями FT8U232BM в схему добавлена микросхема MAX232.

Для чего используется?

Поняв, что такое реальный COM-порт и для чего он используется, без труда можно представить себе необходимость в виртуальном COM-порте. Представьте: вам нужно подключить вычислительное устройство к компьютеру через COM-порт. Но у вас его нет! Или же подключить несколько устройств, а порт всего один. Как быть в такой ситуации? Спасает именно создание виртуального порта.

Таким образом, виртуальный порт позволяет имитировать его присутствие в компьютере при отсутствии оного. Примеровприменения довольно много. Однако наиболее часто виртуальный COM-порт применяется:

  • При необходимости подключить несколько устройств одновременно.
  • При необходимости отладить (протестировать, найти ошибки) программу для вычислительного устройства при отсутствии порта.

Суть и причина проблемы при возникновении ошибки с кодом 10

Компания «Prolific» прославилась в сети не своими чипами, а дисфункцией своих драйверов, возникающей при переходе пользователя с Windows 7 b 10. Как я уже упоминал выше, некоторые драйвера к чипам «Prolific» работают только с Виндовс 7 и ниже. И прекращают работать с более модерными версиями ОС (8,10). Многие же пользователи, перейдя с 7 на 10 версию Windows, обнаружили, что их устройства с чипами «Prolific» перестали работать. А в Диспетчере устройств рядом с названием «Prolific usb-to-serial comm port» красуется восклицательный знак, сигнализирующий о возникшей ошибке с кодом 10.

Драйвер Prolific USB-to-Serial Comm Port для Windows 10, 8, 7

Другим же фактором возникновения проблемы является подделка чипов «Prolific» малоизвестными китайскими производителями. Как и в случае настоящих чипов, фейковые чипы имеют тот же Vendor ID (VID_067B) и тот же «Product ID» (PID_2303), потому отличить подлинник от подделки бывает сложновато.

Для устранения фейковых чипов «Prolific» выпустила новые драйвера, которые не работают с ненастоящими чипами, делая их бесполезными. Одновременно данное решение привело к отказу от драйверной поддержки более ранних адаптеров компании.

Поэтому 64-битные драйвера «Prolific», распространяемые «Майкрософт» через службу обновлений Windows, версий 3.4.67.325, 3.4.25.218, 2.1.51.238, 3.4.62.293 не будут работать с большинством адаптеров. А в «Диспетчере устройств» пользователь будет видеть восклицательный знак и код ошибки 10. Или, в качестве альтернативы, вы не будете видеть ошибок в самом ДУ, но ваше устройство попросту не будет работать.

Это может быть полезным: Скачиваем и устанавливаем драйвер Qualcomm HS-USB QDLoader 9008.

Постановка задачи

Обеспечить двусторонний обмен данными между МК и ПК через USB. Никаких плат и софта типа Arduino в готовом решении мы не используем.

Сделать так, чтобы ПО компьютера автоматически определяло наше устройство при подключении его к любому USB-разъему.

USB-устройство должно отображаться в диспетчере устройств под нашим собственным именем (например, под именем нашей компании).

Примечание. Последний пункт я не стал раскрывать в рамках этой статьи, потому что бесконечную простыню текста и картинок читать утомительно. Оставлю материал для будущей статьи, если тема окажется интересной.

Выполнив это, мы получим огромную власть над нашими устройствами. Однако, есть ограничение – скорость передачи данных будет небольшой. Но отправка несложных команд, текста, или легких файлов будет работать быстро.

Вас могут заинтересовать:

Advanced Serial Port Monitor

Программа, которая, пригодится Вам как для наблюдения за передачей данных другими приложениями, так и непосредственно, для отправки и приема данных через последовательный порт (RS232) Вашего компьютера. Программа позволяет различными способами сохранять данные в файл и визуализировать данные на экране монитора. Она может пригодиться как начинающим, так и профессионалам. подробнее

Advanced Serial Data Logger

Advanced Serial Data Logger обрабатывает данные, полученные через RS232 порт, COM порт или через RS485 при наличии аппаратного конвертора. Программа записывает данные в файл Excel, Access, базу данных и т.п. подробнее

Advanced TCP/IP Data Logger

Advanced TCP/IP Data Logger позволяет захватывать данные, передаваемые по протоколу TCP/IP или UDP и сохранять их в файл, а также передавать в другие приложения Excel, Access или базы данных. Программа в реальном времени собирает данные от любого устройства или инструмента и может использоваться как при работе в локальной сети, так и при работе в Интернет. подробнее

Serial Printer Logger

Serial Printer Logger может заменить ваш старый матричный принтер и собирать данные в реальном времени в текстовые, двоичные лог-файлы, а также непосредственно создавать файлы документов Adobe PDF или MS Word. Эта замена позволит сэкономить ваши деньги, которые вы бы потратили на бумагу, расходные материалы и техническую поддержку устаревшего устройства. подробнее

Advanced NMEA Data Logger

Advanced NMEA Data Logger захватывает данные с последовательного порта или сетевого интерфейса, обрабатывает их в соответствии с вашими нуждами, затем выделяет пакеты данных и трансформирует их в переменных, которые далее передаются в другие приложения Windows – путем отправки нажатия клавиш, или экспортируются через DDE (Dynamic Data Exchange), ODBC, OLE. подробнее

Значение Com Port не отображается в диспетчере устройств?

Com Ports не отображаются в Диспетчере устройств, это имя ошибки, содержащее сведения об ошибке, включая причины ее возникновения, неисправность системного компонента или приложения для возникновения этой ошибки вместе с некоторой другой информацией. Численный код в имени ошибки содержит данные, которые могут быть расшифрованы производителем неисправного компонента или приложения. Ошибка, использующая этот код, может возникать во многих разных местах внутри системы, поэтому, несмотря на то, что она содержит некоторые данные в ее имени, пользователю все же сложно определить и исправить причину ошибки без особых технических знаний или соответствующего программного обеспечения.

Схема переходника для COM с USB на PL2303

Следующая схема построена на микросхеме PL2303HX, которая является преобразователем интерфейса USB в RS232. Производитель PL2303HX — Тайваньская фирма Prolific. В данной схеме также используется приемо-передатчик MAX232, преобразующий сигналы RX, TX.

Для правильной работы необходимо установить драйвер для виртуального COM-порта. Для этого скачиваем и устанавливаем драйвер по нижеприведенной ссылке.

Скачать драйвер для PL2303HX (3,5 MiB, скачано: 3 245)

Затем настраиваем виртуальный порт: выставляем в окошке «управление потоком» — НЕТ. Затем выбираем свободный номер порта.

Как создать виртуальные порты?

Для их создания предусмотрены специализированные программы. Стоит выбирать те, которые предлагают нам установить нужные для виртуальных портов драйвера, поскольку их поиск — не очень приятное занятие.

Скачайте и установите программу Advanced Virtual COM Port. Установка занимает считаные минуты, при этом на одном из этапов нам предложат драйвер:

Программа для настройки виртуального com-порта в windows

Программа для настройки виртуального com-порта в windows

Соглашаемся и нажимаем «Установить». Следует подождать несколько минут — не пугайтесь, если потребуется 5–10 минут. Это нормально.
После установки, заходим в программу и видим главное окно:

Кернел про -для настройки виртуального com-порта в windows

Кернел про -для настройки виртуального com-порта в windows

Оно содержит три основных вкладки: Общие (расширенные), клиентские и локальные порты.

Вкладка общие (или расширенные) порты позволяет делиться COM-портами через локальную сеть (LAN) или интернет. Таким образом, данные с виртуальных портов могут быть легко и быстро переданы другим пользователям.
Вкладка клиентские порты позволяют создавать порты на компьютере, которые подключаются к расширенным портам через виртуальный кабель нуль-модема. Стоит сказать, что виртуальный кабель программа предусматривает автоматически.
Вкладка локальные порты даёт возможность просматривать, создавать и удалять все пары виртуальных COM-портов.

Перейдём во вкладку локальные порты и нажмём кнопку Add. Перед нами откроется окно, предлагающее создать пару COM-портов, которые предполагаются быть соединёнными виртуальным нуль-модемным кабелем:

Создание виртуального com-порта в windows7

Создание виртуального com-порта в windows7

Жмём ОК. Переходим в Панель управления -> Система -> Диспетчер устройств.
Видим, что наши COM-порты были успешно созданы:

Виртуальные com-порты windows

Виртуальные com-порты windows

Как исправить код ошибки 10 Prolific Comm Port при помощи драйвера

Чтобы избавиться от ошибки 10 Prolific вам необходимо выполнить несколько шагов, которые я опишу ниже. Важно понимать, что если ваш адаптер нормально работал до установки очередного обновления Windows, тогда вам будет необходимо откатить версию актуального драйвера до предыдущего рабочего варианта.

Если же драйвер у вас был установлен, но не работал корректно – вам будет необходимо удалить любую установленную в систему инсталляционную программу драйвера PL-2303, сам неработающий драйвер, и информационный (INF) файл, после чего приступать к нижеизложенной инсталляции.

Драйвер Prolific USB-to-Serial Comm Port для Windows 10, 8, 7

Удалите некорректную инсталляцию драйвера

Необходимо учитывать, что модерные ОС Виндовс настроены на автоматическое обновление ваших драйверов без вашего разрешения. Потому не имеет значения, сколько раз вы вручную удалили ваш драйвер и перезагрузились – при следующем подключении адаптера USB-To-Serial ОС вновь установит неработающую версию драйвера. Потому перед установкой нижеизложенного драйвера рекомендуется отключить службу автоматического обновления Windows. Иначе последняя вновь установит неработающий драйвер.

Единственным 64-битным драйвером, который работает со всеми адаптерами «Prolific» является драйвер версии .3.3.2.102. Разберём способы его установки.

Установка для 64-битной системы:

  1. Скачайте инсталлер с сайта totalcardiagnostics.com;
  2. Отключите все адаптеры USB-To-Serial от вашего компьютера и запустите «PL2303_64bit_Installer.exe«;
  3. Когда вам будет предложено, подключите один из ваших адаптеров USB-To-Serial и нажмите на «Continue» (Далее);
  4. Перезагрузите ваш ПК.

Установка для 32-битной системы:

  1. Загрузите инсталлер с сайта totalcardiagnostics.com;
  2. Запустите программу установки. Если она предложит вам удалить драйвер, тогда выберите и удалите проблемный драйвер;
  3. Затем вновь запустите инсталлятор и установите правильный драйвер;

Также вариантом решения проблемы может стать способ, предложенный в данном видео:

Рекомендуем к прочтению: Как обновить драйвера онлайн.

Что нужно уметь/иметь

Знать C++ хотя бы на начальном уровне.

Уметь работать с любым МК (главное, чтобы у него был интерфейс UART).

Собственно сам МК (я взял Atmega328, т. к. она используется в моём проекте).

Макетная плата и несколько простых радиодеталей для сборки тестовой схемы.

Плата USB/UART преобразователя (о ней скажу ниже).

Как вы понимаете, информации предстоит много, и здесь не будет объяснения того, как прошивать МК или какой компилятор выбрать. Скажу только, что для прошивки я использовал Arduino IDE, а для ПО компьютера – Visual Studio C++ 12.

USB — COM переходник на микроконтроллере Attiny2313

Питание микроконтроллера Attiny2313 осуществляется непосредственно от шины питания USB. Вся схема собрана на односторонней плате (SMD и ТН варианты). Устройство поддерживает только сигналы Rx и Tx.

Прошивку к переходнику, рисунок печатной платы (SMD и TH), а также программу терминал для проверки адаптера можно скачать по ниже приведенной ссылке:

При программировании Attiny2313, фьюзы необходимо выставить следующим образом:

Для работы устройства необходимо установить драйвер виртуального COM порта. Для этого скачиваем его:

Скачать драйвер (1,1 MiB, скачано: 3 420)

Теперь вставляем в USB порт компьютера наш адаптер, компьютер должен выдать сообщение «Найдено новое устройство», а затем предложит установить для него драйвер. Выбираем пункт «Установить с указанного места» и нажимаем на кнопку «Далее». Затем в новом окне выбираем путь к папке скаченного и распакованного драйвера и опять жмем кнопку «Далее». Спустя несколько секунд драйвер будет установлен и устройство будет готово к работе.

Для проверки работоспособности устройства, временно замыкаем Rx и Tx выводы и с программы терминала, так же находящегося в архиве, выставляем номер COM порта и отправляем любое сообщение. Для этого пишем например «Привет» и нажимаем кнопку «Send». Если переходник рабочий, то написанное сообщение появится в верхнем окне программы.

Заключение

Драйвер Prolific USB-to-Serial Comm Port предназначен для обеспечения функционала устройств в Windows 10, 8, 7. Он использует COM-порт для подключения к пользовательскому ПК. Если же данный драйвер работает некорректно, рекомендуется установить его более старый аналог с помощью способов, описанных мной в данном материале.

Не совсем USB-устройство

Проект, для которого я делаю канал связи с ПК, называется “Teslafon”. Это название музыкальных катушек тесла с микроконтроллерным управлением (описание их работы тут). Пока катушка является автономным устройством и ни к чему не подключается, но недавно мне пришла идея сделать управление молниями с ноутбука. Несмотря на то, что тема специфическая, в сети можно найти примеры даже на неё, но там всё довольно индивидуально и я решил пойти своим путём.

Так как слона лучше есть по частям, я раздробил задачу на несколько подзадач, первая из которых – тема данной статьи. Но не подумайте, что я хочу подключить катушку тесла напрямую к ноутбуку (мой ноутбук мне дорог). Катушка тесла это генератор адских помех и наводок, а значит между ней и ноутбуком должно быть не только существенное расстояние, но и промежуточное устройство-изолятор на несколько мегавольт. Его-то я и хочу подружить с ПК. Вдаваться в подробности катушек тесла не буду, это уже другая история. Просто скажу, что мы сделаем универсальную заготовку USB-устройства, которую вы сможете использовать в своём проекте, а я в своём.

Переходник COM-USB на микроконтроллере Atmega8

Еще одна схема COM-USB адаптера теперь уже на микроконтроллере Atmega8 (Atmega48, Atmega88). Схема обеспечивает обработку Rx, Tx, DTR, RTS, CTS сигналов RS232 интерфейса. Драйвер виртуального порта для этой схемы такой же как и для переходника на attiny2313.

Прошивку для atmega8/48/88 и рисунок печатной платы можно скачать по следующей ссылке:

Теория

Сперва я думал, что всё будет проще простого. Возьму библиотеки типа V-USB и libusb, подключу МК напрямую к USB-разъему, быстренько найду готовый пример кода и будет мне счастье. Но “быстренько” не получилось. Оказывается, там много заморочек – например, дополнительная библиотека кушает ресурсы МК, а моя прошивка предполагается довольно ёмкой. Мне хотелось использовать встроенные аппаратные фишки по максимуму, чтобы не занимать память. Кроме того, настройка всех этих библиотек требует опыта. Рабочая частота МК подойдет не абы какая, а та, что задал автор библиотеки. Но реальный шок был тогда, когда я узнал, что для моего устройства нужны PID (Product ID) и VID (Vendor ID), за которые сегодня надо заплатить, на секундочку, 3500$ организации usb.org. Ох, не туда меня завели поиски, не туда. Наконец до меня дошло, что к чему.

Оказалось, вопрос не в том, как передать данные через USB, а как передать данные через виртуальный COM-порт! Передача данных через COM-порт намного проще, хотя это устаревший вид портов. А раз так, то реального COM-порта у нас не будет, только виртуальный. Физически же мы по-прежнему будем использовать привычный USB. Виртуальный COM-порт будет предоставлен драйвером, о котором мы поговорим ниже. А еще к устройству добавится некая микросхема-посредник, которая снимет целый ворох проблем. Взгляните на схему:

Рис. 1 - Связующие звенья между хостом и микроконтроллером

Рис. 1 – Связующие звенья между хостом и микроконтроллером

Между ПО хоста и нашей прошивкой есть целых 4 звена. С аппаратным UART-ом всё понятно, что же с остальными?

Здесь роль посредника будет выполнять микросхема по кличке CP2102, у которой есть также куча аналогов (CH340, PL2303, FT232RL и другие). Её основная задача – преобразование интерфейса UART в USB и обратно. Как это делается, нам не важно, это просто чёрный ящик, имеющий вход и выход. CP2102 используется в некоторых программаторах, возможно на вашем она тоже есть, так как довольно распространена. Изучать распиновку этой микросхемы тоже не будем, потому что есть готовые платки с ней же и со всей обвязкой. И это хорошо, ведь наша задача – чем проще, тем целее нервы. Пример двух платок с CP2102 от компании Silicon Labs:

Рис. 2 - USB/UART преобразователи в разных формфакторах

Рис. 2 – USB/UART преобразователи в разных формфакторах

Купить подобную железку можно, например, здесь. Но чтобы не ждать, можете поискать в местных радиомагазинах, товар не редкий, думаю, найдёте. Далее я начал изучать, как применить этот USB/UART преобразователь. Тут тоже всё обошлось – производитель железки уже позаботился о нас и написал драйвер для контроллера USB (см. рис. 1). Этот драйвер и будет эмулировать виртуальный COM-порт. Вы спросите, а где же брать PID и VID для нашего устройства? Ответ – их предоставляет тот же Silicon Labs бесплатно.

Круто, теперь можно увидеть всю последовательность действий:

Покупаем USB/UART преобразователь и собираем тестовое устройство;

Скачиваем и устанавливаем драйвер;

Пишем прошивку МК;

Макетная плата

Помните, что наше устройство кроме моргания светодиодом ничего пока уметь не будет? Чтобы не было скучно, давайте сделаем три светодиода:

Зелёный – будет гореть, пока связь с хостом установлена (не путать с физическим подключением к порту).

Красный – загорается или гаснет по нажатию ‘r’ на клавиатуре.

Белый – загорается или гаснет по нажатию ‘w’ на клавиатуре.

Нажатие ‘x’ на клавиатуре будет разрывать сеанс передачи данных, гасить зелёный светодиод и завершать работу ПО хоста. Но я забежал немного вперед, вернёмся к схеме устройства:

Рис. 3 - Схема тестового устройства

Рис. 3 – Схема тестового устройства

Думаю, тут всё понятно. Я даже не стал ставить подтягивающий резистор R1, хотя в реальной схеме он нужен. Сейчас нам главное получить минимально рабочую модель. Вот так выглядит макетка:

Рис. 4 - Макетная плата

Рис. 4 – Макетная плата

Кстати, очень удобно использовать витую пару в качестве соединительных проводков, они дешёвые и нарезать их можно разной длины. В жгуте из 5 проводов используются только 4, зелёный провод идёт с контакта DTR преобразователя на макетку и никуда не подключается (оставлен про запас). Atmega328 в корпусе DIP-28 прошла огонь, воду и трубы, но ещё жива – когда-то она была подопытным кролем в создании первой музыкальной катушки тесла. Кварцевый генератор я не ставлю, а использую встроенный на 8 МГц. Для удобства я сделал преобразователь съёмным и слегка подогнул вверх вывод 3.3V, чтобы избежать неправильного подключения.

Примечание. Если у вас другой МК, подключите все пины в соответствии с его даташитом и схемой на рисунке 3.

Установка драйверов

Наш USB/UART преобразователь уже вставлен в ПК, открываем диспетчер устройств и видим:

Рис. 5 - USB/UART преобразователь в диспетчере

Рис. 5 – USB/UART преобразователь в диспетчере

Мы могли бы сделать своё красивое имя устройству, но я решил, что это будет тема другой статьи, т. к. материала получается слишком много. Пока ограничимся тем, что есть. Качаем готовый драйвер, устанавливаем и переходим к программированию.

Прошивка

Как уже говорилось выше, моё устройство будет работать на Atmega328, а значит и код я буду строчить для неё. Эксперимент проводился на частоте встроенного генератора 8 МГц, с другими частотами я не работал. В коде используются регистры МК напрямую и глобальные переменные, и вообще попахивает хаосом, но повторюсь – это пример, набросок, может быть не самый лучший, но рабочий. Если у вас другой камень, вам всё равно придется изменить инициализирующую часть кода, так что можете его оформить как вам нравится. Вот мой полный скетч для Arduino IDE:

Ну вот, проделана большая работа. Теперь всё компилируем, прошиваем устройство, втыкаем его в ПК и с замиранием сердца запускаем программу.

Тест всего проекта

Если всё сделано правильно, программа выведет это:

Рис. 6 - Результат

Рис. 6 – Результат

Дальше вводим разные буквы и жмём Enter. Результат работы я продемонстрирую на видео:

Если у вас всё это добро не запускается или запускается криво, придется попыхтеть над отладкой. По крайней мере, я проверял эту систему на трёх разных компьютерах и на двух Windows (7 и 10), и результатами остался доволен. Желаю и вам удачного запуска.

Выводы

Статья получилась объёмной, но некоторые детали так и остались не раскрыты. Однако, поставленные задачи выполнены. Только представьте, какие штуки теперь можно делать, имея такой инструмент. Например, можно сделать пульт ДУ для ПК, или обработку разных датчиков умного дома. Можно придумать и более нестандартные и опасные штуки, как в моём случае – управление катушкой тесла. И даже если кто-нибудь скажет, что всё уже давно придумано, я соглашусь. Наверно, есть и более изящные решения задачи, но мне интересно (а порой и необходимо) разобраться во всём самому. Ведь именно так рождается новое. Надеюсь, что дорогой читатель меня поймёт. Удачных всем разработок!

Нажмите «Scan» кнопка
Нажмите ‘Исправь все‘ и вы сделали!
Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий