Как установить адаптер usb com

Обновлено: 07.07.2024

Продолжение. Посмотреть начало - Космос и ходиболтайки
Вот уже есть первые вопросы по использованию COM портов преобразованых из USB соединения. Это радует. И не ругайте меня слишком строго за то что не всё описываю детально. Ведь многие то, о чём я пишу, знают хорошо. Ну, ближе к делу. В любом магазине можно купить преобразователи USB - COM. Они могут быть на один COM порт, на два, на четыре, восемь и т.д. Ограничения в скорости работы при обслуживании многопортового преобразователя вряд ли наступит. Особенно если у вас современный скоростной USB2. Конструктивно они тоже разные, одни выполнены прямо в разъёме USB, некоторые с проводами, а также другие комбинации. Я, например, не люблю, когда ноутбук весь в разъёмах выглядит как ощетинившийся ёжик, поэтому выбираю разъём с длинным проводом и все "прячу" за ноутбук. Ближе к стенке :-)

Изначально, пока мы не подключим этот девайс в разъём, в "Диспетчере Устройств" его нет. Но пусть вас это не вводит в заблуждение. Откройте "Мой компьютер-Свойста-Оборудование-Диспетчер устройств" после чего вставьте ваш преобразователь в USB разъём. Компьютер тут же покажет вам, что система обнаружила USB Serial Port (COM1) Этих портов может быть несколько, например у меня три: два на обслуживание моего КВ логгера, один на VHF. ВЫбираете нужный, Свойства и в разделе Port Setting скорость порта, Data Bits (8) длительность стопового бита (1) и способ управления потоком Flow Control. Из перевода английского названия становиться понятным, что это способ обнаружить "переполнение" буфера приёмного устройства (в случае когда оно медленное). Для современных компьютеров и периферийных устройств это уже излишняя предосторожность. Но мало ли. Всегда лучше иметь возможность выбора.
На самом деле я порекомендую решать задачу с конца. при возможности определить параметры оконечного устройства и в каких диапазонах оно позволяет изменять настройки. В нашем случае, например, оконечное устройство не может обслуживать более чем COM4 и скорость не выше чем, например 9600. Тогда мы должны выставить в настройках преобразователя USB-COM скорость 9600 и назначить этому порту идентификатор COM4.
Делается это так. В меню свойства USB Serial Port (COM(X)) нажимаем кнопочку Advanced, то бишь "продвинутые" настройки. Ставим галочку Serial Enumerator, после чего в выпадающем окне COM Port Number выбираем нужный нам номер порта. Потом ОК-ОК-ОК. Должно работать.
P.S. Поступил комментарий от Евгения R8MM, мне кажется по делу. Он предлагает использовать дополнительные установки для того, чтобы интерфейс не "дёргал" трансивер в момент включения-выключения или, не дай бог, зависания компьютера. Для этого Евгений рекомендует поставить галочку Disable Modem Сontrol At Startup. То есть все предустановки виртуального порта будут переданы с USB в режиме отключенных действий (изменения напряжений) на коннекторе COM
Продолжение следует МКС. BBS и APRS

You have no rights to post comments Недостаточно прав для комментирования

Школа радиста

Урок третий+. Учимся разбирать электрические схемы.

Так как тема довольно таки обширная и теоретического материала много, его сокращение будет лежать на плечах учителя, проводящего занятия. Нужно учитывать так же усвояемость материала и затягивать данную тему сильно не стоит. Может даже имеет смысль этот материал разбирать с перерывами на другие темы ну или например по определнным дням недели.

В подборе материала я решил не "изобретать велосипед" и воспользоваться готовыми материалами от сайта "Практическая электроника".

Как создавать материалы в JCE редакторе

Урок второй. Электричество - подробнее

В наше повседневной жизни мы часто сталкиваемся с таким понятием как «электрический ток». Что же это такое и всегда ли люди знали о его существовании?

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

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

Перечень знаний и умений на ECC Report 089 CEPT (ENTRY LEVEL)

Тематический перечень для экзаменационных вопросов для присвоения категории

согласно положениям рекомендации ECC Report 089 CEPT (ENTRY LEVEL)

1. Практические рабочие аспекты

