Ft232rl подключение к компьютеру

Обновлено: 07.07.2024

Работа с драйверами для FT232RL под ОС Windows

Перед тем, как начать работу с микросхемой FT232RL, нам, естественно, необходимо установить для нее драйвера. Процесс этот абсолютно несложный (во всяком случае, в Windows, с другими системами я не знако́м), однако, есть тут один подводный камень.

Дело в том, что компания FTDI (производитель данных чипов) с сентября-октября 2014г. решила бороться с китайцами, массово подделывающими ее микросхемы. Причем, для этой борьбы не нашла ничего более подходящего, чем тупо «портить» контрафактные чипы путем перезаписи их PID’ов с правильного значения 6001 на кривое 0000. Естественно, после такой процедуры пообщаться с FT232RL обычным способом уже́ не получается (да и комп перестает ее видеть). Подробное описание проблемы и способы лечения есть здесь, здесь, здесь, да и вообще – можно просто погуглить «ft232rl драйвер pid 0000». Ну а вкратце суть проблемы была такова.

Windows 7 (за другие ОС не скажу – не знаю) в определенный момент автоматически обновлялся, причем данное обновление затрагивало и драйвер для чипов FTDI. Этот новый драйвер, в отличие от старого, отказывался работать с поддельной микросхемой FT232RL, поскольку считал, что это некое «неправильное устройство». Обращаю внимание – автоматическое обновление не трогало чип, ибо это, по-ходу, противоречит каким-то там законам. Однако, поскольку ни хера не работало, новые дрова вынуждали пользователя лезть на сайт FTDI и скачивать самую свежую версию драйверов (мы ведь все уверены, что новое – гораздо лучше старого, да?). Новые дрова поставлялись не в виде набора отдельных файлов (как раньше), а в виде единого экзешника. Ну и при его запуске пользователь, как обычно, тупо нажимал «Принимаю», не читая лицензионное соглашение, которое прямо говорило: «Данный софт может убить ваш чип наглухо». Ну и всё, после этого свежие дрова с чистой совестью заменяли PID микросхемы с 6001 на 0000, и она вообще переставала видеться в системе.

Прочитав всё вышесказанное, можно, конечно, воскликнуть «ужоснах, плохой чип, он мне не нужен!». Однако, не всё так страшно (во всяком случае, не настолько, чтобы сразу же отказываться от довольно неплохой микросхемы). Насколько я понял, чтобы избежать конфликтов драйвера с поддельным чипом, достаточно сделать всего две вещи:

• устанавливать не самые свежие дрова с сайта FTDI, а скачивать старые и проверенные (версии не выше 2.08.14);

• перед установкой дров принудительно отключить обновление драйверов (см. далее).

Всё, после этого можно спокойно работать хоть с настоящей, хоть с поддельной FT232RL и особо не беспокоиться за последствия.

Надо сказать, что драйвер версии 2.08.14 был выпущен аж в 2011 году, и предназначен был для работы со следующими системами: Windows 2000, XP, Server 2003, Vista, Server 2008, Windows 7 и Server 2008 R2, при этом «разрядность ОС» может быть как 32, так и 64 бита. Однако, данные дрова нормально работают и под Win8, и под Win10. И таким образом получаем, что предлагаемая версия драйвера хотя и старая, но совместимая со всеми широко распространенными на данный момент форточками, а посему никаких допиливаний и танцев с бубнами вам с ним совершать не придется.

Перед тем, как переходить к описанию собственно процесса установки дров, я бы хотел сказать несколько общих слов о них самих. Вообще говоря, драйвер для FT232RL как бы состоит из двух частей (в связи с чем он называется Combined Driver Model или просто CDM):

• драйвер виртуального COM-порта (Virtual COM Port, VCP);

• драйвер «прямого» доступа (Direct Driver, D2XX).

Архитектура пакета CDM для операционок Windows выглядит так:

Дрова VCP создают в компе виртуальный COM-порт, через который можно общаться с микросхемой FT232RL как с обычным устройством RS-232. Данная фича весьма и весьма удобна: не надо переписывать «старые» программы, которые были написаны под аппаратный COM-порт. К тому же, написание даже «нового» софта зачастую реализуют на том же COM-порте. Причина как всегда банальна – он очень прост с точки зрения программирования. Ну а если функционала COM’а недостаточно, тогда вступают в бой дрова D2XX. Они позволяют софту со стороны компа достучаться до FT232RL напрямую через функции DLL, т.е. работать с микросхемой, как с полноценным USB-устройством. Отмечу, что при использовании D2XX программисту доступны такие фичи, которые никогда не предоставило бы ему API COM-порта (например, перевод USB-устройства в различные режимы работы, запись данных в EEPROM микросхемы и т.д.). Подробное описание функций DLL и примеры соответствующих проектов есть на сайте компании FTDI. Обратите внимание, что хотя дрова VCP и D2XX поставляются в одном пакете CDM, приложение со стороны компа не может использовать оба этих интерфейса одновременно (т.е. в один момент времени может быть задействован либо прямой доступ к чипу, либо доступ через COM-порт).

Перечень операционных систем Windows (как 32-х, так и 64-х битных), поддерживающих предлагаемую версию CDM-драйвера:

• Windows Server 2003;

• Windows Server 2008;

• Windows Server 2008 R2;

* - вживую не проверялся, но должен работать

Обратите внимание, что на сайте FTDI есть также дрова и для Линукса, и для MacOS, и даже для Андроида. Однако, в данных ОС я с FT232RL никогда не работал, а посему сказать что-либо по этому поводу не могу – пользователям перечисленных систем предлагаю разобраться в вопросе самостоятельно.

Как говорил ранее, установка драйверов для FT232RL под Windows не отличается какой-то особой сложностью. У меня на компе стои́т WinXP SP2, а у соседа – Win7, поэтому я проиллюстрирую инсталляцию дров для FT232RL именно на них. На мой взгляд, такой выбор будет вполне оправданным: во-первых, на данный момент времени эти операционки являются самыми распространенными, а во-вторых – судя по документации, инсталляция драйвера для Win8 и Win10 практически полностью аналогична таковой для Win7. Ну а если уж возникнут какие-либо сложности, на сайте FTDI есть куча оригинальных апнотов для каждой ОС с подробными инструкциями по установке (кстати, в этих документах также описаны и некоторые проблемы, которые могут возникнуть при инсталляции дров).

Итак, для установки дров чипа FT232RL нам необходимо будет выполнить следующие действия (на примере Windows XP SP2 и Windows 7):

• от греха подальше сразу принудительно отключаем обновление дров через узел «Window Update» (особенно это актуально для жутко умных и самостоятельных Win7/8/10). Нажимаем на клавиатуре кнопки «Win» + «Pause/Break» и попадаем в окно «Свойства системы». Дальнейшие действия для разных ОС будут такими:

WinXP: Вкладка «Оборудование» > Кнопка «Узел Windows Update» > Пункт «Никогда не использовать Windows Update для поиска драйверов» > Кнопка «ОК»:

Win7/8/10: Ссылка «Дополнительные параметры системы» > Вкладка «Оборудование» > Кнопка «Параметры установки устройств» > Пункт «Нет, предоставить возможность выбора» > Пункт «Никогда не устанавливать драйверы из Центра обновления Windows» > Кнопка «Сохранить»:

Обратите внимание: окно «Свойства системы» пока закрывать не надо.

• далее я бы еще порекомендовал на всякий случай вообще отключить комп от Интернета (выдернуть шнур или хотя бы отключить сетевую карту), но это, наверное, совсем уж паранойя. А вот что точно не помешает, так это попробовать удалить ранее установленные драйвера от FTDI. Продукцию данной конторы используют многие производители, и далеко не факт, что какая-нибудь железка, которую втыкали в комп несколько лет назад, не установила соответствующие дрова;

• скачиваем CDM-драйвер версии 2.08.14, если этого не было сделано раньше;

• распаковываем скачанный архив в какую-нибудь папку. Пусть для примера адрес папки с дровами будет таким: D:\DRV\FTDI_Driver_2.08.14;

