Usb to ttl ft232rl распиновка

Обновлено: 02.07.2024

До меня наконец-то дошла мода на девайсы которые подключают к USB, но лучше поздно чем никогда. Мой выбор пал на весьма известную FT232RL, также рассматривал вариант CP2103, но он оказался в QFN корпусе, который мне меньше нравиться, чем SSOP28 у FT232RL. Правда CP2103 дешевле.

Обвязки FT232RL требует совсем немного, пара конденсаторов и все. Также для красоты повесил 3 светодиода, которые сигнализируют о подаче питания, входной и выходной передаче данных. Схема подключения выглядит вот так:

Конденсатор С1 – 0,01мкФ, С2 – 0.1мкф керамические 1206. Резисторы R1-R3 – на 280 Ом типоразмера 0805. Светодиоды D1-D3 – в 1206 исполнении.
Была вытравлена платка и запихнута в корпус, в который приходит USB кабель, а выходит 4 провода, +5В, земля, Tx и Rx. +5В и земля берется непосредственно с самого USB порта, а Tx и Rx приходят из FT232RL. Разводку печатной платы прилагаю в конце заметки. Приложенная в конце заметки плата отличается от изображенной на фото, это связанно с тем, что я дополнительно вывел пины RTS и DTR, которые могут пригодиться при заливке прошивки в ARM микроконтроллер LPC2368, про который я напишу чуть позже.

Далее все это закрывалось крышкой с отверстиями, чтобы было видно состояние светодиодов и перематывалось скотчем с наклейкой. Получилось что-то очень похожее на конвертер уровней RS232-TTL, только с USB разъемом на кабеле.

Все, теперь устройство можно тестировать. Подключаем его в свободный USB разъем, и наблюдаем картину, как WinXP ищет драйвера. У ее это не выйдет, поэтому нужно предусмотрительно скачать драйвера для FT232RL. Устанавливать драйвера нужно 2 раза, сперва устанавливаем драйвер для FT232RL, после WinXP обнаружит еще одно неопознанное устройство, тыкаем ее снова в папочку с драйверами и она находит виртуальный COM порт, который видно в диспетчере устройств.

Итак, цель достигнута, теперь есть модуль для подключения микроконтроллеров к USB. А также им можно заливать прошивку в LPC2368. Только вот собрать что-то похожее на программатор Громова на базе FT232 не получиться. Так как FT232RL в режиме bitbang работает очень медленно.
Также существует более старая версия FT232BM, которой требуется намного больше обвязки для использования, потому ее не рассматриваем.

Как паять FT232?
Теперь немного про то, как паять такую мелочь как SSOP28. Для этого у меня служит зубочистка и острое жало паяльника. Кладем микросхему на контактные площадки, прижимаем зубочисткой и запаиваем крайние выводы. Остальные уже можно позже допаять. Только в конце, если пришлось подравнивать микросхему, то крайние выводы отпаиваем и припаиваем обратно, чтобы мелкие площадки не оторвались под действием внутренних напряжений созданных подравниванием.

В которой в поля Manufacturer и Device description выставляем как нам нравиться. Программа имеет некоторую специфику работы, сперва создаем новый шаблон, выбираем из списка FT232R и выставляем поля как нам нравиться. Потом шаблон нужно сохранить и только тогда клавиша программирования станет активной. Запрограммировав я увидел такой результат:

LPT и COM порты уже большая редкость на современных стационарных компьютерах, а про ноутбуки то и говорить нечего. USB медленно, но верно вытеснила их, усложнив жизнь разработчикам и упростив пользователям. Эх, как приятно было когда-то подключить микроконтроллер к COM порту компьютера, используя всего лишь max232 и не заботясь о драйверах. Еще чуть-чуть и это будет возможно только на промышленных компах.

Следуя общей тенденции, производители микросхем стали выпускать доступные микросхемы для работы с USB. Такие как USB-UART преобразователи или микроконтроллеры с поддержкой этой шины. К сожалению последние, несмотря на наличие библиотек, все еще сложны в освоении, поэтому неискушенному инженеру проще использовать первый вариант. И в этой статье мы рассмотрим две подобные микросхемы - FT232 и CP2103 и схемы преобразователей на их основе.