1.1. Знакомство с управлением передатчика или трансивера

1.1.1. Включение/выключение питания, переключатель диапазонов, настройка и индикация частоты, громкость, уровень мощности и дисплей, усиление звукового сигнала с микрофона.

1.2. Работа на коротких волнах

1.2.1. Настройка в режиме SSB с верхней и нижней боковой полосой,

1.2.2. Вызов корреспондента, общий вызов,

1.2.3. Способность проведения радиосвязи в приемлемом формате, рапорта, обмен информации об имени оператора, информации о станции. Демонстрация использования аппаратуры

Как мы будем учить

Урок первый. Электричество.

Начнём с простого. Батарейка. Это "законсервированное" электричество. Оно находится внутри и по команде (замыканию выключателя) может делать какую-то работу: светить, вращать моторчик ручного вентилятора, когда жарко, обеспечивать вас звуком от работающего радиоприёмника на пляже. Пока контакты не замкнуты, электричество есть, но работу не делает. Спит. Это называется напряжение. Или потенциал. Типа может делать, но пока не делает. Напряжение всегда подают по ДВУМ проводам: плюс и минус. Вообще-то бывает еще и переменное напряжение, но о нём позже.

Подключаем com порт usb в Windows

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

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

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

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

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

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

Подключаем com порт usb в Windows-2

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

Подключаем com порт usb в Windows-3

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

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

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

Подключаем com порт usb в Windows-4

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

Подключаем com порт usb в Windows-5

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

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

Подключаем com порт usb в Windows-6

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

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Использование адаптера USB – to – COM для подключения
контроллера ЭСУД автомобиля к PC

Данный материал публикуется впервые, любезно предоставлен для публикации на нашем сайте компанией IC Book Labs и является эксклюзивной собственностью данной компании. Перепечатка без письменного разрешения правообладателя запрещена.


Как известно, для диагностики и перепрограммирования автомобильных систем, в частности ЭСУД, используется диагностическая линия K – Line 12 V (ISO 9141 ), электрически совместимая с последовательным интерфейсом RS 232 , применяемым в персональных компьютерах. Но, при сопряжении авто и компьютера возникает проблема, связанная с тем, что обмен с автомобильными системами выполняется на скоростях 200 и 10400 бод, которые нетипичны для компьютеров. В предлагаемой статье рассматривается простое решение данной проблемы для адаптеров USB – to – COM с помощью программного обеспечения, штатно поставляемого разработчиками.


Управление скоростью обмена

Скорость обмена для последовательного интерфейса зависит от установленного делителя. Значение делителя определяется содержимым регистра Baud Rate Divisor. Анализ архитектуры контроллера и несложные расчеты показывают, что нет препятствий для использования интересующих нас скоростей в 200 и 10400 бод. Так в чем же проблема?


При написании операционных систем, драйверов и различных прикладных программ обслуживания последовательного интерфейса, в целях упрощения, использовался стандартный, ставший традиционным для персональных компьютеров, ряд скоростей: 300 , 600 , 1200 , … , 115200 бод. Скорости 200 и 10400 бод, которые использует диагностическая линия автомобиля, не входят в этот ряд.

Наша задача — обеспечить поддержку скоростей обмена, которые поддерживают контроллеры FT 232 и CP 2102 , но не поддерживает “классическое” программное обеспечение. Идея заключается в том, чтобы переопределить скорости из стандартного ряда новыми значениями, например, заменить 14400 бод на 10400 бод. После такого переопределения, запрос на включение режима 14400 бод будет приводить к включению режима 10400 бод. Смысл в том, что мы добавляем новую скорость, сохранив интерфейс, совместимый с имеющимся программным обеспечением. В принципе, для подстановки можно использовать любую скорость из заданного ряда.

Переопределение скоростей для контроллера CP 2102

Рассмотрим реал изацию описанной выше идеи для обеспечения совместимости контроллера USB – to – COM CP 2102 с контроллером электронной системы управления двигателем (ЭСУД) автомобиля. Как было сказано выше, для диагностической линии K – Line 12 V типичны скорости в 200 и 10400 бод.