• перед установкой драйвера заходим в «Диспетчер устройств» (соответствующая кнопка на вкладке «Оборудование» в ранее открытом окне «Свойства системы») и смотрим список установленного оборудования в разделах «Контроллеры универсальной последовательной шины USB» и «Порты (COM и LPT)» (если таковой вообще имеется):

(здесь и далее: если картинка двойная, то слева показан WinXP, справа – Win7).

• втыкаем устройство с чипом FT232RL в USB-порт компа. Возможно (возможно) сразу же вылезет какой-нибудь «Мастер автоматической установки нового оборудования». В этом случае твердой рукой отправляем его спать – жмем «Отмена». Ну а далее вновь обращаем свой взор на «Диспетчер устройств»: в разделе «Другие устройства» у нас должен появиться неизведанный дывайс «FT232R USB UART» (ну, или что-то подобное):

• щелкаем по неопознанному устройству правой кнопкой мыши и в вывалившемся меню выбираем пункт «Обновить драйвер»:

• у нас должен запуститься «Мастер обновления оборудования». Выбираем «Установка из указанного места» (WinXP) или «Выполнить поиск драйверов на этом компьютере» (Win7). В случае Windows XP потребуется еще нажать кнопку «Далее»:

• в открывшемся окне указываем мастеру место нахождения дровяных файлов (напомню, в нашем случае это D:\DRV\FTDI_Driver_2.08.14) и нажимаем «Далее»:

• если система начнет лаяться на то, что устанавливаемые дрова не имеют сертификации WHQL, жмем «Все равно продолжить»;

• наблюдаем, как красиво устанавливаются необходимые файлы драйвера D2XX. При этом в папке «\WINDOWS\inf» создаются соответствующие файлы *.inf и *.pnf, в папку «\WINDOWS\system32» копируются библиотеки «ftd2xx.dll», «ftbusui.dll» и «FTLang.dll», а в папку «\WINDOWS\system32\drivers» – драйвер шины «ftdibus.sys»:

• ну и в окне завершения работы мастера обновления оборудования жмем кнопку «Готово» или «Закрыть»:

• если после этого вдруг опять сам по себе запустится мастер установки нового оборудования, жмем «Отмена» – любую самодеятельность ОС нужно жестко пресекать. Ну а дальше снова смотрим в «Диспетчер устройств»:

Как видим, драйвер для «прямой» работы с FT232RL встал нормально (см. «USB Serial Converter») и появилось новое неопознанное устройство «USB Serial Port». Это виртуальный COM-порт, и для него нам надо установить драйвер VCP (обратите внимание: при установке CDM-драйвера всегда первым делом устанавливаются дрова прямого доступа (D2XX), и только пото́м – дрова виртуального COM-порта (VCP)). Проделываем еще раз вышеописанные действия:

• щелкаем по неопознанному устройству правой кнопкой мыши и в вывалившемся меню выбираем пункт «Обновить драйвер»:

• выбираем «Установка из указанного места» (WinXP) или «Выполнить поиск драйверов на этом компьютере» (Win7), жмем кнопку «Далее» (если нужно):

• в открывшемся окне указываем мастеру место нахождения драйвера (должен остаться правильный путь) и нажимаем «Далее»:

• наблюдаем установку необходимых файлов драйвера VCP. При этом в папке «\WINDOWS\inf» создаются соответствующие файлы *.inf и *.pnf, в папку «\WINDOWS\system32» копируются библиотеки «ftcserco.dll» и «ftserui2.dll», а в папку «\WINDOWS\system32\drivers» – драйвер виртуального COM-порта «ftser2k.sys»:

• в окне завершения работы мастера обновления оборудования жмем кнопку «Готово» или «Закрыть»:

Смотрим в «Диспетчер устройств» – виртуальный COM-порт установился нормально, а неизвестных устройств не осталось:

Обратите внимание на то, что по умолчанию виртуальному COM-порту присвоился номер 3 (в общем случае присваивается первый свободный номер из реестра компа). Однако, конечного пользователя это может совершенно не устраивать (например, я вообще номера́ больше 4-х никогда не использую – многие терминальные программы на это лаются). Поменять номер COM-порта, присвоенный по умолчанию, довольно просто. Для этого надо щелкнуть по нему в «Диспетчере устройств» правой кнопкой мыши и в вывалившемся меню выбрать «Свойства». После этого будет выведено окно свойств COM-порта, в котором нужно выбрать вкладку «Параметры порта»:

Всё, после этого номер COM-порта сменится на выбранный нами (для того, чтобы в этом убедиться, можно зайти в «Диспетчер устройств»). Ну а мы можем себя поздравить – установка драйверов для микросхемы FT232RL прошла успешно! Теперь можно приступать к работе с чипом.

Довольно редко, но всё же бывают случаи, когда дрова от FT232RL надо удалить. Для этого лучше всего подходит утилита CDMUninstaller_v1.4 от той же конторы FTDI. Программа мало весит, поддерживается всеми версиями Windows (вплоть до десятки), проста в использовании и не требует установки. Оригинальное описание работы с утилитой CDMUninstaller_v1.4 приведено здесь. Ну а я приведу лишь основные действия, которые потребуется выполнить для деинсталляции драйвера микросхемы FT232RL:

• скачиваем утилиту CDMUninstaller_v1.4 (если это не было сделано ранее), распаковываем и запускаем файл «CDMuninstallerGUI.exe»;

• проверяем, чтобы в окне «Vendor ID» было значение «0403», а в окне «Product ID» – значение «6001»;

• жмем кнопку «Add»;

• если мы хотим подробно изучить все действия, которые программа будет выполнять при деинсталляции дров, ставим галку напротив «Generate uninstall log file»;

• просматриваем логи работы программы, если ранее поставили соответствующую галку. Файл генерится в той же папке, откуда запускается экзешник CDMUninstaller_v1.4;

• поздравляем, драйвер FT232RL удален с вашего компьютера.

Вот так вот двумя-тремя щелчками мыши можно остаться без дров для FT232RL. Ну а на сегодня всё! Желаю удачи при работе с драйверами от FTDI!

Обсудить эту заметку можно здесь

Место для разного (сдается)

Создание, "дизайн", содержание "сайта": podkassetnik
Для писем и газет: Почта России электрическая

Для полноценного функционирования устройства Atmega Fusebit Doctor потребовался преобразователь USB-UART.
Решил собрать модуль преобразователя USB-UART на микросхеме FT232RL. Преобразователь позволяет создать соединение на любом компьютере имеющем USB разъем.
Обвязка FT232RL минимальна, для работы устройства, помимо самой микросхемы, требуется пара конденсаторов. Также для индикации работы можно повесить 3 светодиода, которые будут сигнализировать о наличии питания, приеме и передаче данных. Само устройство собрано в форме флэшки, поэтому приткнутся к USB-порту можно в любой момент. На выходе устройства на разъем выведены пины Tx и Rx, GND, а также питание +5В, которым можно запитывать подключаемое устройство.
Схема устройства приведена ниже:


Вот что, собственно получилось:


Это печатная плата, файл с макросом этого микроблока для Sprint Layout будет в конце записи.
После травления:


После пайки всех деталей:



Отрезаем провод нужной длины, ставим разъемы типа "папа".




Устройство USB-UART можно втыкать в USB порт. Операционная система (У меня это Windows 7) сразу найдет новое устройство и предложит найти драйвер. Если имеется подключение к интернету, можно выбрать автоматическую загрузку и установку драйвера, центр обновления windows все сделает сам:


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

Устанавливать драйвера нужно 2 раза, сперва устанавливается USB драйвер для FT232RL:




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



Проверить работоспособность устройства можно следующим образом: открываем любую терминальную программу, выбираем в настройках COM порт созданный при установке драйвера, замыкаем джампером контакты Rx и Tx, и отправляем любую команду в терминал. Если команда вернулась, значит модуль выполняет свое предназначение. Также при этом должны весело мигнуть светодиоды индикации приема/передачи.

Программа Terminal 1.9b RS232 (монитор COM порта ПК)
Для связи AVR и компьютера по UART на компьютере нужна терминальная программа. После работы с разными программами я остановился на «Terminal 1.9b». Очень удобная терминалка. Рекомендую.