Микросхема FT232RL фирмы FTDI пользуется заслуженной популярностью в инженерных кругах. Она предоставляет пользователю возможность создания полноценного COM порта, имеет функцию управления отдельными выводами, драйвера, простую схему включения с минимальным количеством дополнительных элементов и приемлемый для пайки корпус. Также дополнительным плюсом этой микросхемы, является возможность программирования ее EEPROM памяти, в которой можно изменить некоторые параметры USB устройств. Из недостатков можно отметить ее высокую цену

120-150 рублей, которая вполне сравнима с ценой на микроконтроллер atmega.
Я сделал на FT232RL свой вариант USB-UART преобразователя. Все пользовательские выводы развел на PLS`ку по краям платы. Расстояние между PLS выбрал таким, чтобы можно было втыкать переходник в макетную плату. Выводы RXD и TXD, предназначенные для подключения UART`a микроконтроллера, развел на отдельную PLS для удобства подключения. Также на плату помесил 2 светодиода, для индикации процесса передачи/приема информации микросхемой FT232RL, и перемычки для выбора напряжения питания выводов. Оно может быть пяти или трех вольтовым. USB разъем взял в мини исполнении, USB-B слишком громоздкий. Плату развел в одном слое, с тремя перемычками.

схема usb-uart преобразователя на ft232rl

Схема USB-UART переходника на FT232RL


Внешний вид полученного девайса

Если ты соберешь этот USB-UART переходник, то не спеши сразу втыкать его в USB порт. Перед работой нужно убедиться в отсутствии замыканий между плюсом питания, землей и выводами D+, D-. Возьми тестер и прозвони их. Если замыканий нет, визуально проверь другие вывода и только после этого можешь подключать переходник.