К счастью, производитель контроллера CP 2102 предусмотрел возможность гибкого управления режимами работы и снабдил свое устройство утилитой для переназначения скоростей обмена, поэтому сегодня нам не понадобятся дизассемблер и отладчик, наши действия будут очень простыми и сведутся к использованию штатной утилиты CP 210 xBaudRateAliasConfig.exe поставляемой компанией Silicon Labs.

Также отметим, что результатом наших действий будет изменение содержимого таблицы, хранящей значения делителей частоты для поддерживаемых скоростей. Эта таблица находится во внутренней энергонезависимой памяти микросхемы CP 2102 , поэтому изменения сохранятся при выключении питания или переносе перепрограммированного устройства на другой компьютер. Для большинства применений, такой вариант удобнее, чем, например, внесение изменений в драйвер. Для обеспечения совместимости с диагностической линией автомобиля и программным обеспечением, используемым для контроля состояния ЭСУД, нам необходимо осуществить следующие переопределения: 14400 на 10400 и 300 на 200 бод.

Итак, запускаем утилиту CP 210 xBaudRateAliasConfig.exe. Появляется окно CP 210 x Baud Rate Configuration. Если подключено несколько устройств CP 2102 , в верхней строке Connected Devices необходимо выбрать устройство, которое мы будем перепрограммировать. Если устройства подключались уже после того, как утилита была запущена, следует использовать кнопку Refresh для обновления списка задействованных адаптеров.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Нажимаем кнопку Get Configuration и получаем список поддерживаемых скоростей обмена для выбранного устройства.

Если используется один USB – to – COM адаптер, список формируется автоматически, если несколько, — то после выбора устройства обязательно следует нажать кнопку Get Configuration, иначе будет визуализироваться таблица, соответствующая не текущему, а ранее выбранному адаптеру!

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Дважды щелкаем мышью на строке, соответствующей редактируемому режиму. Вводим требуемое значение скорости обмена — Desired Baud Rate. При этом автоматически обновляется фактическое значение скорости Actual Baud Rate. С точки зрения стандарта последовательного интерфейса, допустимым является отклонение ± 3 %. Точность установки скорости для контроллера CP 2102 удовлетворяет этому требованию. Редактируем строку 19 . Исходное значение скорости обмена 14400 бод.


Вводим новое значение – 10400 бод, нажимаем OK и переопределение задано!


Редактируем строку 28 . Исходное значение скорости обмена 300 бод.


Вводим новое значение – 200 бод, нажимаем OK и переопределение задано.

После того, как все изменения внесены, не забываем нажать кнопку Set Configuration в окне CP 210 x Baud Rate Configuration и проверить, что значения Desired и Actual в редактируемых строках изменились.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

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

Дополнительно отметим, что кнопка Advanced позволяет выполнить более тонкую настройку параметров. Для переопределения необходимо установить флажок Override Recommended.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Параметры Prescaler (коэффициент деления для предварительного делителя частоты) и Reload (значение для загрузки в счетчик основного делителя частоты) определяют скорость обмена Baud Rate в бодах в соответствии со следующей формулой:

Baud Rate = ( 24 . 000 . 000 /Prescaler) / ( 65536 — Reload)

Отметим, что контроллер CP 2102 поддерживает скорости до 1 . 000 . 000 бод в режиме 7 и 8 – битных данных и 921 . 600 бод в режиме 5 и 6 – битных данных, для полнодуплексного обмена. При установке скорости, превышающей указанные ограничения, возможны сбои в работе контроллера.

Управление таймаутом при обмене данными по USB осуществляется редактированием параметра USB Receive Timeout. Значение таймаута в секундах определяется по формуле:

Timeout = ( 65536 – Reload) / 500 . 000

Указанный таймаут используется при передаче по USB в компьютер данных, принятых по последовательному интерфейсу. Он определяет промежуток времени, в течение которого контроллер ожидает входных данных. Если в течение заданного промежутка данные не поступают, контроллер завершает передачу по USB. Типовое значение таймаута – 1 ms. Управление таймаутом позволяет устанавливать компромисс при достижении двух взаимно противоречащих критериев:

1 . Минимизация задержки обслуживания USB устройства компьютером, что в данном случае дает увеличение скорости реакции диагностической программы на события в диагностируемом объекте.

