Утилита FTDI FT_PROG Печать
Добавил(а) microsin   

Этот апноут AN_124 (перевод документа [1]) объясняет, как использовать утилиту FT_Prog для доступа к любой памяти EEPROM, используемой для хранения конфигурации устройств FTDI. FT_Prog с некоторого времени заменила предыдущую версию утилиты для аналогичных целей, которая называлась MPROG.

FT_Prog это бесплатная утилита программирования EEPROM для использования совместно с микросхемами FTDI. Она позволяет модифицировать содержимое EEPROM, где сохраняются дескрипторы устройства FTDI, позволяющие подстроить поведение устройств USB микросхем FTDI. Также FT_Prog включает возможность программирования VNC1L и VNC2 firmware, используя интерфейс UART. FT_Prog является улучшенной версией (и соответствующей заменой) выпущенных ранее для тех же функций утилит: MPROG и VProg. FT_Prog можно бесплатно загрузить со странички Utilities сайта ftdichip.com [2].

FT_Prog поддерживает устройства:

• FT-X (FT200XD, FT201X, FT220X, FT221X, FT230X, FT231X, FT234XD, FT240X)
• FT232RL и FT232RQ
• FT245RL и FT245RQ
• FT2232D, FT232BM, FT232BL и FT232BQ
• FT 245BM, FT245BL и FT245BQ
• FT8U232AM
• FT8U245AM
• FT2232H
• FT4232H
• FT232H
• FT4222H
• FT260
• VNC1L
• VNC2

Устройства USB FTDI поддерживают микросхемы Serial EEPROM типа 93C46, организованных в виде 16-битных слов, кроме устройств серии R, которые снабжены внутренней памятью EEPROM и серии H, которые поддерживают устройства памяти большего размера. Устройства BM, D и H также поддерживают 93C56 и 93C66 EEPROM, организованные в виде 16-битных слов.

При адаптации устройств USB память EEPROM позволяет настроить параметры по умолчанию для устройства, такие как VID, PID, Serial Number, Manufacturer Descriptor и Product Descriptor. FT_Prog предоставляет простой и быстрый способ программирования этих параметров.

Удобный способ программирования EEPROM - запаять чистое устройство на печатную плату во время сборки, и затем программировать его через USB во время процесса тестирования готового изделия. Все вышеперечисленные устройства FTDI поддерживают прямое программирование через USB с помощью утилиты FT_Prog.

Последнюю версию FT_Prog можно загрузить на страничке Utilities [2] сайта FTDI в виде инсталлятора (исполняемый файл наподобие FT_Prog_v3.6.88.402 Installer.exe). Приложение требует последнюю версию установленных драйверов D2XX, руководство по их установке можно найти на сайте FTDI в разделе Install Guides [3, 4]. Для Windows 7 обратитесь к AN_119, для Windows 8 обратитесь к AN_234 и для Windows 10 обратитесь к AN_396.

FT_Prog требует наличия в системе библиотеки Microsoft .NET Framework 3.5 (или более свежей версии), которую можно загрузить с сайта Microsoft [5]. Если на Вашей операционной системе Windows не установлена библиотека .Net 3.5, то предварительно загрузите её по ссылке [5] и установите.

Примечание: документацию, установщик .NET Framework 3.5, драйвер D3XX и саму утилиту FT_Prog версии v3.6.88.402 можно скачать по ссылке [10].

[3. Основы работы с FT_Prog]

FT_Prog имеет 3 режима работы: Idle Mode (режим ожидания), Program Mode (режим программирования) и Edit Mode (режим редактирования). Программируемые параметры FT_Prog сохраняет в файлы, которые называются шаблонами EEPROM (EEPROM template). После создания шаблона EEPROM он может быть загружен утилитой FT_Prog и использоваться для программирования EEPROM.

• Idle Mode это первоначальный режим, когда программа запускается.
• Edit Mode используется для редактирования настроек шаблона EEPROM.
• Program Mode используется для программирования и стирания EEPROM.

Когда FT_Prog запущена, она изначально находится в Idle Mode, и главный экран утилиты выглядит следующим образом:

FT Prog Idle Mode fig01

В Idle Mode пользователь может выполнить следующие действия:

• Создание нового шаблона EEPROM. Это поменяет режим работы утилиты на Edit Mode, и позволит пользователю выбрать параметры для своего устройства.
• Открытие файла существующего шаблона EEPROM.
• Сканирование шины USB для поиска подключенных к компьютеру устройств FTDI. FT_Prog сообщит, сколько запрограммированных и чистых устройств подключено к компьютеру PC.

[4. Функции режима редактирования]

Создание нового шаблона EEPROM. Для создания нового шаблона выберите в меню File -> New Template.

FT Prog New Template fig02

Шаблон EEPROM может определить параметры в следующих категориях:

• Chip_Details
• USB_Device_Descriptor
• USB_Config_Descriptors
• USB_String_Descriptors

Имеются категории настроек, специфичные для разных моделей микросхем (Hardware Specific):