Основные возможности Terminal 1.9b:
-работает без инсталяции. Вся программа — один exe-файл размером около 300Кб
-есть счетчик переданных и принятых байтов
-возможность отправлять файлы
-помимо стандартных скоростей (baudrate) есть возможность установить свою нестандартную
-поддерживает до 64 COM-портов
-можно весь лог работы записывать в файл
-можно назначить до 24 макросов
-реализованы Pascalе-подобные скрипты (правда документации по этому скриптовому языку я не нашел. В архиве есть несколько примеров применения скриптов и это все)


Как выяснилось на практике, управлять выводами FT232RL совсем не сложно. Я научился этому буквально за полчаса, хотя совсем не занимаюсь программированием для компа. В этом посте я расскажу о полученном опыте.

Для написания программы я использовал Visual Studio Express 2012 для Windows Desktop. Ее можно скачать бесплатно с сайта Microsoft. Думаю, подойдет и C++ Builder, но у меня не оказалось его под рукой.

В качестве подопытной платы был задействован самодельный usb-uart переходник на FT232RL. Впрочем подойдет абсолютно любая плата на этой микросхеме, главное чтобы на контактные площадки были выведены все необходимые сигналы

Открываем Visual Studio и в верхнем меню выбираем Файл > Создать Проект. В открывшемся окне выбираем Visual C++ - консольное приложение Win32. Обзываем проект и сохраняем его.


В следующем окне жмем Готово и у нас открывается пустой проект.

Первое, что нужно сделать - это добавить к проекту библиотеку ftd2xx.lib. Для этого копируем файлы ftd2xx.lib и ftd2xx.h в папку, где лежат исходники только что созданного проекта. Затем подключаем файл ftd2xx.lib к нашему проекту внутри среды разработки. С левой стороны в Visual Studio отображается иерархия проекта. Нужно кликнуть правой кнопкой мыши "Файлы исходного кода" и выбрать "Добавить" > "Существующий элемент" и указать файл ftd2xx.lib.



После этого с помощью директивы include включаем заголовочный файл ftd2xx.h в главный файл проекта. У меня это FTDI_test1.cpp.

Функций для работы с FT232R в библиотеке довольно много. Все они подробно описаны в руководстве "D2XX Programmer's Guide".Чисто для ознакомления мне понадобились только 5 из них: FT_Open, FT_SetBitMode, FT_Write, FT_Read, FT_Close.

FT_STATUS FT_Open (int iDevice, FT_HANDLE *ftHandle) - открывает устройство, инициализирует переменную типа FT_HANDLE и возвращает результат выполнения этой функции типа FT_STATUS. Если функция выполнилась успешно, она возвратит FT_OK.

Принимает в качестве параметров индекс устройства и указатель на пустую переменную типа FT_HANDLE. Для одного устройства на FT232R индекс будет равен 0. Если устройств много, то в библиотеке есть специальная функция для получения списка устройств. ftHandle - эта некая переменная, с помощью которой происходят дальнейшие обращения к FT232R.

FT_STATUS FT_SetBitmode (FT_HANDLE ftHandle, UCHAR ucMask, UCHAR ucMode) - устанавливает режим работы выводов (вход или выход) и режим бит банга, возвращает результат выполнения функции.

В качестве параметров принимает инициализированную переменную типа FT_HANDLE, поэтому эту функцию нужно запускать после FT_Open(..). Второй принимаемый параметр - это битовая маска ucMask. Каждый бит ucMask определяет направление соответствующего вывода ft232r. 0 устанавливает вывод на вход, 1 - на выход. И третий параметр - байт ucMode, задающий режим работы бит банга. Есть два основных режима бит банга - это синхронный (0x04) и асинхронный (0x01). В синхронном режиме чтение данных из FT232R выполняется только когда происходит запись (при вызове функции FT_Write(..)). Причем сначала выполняется чтение, а потом в FT232R записываются новые данные.

FT_STATUS FT_Write (FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD dwBytesToWrite, LPDWORD lpdwBytesWritten) - запись данных в FT232R.