2 . Минимизация загрузки компьютера операциями передачи пустых пакетов данных по USB, имеющими место при отсутствии поступления данных по последовательному интерфейсу. От этого зависит общая производительность.
Чем больше таймаут, тем дольше устройство “не засыпает” при отсутствии данных, то есть для улучшения первого критерия, таймаут следует увеличивать, а для второго — уменьшать.

Переопределение скоростей для контроллера FT 232

Рассмотрим решение подобной задачи для одного из конкурирующих продуктов – контроллера FT 232 компании FTDI. В отличие от выше приведенного примера, здесь нам придется редактировать файл конфигурации драйвера последовательного порта FTDIPORT.INF . Структура этого файла описана в [ 3 ], процедура редактирования полей, устанавливающих скорость обмена для последовательного порта, описана в [ 4 ]. Поэтому, в целях компактности изложения, в нашем описании внимание акцентировано только на тех параметрах, которые необходимо изменять. Также отметим, что данный пример соответствует одному из нескольких вариантов представления параметров, все возможные варианты перечислены в [ 3 ], [ 4 ].

Находим в файле FTDIPORT.INF следующую запись:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 10 , 27 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Последовательность, начиная с шестого по счету параметра, содержит пары байтов, каждая из которых задает коэффициент деления частоты для делителя, определяющего скорость обмена по последовательному интерфейсу. Каждая пара соответствует определенной скорости. Рассмотрим первую пару параметров 10 h, 27 h.

1 . Так как два смежных байта 16 – битного слова записаны начиная с младшего байта, для получения 16 – битного числа, их нужно обменять местами: 10 , 27 соответствует 2710 h, h — означает, что число записано в шестнадцатеричной системе счисления.

2 . Переводим 16 – ричное число 2710 h в двоичную систему.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
2 7 1 0

3 . Интерпретируем полученное двоичное значение. Два старших бита 16 – битного числа, а именно биты 15 , 14 определяют дробную часть коэффициента деления частоты согласно следующей таблице:

Бит 15 Бит 14 Дробн ая часть делителя
0 0 0
0 1 0 . 5
1 0 0 . 25
1 1 0 . 125

В нашем случае дробная часть делителя равна нулю. Битовое поле 13 – 0 16 – битного числа численно равно целой части делителя, переведем из шестнадцатеричной системы в десятичную 2710 h = 10 . 000 .

4 . Тактовая частота на входе делителя равна 3 MHz = 3 . 000 . 000 Hz. Скорость обмена в бодах (Baud Rate) будет равна входной частоте делителя, разделенной на коэффициент деления.

Baud Rate = 3 . 000 . 000 / 10 . 000 = 300 бод.

Таким образом, первая пара значений задает скорость 300 бод. Пусть нам необходимо переопределить эту скорость на 10400 бод. Вычислим требуемый коэффициент деления (Divisor):

Divisor = 3 . 000 . 000 / 10 . 400 = 288 , 46

Ближайшее доступное значение 288 , 5 . Нам требуется задать целую часть делителя равной 288 , дробную равной 0 , 5 . Согласно таблице 2 , биты 15 , 14 будут равны 01 b, b — означает, что число записано в двоичной системе счисления. Переведем 288 в шестнадцатеричную систему: 288 = 120 h. Это значение необходимо поместить в битовое поле 13 – 0 . Объединяем биты 15 – 14 и 13 – 0 , получим 4120 h.

Для переопределения скорости 300 бод на 10400 бод запись должна иметь вид:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 20 , 41 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Напомним, что если драйвер устройства FT 232 уже установлен, для вступления изменений в силу, программное обеспечение устройства необходимо полностью деинсталлировать и установить повторно из каталога, в котором находится отредактированный INF файл. В силу особенностей операционной системы, функция обновления драйвера или удаление устройства в диспетчере устройств может не дать результата.

Источники информации.

5 . М. Гук. Аппаратные средства IBM PC. Энциклопедия. Санкт – Петербург, издательство “Питер” 2006 .



Дешевые USB-COM: расстановка точек над i. Расчлененка. Осциллограммы. Тестирование в реальных условиях.