Микросхема CP2103 фирмы Silicon Labs - это по сути аналог FT232. Имеет простую схему включения с минимальным количеством внешних компонентов, позволяет организовать полноценный COM порт со всеми его сигналами, имеет дополнительные пользовательские выводы и программу для их конфигурации, драйвера, маленькие габариты и более демократичную цену. Из недостатков стоит отметить мелкий и неудобный для запайки в домашних условиях корпус. Пожалуй, это главная причина непопулярности этой микросхемы в среде самодельщиков.
Ради интереса я сделал USB UART преобразователь и на ее базе. Все пользовательские выводы развел на PLS`ки по краям платы. RXD и TXD вывел на отдельный разъем. Джампер для выбора напряжения питания выводов здесь не понадобился, так как это напряжение не может быть большее 3.6 В. USB разъем выбрал в мини исполнении, плату развел в одном слое с четырьмя перемычками на обратной стороне. Светодиоды для индикации передачи/приема данных не сделал, потому что микросхема CP2103 не имеет выделенных для этих целей выводов. Можно задействовать любые пользовательские выводы, но их нужно конфигурировать с помощью специального софта. Когда я это узнал, переходник уже был готов и переделывать его было лень, особенно после мучений с запайкой. Единственное, что я добавил из индикации - это светодиод по питанию.

схема usb-uart преобразователя на cp2103

Схема USB-UART преобразователя на CP2103


Внешний вид полученного девайса


Я немного помучился с изготовлением этого переходника. Во первых между ножками CP2103 очень маленький зазор, нужно аккуратно делать плату. Во вторых ее сложно припаять. Если бы у меня не было фена, я бы за это вообще не взялся.
Запаивал я ее следующим образом. Залудил плату сплавом Розе. Он плавится при 100 градусах, что позволяет избегать перегрева платы и микросхемы . Обильно смочил посадочное место микросхемы флюсом и положил ее туда. Используя увеличительное стекло и пинцет, кое-как сориентировал ее по посадочному месту. Далее стал нагревать микросхему феном с температурой

150-200 градусов. Когда припой расплавился, микросхема стала шевелиться и за счет сил поверхностного натяжения заняла точное положение на посадочном месте. Получилось очень ровно, но переходник не заработал. Я повторно нагрел микросхему и слегка придавил и пошевелил пинцетом. После этого микросхема сконтактировала с дорожками платы.
После сборки переходника нужно убедиться в отсутствии замыканий между плюсом питания, землей и выводами D+, D-, а затем между остальными выводами. Поскольку микросхема очень маленькая, между выводами легко может сесть сопля. После проверки выводов, USB UART переходник можно подключать к компьютеру.
Как и с предыдущем переходником, при первом включении система предложит установить драйвера. Скачивай их с официального сайта производителя - драйвер для CP2103.
Установленный переходник определяется в диспетчере устройств в разделе "Порты" как "Silicon Labs CP210X USB to UART Bridge (COM6)". У тебя может быть другой номер порта.
Работоспособность проверяется аналогично, повторяться не буду.

Альтернативные варианты адаптеров можно сделать на микросхемах FT230XS и CP2102. Это урезанные и соответственно более дешевые аналоги FT232 и CP2103. Обе микросхемы имеет меньшее число пользовательских выводов и не совпадают по распиновке.

Чипы FTDI, CH340, ATMEGA16U2 с драйверами позволяют плате Arduino и USB адаптерам подключаться к компьютеру и взаимодействовать с внешним окружением через Serial UART. С их помощью Ардуино может скачивать прошивку, загружать и отправлять данные, не заботясь о низкоуровневой поддержке последовательного соединения. В платах разных производителей могут использоваться различные чипы и драйвера.

В этой статье мы рассмотрим наиболее популярные микросхемы и узнаем, как скачать и установить соответствующие драйвера для нормальной работы Arduino Uno, Nano, Mega и другими платами.

Чипы CH340g, FTDI FT232, ATMEGA 16U2 / 8U2

Чип FTDI

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

Зачем нужен USB / UART TTL преобразователь

USB преобразователи в Ардуино

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

Arduino USB CH340
Arduino USB CH340
Arduino USB CH340
Arduino USB CH340

Исторически наиболее популярным вариантом чипов USB/UART конвертера была линейка микросхем от шотландского производителя FTDI. Главным ее недостатком была стоимость и весьма странная политика в области контроля контрафакта, зачастую приводящая к тому, что легальные купленные устройства блокировались драйверами компании. Сегодня существенную конкуренцию FTDI составляют микросхемы семейства CH340, массово производимые многочисленными китайскими производителями. Они гораздо дешевле и достаточно надежны и это постепенно привело к тому, что в большинстве недорогих контроллеров Arduino и адаптеров установлены именно чипы CH340 (CH340g).

Процедура установки драйвера для CH340g на самом деле очень проста и почти всегда проходит без ошибок на самых популярных операционных системах Windows7, Windows10. Именно поэтому никаких проблем с использованием недорогих ардуино плат, несущих на себе чип CH340, почти никогда не возникает.

USB драйвер для ардуино

Если мы подключаем Ардуино к компьютеру, то чип с помощью драйвера попросит систему открыть порт и начнет взаимодействие . И для чипов разных производителей потребуются разные драйвера. Проблемы возникают, когда драйвера нет. Система пытается найти его для подключенного устройства, не находит и мы никогда не увидим его в списке устройств. Для решения проблемы надо найти и скачать соответствующие драйвера, а затем установить их на компьютер. Ниже мы рассмотрим, как это делается на примере USB драйвера CH340.

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

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

В серию микросхем CH340 входят CH340T (мост USB – UART), CH340R (мост USB – IrDA) и CH340G (мост USB – UART). Последняя микросхема является наиболее распространенной и удобной с точки зрения корпуса с меньшим числом выводов.

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

Процесс установки драйвера разбивается на несколько шагов:

  • Загрузка драйвера.
  • Распаковка скачанного архива.
  • Найдите папку CH341ER.
  • Запуск исполнительного файла SETUP.EXE.
  • Нажать на кнопку Установить.
  • На этом установка драйвера на компьютер завершена.

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

Характеристики CH340

Микросхема обладает следующими характеристиками и возможностями:

  • Не нужно большое количество внешних компонентов, требуются только кварцевый резонатор и 4 конденсатора.
  • Создание виртуального последовательного порта.
  • Возможность применения всех приложений для COM-портов.
  • Работает с сигналами уровней 5 и 3,3В.
  • Выполнена в удобном корпусе SO-16 с малым количеством выводов и небольшим числом внешних компонентов.
  • Поддержка полной скорости спецификации USB0.
  • Наличие встроенного буфера типа FIFO.
  • Поддержка всех стандартных режимов передачи данных.
  • Поддержка симплексного, полудуплексного, дуплексного асинхронных режимов обмена.
  • Поддержка интерфейсов RS23, RS422, RS485.
  • Рабочие температуры лежат в диапазоне от -40С до 85 С.

Распиновка микросхемы CH340G представлена на рисунке.

Распиновка

На плате обозначены следующие контакты:

2 – TXD сигнал UART.

3 – RXD сигнал UART.

4 – напряжение питания.

7 – XI вход для кварцевого резонатора и конденсатора.

8 – XO выход для кварцевого резонатора и конденсатора.

12 – DCD сигнал UART.

13 – DTR сигнал UART.

14 – RTS сигнал UART.

15 – Включение инверсии входа RXD.

Микросхема эмулирует работу последовательного порта. Все приложения работают с конвертером интерфейса CH340G без изменения кода.

Чип FTDI для Arduino

Следующим поколением аппаратных мостов были микросхемы FT232B и FT245B. В них добавился новый режим работы BitBang, также появилась возможность реализации восьми независимых линий ввода-вывода. Помимо этого была изменена схемотехника кристалла.

С 2006 года начался выпуск микросхем FT232R и FT245R, в которых были интегрированы на кристалл энергонезависимая память, тактовый генератор и другие компоненты. Основными преимуществами микросхемы FT232RL являются хорошая функциональность, легкость монтажа и минимальная обвязка. Распиновка модуля представлена на рисунке ниже.

Arduino USB UART чипы и драйвера CH340, CH340G, FTDI

Характеристики микросхемы FT232R:

  • Одночиповый переходник USB-UART.
  • Поддержка режимов передачи 7и 8 бит данных, 1 и 2 стоповых бита.
  • Бесплатные драйверы VCP и D2XX.
  • Скорость передачи 300 бод – 3 мегабод для RS422.
  • Наличие встроенного идентификационного номера.
  • Настраиваемые выходы CBUS.
  • Вывод состояния приема и передачи на внешние светодиоды.
  • Наличие буферов FIFO для высокоскоростного приема/передачи данных.
  • Усовершенствованный режим bit bang.
  • Встроенная память EEPROM на 1024 байт.
  • Наличие встроенного стабилизатора напряжения на 3.3 В и для внешних сигналов от 1,8 до 5В.
  • Высокая нагрузочная способность.
  • Малое потребление энергии.
  • Совместима с USB 2.0 Full Speed.
  • Температурный диапазон от -40С до 85С.

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

Чип ATMEGA16U2/8U2 для ардуино

Чипы ATMEGA16U2/8U2 используются в качестве моста между USB-портом и последовательным портом. Версия платы ATmega8u2 использовалась для предыдущих плат Ардуино Uno и Mega.

Технические характеристики чипа ATMEGA16U2:

Контроллер ATmega8u2 в своей прошивке уже имеет установленные USB COM драйвера, поэтому установка дополнительных не требуется.

Характеристики ATmega8u2:

  • Диапазон напряжений от 2,7В до 5,5В.
  • 32 вывода.
  • Скорость ЦПУ 16 МГц.
  • Объем флеш-памяти 8Кб.
  • Поддержка встроенных интерфейсов I2C, SPI, UART, USART.
  • Размер ядра 8 бит.
  • Несколько режимов работы – холостой ход, энергосберегающий режим, режим ожидания, расширенный режим ожидания и выключение питания.
  • Возможность внешнего и внутреннего прерывания.
  • 22 программируемых линии ввода-вывода.
  • 512 б энергонезависимой памяти.
  • 512 б ОЗУ.
  • Рабочие температуры от -40С до 85С.

Заключение и выводы

Микросхемы-контроллеры последовательного порта служат в качестве преобразователя интерфейса USB. Наиболее популярными являются микросхемы CH340 (преобразователь USB в UART), аппаратные мосты от фирмы FTDI, к которым относятся микросхемы FT8U232, FT8U245, FT232R и FT245R (USB-UART и USB – FIFO) и ATmega8U2 и ATmega16U2.

Использование адаптера 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 .

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