• FT232R
• FT245R
• FT2232D
• FT2232H
• FT4232H
• FT232H
• FT4222H
• FT260
• FT-X

Подробное описание параметров шаблона см. в разделе "5. EEPROM-параметры устройства".

Изменение существующего шаблона EEPROM. Чтобы изменить шаблон, выберите в меню File -> Open Template, в диалоге выбора файла найдите нужный файл шаблона и кликните на кнопку Open (Открыть).

FT Prog Open Template fig03

FT_Prog загрузит файл шаблона в окно "Device Tree" (дерево параметров устройства), делая его доступным для редактирования.

Сохранение шаблона. Любые изменения параметров можно сохранить выбором в меню File -> Save As Template.

FT Prog Save As Template fig04

[5. EEPROM-параметры устройства]

Chip_Details. Здесь в выпадающем списке выбирается тип микросхемы FTDI. Изменить значение можно только для шаблона - когда настройки прочитаны из микросхемы, но не сохранены как шаблон, изменить тип нельзя.

FT Prog Chip Details fig05

USB_Device_Descriptor. В этом разделе можно изменить параметры VID и PID путем выбора значения из выпадающего списка:

• FTDI Default. Если используются идентификаторы по умолчанию, предоставляемые FTDI, то значения VID и PID фиксированы, и нет необходимости вводить какие-либо значения.
• FTDI Supplied PID. Если Вы хотите использовать FTDI Vendor ID (VID), и FTDI предоставила для Вас Product ID (PID) специально для использования в Вашей продукции, то введите здесь этот Product ID (шестнадцатеричное число из 4 цифр). Если Вы хотите использовать FTDI Product ID, но его пока у Вас нет, то сделайте официальный запрос.
• Other VID & PID. Если у Вас есть свои собственные идентификаторы USB VID и USB PID, то эта опция позволяет их ввести в текстовые поля Vendor ID и Product ID.
• USB Version Number. Устройства серий BM и C имеют опцию установки номера версии шины USB: USB 1.1 или USB 2.0. Это никак не влияет на функциональность устройства, но для проверки совместимости со стандартом USB рекомендуется выбрать вариант USB 2.0. Для устройств серии AM номер версии закодирован жестко на USB 1.1.

FT Prog USB Device Descriptor fig06

Примечание: если используются нестандартные значения VID и/или PID, то INF-файл драйвера должен быть соответственно изменен, чтобы в нем соблюдалось соответствие новой комбинации VID и PID combination. FTDI предоставляет утилиту для генерации пользовательских файлов INF, доступную в разделе Utilities веб-сайта [2]. Подробности см. в апноуте AN 107 [6].

USB_Config_Descriptors. Здесь настраиваются требования устройства по энергопотреблению от шины USB, функции USB Remote wakeup, нижняя подтяжка ножек ввода/вывода в режиме приостановки (Pull down IO Pins in USB Suspend).

FT Prog USB Config Descriptors fig07

Выберите Select Bus Powered (когда изделие питается от шины USB) или Self Powered (когда для питания используется свой собственный источник питания). По умолчанию максимальная потребляемая мощность от шины (Max Bus Power) установлена 100 mA (когда устройство питается от шины USB), и 0 mA для питания от отдельного источника (Self Powered). Однако это значения по умолчанию, и сода можно ввести новые значения. Ниже указаны общие правила и опции.

Все устройства USB:

• Максимальный ток, который можно предоставить для питания от шины USB без нарушения требований спецификации, составляет 500 mA. Не вводите в поле Max Bus Power значение больше 500 mA.
• Устройства, потребляющие ток от шины USB в диапазоне между 101 mA и 500 mA, относятся к устройствам с высоким энергопотреблением. По стандарту они могут быть подключены к любому хосту USB. Однако такие устройства могут быть подключены только к таким хабам, которые используют свой собственный источник питания, потому что хабы, питаемые от USB, могут предоставить только 100 mA на один порт хаба.

Устройства, питаемые от шины USB. Такие устройства попадают в 2 категории:

• Устройства с низким энергопотреблением. Такие устройства потребляют от шины USB ток меньше 100 mA, и их можно подключить в любой порт хоста USB или хаба USB.
• Устройства с высоким энергопотреблением. Такими считаются устройства, которые потребляют ток в диапазоне между 101 mA и 500 mA, и они могут быть подключены к любому хосту USB. Однако такие устройства могут быть подключены только к таким хабам, которые используют свой собственный источник питания, потому что хабы, питаемые от USB, могут предоставить только 100 mA на один порт хаба.

Устройства с собственным источником питания. Такие устройства попадают в 2 категории:

• Устройства, которые ничего не потребляют ток от шины USB. Для них в поле Max Bus Power нужно ввести 0.
• Устройства с гибридным питанием. Такие устройства имеют собственный источник питания, но они также потребляют некоторый рабочий ток и от шины USB. Введите ток потребления от шины USB в поле Max Bus Power.