Как-то потребовалось максимально бюджетно организовать прием факсов в небольшом офисе. Для этого с антресолей был извлечен факс-модем ZyXEL Omni 56K, а поскольку в современных компьютерах порт RS-232 давно канул в лету, на БиКе было решено приобрести адаптер USB-COM. Изучение предложений привело к решению купить все четыре имеющиеся в продаже на тот момент разновидности, благо итоговая стоимость получалась порядка 11 USD.
Итого по получении из пакета были извлечены (слева направо в порядке возрастания цены):

Вне конкурса выступает порт RS-232, встроенный в материнскую плату GA-8I945GZME



Самый дешевый экземпляр обзора. Выглядит хлипко, плата из корпуса вытаскивается невооруженными руками.


Вместо корпусного чипа просто «капля» на текстолите. Флюс не отмыт.


Идентификатор устройства — VID_1A86&PID_7523, на диске и в интернете наличествуют драйверы под современные 32- и 64-битные операционные системы от Microsoft. После установки драйверов идентифицируется как USB_SERIAL CH340.
Backtrack linux тоже в курсе о его существовании:



Подключенный осциллограф показал, что выходы RTS и DTR выдают в качестве логической единицы +5В, в качестве логического нуля 0В, то есть никакой не RS-232, а самый что ни на есть незамутненный TTL. То же самое относится к выводу TXD.

В режиме простоя.


В режиме передачи данных. Здесь и далее на всех осциллограммах скорость порта 9600 бод, 8 бит посылка, 1 стоп-бит, нет контроля четности. Развертка — 1 мс/деление, чувствительность — 5 вольт/деление (делитель в щупе установлен в положение 1:10).
В порт выводится одно и то же слово. Первому, кто его назовет — плюс в карму.


2. «Прозрачный».
В отличие от предыдущего не разбирается вообще. Но сквозь прозрачную пластмассу видна такая же «капля», да и определяется в системе с тем же VID-PID. Не удивительно, что и логические уровни оказались такие же.


3. «Черный». Опознался при включении как VID_067B&PID_2303.


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


На обратной стороне нашлась микросхема-преобразователь уровней SP3243ECA.


Уровень в режиме простоя:


В режиме передачи данных:



Тот же VID_067B&PID_2303. Так же заработал с последним драйвером.


Чип преобразователя уровней — MAX211CAI.


Уровень в режиме простоя:


В режиме передачи данных:


Для сравнения эталонная осциллограмма COM-порта материнской платы




Тестирование работоспособности с реальными устройствами.

Устройство №1: спутниковый ресивер Dreambox 500S.


Параметры подключения: 115200 8N1.

Адаптеры на CH340 выдают в консоль мусор:


Адаптеры на PL2303 работают корректно:


Устройство №2: тот самый ZyXEL Omni 56K


Параметры подключения: 57600 8N1.
Все 4 адаптера подключились успешно.


.

Устройство №3: маршрутизатор Cisco 2801.


Параметры подключения: 9600 8N1.
Все 4 адаптера подключились успешно.


Устройство №4: офисная АТС Nortel Meridian 11C.



Параметры подключения: 9600 8N1
Все 4 адаптера подключились успешно.


Устройство №5: попытаемся прочесть EEPROMы 24Cxx и 93Cxx программатором PonyProg.

Как известно, программа PonyProg2000 позволяет читать и писать большое количество последовательных флэшек и микроконтроллеров, используя последовательный порт компьютера в качестве интерфейса. Отличие от предыдущих испытаний в том, что собственно выводы приема и передачи данных нам понадобятся постольку поскольку. Для программирования используется режим Bit-Banging — имитация сигналов интерфейса методом «дрыгания» в нужном порядке выводов GPIO (DTR, DST, CTS, RTS). На многих форумах электронщиков утверждается, что USB-COM преобразователь для этих целей непригоден вообще. Что мы сейчас и проверим.

Сдуваем SPD-чип со старой планки памяти. Это и есть EEPROM 24С02.


Панельки-переходника с SOIC на DIP у меня нету, поэтому подпаиваю по проводу к каждой ноге.


Сигналы порта уходят на ноги чипа через резисторы 4.7к и «подперты» стабилитронами 5.1В согласно схеме.


Общая часть программатора.

Переходник для I2C.


Переходник для Microwire.


