Аппаратные USB-мосты FTDI
В настоящее время компания FTDI предлагает два основных типа микросхем: одноканальные аппаратные мосты USB-UART/FIFO и многоканальные универсальные USB-мосты.
Одноканальные мосты FT232B/R и FT245B/R хорошо известны многим разработчикам и широко применяются в изделиях, выпускаемых в России. На данный момент рекомендуется в новых проектах использовать серию микросхем FT232R и FT245R. Микросхемы серии «R» имеют встроенный генератор, EEPROM и некоторые другие пассивные компоненты. Основные различия между сериями B и R приведены в таблице 1.
Мосты USB-UART | Мосты USB-FIFO | |||
Особенности | FT232B | FT232R | FT245B | FT245R |
Режим bit-bang | Есть | Есть | Есть | Есть |
Программируемые линии ввода/вывода | — | 5 линий CBUS (по умолчанию выполняют функции TXDEN, PWREN#, TXLED#, RXLED#, TX&RXLED#, SLEEP) | — | — |
Количество внешних компонентов | 12 | 2 | 12 | 2 |
Наличие встроенных EEPROM и генератора | — | Есть | — | Есть |
Корпуса | LQFP32 и QFN32 | SSOP28 и QFN32 | LQFP32 и QFN32 | SSOP28 и QFN32 |
Температурный диапазон, °С | 0…+70 | -40…+85 | 0…+70 | -40…+85 |
Для тестирования возможностей своих микросхем FTDI выпускает широкую линейку отладочных модулей. Многие из этих изделий выполнены в формате, позволяющем использовать их как готовые мезонинные модули в составе разрабатываемого устройства. Наиболее популярными из них являются: модуль UM232R на базе микросхемы FT232R и модуль UM245R, выполненный, соответственно, на базе FT245R. Внешний вид модуля UM232R приведен на рис. 1. UM245R имеет аналогичный форм-фактор. Данные устройства удобны для макетирования. Источником питания модуля может служить шина USB или подходящий по параметрам внешний прибор. Напряжение питания портов ввода/вывода, в зависимости от схемотехнических требований, можно брать от шины USB (5 В), от внутреннего регулятора аппаратного моста (3,3 В) или от внешнего источника (2,5 или 1,8 В).
Многоканальные универсальные USB-мосты имеют два или четыре выходных порта, а их универсальность достигается за счет режима MPSSE (Multi-Protocol Synchronous Serial Engine). В режиме MPSSE эти мосты могут эмулировать работу различных последо-вательных протоколов. Компания FTDI в качестве примера предоставляет готовые библиотеки, позволяющие использовать мосты в режимах USB-SPI, USB-IIC или USB-JTAG. На данный момент такие мосты представлены тремя микросхемами: двухканальные мосты FT2232D и FT2232H, четырехканаль-ный мост FT4232H. Микросхемы FT2232H и FT4232H являются новинками 2009 года. Их основной особенностью является поддержка высокоскоростного режима передачи данных — high speed USB. Функциональное сравнение новых микросхем приведено в таблице 2, сравнительные характеристики FT2232D и FT2232H — в таблице 3.
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 |
Задействованы оба канала |
— | — | — | — |
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 | 30 |
Параллельный интерфейс |
||
Максимальная скорость передачи в асинхронном режиме, Мбит/с | < 1 | > 8 |
Максимальная скорость передачи в синхронном режиме, Мбит/с | — | > 25 |
Обе микросхемы выполнены в 64-вы-водных корпусах типа QFN (обозначается буквой Q, например, FT2232HQ) и LQFP (обозначается буквой L) и рассчитаны на напряжение питания 3,3 В и рабочий температурный диапазон от -40 до +80 °C. Конфигурация микросхем, дескрипторы USB, VID и PID хранятся во внешней EEPROM, в качестве которой может быть использована микросхема AT93C46/56/66 фирмы Atmel. Если питание микросхем осуществляется от шины USB, в схеме требуется использовать регулятор напряжения на 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, менее функционален с точки зрения конфигурации выходных интерфейсов. Все каналы могут работать в режиме 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 (виртуальный COM-порт) и D2XX. VCP-драйвер позволяет работать с USB как с обычным COM-портом. Он поддерживает все режимы передачи COM-порта и не требует модификации программного обеспечения, кроме тех случаев, когда обращение к COM-порту осуществлялось на «низком» уровне. В последнем случае программу верхнего уровня придется модифицировать.
D2ХХ-драйвер обеспечивает прямой доступ к микросхемам FTDI посредством API-функций верхнего уровня. С его помощью осуществляется работа в режимах: MPSSE, bit-bang, синхронного 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] файла ftdiport.inf выглядит следующим образом:
%VID_0403&PID_6001.DeviceDesc% = FtdiPort232.NT, FTDIBUSC0MP0RT&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).
В первом столбце приведен стандартный набор скоростей, которые могут быть выбраны при использовании стандарт-ных настроек в Windows. Во втором столбце вводится необходимое значение скорости, которое будет назначаться порту при выборе соответствующего стандартного значения в настройках этого порта. На рис. 7 приведен пример привязки нового значения скорости к стандартному.
Так, если требуется скорость, равная 126 778 бод, то это значение вводим в поле Alias, а ближайшее доступное значение, определяемое аппаратными характеристиками микросхемы, будет равно 126 984 бод. Теперь при выборе скоростив 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-функций драйвера D2ХХ. При первом знакомстве с USB-мостами FTDI данный режим рекомендуем использовать только для работы с пользовательской областью памяти EEPROM, а настройку осуществлять с помощью стандартной утилиты FTProg. Это поможет избежать недоразумений, которые, например, для микросхем FT232R могут привести к отключению встроенного генератора. Дальнейшая работа с таким мостом будет возможна только после подключения внешнего генератора. Диагностирование причины неработоспособности в таком случае также представляется затруднительным.
Записанные в память USB-мостов дескрипторы могут быть проверены с помощью бесплатно распространяемой утилиты USBView. Данную программу можно найти и скачать с сайта FTDI. На рис. 10 показана ситуация проверки причины неправильного определения устройства. В окне утилиты USBView можно видеть, что PID подключенной микросхемы определяется неправильно. В данном случае, например, ошибку вызывает одновременное подключение двух устройств с одинаковыми VID и PID и серийным номером. При подключении нескольких устройств они должны иметь хотя бы разные серийные номера.
Если значения дескрипторов отображаются в виде 0x000, причины могут быть следующие:
- По мнению FTDI, 99% таких случаев вызваны прямым подключением экрана разъема к «земле» — в соответствии с рис. 10 это означает, что выводы разъема USB 5 и 6 соединены с выводом 4 этого же разъема. Такое соединение является некорректным. Один из вариантов развязки сигнальной и приборной «земель» приведен в качестве примера на рис. 11.
- Иногда такую проблему вызывает включение дополнительных оконечных резисторов в линии DP и DM, что не требуется для всех новых микросхем серий R и H. В данных микросхемах эти резисторы интегрированы на кристалле.
- Использование USB-кабелей, не соответствующих спецификации, может приводить к эффектам неправильного определения устройства или нестабильной связи. Качество кабеля особенно принципиально при работе с высокоскоростными USB-мостами.
С помощью данной утилиты, не используя специализированное оборудование, легко обнаружить и устранить такого рода проблемы.
Заключение
Среди разработчиков существуют разные, как положительные, так и отрицательные, мнения о продукции FTDI. Бесспорным, однако, является обстоятельство, что каждый случай следует рассматривать исходя из требований конкретной задачи. Использование законченных аппаратных решений существенно ускоряет разработку и внедрение того или иного узла прибора. Аппаратные мосты FTDI являются хорошим выбором и проверенным решением для реализации интерфейса USB.