USB Remote Wakeup. Устройства FT8U232AM, FT232BM, FT232R и FT-X могут возобновлять (выводить из сна) PC из состояния USB suspend (sleep) с помощью вывода RI#. FT245BM также имеет такую возможность через специальный вывод (SI/WU). Такие же выводы есть у FT2232D/H (SI/WUA, SI/WUB) и FT4232H (SI/WUA, SI/WUB, SI/WUC, SI/WUD). У FT8U245AM нет поддержки remote wake up. Для использования функции remote wake-up, разрешите эту опцию установкой соответствующей галочки чекбокса. Вывод RXF# становится входом, и используется для пробуждения хоста (вывода его из suspend mode).

Pull Down IO Pins in USB Suspend:

• У всех устройств есть функция вывода управления питанием Power Control Pin (PWREN#). Этот вывод может использоваться для управления питанием внешней периферийной схемы с помощью P-канального транзистора MOSFET.
• Когда используется эта функция, выберите соответствующую опцию для минимизации тока потребления от USB в режиме suspend, иначе оставьте эту опцию не выбранной. Дополнительную информацию см. в даташите, примерах схем и руководствах по разработке.

USB_String_Descriptors. Здесь можно настроить текстовое описание производителя, изделия, серийный номер устройства.

FT Prog USB String Descriptors fig08

Manufacture/product Description. Строки в этих полях дает возможность ввести дополнительную описательную информацию:

• Manufacturer: строка описания производителя устройства, например "FTDI". Старайтесь вводить короткую строку, желательно аббревиатуру.
• Product Description: краткое описание назначения продукта, возможно включающее название модели. Пример: "USB - Serial Converter".

USB Serial Number: изделия с интерфейсом USB могут иметь встроенный серийный номер, записанный в низкоуровневый дескриптор, к которому обращается драйвер контроллера хоста, когда устройство подключается к шине USB. В результате серийный номер может использоваться для уникальной идентификации изделия. В частности, если серийный номер присутствует в устройстве виртуального COM-порта, то он используется для привязки номера COM-порта к конкретному устройству. В результате устройство может быть подключено к любому USB-порту хоста с сохранением номера COM-порта.

Автоматически сгенерированные серийные номера состоят из 2 букв префикса (например FT), за которым идут цифро-буквенное поле из 6 символов (значение этого поля генерируется алгоритмически на основе текущей даты и времени программирования устройства). Также можно зафиксировать серийный номер постоянной цифро-буквенной строкой из 8 символов; однако это не рекомендуется, потому что системы распознают только первый экземпляр такого устройства, подключенного к PC, т. е. нет возможности подключить к одному PC несколько устройств с одинаковым серийным номером, чтобы к ним можно было раздельно обращаться из программ.

Примечание: максимальная длина дескрипторов меняется в зависимости от используемой микросхемы, но обычно составляет 40 .. 50 символов. Эти дескрипторы включают описания производителя, продукта и серийный номер.

[Hardware Specific]

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

Дополнительные возможности FT232R позволяют включать инверсию сигналов RS232 и настраивать функционирование выводов CBUS.

FT Prog FT232R Hardware Specific fig09

FT Prog FT232R Hardware Specific fig10

FT232R поддерживает высокую нагрузочную способность ножек портов ввода/вывода (High Current IO). Установка этой опции позволит повысить мощность выходного драйвера. По умолчанию выводы UART IO могут управлять током 4 mA, а со включенной повышенной нагрузочной способностью до 12 mA.

В FT232R имеется внутренний генератор, но также можно выбрать внешний генератор выбором "Use External Oscillator".

FT Prog FT232R Hardware Specific fig11

Примечание: если выбрана опция "Use External Oscillator", и в схеме нет подключенного внешнего генератора, то FT232R перестанет работать.

В отличие от FT232R микросхема FT245R не позволяет настраивать инверсию сигналов и не позволяет конфигурировать выводы CBUS, поскольку все эти выводы требуются для нормальной работы FIFO.

В FT245R имеется внутренний генератор, но также можно выбрать внешний генератор выбором "Use External Oscillator".

FT Prog FT245R Hardware Specific fig12

Примечание: если выбрана опция "Use External Oscillator", и в схеме нет подключенного внешнего генератора, то FT245R перестанет работать.

В FT2232D реализованы все специфические функции серий BM, но также реализована дополнительная опция "CPU FIFO".

FT Prog FT2232D Hardware Specific fig13

FT Prog FT2232D Hardware Specific fig14

• Каждый канал можно независимо конфигурировать как USB UART в стиле FT232BM или как USB FIFO в стиле FT245BM.
• Каждый канал можно индивидуально конфигурировать в режиме CPU FIFO.
• Каждый канал можно индивидуально конфигурировать в режиме быстрого изолированного оптронного последовательного интерфейса (Fast Opto-Isolated Serial Interface, подробнее см. даташит FT2232D).
• Повышенная нагрузочная способность ввода/вывода (High Current I/O). Установка этой опции позволит повысить мощность выходного драйвера. По умолчанию выводы UART/FIFO IO могут управлять током 4 mA, а со включенной повышенной нагрузочной способностью до 12 mA.
• Драйвер, который устанавливается и используется каждым каналом, может быть выбран опцией Virtual COM Port или D2XX Direct.

FT2232H функционирует подобно FT2232D. В микросхеме FT2232H реализованы все опции микросхем серий BM и все опции FT2232D.

FT Prog FT2232H Hardware Specific fig15

• Каждый канал можно независимо конфигурировать как USB UART в стиле FT232BM или как USB FIFO в стиле FT245BM.
• Каждый канал можно индивидуально конфигурировать в режиме CPU FIFO.
• Каждый канал можно индивидуально конфигурировать в режиме быстрого изолированного оптронного последовательного интерфейса (Fast Opto-Isolated Serial Interface, подробнее см. даташит FT2232H).
• Драйвер, который устанавливается и используется каждым каналом, может быть выбран опцией Virtual COM Port или D2XX Direct.

Дополнительные опции FT2232H, которых нет у FT2232D (или они отличаются):

• Функция замедления переключения (slow slew) выхода драйвера.
• Функция активации на входах триггера Шмитта (Schmitt Input).
• Можно управлять нагрузочной способностью ножки ввода/вывода (IO pin driving capability), выходной ток регулируется в пределах от 4 до 16 mA.

FT Prog FT2232H Hardware Specific fig16

• Ножка 59 микросхемы FT2232H (POWERSAV#) может работать как вход управления экономией мощности потребления от USB (USB Power Save). Эта опция конфигурируется в EEPROM, и используется, когда FT2232H работает от собственного питания (self powered mode). Опция позволяет предотвратить потребление тока от сигналов шины USB, когда хост или хаб выключены.

PWRSAV# = 1: Normal Operation (обычное функционирование)
PWRSAV# = 0: переводит FT2232H в режим SUSPEND (подробнее см. даташит FT2232H).

FT Prog FT2232H Hardware Specific fig17

Функции и опции FT4232H подобны FT2232H. В микросхеме FT4232H реализованы все опции устройств BM и все опции FT2232H.

Примечание: FT4232H полностью по ножкам совместима с FT2232H (если не принимать во внимание, что аппаратно FT4232H реализует четыре канала UART, а FT2232H два канала UART). Таким образом, можно впаять микросхему FT4232H вместо FT2232H и она будет работать.

FT Prog FT4232H Hardware Specific fig18

• Каждый канал можно независимо конфигурировать как USB UART в стиле FT232BM.
• Каждый канал можно индивидуально конфигурировать в режиме синхронного или асинхронного управления уровнями выводов (bit-bang).
• Драйвер, который устанавливается и используется каждым каналом, может быть выбран опцией Virtual COM Port или D2XX Direct.
• Функция замедления переключения (slow slew) выхода драйвера.
• Функция активации на входах триггера Шмитта (Schmitt Input).
• Можно управлять нагрузочной способностью ножки ввода/вывода (IO pin driving capability), выходной ток регулируется в пределах от 4 до 16 mA.

FT Prog FT4232H Hardware Specific fig19

FT232H можно сконфигурировать в одном из 5 режимов: как RS232 UART, 245 FIFO, CPU FIFO, OPTO Isolate или как новая FT1248. Подробности по конфигурациям см. даташит на FT232H.

FT Prog FT232H Hardware Specific fig20

Конфигурируются следующие настройки FT1248:

FT Prog FT232H Hardware Specific fig21

FT Prog FT232H Hardware Specific fig22

Также доступны опции пониженной скорости переключения (slew rate), входного триггера Шмитта и нагрузочной способности выходного драйвера.

FT Prog FT232H Hardware Specific fig23

Эта микросхема содержит конфигурируемые интерфейсы SPI, I2C и GPIO. Интерфейс SPI можно конфигурировать в режиме главного устройства (master mode) с 1-разрядной, 2-разрядной или 4-разрядной шиной данных, или в режиме подчиненного устройства (slave mode) с 1-разрядной шиной данных. Интерфейс I2C можно конфигурировать в режиме главного или подчиненного устройства (master или slave).

FT Prog FT4222H Hardware Specific fig24

• Подчиненные устройства шины I2C должны иметь уникальные адреса, что можно конфигурировать опциями FT4222H.
• Для режимов SPI и GPIO можно конфигурировать такие электрические характеристики, как скорость переключения (slew rate), выходной ток, верхние/нижние подтягивающие резисторы (pull-up/pull-down).
• Конфигурируются выходные сигналы FT4222H, чтобы показывать детектирование подключения зарядного устройства (Battery Charger). Эта функция называется Battery Charger Detection (сокращенно BCD).

FT Prog FT4222H Hardware Specific fig25

HID over I2C. Микросхема FT260 работает как устройство USB HID, предоставляя мост между USB и периферийными интерфейсами UART или I2C. Режим I2C поддерживает протокол "HID over I2C", что конфигурируется следующей опцией:

FT Prog FT260 Hardware Specific fig26

Power Support. Опция позволяет установить предпочтительную настройку энергопотребления ON, SLEEP или RESERVED.

Idle Support. Позволяет устройству войти в режим IDLE во время периода отсутствия активности, когда не передаются данные между USB и I2C.

Protocol Support. Позволяет установить режим протокола для устройства - Boot, Report или Reserved.

GPIO. У микросхемы FT260 есть 14 цифровых выводов, функции которых связаны с I2C/UART или GPIO. Некоторые функции GPIO, реализованы FT260 для различных приложений наподобие TX_ACTIVE, TX_LED, RX_LED для UART; SUSPOUT_N, WAKEUP для USB и PWREN и индикатор BCD_DET для управления питанием.

FT Prog FT260 Hardware Specific fig27

Для этих цифровых сигналов ввода/вывода можно конфигурировать нагрузочную способность (signal drive strength), управление скоростью переключения (slew rate) и верхние/нижние подтягивающие резисторы, в зависимости от требований дизайна.

FT Prog FT260 Hardware Specific fig28

Battery Charge Detection. В микросхеме FT260 есть функция определения подключения через USB зарядного устройства (Battery Charge Detection, сокращенно BCD). Эта функция позволяет периферийным устройствам USB регулировать свое потребление энергии или улучшать зарядку аккумулятора в зависимости от того, к чему подключено - к хосту USB или к зарядному устройству.

FT Prog FT260 Hardware Specific fig29

Мосты FT-X организуют канал связи между USB и интерфейсами UART, I2C, улучшенный SPI (FT1248) или FIFO. Подчиненные устройства на шине I2C должны иметь уникальные адреса, что можно конфигурировать соответствующей опцией:

FT Prog FT X Hardware Specific fig30

Функция Battery Charger Detection позволяет периферийным устройствам USB определять присутствие источника энергии повышенной мощности, чтобы ускорить зарядку аккумулятора.

FT Prog FT X Hardware Specific fig31

У микросхемы есть 7 независимо конфигурируемых выводов CBUS:

FT Prog FT X Hardware Specific fig32

Ниже на рисунках показано конфигурирование опций USB Suspend VBus. Это можно использовать в разработках, когда устройство имеет собственный источник питания, чтобы можно было выводит хост из сна. Используется для предотвращения потребления энергии от сигналов USB, когда выключаются хост или хаб USB.

FT Prog FT X Hardware Specific fig33

Примечание: один из сигналов CBUS должен быть установлен на функцию VBUS_SENSE перед тем, как эта настройка может быть разрешена.

[6. Режим программирования]

Чтобы войти в режим программирования, пользователь должен сначала просканировать шину USB для определения подключенных устройств FTDI. Функции режима программирования утилиты FT_Prog можно запустить кнопкой на тулбаре, через меню Devices, или через правый клик на устройстве Device Tree и выбора в контекстном меню Program Device.

Режим программирования позволяет делать следующее:

• Стирать содержимое EEPROM устройства.
• Применять шаблоны к подключенным устройствам.
• Программировать содержимое EEPROM устройств.

Сканирование. Для сканирования шины USB, чтобы определились подключенные устройства FTDI, кликните на кнопку "Scan and Parse" тулбара. Альтернативно выберите "Scan and Parse" в меню Devices.

FT Prog Scan and Parse fig34

После успешной операции сканирования в окне Device Tree отобразятся подключенные устройства:

FT Prog Device Tree fig35

Erase. Есть 2 способа стереть EEPROM подключенных устройств. Чтобы стереть содержимое одного подключенного устройства выполните правый клик на нем в Device Tree, и выберите пункт Erase Device из контекстного меню.

FT Prog Erase Device fig36

Альтернативно для стирания EEPROM нескольких подключенных устройств пользователь может нажать кнопку программирования на тулбаре. В случае нескольких подключенных устройств появится окно "Program Devices":

FT Prog Program Devices fig37

Здесь можно выбрать несколько устройств и затем стереть их EEPROM путем нажатия кнопки "Erase" в нижней правой части окна. После выполнения операции стирания содержимое EEPROM устройства примет значения 0xFF:

FT Prog Blank Device EEPROM fig38

Примечание: нельзя стереть содержимое EEPROM микросхем FT232R и FT245R.

Использование шаблонов EEPROM. Для модификации содержимого EEPROM можно применять готовые шаблоны (EEPROM Templates).

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

FT Prog Apply Template fig39

Чтобы применить шаблон, который пока не открыт утилитой: выполните правый клик на требуемом устройстве и выберите Apply Template -> From File. Откроется диалог выбора файла, позволяющий выбрать требуемый файл шаблона.

Когда настройки EEPROM завершены, следующий шаг состоит в программировании устройства (см. далее секцию "Программирование подключенных устройств").

Примечание: нельзя применить шаблон к устройству, когда не совпадает тип шаблона с типом устройства. Например, если открыт шаблон для устройства FT2232H, и сейчас подключено устройство FT245R, то утилита не позволит применить к нему этот шаблон.

Программирование подключенных устройств. Кликните на кнопку "Program Devices" тулбара. Отобразится диалог "Program Devices":

FT Prog Program Devices fig37

Выберите галочками требуемые устройства в списке "Device List" левой части окна. Если стоит галочка в чекбоксе "Only Program Blank Devices", то утилита FT_Prog выберет все "чистые" устройства в списке "Device List".

Для программирования выбранных устройств кликните на кнопку "Program" в правой нижней части окна.

Альтернативно для программирования отдельных устройств выполните правый клик на требуемом устройстве в Device Tree и выберите пункт Program Device из контекстного меню.

FT Prog Program Device fig40

Cycle Port. Функция "Cycle Port" может использоваться для повторной энумерации устройства на шине USB после того, как EEPROM было перепрограммировано. Это полезная функция, потому что устройство читает конфигурацию EEPROM только тогда, когда оно обрабатывает процедуру энумерации [9] на шине. Этой функцией можно принудительно запустить процесс энумерации, при этом Windows заново определит устройство с новыми запрограммированными параметрами.

FT Prog Cycle Port fig41

[7. Утилита командной строки]

Вместе с FT_Prog поставляется утилита командной строки, которую удобно использовать для автоматизации процедур программирования, это исполняемый файл FT_Prog-CmdLine.exe. Запустить утилиту командной строки можно из папки установки (обычно это каталог наподобие C:\Program Files (x86)\FTDI\FT_Prog\), или можно нажать на тулбаре кнопку "Launch Command Line Application". Откроется черное окно консоли, где можно вводить текстовые команды.

FT Prog Command Line utility

Всего имеется 6 команд:

SCAN осуществляет поиск всех устройств, подключенных к хосту PC Windows.
PROG программирует шаблон EEPROM в выбранное устройство (устройства).
ERAS стирает EEPROM выбранного устройства.
CYCL передергивает порт устройства, принудительно запуская для него процедуру энумерации. Это эквивалентно отключению устройства и повторному его подключению.
HELP выводит общую информацию по всем командам. Также выводит подробную информацию по указанной команде. Например, ввод команд HELP SCAN, HELP PROG, HELP ERAS или HELP CYCL отобразит требуемый формат соответствующей команды.
EXIT завершает работу FT_Prog-CmdLine.exe.

У команды PROG формат следующий:

PROG [номер устройства],[номер другого устройства], ... [файл шаблона]

Пример программирования устройств 0, 1, 3 и 5 (это условные номера устройств FTDI, как их обнаружила операционная система):

PROG 0,1,3,5 C:\Documents and Settings\template.xml

Вместо номеров можно использовать символ * для обозначения всех подключенных устройств:

PROG * C:\Documents and Settings\template.xml

ERAS [номер устройства],[номер другого устройства], ...

Пример стирания устройств 0, 1 и 3:

ERAS 0,1,3

Для этой команды также можно использовать * для стирания всех подключенных устройств.

CYCL [номер устройства],[номер другого устройства], ...

Пример запуска повторной энумерации устройств 0, 1, 3:

CYCL 0,1,3

Для этой команды также можно использовать * повторной энумерации всех подключенных устройств.

Интерактивная процедура программирования с помощью утилиты командной строки обычно состоит из следующих шагов:

1. Командой SCAN узнайте номера подключенных устройств. Если подключено одно устройство, то оно получит номер 0. Пример:

FT:>scan
Scanning for devices...
Device 0: FT2232H, USB < - > Serial Converter,
FT:>

2. Командой PROG запрограммируйте устройство, указав его номер и файл шаблона:

PROG 0 C:\UC2232H.xml

Файлы шаблона имеют формат XML, они создаются с помощью GUI-интерфейса программы FT_Prog. Несмотря на то, что файлы XML имеют текстовый формат, и его параметры теоретически можно менять текстовым редактором, рекомендуется редактировать и сохранять шаблоны исключительно утилитой FT_Prog. Если исправленный вручную шаблон окажется некорректным, и этот шаблон будет записан в устройство, то содержимое EEPROM может быть испорчено.

Автоматизация с помощью командных файлов. Для удобства применения в процессе производства можно создать командный скрипт (файл с расширением .bat или .cmd), это поможет упростить процесс программирования EEPROM устройств FTDI. Bat-файл это простой текстовый файл с расширением *.bat, в котором содержатся инструкции по запуску команд Windows. Следующий пример будет сканировать подключенные устройства, программировать устройство 0 и в конце вызывать процесс энумерации после программирования. Для этого примера bat-файл должен быть сохранен в той же папке, где находится утилита FT_Prog-CmdLine, и указанный шаблон FT232R.xml должен быть доступен для утилиты из подкаталога Templates.

FT_Prog-CmdLine.exe scan prog 0 Templates\FT232R.xml cycl 0
pause

Утилита FT_Prog может использоваться для перепрограммирования памяти Flash устройств VNC1L-1A и VNC2; прошивки firmware можно бесплатно скачать с сайта Vinculum. FT_Prog программирует эти устройства через UART, используя драйверы Windows CDM (D2XX), или через виртуальный COM-порт. Это можно рассматривать как замену приложению VPROG.

Примечание: VNC2 может быть запрограммировано в FT_Prog через VNC2 Debug Module, а также через UART.

Пример программирования VNC1L. Обновление VNC1L firmware требует наличия кабеля USB - UART; это может быть фирменный кабель FTDI, part number "TTL-232R-3V3", или любой аналогичный.

Программирование требует некоторых аппаратных соединений:

• Подключение VNC1L Pin10 (PROG#) к GND.
• VNC1L GND соединяется с TTL-232R Pin1 (GND).
• VNC1L Pin33 (RTS#) соединяется с TTL-232R Pin2 (CTS#).
• VNC1L Power соединяется с TTL-232R Pin3 (Power).
• VNC1L Pin32 (RXD) соединяется с TTL-232R Pin4 (TXD).
• VNC1L Pin31 (TXD) соединяется с TTL-232R Pin5 (RXD).
• VNC1L Pin34 (CTS#) соединяется с TTL-232R Pin6 (RTS#).

FT Prog Connect VNC1L fig42

Программирование Vinculum запускается на закладке Flash Rom утилиты FT_Prog. Подключите Vinculum к хосту PC, и выберите нужный тип интерфейса подключения:

FT Prog VNC1L fig43

Выберите тип кабеля USB < - > Serial Cable (TTL-232R).

FT Prog VNC1L fig44

По умолчанию скорость передачи данных (Baud Rate) для устройства VNC1L составляет 1MBaud, и для устройства VNC2 скорость составляет 3MBaud. Это рекомендованные скорости передачи, позволяющие ускорить программирование.

FT Prog Vinculum Baud Rate fig45

VNC1L firmware доступно для свободной загрузки в разделе Firmware сайта FTDI.

VNC2 firmware должно быть сначала скомпилировано с помощью FTDI ToolChain. Этот тулчейн доступен на сайте FTDI [7], и поставляется с эквивалентным VNC1L firmware (V2DAP и V2DPS). После сборки приложения с помощью ToolChain полученный файл ROM может быть запрограммирован в VNC2. Для помощи в установке VNC2 ToolChain и информации по сборке firmware см. руководство быстрого старта [8].

Кликните на кнопку FT Prog Open button для открытия загружаемого ROM-файла. Выберите нужный файл.

FT Prog Vinculum select ROM file fig46

Кликните на кнопку "Program" для перепрошивки VNC1L firmware.

FT Prog Vinculum Program button fig47

Процесс программирования flash:

FT Prog Vinculum Programing FLASH fig48

Проверка данных:

FT Prog Vinculum Verifying data fig49

После завершения программирования отобразится сообщение:

FT Prog Vinculum programming success fig50

Пример программирования VNC2. Программирование VNC2 (Vinculum II) осуществляется подобно VNC1L; в примере ниже плата V2Eval перепрограммируется V2DAP firmware.

Подключите плату V2Eval к хосту PC. В выпадающем списке Device будут показаны все устройства FTDI. Платы V2Eval настроены на UART в качестве канала A чипа FT4232H. Эта настройка должна быть выбрана в списке, как показано ниже.

FT Prog VNC2 fig51

Оценочные платы позволяют перевести устройство в режим программирования, используя один из запасных каналов микросхемы FT4232H. Используемый канал был изменен между ревизиями Rev 1 и Rev 2 платы V2Eval, поэтому пользователю нужно выбрать в выпадающем списке подходящую ревизию платы.

Предварительно скомпилированный ROM-файл для V2DAP доступен для загрузки с сайта FTDI. Найдите этот файл на диске в диалоге выбора файла и кликните на кнопку Program для записи во flash VNC2.

Режим EEPROM

Если Вы кликнули "Scan and Parse" для детектирования устройств, и получили следующее сообщение об ошибке, то проверьте, правильно ли подключено к компьютеру устройство FTDI, и дождитесь завершения процесса энумерации устройства операционной системой Windows.

FT Prog Error Message fig52

Перед программированием EEPROM должно быть выбрано целевое устройство. Если это не было сделано, то будет отображено следующее сообщение об ошибке.

FT Prog Error Message fig53

Перед стиранием EEPROM также должно быть выбрано целевое устройство. Если это не было сделано, то будет отображено следующее сообщение об ошибке.

FT Prog Error Message fig54

Если программирование не прошло, то будет отображено сообщение об ошибке, показанное ниже. Это может быть связано с проблемами дизайна или монтажа. Проверьте схему (схема подключения есть в даташите FTDI на Ваше устройство), проверьте тип установленной микросхемы EEPROM.

FT Prog Error Message fig55

Внутреннее EEPROM микросхем FT232R и FT245R не может быть стерто:

FT Prog Error Message fig56

Длина дескриптора не может превышать 48 символов:

FT Prog Error Message fig57

Режим Flash ROM

Сообщение говорит об ошибке синхронизации VNC1L, проверьте аппаратное соединение кабелем.

FT Prog Error Message fig58

Ошибки утилиты командной строки

Система не может найти устройство 0. Используйте команду SCAN, чтобы узнать номера устройств, подключенных к PC.

FT Prog Error Message fig59

Если отобразилось сообщение об ошибке "Failed to write to the EEPROM", проверьте надежность подключения кабеля, и затем снова попробуйте запрограммировать это устройство. Также проверьте, что совпадают типы шаблона и устройства.

FT Prog Error Message fig60

Тип в файле шаблона и тип микросхемы должны совпадать:

FT Prog Error Message fig61

FT232R и FT245R не могут быть стерты:

FT Prog Error Message fig62

FT_Prog не видит подключенное устройство, драйвер не устанавливается

Симптомы: Windows видит подключенное устройство, но отображает его с желтым значком, сигнализирующем об отсутствии драйвера. Драйвер установить не получается нельзя (ни VCP/CDM, ни D2XX), и утилита FT_Prog при запуске сканирования выводит сообщение "FT_Prog has detected an FTDI device but cannot determine its type".

FT Prog FT231X VID PID fault

Проблема скорее всего в том, что идентификаторы VID и PID у этого устройства не соответствуют ни одной паре индентификаторов, которые присутствуют в INF-файлов драйверов. Это файлы ftdibus.inf и ftdiport.inf, которые находятся в архиве с VCP-драйвером CDM v2.12.28 WHQL Certified.zip (цифры могут меняться в зависимости от версии драйвера).

Для того, чтобы решить проблему, выполните следующие шаги:

1. Узнайте с помощью Диспетчера Устройств текущие идентификаторы USB-устройства FTDI. Для этого откройте свойства устройства, перейдите на закладку Сведения, и выберите свойство ИД оборудования. Должно отобразиться окно наподобие следующего:

FTDI VID PID check

Запомните 4 символа после префикса VID_ и после префикса PID_. Это идентификаторы производителя оборудования (Vendor ID, VID) и модели устройства (Product ID, PID), два 16-битных числа в шестнадцатеричном виде. Запомните эти идентификаторы.

2. Чтобы нормально устанавливался драйвер, необходимо наличие строки в INF-файлах, где содержатся идентификаторы Вашего устройства. Строки с идентификаторами присутствуют для всех устройств FTDI в файлах ftdibus.inf и ftdiport.inf.

Вот так могут выглядеть строки с идентификаторами VID и PID в файле ftdibus.inf (это могут быть секции [FtdiHw], [FtdiHw.NTamd64] и т. п., в зависимости от модели процессора PC и версии операционной системы):

[FtdiHw]
%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6001
%USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_00
%USB\VID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_01
%USB\VID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_00
%USB\VID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_01
%USB\VID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_02
%USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_03
%USB\VID_0403&PID_6014.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6014
%USB\VID_0403&PID_6015.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6015
%USB\VID_0403&PID_601B&REV_1400.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&REV_1400
%USB\VID_0403&PID_601B&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_00
%USB\VID_0403&PID_601B&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_01
%USB\VID_0403&PID_601B&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_02
%USB\VID_0403&PID_601B&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_03
%USB\VID_0403&PID_601C&REV_1700.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&REV_1700
%USB\VID_0403&PID_601C&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_00
%USB\VID_0403&PID_601C&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_01
%USB\VID_0403&PID_601C&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_02
%USB\VID_0403&PID_601C&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_03
%USB\VID_0403&PID_0FEC.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_0FEC

Аналогично могут выглядеть строки в файле ftdiport.inf:

[FtdiHw]
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001
%VID_0403&PID_6010.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6010
%VID_0403&PID_6011.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6011
%VID_0403&PID_6014.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6014
%VID_0403&PID_6015.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6015
%VID_0403&PID_0000.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_0000

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

3. После того, как исправите файлы ftdibus.inf и ftdiport.inf, добавив в них строки с Вашими идентификаторами VID и PID, сохраните их, переподключите устройство USB и установите для него драйвер, указав в качестве источника драйверов папку, где находятся исправленные файлы ftdibus.inf и ftdiport.inf.

4. После этого FT_Prog нормально просканирует устройства USB и увидит Ваше устройство. Поменяйте идентификаторы VID и PID на стандартные, предоставляемые компанией FTDI (в соответствии с используемым чипом), и запишите их в EEPROM.

Другая причина ошибки, когда утилита FT_Prog не может просканировать устройство FTDI, может быть в том, что порт USB-устройства FTDI открыт какой-то другой программой (например, к виртуальному COM-порту подключена программа консоли терминала). Для устранения ошибки закройте все программы, которые потенциально могут открывать соединение с USB-портом Вашего устройства.

[Ссылки]

1. User Guide for FTDI FT_PROG Utility site:ftdichip.com.
2. Utilities site:ftdichip.com.
3. Installation Guides site:ftdichip.com.
4. AN_385: FTDI D3XX Driver Installation Guide site:ftdichip.com.
5. Microsoft .NET Framework 3.5 site:microsoft.com.
6. Advanced Driver Options site:microsoft.com.
7. Vinculum Toolchain site:ftdichip.com.
8. Vinculum-II Tool Chain Getting Started Guide site:ftdichip.com.
9. Как стек USB производит энумерацию устройства.
10. 180420ftdi-drivers-and-utils.zip - драйверы, документация, утилита FT_Prog.