В качестве параметров принимает инициализированную переменную типа FT_HANDLE. lpBuffer - указатель на буфер, содержащий записываемые данные. dwBytesToWrite - количество байтов, которые нужно записать в устройство. lpdwBytesWritten - указатель на переменную, в которую сохранится количество записанных байтов.

FT_STATUS FT_Read (FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD dwBytesToRead, LPDWORD lpdwBytesReturned) - читает данные из FT232R.

В качестве параметров принимает инициализированную переменную типа FT_HANDLE. lpBuffer - указатель на буфер, в который сохранятся данные от устройства. dwBytesToRead - количество байтов, которые нужно прочитать. lpdwBytesReturned - указатель на переменную, в которую сохранится количество прочитанных байтов.

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

FT_STATUS FT_Close (FT_HANDLE ftHandle) - закрывает открытое устройство. Нужно запускать эту функцию после окончания работы с FT232R. Что произойдет, если проигнорировать это, я не знаю.

Схему для тестового проекта я собрал из USB-UART переходника, светодиода и кнопки.



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

С функцией записи не возникло никаких проблем. И в синхронном и в асинхронном режимах бит банга она, по сути, используется одинаково. А вот с функцией чтения пришлось помучаться. Я получил от нее то, что мне нужно, только в синхронном режиме работы. Как было сказано выше, в синхронном бит банг режиме данные из ft232r читаются во время записи, то есть когда вызывается функция FT_Write(): сначала данные читаются, а потом производится запись. Когда вызывается FT_Read(), то мы получаем значение, которое было прочитано при вызове FT_Write(). Вроде так.

Надеюсь мой пост поможет вам в освоении FT232R, ведь ее можно использовать в широком спектре приложений. Начиная от таких банальных вещей как управление нагрузками по USB, и заканчивая программаторами или 1-Wire, SPI, I2C адаптерами.

До меня наконец-то дошла мода на девайсы которые подключают к 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 и выставляем поля как нам нравиться. Потом шаблон нужно сохранить и только тогда клавиша программирования станет активной. Запрограммировав я увидел такой результат:

Кроме очевидной функции преобразования интерфейсов эта микросхема умеет целых три режима bit bang. А еще разные свиселки-перделки, которые можно вывести на ножки CBUS.

Сначала решил свалить все в одну кучу, но потом передумал — будет несколько небольших постов.
В первом — описание функционала FT232 и её тюнинга с помощью FT Prog. Интересен будет наверное, лишь начинающим.
Дальше CBUS битбанг, синхронный и асинхронный битбанг. На дельфи и LabView.

ft_prog_0.jpg

Начнем с альтернативных функций пинов CBUS. Их аж 13 штук:

TXDEN — сигнал разрешения передачи (Transmit Enable) для интерфейса RS-485. Может быть выведен на любую из ножек CBUS. Если поглядеть на распиновку, видно что удобнее всего его выкинуть на CBUS2..4 — они на той стороне микросхемы, где и остальные линии RS-232.

PWREN — Сигнал о том, что комп благополучно ушел в спящий режим. Для нас это значит, что надо отключить всю мощную нагрузку. В даташите советуют прицепить на этот пин p-канальный полевик и включать всю нагрузку через него.

TXLED, RXLED и TX&RXLED — три варианта включения светодиодной индикации. TXLED светится, когда данные передаются через USB. То-есть, когда FT232 принимает данные по UART. В RXLED все наоборот. А последний — порождение двух предыдущих режимов. Подключать их надо катодом к FT232 (анодами на питание).

SLEEP — противоположность PWREN (в смысле полярности). Предназначен для уведомления МК о том, что комп уснул. В обычно режиме он находится в высоком лог. уровне. В спячке — в низком. Его тоже можно использовать для отключения нагрузки в спящем режиме.

CLK48, CLK24, CLK12, CLK6 — выход тактового сигнала. Да еще и с разными частотами! Просто сказка для строителей программаторов. На практике первые два-три варианта мало применимы, а вот последний можно удачно использовать в программаторе. Только позвольте отговорить вас от идеи сделать из этого внешний так для МК — при переходе компа в спящий режим этот тактовый сигнал так-же отрубится. Так-же следует помнить, что тактовый сигнал FT232 всегда будет не больше 3.2 Вольт.