Подаем 5В от USB, запускаем программу, выбираем чип, нажимаем кнопку «Прочитать».
Вот оно, содержимое:


Флэшка прочлась, но очень-очень медленно. На несчастные 256 байт понадобилось порядка 30 секунд. Страшно представить, сколько будет читать флэшка размером хотя бы 1 мегабайт.

Тем не менее, констатируем, что прочесть 24Cxx удалось.

Теперь попробуем прочесть EEPROM с интерфейсом Microwire.
Выдергиваем 93C46 из панельки на старой сетевой плате:


Вставляем в макетку и обвязываем резисторами-стабилитронами согласно схеме.


Нажимаем кнопку «Прочитать».

В ответ получаем нули:


Неужели флэшка пустая? Подключаем стенд к порту на материнской плате, читаем.


Нет, не пустая. В чем же дело? Подключаем логический анализатор и смотрим обмен.



Кроме ужасающей разницы в периодах следования импульсов видим, что аппаратный порт дрыгает ногой сброса (канал №3), а USB-COM не хочет. Эта нога управляется сигналом TXD порта. Как его разработчики Ponyprog умудрились сделать постоянно высоким, я не знаю. Возможно, это недокументированная возможность именно «аппаратного» порта. Напишите в комментариях, если кто в курсе.

Констатируем: прочитать 93Cxx не удалось.


Субъективные выводы: с модемом оставлю работать «бесхвостого», ибо если нет разницы, то зачем платить больше. «Прозрачного» и «черного» положу рядом в резерв, так как «капли» по моим наблюдениям долго не живут. В сумку с инструментами брошу «серого» как имеющего максимальные уровни.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Использование адаптера USB – to – COM для подключения
контроллера ЭСУД автомобиля к PC

Данный материал публикуется впервые, любезно предоставлен для публикации на нашем сайте компанией IC Book Labs и является эксклюзивной собственностью данной компании. Перепечатка без письменного разрешения правообладателя запрещена.


Как известно, для диагностики и перепрограммирования автомобильных систем, в частности ЭСУД, используется диагностическая линия K – Line 12 V (ISO 9141 ), электрически совместимая с последовательным интерфейсом RS 232 , применяемым в персональных компьютерах. Но, при сопряжении авто и компьютера возникает проблема, связанная с тем, что обмен с автомобильными системами выполняется на скоростях 200 и 10400 бод, которые нетипичны для компьютеров. В предлагаемой статье рассматривается простое решение данной проблемы для адаптеров USB – to – COM с помощью программного обеспечения, штатно поставляемого разработчиками.


Управление скоростью обмена

Скорость обмена для последовательного интерфейса зависит от установленного делителя. Значение делителя определяется содержимым регистра Baud Rate Divisor. Анализ архитектуры контроллера и несложные расчеты показывают, что нет препятствий для использования интересующих нас скоростей в 200 и 10400 бод. Так в чем же проблема?


При написании операционных систем, драйверов и различных прикладных программ обслуживания последовательного интерфейса, в целях упрощения, использовался стандартный, ставший традиционным для персональных компьютеров, ряд скоростей: 300 , 600 , 1200 , … , 115200 бод. Скорости 200 и 10400 бод, которые использует диагностическая линия автомобиля, не входят в этот ряд.

Наша задача — обеспечить поддержку скоростей обмена, которые поддерживают контроллеры FT 232 и CP 2102 , но не поддерживает “классическое” программное обеспечение. Идея заключается в том, чтобы переопределить скорости из стандартного ряда новыми значениями, например, заменить 14400 бод на 10400 бод. После такого переопределения, запрос на включение режима 14400 бод будет приводить к включению режима 10400 бод. Смысл в том, что мы добавляем новую скорость, сохранив интерфейс, совместимый с имеющимся программным обеспечением. В принципе, для подстановки можно использовать любую скорость из заданного ряда.

Переопределение скоростей для контроллера CP 2102

Рассмотрим реал изацию описанной выше идеи для обеспечения совместимости контроллера USB – to – COM CP 2102 с контроллером электронной системы управления двигателем (ЭСУД) автомобиля. Как было сказано выше, для диагностической линии K – Line 12 V типичны скорости в 200 и 10400 бод.

