Аппаратные USB-мосты FTDI
Запуск в производство новых высокоскоростных мостов FT2232H и FT4232H вызвал новую волну интереса к продукции компании FTDI. В настоящей статье попытаемся удовлетворить этот интерес, рассказав о ключевых особенностях микросхем FTDI, о драйверах и необходимых утилитах для них. В приводимых примерах работы с утилитами показаны некоторые нестандартные настройки драйверов и типовые проблемы, возникающие при работе с USB-мостами. изложенная информация в первую очередь, будет интересна специалистам, ранее не сталкивавшимся с аппаратными мостами данного производителя.
Сергей Долгушин
В настоящее время компания FTDI предлагает два основных типа микросхем: одноканальные аппаратные мосты USB-UART/FIFO и многоканальные универсальные ШВ-мосты.
Одноканальные мосты FT232B/R и FT245B/R хорошо известны многим разработчикам и широко применяются в изделиях, выпускаемых в России. На данный момент рекомендуется в новых проектах использовать серию микросхем FT232R и FT245R. Микросхемы серии ‘^” имеют встроенный генератор, EEPROM и некоторые другие пассивные компоненты. Основные различия между сериями В и R приведены в таблице 1.
Для тестирования возможностей своих микросхем FTDI выпускает широкую линейку отладочных модулей. Многие из этих изделий выполнены в формате, позволяющем использовать их как готовые мезонинные
модули в составе разрабатываемого устройства. Наиболее популярными из них являются: модуль UM232R на базе микросхемы FT232R и модуль UM245R, выполненный, соответственно, на базе FT245R. Внешний вид модуля UM232R приведен на рис. 1. UM245R имеет аналогичный форм-фактор. Данные устройства удобны для макетирования. Источником питания модуля может служить шина USB или подходящий по параметрам внешний прибор. Напряжение питания портов ввода/вывода, в зависимости от схемотехнических требований, можно брать от шины USB (5 В), от внутреннего регулятора аппаратного моста (3,3 В) или от внешнего источника (2,5 или 1,8 В).
Многоканальные универсальные USB-мосты имеют два или четыре выходных порта, а их универсальность достигается за счет режима MPSSE (Multi-Protocol Synchronous
Рис. 1. Модуль UM232R
Serial Engine). В режиме MPSSE эти мосты могут эмулировать работу различных последовательных протоколов. Компания FTDI в качестве примера предоставляет готовые библиотеки, позволяющие использовать мосты в режимах USB-SPI, USB-IIC или USB-JTAG. На данный момент такие мосты представлены тремя микросхемами: двухканальные мосты FT2232D и FT2232H, четырехканальный мост FT4232H. Микросхемы FT2232H и FT4232H являются новинками 2009 года. Их основной особенностью является поддержка высокоскоростного режима передачи данных — high speed USB. Функциональное сравнение новых микросхем приведено в таблице 2, сравнительные характеристики FT2232D и FT2232H — в таблице 3.
Обе микросхемы выполнены в 64-вы-водных корпусах типа QFN (обозначается буквой Q, например, FT2232HQ) и LQFP (обозначается буквой L) и рассчитаны на напряжение питания 3,3 В и рабочий температурный диапазон от -40 до +80 °C. Конфигурация микросхем, дескрипторы USB, VID и PID хранятся во внешней EEPROM, в качестве которой может быть использована микросхема AT93C46/56/66 фирмы Atmel. Если питание микросхем осуществляется от шины USB, в схеме требуется использовать регулятор на-
Таблица 1. Краткие сравнительные характеристики микросхем серий B и R
Мосты USB-UART Мосты USB-FIFO
Особенности FT232B FT232R FT245B FT245R
Режим bit-bang Есть Есть Есть Есть
Программируемые линии ввода/вывода - 5 линий CBUS (по умолчанию выполняют функции TXDEN, PWREN#, TXLED#, RXLED#, TX&RXLED#, SLEEP) - -
Количество внешних компонентов 12 12 2
Наличие встроенных EEPROM и генератора - Есть - Есть
Корпуса LQFP32 и QFN32 SSOP28 и QFN32 LQFP32 и QFN32 SSOP28 и QFN32
Температурный диапазон, °С 0...+70 —40...+85 0...+70 -40...+85
Таблица 2. Сравнение микросхем FT2232H и FT4232H
FT2232H FT4232H
Режимы Канал 1 Канал 2 Канал 1 Канал 2 Канал 3 Канал 4
USB-UART Есть Есть Есть Есть Есть Есть
FT245 SYNC FIFO (8-разрядный параллельный синхронный) Есть - - - - -
FT245 ASYNC FIFO (8-разрядный параллельный асинхронный) Есть Есть - - - -
MPSSE (включая SPI, JTAG и IIC) Есть Есть Есть Есть - -
Bit-bang Есть Есть Есть Есть Есть Есть
CPU Style FIFO Interface Есть Есть - - - -
Host Bus Emulation Задействованы оба канала - - - -
Таблица 3. Основные различия микросхем FT2232D и FT2232H
FT2232D FT2232H
USB, режим обмена 12 МГц FULL SPEED 480 МГц HIGH SPEED
Корпус LQFP-48 QFN-64 и LQFP-64
Основные режимы работы UART, асинхронный параллельный, асинхронный и синхронный “bit-bang”, MPSSE UART, асинхронный и синхронный параллельный, асинхронный и синхронный “bit-bang”, MPSSE
Режим UART
Максимальная скорость передачи, Мбод 3 12
Multi Protocol Synchronous Serial Engines
Количество каналов 1 2
Максимальная частота работы, МГц 6 ЗО
Параллельный интерфейс
Максимальная скорость передачи в асинхронном режиме, Мбит/с < 1 > 8
Максимальная скорость передачи в синхронном режиме, Мбит/с - > 25
VCC3V3IN
і '
1.8 Volt
•+V1.80UT — LDO
Regulator
- EECS
- EESK —
- EEDATA
- OSCI
- oseo —
- USBDP ■
- USBDM ■
- RREF ■
EEPROM
Interface
Baud Rate Generator
Dual Port TX Buffer 4 К Bytes
Dual Port RX Buffer 4 К Bytes
USB Protocol Engine And FIFO Control
MPSSE/
Multi-
purpose
UART/FIFO
Controller
- ADBUSO -
- ADBUS1-
- ADBUS2-
- ADBUS3-
- ADBUS4-
- ADBUS5-
- ADBUS6-
- ADBUS7-
- ACBUSO-■ ACBUS1 -
- ACBUS2-
- ACBUS3-
- ACBUS4-
- ACBUS5-
- ACBUS6-
- ACBUS7-
Baud Rate Generator
Dual Port TX Buffer 4 К Bytes
Dual Port RX Buffer 4K Bytes
MPSSE/
Multi-
purpose
UART/FIFO
Controller
■ BDBUSO -
■ BDBUS1 -
■ BDBUS2 -
■ BDBUS3 -BDBUS4 -
■ BDBUS5 -
■ BDBUS6 -
■ BDBUS7-
BCBUSO -BCBUS1-
■ BCBUS2 -BCBUS3 -
■ BCBUS4 -
■ BCBUS5 -
■ BCBUS6 -
■ BCBUS7 -
Рис. 2. Структурная схема моста FT2232H
пряжения на 3,3 В, например LP38693MP-3.3 производства National Semiconductor.
Микросхема FT2232H представляет собой 2-канальный аппаратный мост (рис. 2). Каждый канал может работать в следующих основных режимах: последовательного (UART), 8-разрядного параллельного интерфейса, или MPSSE. Параллельный интерфейс имеет несколько вариантов конфигурации, основными из которых являются синхронный или асинхронный FIFO, и bit-bang.
В режиме MPSSE могут быть эмулированы различные последовательные интерфейсы, например, SPI, JTAG и I2C, или реализован интерфейс для загрузки конфигурации в ПЛИС Altera или Xilinx. Для интерфейсов SPI, JTAG и IIC компания FTDI предоставляет готовые библиотеки верхнего уровня.
Скорость обмена зависит от выбора выходного интерфейса. В режиме UART скорость каждого канала может достигать 12 Мбод. В режиме MPSSE — до 30 Мбит/с. Для синхронного параллельного интерфейса FIFO можно получить скорость более 25 Мбайт/с, в данном режиме доступен только один канал микросхемы.
При параллельном режиме работы микросхемы FT2232H следует иметь в виду, что в асинхронном режиме микросхема может обеспечивать передачу данных по двум независимым 8-разрядным каналам. Оба канала представляются в операционной системе как два USB-устройства. Каналы не могут быть объединены для получения одного 16-разрядного.
Четырехканальный мост FT4232H, в отличие от FT2232H, менее функционален с точ-
Рис. 3. Внешний вид отладочных модулей
для микросхем FT2232H и FT4232H
ки зрения конфигурации выходных интерфейсов. Все каналы могут работать в режиме UART, два канала из четырех могут работать в режиме MPSSE. Каждый из каналов конфигурируется и работает независимо друг от друга. По скорости обмена микросхема идентична по характеристикам FT2232H в соответствующих режимах работы.
Для тестирования возможностей новых микросхем FTDI предлагает готовые модули FT4232H Mini Module и FT2232H Mini Module (рис. 3). Оба модуля выполнены в одинаковом форм-факторе. Два 26-выводных штыревых разъема модуля предназначены для подключения модуля к целевой плате. Стандартный 5-контактный разъем USB mini B используется для подключения к USB-порту компьютера с помощью стандартного USB-кабеля.
При работе с модулями необходимо обратить внимание, что питание от USB-разъема выведено только на внешний разъем модуля. Для штатной работы устройства требуется корректно подать все необходимые напряжения на соответствующие выводы разъема. В случае неправильного подключения питания портов ввода/вывода модуль может работать некорректно. Это может проявиться в невозможности определения USB-хостом подключенного устройства или в его неправильном определении.
Компания FTDI предоставляет для всех своих мостов бесплатные драйверы, утилиты для настройки и примеры приложений верхнего уровня, а также подробную документацию по работе с ними. Руководствуясь примерами, приведенными в документации (например, руководство программиста по работе с драйвером Software Application Development D2XX Programmer’s Guide), достаточно просто освоить интерфейс взаимодействия программы верхнего уровня и аппаратного моста (рис. 4).
Наличие драйверов является одним из ключевых моментов при выборе USB-контроллера того или иного производителя. Компания FTDI предлагает для своих микросхем готовые драйверы двух типов — VCP
D2XX
Application
FTD2XX.DLL
COM Port Application
FTSER2K.SYS
FTDIBUS.SYS
USB Host Controller Driver
Рис. 4. Структура комбинированного драйвера
(виртуальный COM-порт) и D2XX. VCP-драйвер позволяет работать с USB как с обычным COM-портом. Он поддерживает все режимы передачи COM-порта и не требует модификации программного обеспечения, кроме тех случаев, когда обращение к COM-порту осуществлялось на «низком» уровне. В последнем случае программу верхнего уровня придется модифицировать.
D2ХХ-драйвер обеспечивает прямой доступ к микросхемам FTDI посредством API-функций верхнего уровня. С его помощью осуществляется работа в режимах: MPSSE, bitbang, синхронного FIFO, работа с EEPROM.
Оба драйвера входят в единый дистрибутив и устанавливаются одновременно. При использовании VID и PID FTDI самый простой способ установить драйвер — это использовать автоматически устанавливаемый архив CDM x.xx.xx.exe (здесь x.xx.xx обозначает номер версии драйвера). При таком варианте установки драйвер должен инсталлироваться до подключения устройства! Если предполагается работа мостов FTDI
с измененными VID и PID, то для установки драйвера необходимо использовать версию дистрибутива, предоставляемую в обычном архиве. Тогда драйвер устанавливается после подключения USB-моста к компьютеру, например через «мастер» установки нового оборудования. Предварительно новые VID и PID должны быть прописаны в файлах ftdibus.inf и ftdiport.inf в разделах [FtdiHw], [FtdiHw.NTamd64] и [Strings] по аналогии с тем, как в данных разделах прописаны VID и PID производителя. Строка из раздела [FtdiHw] файла ftdiportinf выглядит следующим образом:
%VID_0403&PID_6001.DeviceDesc% = FtdiPort232.NT, FTDIBUS\COMPORT&VID_0403&PID_6001.
В настоящее время FTDI предлагает упростить процесс работы с INF-файлами с помощью утилиты INF File Generator (рис. 5). Данная утилита позволяет заранее, перед установкой драйвера, внести следующие изменения и настройки в inf-файл драйвера: изменение VID и PID производителя, описание устройства, задание нестандартной скорости передачи при использовании VCP-драйверов и привязки нового значения к стандартной, привязка конкретного устройства к одному USB-порту и другие функции.
Рассмотрим работу с данной утилитой на примере изменения стандартной скорости обмена для режима виртуального COM-порта (VCP). Во вкладке Baud Rates приведены три столбца значений (рис. 6): стандартная скорость передачи (Standard Baud Rates); скорость передачи, задаваемая пользователем (Alias); скорость передачи, наиболее близкая к заданной пользователем (Closest Achievable). В первом столбце приведен стан-
!- - Ш
Ни^пЄвігікхі Üuhnfuui
FTDI üuv<*: «wi гї^-iW-d»^ LwjJ іяіп. і ¡сшцямгі? W
Дьз:пЭ І: Tf* ГМ^Ы ‘Mfc* 13Jb:<jd Hf hitfi
tMtd Dhpl 1 ГЕП i И 11 ИУИ> lM
Мм ObHirAchh.
зек- зон Ж
№ Ш CK
1JÍ0 1.ÍÚÜ ВД
гмш ашб. ЖВ
9.Ш) эда *00
пен Ч.г
13 ДМ 1Э.ДМ l*flj
ЗМН MLA BKC
5?*ВД gJW ;
TI123# mm l'SH
ЯОЬВД mm «¡1»
4ЄВОО «ви 4ЛЕ9
mm кі.да
Cid
Рис. 6. Окно утилиты INF File Generator, настройка скорости передачи
дартный набор скоростей, которые могут быть выбраны при использовании стандартных настроек в Windows. Во втором столбце вводится необходимое значение скорости, которое будет назначаться порту при выборе соответствующего стандартного значения в настройках этого порта. На рис. 7 приведен пример привязки нового значения скорости к стандартному. Так, если требуется скорость, равная 126 778 бод, то это значение вводим в поле Alias, а ближайшее доступное значение, определяемое аппаратными характеристиками микросхемы, будет равно 126 984 бод. Теперь при выборе скорости
Рис. 5. Окно утилиты INF File Generator
Рис. 8. Стандартное окно настроек драйвера COM-порта
-!Н*1
Рів ОДО« ИНЬ
ЕИСЙГІ КН? F#4l>
► IV |Lw-i Jh
■+ ІР*ОМ#лмС«ч fV ИЙІІ Etfl РИ? F«Wv г- г» Д»ч*
хтшш
^м#|№&№Г«№ і- фА&*&
•fii LP»n]B»«<W«*i + РЫЭдНЫпиСип •$» ьмП| ЗМ№й ;ЮІ? F*+|L Р 4» ifkdHjfa
4 IFWijhg^aCton
-"Ї- |F*lflNiiJ«TiHiCi»T
•¡¡r w*mi raw кн? f**|l
Г vy FkvfJj
*r [^IlHefftffwCaw-it- PviaDtiiH№n№ ^№9№M№ -fr Fff«lM(i4F*iG«4 -fr
■+ |M4 №>№*&■■
IVrtStn timer i?lirr
Ыкт*1свйпЬС.*а-з bOewioel'iotocot:
ЬЛтеІ'АтїічІЛ.ьір . ї'ІЯєЯрЬг
iJlamreil-ifti LirD4 L'f «ТНИ* iT№hcli
6x0 IS* -ПІЇМВДЦ
DMi«» 'HLilJB-m aieE-злІважЬчя-г
рир*« ’птакгаг
" E - T±.r ( L i cr.i
ОнйІйО
QhQD
am
ChQD
йийм ¡III
CmQIQi !Fm4ms# Т*:Ь*оісііт Вчкіс** [пшгміиіші и-м-ІЗ 0*9999 ІиСІОв спої
Dh02
H
C>U1
IL£nSLa.L>ja. Е*уІЄвСйшшЄ*аЛ gmmt Cwfip Ті Іи: fa 00 I*r¥SCn &rS 5$r»rH Fu I I.
і^»'.ґи ¿Лгітлч.*. CmOJ
T^jcti F.j-n P
Z0*i LlVTS-l ІОЬ ІЧ-КЗ LptCI
»Tulta. LpWJ-tb. ІІяййв'и
bffohlfrteTlfe-?-« ПиОІ
L-O-niL i>j«rwL ійпТмЛйаг СnGІ.
15пЕ ІТ+Г+с ii>-> faOP
ІлиЧ! С-іМЬчііУі СнЕШ Бия
■нфота Unit? ¡IP На і
Jjsfc*ri*^ Cxrccj-Lpicj
Lin1*1 ChOD
ЬЦЦдИ «ІИІ iW! faOO
ЬРаЕн&оійіч CiHOZ
b.'nlRriiaCtut D*FF
Ьївї»г£#с*5ч*£Ііаії r.uFt
bin*:«rfflcaFj-DLocQL: С siFF
:ltt*rfK4 faOi
ОкОДО ■ІШІИ-ЗН' йкйДО ’TTU' I .'У-J'J j ‘
ИлЗро.хЛ C^BrhyLer bErfpOibiilddJ.»*: CuSl
Тгшіог № Buik
GhQDID ! ь* i ОшЙО
EiJjiu.al E>n. x L 7' і ся bfcr»iro j ч ^ il t ГЗ і tiPi
Тг«ш»Іаіг Ттргг E-j I k
i-iii* fa00«0 I til
ЬІ»ї*Г**« CuOQ
I ________11Ы
jOnjnCvniAKi 1 HiLvGpmiNrl С
в 300 бод реальная скорость передачи будет соответствовать 126 984 бод (рис. 8).
Напомним, что все настройки, которые можно вносить с помощью утилиты INF File Generator, могут быть также внесены вручную в соответствующие INF-файлы драйвера. Применительно к назначению скорости передачи это означает, что придется самостоятельно рассчитывать все необходимые значения делителей и вносить их в необходимом формате в INF-файл. Предлагаемая утилита существенно упрощает проведение данных процедур. Для тех, кто в первый раз сталкивается с необходимостью внесения изменений в INF-файлы драйверов, этот метод будет наиболее удобным и простым.
Не следует забывать, что при внесении любых изменений в INF-файлы автоматически теряется сертификат WHQL. Сертификация драйвера в таком случае должна осуществляться производителем конечного продукта.
Для установки режимов работы USB-мостов, изменения USB-дескрипторов и записи их во внутреннюю (FT232R/FT245R) или внешнюю EEPROM производитель предлагает использовать новую версию утилиты MProg-FTProg. В новую версию (дополнительно к возможности настройки USB-мостов) включена возможность программирования хост-контроллера Vinculum. Интерфейс программы и работа с ней просты. Встроенная подробная справка по работе с утилитой поможет уточнить назначение того или иного параметра. На рис. 9 показан внешний вид утилиты на примере работы с микросхемой FT2232H. Четыре окна программы предоставляют пользователю следующую информацию: левое окно — дерево всех настраиваемых функций, режимов работы и дескрипторов; правое верхнее — выбор необходимой функции, режима или дескриптора; правое среднее — краткую справку о выбранном для редактирования пункте; в нижнем правом окне выводится служебная информация и данные, считанные из EEPROM.
Доступ ко всей области EEPROM — служебной (куда записываются настройки и дескрипторы) и пользовательской (по умолчанию свободная область памяти) — может осуществляться из конечного приложения с помощью API-функций драйвера D2XX. При первом знакомстве с USB-мостами FTDI данный режим рекомендуем использовать только для работы с пользовательской областью памяти EEPROM, а настройку осуществлять с помощью стандартной утилиты FTProg. Это поможет избежать недоразумений, которые, например, для микросхем FT232R могут привести к отключению встроенного генератора. Дальнейшая работа с таким мостом будет возможна только после подключения внешнего генератора. Диагностирование причины неработоспособности в таком случае также представляется затруднительным.
Рис. 9. Окно утилиты FT Prog
Рис. 10. Утилита USBView
Записанные в память ШВ-мостов дескрипторы могут быть проверены с помощью бесплатно распространяемой утилиты
USBView. Данную программу можно найти и скачать с сайта FTDI. На рис. 10 показана ситуация проверки причины неправильно-
интерфейсы
го определения устройства. В окне утилиты USBView можно видеть, что PID подключенной микросхемы определяется неправильно. В данном случае, например, ошибку вызывает одновременное подключение двух устройств с одинаковыми VID и PID и серийным номером. При подключении нескольких устройств они должны иметь хотя бы разные серийные номера.
Если значения дескрипторов отображаются в виде 0x000, причины могут быть следующие:
• По мнению FTDI, 99% таких случаев вызваны прямым подключением экрана разъема к «земле» — в соответствии с рис. 10 это означает, что выводы разъема USB 5 и 6 соединены с выводом 4 этого же разъема. Такое соединение является некорректным.
Один из вариантов развязки сигнальной и приборной «земель» приведен в качестве примера на рис. 11.
• Иногда такую проблему вызывает включение дополнительных оконечных резисторов в линии DP и DM, что не требуется для всех новых микросхем серий R и Н. В данных микросхемах эти резисторы интегрированы на кристалле.
• Использование ШВ-кабелей, не соответствующих спецификации, может приводить к эффектам неправильного определения устройства или нестабильной связи. Качество кабеля особенно принципиально при работе с высокоскоростными ШВ-мостами.
С помощью данной утилиты, не используя специализированное оборудование, легко обнаружить и устранить такого рода проблемы.
Заключение
Среди разработчиков существуют разные, как положительные, так и отрицательные, мнения о продукции FTDI. Бесспорным, однако, является обстоятельство, что каждый случай следует рассматривать исходя из требований конкретной задачи. Использование законченных аппаратных решений существенно ускоряет разработку и внедрение того или иного узла прибора. Аппаратные мосты FTDI являются хорошим выбором и проверенным решением для реализации интерфейса ШВ. ■