CBitBangI/O — Превращает ножку CBUS в GPIO, управляемый с компа. Работает только на CBUS0..3 по причине того, что разработчики засунули направление линий (вход/выход) и уровень (высокий/низкий) в один байт. Это первый вариант реализации bit bang. О нем будет следующая статья.

BitBangWRn, BitBangRDn — сигналы записи и чтения для двух других режимов bit bang — Синхронного и Асинхронного. Тоже работает на CBUS0..3

Вот такая компания.
Возникает резонный вопрос — как все это настраивать? Для этого есть утилита FT_prog, которая умеет прошивать EEPROM память FTшки. Выглядит она вот так:

ft_prog_1.PNG

При запуске тут-же нажимаем на кнопку «Scan and Parse» (c лупой) или F5 и получаем список подключенных FTDI устройств.
У меня подключен только один модуль. Пробежимся по его настройкам:

Chip Details -> Type Здесь у нас название чипа. Менять ничего нельзя. Идем дальше.

USB Device Descriptor — тут PID (Product ID), VID (Vendor ID). Их можно изменять. Но для домашних разработок это все-равно никакого значения не имеет.

USB Config Descriptor — тут уже больше вкусных настроек:
Bus powered \ Self Powered — режим питания устройства (сомостоятельно или от шины USB).

Max Bus Power — максимальный ток, который наше устройство собирается кушать от линии USB. Что характерно, превышение тока не наказуемо. При заявленом значении в 10мА моё устройство съедало все 120мА а хрюша даже «еггог» не сказала. Но все-же нарушать не стоит.

USB remote Wake Up — Если этот режим активирован, то дерганье вниз ноги RI выводит комп из спящего режима. Но работает только на FT245. Fail.

Pull down I/O Pins in USB Suspend — если включено, то при переходе в спящий режим, выводы UART должны подтягиваться к земле с целью уменьщения потребления. У меня так и не заработало. Наверно чип такой попался :(

USB String Descriptor — тут можно написать название производителя, описание устройства и задать параметры генерации серийника. Вот тут есть один прикол — по умолчанию FT Prog генерит новый серийник при каждой прошивке. Видна, соответственно думает что это новое устройство и назначает ему другой виртуальный COM порт. Так, через несколько итераций номер порта сдвинется непойми-куда, поэтому генерацию серийника я запретил.

Последний пунт — Hardware Specific. Там описаны настройки железа.
High Current IO — позволяет пинам двигать большей нагрузкой. 12мА, против 4мА в обычном режиме. Но это отрицательно сказывается на энергопотреблении.
Load D2XX Driver — если поставить галочку, то загрузка D2XX драйвера будет предпочтительнее, чем обычного драйвера VCP (Virtual Com Port). На практике, никаких изменений я не заметил — виртуальный COM порт по прежнему доступен сразу при подключении устройства.
Use External Oscillator — переключиться на внешний кварц. ВНИМАНИЕ! Если включить этот режим без внешнего кварца, труп FT232 станет неплохой возможностью поиметь с NXP халяву, но не более того (Кто не в теме — НХП раздает демоплаты за фото/видео зверской расправы над МК. Мертвая FT232 вполне сойдет за какой-нибудь МК… :) ).

Invert RS-232 Signals — инверсия любой из 8 линий COM порта. В некоторых случаях позволяет избавится от лишней микросхемы-инвертора.

IO Control — те самые дополнительные возможности, список которых приводился выше.

ft_prog_2.PNG

После того, как конфигурация будет настроена — тыкаем кнопку с молнией или нажимаем Ctrl+P. Нам показывают краткое описание настроек.

Нажимаем program, дожидаемся завершения операции (надпись ready в левом нижнем углу основного окна) и передергиваем FT232 — новые настройки вступают в силу только после сброса.

Вторая часть будет про реализацию CBUS-битбанга в delphi.

Useful appnotes:

FT Prog — программа для настройки FTDI чипов.
USB View — показывает подключенные USb устройства. Тоже самое но для linux.

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