К счастью, производитель контроллера CP 2102 предусмотрел возможность гибкого управления режимами работы и снабдил свое устройство утилитой для переназначения скоростей обмена, поэтому сегодня нам не понадобятся дизассемблер и отладчик, наши действия будут очень простыми и сведутся к использованию штатной утилиты CP 210 xBaudRateAliasConfig.exe поставляемой компанией Silicon Labs.

Также отметим, что результатом наших действий будет изменение содержимого таблицы, хранящей значения делителей частоты для поддерживаемых скоростей. Эта таблица находится во внутренней энергонезависимой памяти микросхемы CP 2102 , поэтому изменения сохранятся при выключении питания или переносе перепрограммированного устройства на другой компьютер. Для большинства применений, такой вариант удобнее, чем, например, внесение изменений в драйвер. Для обеспечения совместимости с диагностической линией автомобиля и программным обеспечением, используемым для контроля состояния ЭСУД, нам необходимо осуществить следующие переопределения: 14400 на 10400 и 300 на 200 бод.

Итак, запускаем утилиту CP 210 xBaudRateAliasConfig.exe. Появляется окно CP 210 x Baud Rate Configuration. Если подключено несколько устройств CP 2102 , в верхней строке Connected Devices необходимо выбрать устройство, которое мы будем перепрограммировать. Если устройства подключались уже после того, как утилита была запущена, следует использовать кнопку Refresh для обновления списка задействованных адаптеров.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Нажимаем кнопку Get Configuration и получаем список поддерживаемых скоростей обмена для выбранного устройства.

Если используется один USB – to – COM адаптер, список формируется автоматически, если несколько, — то после выбора устройства обязательно следует нажать кнопку Get Configuration, иначе будет визуализироваться таблица, соответствующая не текущему, а ранее выбранному адаптеру!

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Дважды щелкаем мышью на строке, соответствующей редактируемому режиму. Вводим требуемое значение скорости обмена — Desired Baud Rate. При этом автоматически обновляется фактическое значение скорости Actual Baud Rate. С точки зрения стандарта последовательного интерфейса, допустимым является отклонение ± 3 %. Точность установки скорости для контроллера CP 2102 удовлетворяет этому требованию. Редактируем строку 19 . Исходное значение скорости обмена 14400 бод.


Вводим новое значение – 10400 бод, нажимаем OK и переопределение задано!


Редактируем строку 28 . Исходное значение скорости обмена 300 бод.


Вводим новое значение – 200 бод, нажимаем OK и переопределение задано.

После того, как все изменения внесены, не забываем нажать кнопку Set Configuration в окне CP 210 x Baud Rate Configuration и проверить, что значения Desired и Actual в редактируемых строках изменились.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

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

Дополнительно отметим, что кнопка Advanced позволяет выполнить более тонкую настройку параметров. Для переопределения необходимо установить флажок Override Recommended.

Использование адаптера USB–to–COM для подключения контроллера ЭСУД автомобиля к PC

Параметры Prescaler (коэффициент деления для предварительного делителя частоты) и Reload (значение для загрузки в счетчик основного делителя частоты) определяют скорость обмена Baud Rate в бодах в соответствии со следующей формулой:

Baud Rate = ( 24 . 000 . 000 /Prescaler) / ( 65536 — Reload)

Отметим, что контроллер CP 2102 поддерживает скорости до 1 . 000 . 000 бод в режиме 7 и 8 – битных данных и 921 . 600 бод в режиме 5 и 6 – битных данных, для полнодуплексного обмена. При установке скорости, превышающей указанные ограничения, возможны сбои в работе контроллера.

Управление таймаутом при обмене данными по USB осуществляется редактированием параметра USB Receive Timeout. Значение таймаута в секундах определяется по формуле:

Timeout = ( 65536 – Reload) / 500 . 000

Указанный таймаут используется при передаче по USB в компьютер данных, принятых по последовательному интерфейсу. Он определяет промежуток времени, в течение которого контроллер ожидает входных данных. Если в течение заданного промежутка данные не поступают, контроллер завершает передачу по USB. Типовое значение таймаута – 1 ms. Управление таймаутом позволяет устанавливать компромисс при достижении двух взаимно противоречащих критериев:

1 . Минимизация задержки обслуживания USB устройства компьютером, что в данном случае дает увеличение скорости реакции диагностической программы на события в диагностируемом объекте.

2 . Минимизация загрузки компьютера операциями передачи пустых пакетов данных по USB, имеющими место при отсутствии поступления данных по последовательному интерфейсу. От этого зависит общая производительность.
Чем больше таймаут, тем дольше устройство “не засыпает” при отсутствии данных, то есть для улучшения первого критерия, таймаут следует увеличивать, а для второго — уменьшать.

Переопределение скоростей для контроллера FT 232

Рассмотрим решение подобной задачи для одного из конкурирующих продуктов – контроллера FT 232 компании FTDI. В отличие от выше приведенного примера, здесь нам придется редактировать файл конфигурации драйвера последовательного порта FTDIPORT.INF . Структура этого файла описана в [ 3 ], процедура редактирования полей, устанавливающих скорость обмена для последовательного порта, описана в [ 4 ]. Поэтому, в целях компактности изложения, в нашем описании внимание акцентировано только на тех параметрах, которые необходимо изменять. Также отметим, что данный пример соответствует одному из нескольких вариантов представления параметров, все возможные варианты перечислены в [ 3 ], [ 4 ].

Находим в файле FTDIPORT.INF следующую запись:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 10 , 27 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Последовательность, начиная с шестого по счету параметра, содержит пары байтов, каждая из которых задает коэффициент деления частоты для делителя, определяющего скорость обмена по последовательному интерфейсу. Каждая пара соответствует определенной скорости. Рассмотрим первую пару параметров 10 h, 27 h.

1 . Так как два смежных байта 16 – битного слова записаны начиная с младшего байта, для получения 16 – битного числа, их нужно обменять местами: 10 , 27 соответствует 2710 h, h — означает, что число записано в шестнадцатеричной системе счисления.

2 . Переводим 16 – ричное число 2710 h в двоичную систему.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
2 7 1 0

3 . Интерпретируем полученное двоичное значение. Два старших бита 16 – битного числа, а именно биты 15 , 14 определяют дробную часть коэффициента деления частоты согласно следующей таблице:

Бит 15 Бит 14 Дробн ая часть делителя
0 0 0
0 1 0 . 5
1 0 0 . 25
1 1 0 . 125

В нашем случае дробная часть делителя равна нулю. Битовое поле 13 – 0 16 – битного числа численно равно целой части делителя, переведем из шестнадцатеричной системы в десятичную 2710 h = 10 . 000 .

4 . Тактовая частота на входе делителя равна 3 MHz = 3 . 000 . 000 Hz. Скорость обмена в бодах (Baud Rate) будет равна входной частоте делителя, разделенной на коэффициент деления.

Baud Rate = 3 . 000 . 000 / 10 . 000 = 300 бод.

Таким образом, первая пара значений задает скорость 300 бод. Пусть нам необходимо переопределить эту скорость на 10400 бод. Вычислим требуемый коэффициент деления (Divisor):

Divisor = 3 . 000 . 000 / 10 . 400 = 288 , 46

Ближайшее доступное значение 288 , 5 . Нам требуется задать целую часть делителя равной 288 , дробную равной 0 , 5 . Согласно таблице 2 , биты 15 , 14 будут равны 01 b, b — означает, что число записано в двоичной системе счисления. Переведем 288 в шестнадцатеричную систему: 288 = 120 h. Это значение необходимо поместить в битовое поле 13 – 0 . Объединяем биты 15 – 14 и 13 – 0 , получим 4120 h.

Для переопределения скорости 300 бод на 10400 бод запись должна иметь вид:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 20 , 41 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Напомним, что если драйвер устройства FT 232 уже установлен, для вступления изменений в силу, программное обеспечение устройства необходимо полностью деинсталлировать и установить повторно из каталога, в котором находится отредактированный INF файл. В силу особенностей операционной системы, функция обновления драйвера или удаление устройства в диспетчере устройств может не дать результата.

Источники информации.

5 . М. Гук. Аппаратные средства IBM PC. Энциклопедия. Санкт – Петербург, издательство “Питер” 2006 .

Читайте также: