Этот апноут 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, и главный экран утилиты выглядит следующим образом:
В Idle Mode пользователь может выполнить следующие действия:
• Создание нового шаблона EEPROM. Это поменяет режим работы утилиты на Edit Mode, и позволит пользователю выбрать параметры для своего устройства. • Открытие файла существующего шаблона EEPROM. • Сканирование шины USB для поиска подключенных к компьютеру устройств FTDI. FT_Prog сообщит, сколько запрограммированных и чистых устройств подключено к компьютеру PC.
[4. Функции режима редактирования]
Создание нового шаблона EEPROM. Для создания нового шаблона выберите в меню File -> New Template.
Шаблон EEPROM может определить параметры в следующих категориях:
Подробное описание параметров шаблона см. в разделе "5. EEPROM-параметры устройства".
Изменение существующего шаблона EEPROM. Чтобы изменить шаблон, выберите в меню File -> Open Template, в диалоге выбора файла найдите нужный файл шаблона и кликните на кнопку Open (Открыть).
FT_Prog загрузит файл шаблона в окно "Device Tree" (дерево параметров устройства), делая его доступным для редактирования.
Сохранение шаблона. Любые изменения параметров можно сохранить выбором в меню File -> Save As Template.
[5. EEPROM-параметры устройства]
Chip_Details. Здесь в выпадающем списке выбирается тип микросхемы FTDI. Изменить значение можно только для шаблона - когда настройки прочитаны из микросхемы, но не сохранены как шаблон, изменить тип нельзя.
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.
Примечание: если используются нестандартные значения 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).
Выберите 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. Здесь можно настроить текстовое описание производителя, изделия, серийный номер устройства.
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.
FT232R поддерживает высокую нагрузочную способность ножек портов ввода/вывода (High Current IO). Установка этой опции позволит повысить мощность выходного драйвера. По умолчанию выводы UART IO могут управлять током 4 mA, а со включенной повышенной нагрузочной способностью до 12 mA.
В FT232R имеется внутренний генератор, но также можно выбрать внешний генератор выбором "Use External Oscillator".
Примечание: если выбрана опция "Use External Oscillator", и в схеме нет подключенного внешнего генератора, то FT232R перестанет работать.
В отличие от FT232R микросхема FT245R не позволяет настраивать инверсию сигналов и не позволяет конфигурировать выводы CBUS, поскольку все эти выводы требуются для нормальной работы FIFO.
В FT245R имеется внутренний генератор, но также можно выбрать внешний генератор выбором "Use External Oscillator".
Примечание: если выбрана опция "Use External Oscillator", и в схеме нет подключенного внешнего генератора, то FT245R перестанет работать.
В FT2232D реализованы все специфические функции серий BM, но также реализована дополнительная опция "CPU FIFO".
• Каждый канал можно независимо конфигурировать как 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.
• Каждый канал можно независимо конфигурировать как 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.
• Ножка 59 микросхемы FT2232H (POWERSAV#) может работать как вход управления экономией мощности потребления от USB (USB Power Save). Эта опция конфигурируется в EEPROM, и используется, когда FT2232H работает от собственного питания (self powered mode). Опция позволяет предотвратить потребление тока от сигналов шины USB, когда хост или хаб выключены.
PWRSAV# = 1: Normal Operation (обычное функционирование) PWRSAV# = 0: переводит FT2232H в режим SUSPEND (подробнее см. даташит FT2232H).
Функции и опции FT4232H подобны FT2232H. В микросхеме FT4232H реализованы все опции устройств BM и все опции FT2232H.
Примечание: FT4232H полностью по ножкам совместима с FT2232H (если не принимать во внимание, что аппаратно FT4232H реализует четыре канала UART, а FT2232H два канала UART). Таким образом, можно впаять микросхему FT4232H вместо FT2232H и она будет работать.
• Каждый канал можно независимо конфигурировать как USB UART в стиле FT232BM. • Каждый канал можно индивидуально конфигурировать в режиме синхронного или асинхронного управления уровнями выводов (bit-bang). • Драйвер, который устанавливается и используется каждым каналом, может быть выбран опцией Virtual COM Port или D2XX Direct. • Функция замедления переключения (slow slew) выхода драйвера. • Функция активации на входах триггера Шмитта (Schmitt Input). • Можно управлять нагрузочной способностью ножки ввода/вывода (IO pin driving capability), выходной ток регулируется в пределах от 4 до 16 mA.
FT232H можно сконфигурировать в одном из 5 режимов: как RS232 UART, 245 FIFO, CPU FIFO, OPTO Isolate или как новая FT1248. Подробности по конфигурациям см. даташит на FT232H.
Конфигурируются следующие настройки FT1248:
Также доступны опции пониженной скорости переключения (slew rate), входного триггера Шмитта и нагрузочной способности выходного драйвера.
Эта микросхема содержит конфигурируемые интерфейсы SPI, I2C и GPIO. Интерфейс SPI можно конфигурировать в режиме главного устройства (master mode) с 1-разрядной, 2-разрядной или 4-разрядной шиной данных, или в режиме подчиненного устройства (slave mode) с 1-разрядной шиной данных. Интерфейс I2C можно конфигурировать в режиме главного или подчиненного устройства (master или slave).
• Подчиненные устройства шины I2C должны иметь уникальные адреса, что можно конфигурировать опциями FT4222H. • Для режимов SPI и GPIO можно конфигурировать такие электрические характеристики, как скорость переключения (slew rate), выходной ток, верхние/нижние подтягивающие резисторы (pull-up/pull-down). • Конфигурируются выходные сигналы FT4222H, чтобы показывать детектирование подключения зарядного устройства (Battery Charger). Эта функция называется Battery Charger Detection (сокращенно BCD).
HID over I2C. Микросхема FT260 работает как устройство USB HID, предоставляя мост между USB и периферийными интерфейсами UART или I2C. Режим I2C поддерживает протокол "HID over I2C", что конфигурируется следующей опцией:
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 для управления питанием.
Для этих цифровых сигналов ввода/вывода можно конфигурировать нагрузочную способность (signal drive strength), управление скоростью переключения (slew rate) и верхние/нижние подтягивающие резисторы, в зависимости от требований дизайна.
Battery Charge Detection. В микросхеме FT260 есть функция определения подключения через USB зарядного устройства (Battery Charge Detection, сокращенно BCD). Эта функция позволяет периферийным устройствам USB регулировать свое потребление энергии или улучшать зарядку аккумулятора в зависимости от того, к чему подключено - к хосту USB или к зарядному устройству.
Мосты FT-X организуют канал связи между USB и интерфейсами UART, I2C, улучшенный SPI (FT1248) или FIFO. Подчиненные устройства на шине I2C должны иметь уникальные адреса, что можно конфигурировать соответствующей опцией:
Функция Battery Charger Detection позволяет периферийным устройствам USB определять присутствие источника энергии повышенной мощности, чтобы ускорить зарядку аккумулятора.
У микросхемы есть 7 независимо конфигурируемых выводов CBUS:
Ниже на рисунках показано конфигурирование опций USB Suspend VBus. Это можно использовать в разработках, когда устройство имеет собственный источник питания, чтобы можно было выводит хост из сна. Используется для предотвращения потребления энергии от сигналов USB, когда выключаются хост или хаб USB.
Примечание: один из сигналов CBUS должен быть установлен на функцию VBUS_SENSE перед тем, как эта настройка может быть разрешена.
[6. Режим программирования]
Чтобы войти в режим программирования, пользователь должен сначала просканировать шину USB для определения подключенных устройств FTDI. Функции режима программирования утилиты FT_Prog можно запустить кнопкой на тулбаре, через меню Devices, или через правый клик на устройстве Device Tree и выбора в контекстном меню Program Device.
Режим программирования позволяет делать следующее:
Сканирование. Для сканирования шины USB, чтобы определились подключенные устройства FTDI, кликните на кнопку "Scan and Parse" тулбара. Альтернативно выберите "Scan and Parse" в меню Devices.
После успешной операции сканирования в окне Device Tree отобразятся подключенные устройства:
Erase. Есть 2 способа стереть EEPROM подключенных устройств. Чтобы стереть содержимое одного подключенного устройства выполните правый клик на нем в Device Tree, и выберите пункт Erase Device из контекстного меню.
Альтернативно для стирания EEPROM нескольких подключенных устройств пользователь может нажать кнопку программирования на тулбаре. В случае нескольких подключенных устройств появится окно "Program Devices":
Здесь можно выбрать несколько устройств и затем стереть их EEPROM путем нажатия кнопки "Erase" в нижней правой части окна. После выполнения операции стирания содержимое EEPROM устройства примет значения 0xFF:
Примечание: нельзя стереть содержимое EEPROM микросхем FT232R и FT245R.
Использование шаблонов EEPROM. Для модификации содержимого EEPROM можно применять готовые шаблоны (EEPROM Templates).
Любые шаблоны, которые открыты в настоящий момент, отображаются в окне Device Tree. Чтобы применить шаблон к устройству, выполните правый клик на требуемое устройство в Device Tree, выберите пункт Apply Template контекстного меню. Выбор требуемого шаблона приведет к применению сохраненных в нем настроек к выбранному устройству.
Чтобы применить шаблон, который пока не открыт утилитой: выполните правый клик на требуемом устройстве и выберите Apply Template -> From File. Откроется диалог выбора файла, позволяющий выбрать требуемый файл шаблона.
Когда настройки EEPROM завершены, следующий шаг состоит в программировании устройства (см. далее секцию "Программирование подключенных устройств").
Примечание: нельзя применить шаблон к устройству, когда не совпадает тип шаблона с типом устройства. Например, если открыт шаблон для устройства FT2232H, и сейчас подключено устройство FT245R, то утилита не позволит применить к нему этот шаблон.
Выберите галочками требуемые устройства в списке "Device List" левой части окна. Если стоит галочка в чекбоксе "Only Program Blank Devices", то утилита FT_Prog выберет все "чистые" устройства в списке "Device List".
Для программирования выбранных устройств кликните на кнопку "Program" в правой нижней части окна.
Альтернативно для программирования отдельных устройств выполните правый клик на требуемом устройстве в Device Tree и выберите пункт Program Device из контекстного меню.
Cycle Port. Функция "Cycle Port" может использоваться для повторной энумерации устройства на шине USB после того, как EEPROM было перепрограммировано. Это полезная функция, потому что устройство читает конфигурацию EEPROM только тогда, когда оно обрабатывает процедуру энумерации [9] на шине. Этой функцией можно принудительно запустить процесс энумерации, при этом Windows заново определит устройство с новыми запрограммированными параметрами.
[7. Утилита командной строки]
Вместе с FT_Prog поставляется утилита командной строки, которую удобно использовать для автоматизации процедур программирования, это исполняемый файл FT_Prog-CmdLine.exe. Запустить утилиту командной строки можно из папки установки (обычно это каталог наподобие C:\Program Files (x86)\FTDI\FT_Prog\), или можно нажать на тулбаре кнопку "Launch Command Line Application". Откроется черное окно консоли, где можно вводить текстовые команды.
Всего имеется 6 команд:
SCAN осуществляет поиск всех устройств, подключенных к хосту PC Windows. PROG программирует шаблон EEPROM в выбранное устройство (устройства). ERAS стирает EEPROM выбранного устройства. CYCL передергивает порт устройства, принудительно запуская для него процедуру энумерации. Это эквивалентно отключению устройства и повторному его подключению. HELP выводит общую информацию по всем командам. Также выводит подробную информацию по указанной команде. Например, ввод команд HELP SCAN, HELP PROG, HELP ERAS или HELP CYCL отобразит требуемый формат соответствующей команды. EXIT завершает работу FT_Prog-CmdLine.exe.
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 может использоваться для перепрограммирования памяти 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#).
Программирование Vinculum запускается на закладке Flash Rom утилиты FT_Prog. Подключите Vinculum к хосту PC, и выберите нужный тип интерфейса подключения:
Выберите тип кабеля USB < - > Serial Cable (TTL-232R).
По умолчанию скорость передачи данных (Baud Rate) для устройства VNC1L составляет 1MBaud, и для устройства VNC2 скорость составляет 3MBaud. Это рекомендованные скорости передачи, позволяющие ускорить программирование.
VNC1L firmware доступно для свободной загрузки в разделе Firmware сайта FTDI.
VNC2 firmware должно быть сначала скомпилировано с помощью FTDI ToolChain. Этот тулчейн доступен на сайте FTDI [7], и поставляется с эквивалентным VNC1L firmware (V2DAP и V2DPS). После сборки приложения с помощью ToolChain полученный файл ROM может быть запрограммирован в VNC2. Для помощи в установке VNC2 ToolChain и информации по сборке firmware см. руководство быстрого старта [8].
Кликните на кнопку для открытия загружаемого ROM-файла. Выберите нужный файл.
Кликните на кнопку "Program" для перепрошивки VNC1L firmware.
Процесс программирования flash:
Проверка данных:
После завершения программирования отобразится сообщение:
Пример программирования VNC2. Программирование VNC2 (Vinculum II) осуществляется подобно VNC1L; в примере ниже плата V2Eval перепрограммируется V2DAP firmware.
Подключите плату V2Eval к хосту PC. В выпадающем списке Device будут показаны все устройства FTDI. Платы V2Eval настроены на UART в качестве канала A чипа FT4232H. Эта настройка должна быть выбрана в списке, как показано ниже.
Оценочные платы позволяют перевести устройство в режим программирования, используя один из запасных каналов микросхемы FT4232H. Используемый канал был изменен между ревизиями Rev 1 и Rev 2 платы V2Eval, поэтому пользователю нужно выбрать в выпадающем списке подходящую ревизию платы.
Предварительно скомпилированный ROM-файл для V2DAP доступен для загрузки с сайта FTDI. Найдите этот файл на диске в диалоге выбора файла и кликните на кнопку Program для записи во flash VNC2.
Если Вы кликнули "Scan and Parse" для детектирования устройств, и получили следующее сообщение об ошибке, то проверьте, правильно ли подключено к компьютеру устройство FTDI, и дождитесь завершения процесса энумерации устройства операционной системой Windows.
Перед программированием EEPROM должно быть выбрано целевое устройство. Если это не было сделано, то будет отображено следующее сообщение об ошибке.
Перед стиранием EEPROM также должно быть выбрано целевое устройство. Если это не было сделано, то будет отображено следующее сообщение об ошибке.
Если программирование не прошло, то будет отображено сообщение об ошибке, показанное ниже. Это может быть связано с проблемами дизайна или монтажа. Проверьте схему (схема подключения есть в даташите FTDI на Ваше устройство), проверьте тип установленной микросхемы EEPROM.
Внутреннее EEPROM микросхем FT232R и FT245R не может быть стерто:
Длина дескриптора не может превышать 48 символов:
Режим Flash ROM
Сообщение говорит об ошибке синхронизации VNC1L, проверьте аппаратное соединение кабелем.
Ошибки утилиты командной строки
Система не может найти устройство 0. Используйте команду SCAN, чтобы узнать номера устройств, подключенных к PC.
Если отобразилось сообщение об ошибке "Failed to write to the EEPROM", проверьте надежность подключения кабеля, и затем снова попробуйте запрограммировать это устройство. Также проверьте, что совпадают типы шаблона и устройства.
Тип в файле шаблона и тип микросхемы должны совпадать:
FT232R и FT245R не могут быть стерты:
FT_Prog не видит подключенное устройство, драйвер не устанавливается
Симптомы: Windows видит подключенное устройство, но отображает его с желтым значком, сигнализирующем об отсутствии драйвера. Драйвер установить не получается нельзя (ни VCP/CDM, ни D2XX), и утилита FT_Prog при запуске сканирования выводит сообщение "FT_Prog has detected an FTDI device but cannot determine its type".
Проблема скорее всего в том, что идентификаторы VID и PID у этого устройства не соответствуют ни одной паре индентификаторов, которые присутствуют в INF-файлов драйверов. Это файлы ftdibus.inf и ftdiport.inf, которые находятся в архиве с VCP-драйвером CDM v2.12.28 WHQL Certified.zip (цифры могут меняться в зависимости от версии драйвера).
Для того, чтобы решить проблему, выполните следующие шаги:
1. Узнайте с помощью Диспетчера Устройств текущие идентификаторы USB-устройства FTDI. Для этого откройте свойства устройства, перейдите на закладку Сведения, и выберите свойство ИД оборудования. Должно отобразиться окно наподобие следующего:
Запомните 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 и версии операционной системы):
Если по какой-то причине здесь нет строки с Вашими идентификаторами, то нужно добавить такую строку, и тогда драйвер установится. Это можно сделать обычным текстовым редактором.
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.
Купил программатор UMFT4222EV-D. Скачал программу FT_PROG, поставил драйвер FTDI. Не работает ничего. Может я совсем не то понимаю? Хочу запрограммировать микросхему EEPROM по шине I2C. Можно ли вообще это сделать? На шине I2C нет вообще никаких импульсов...
Спасибо за подробный manual. Т.е. можно купить кабель на Али, затем скопировать шаблон с оригинального кабеля и применить шаблон на китайский, получив его клон. Верно?
Комментарии
microsin: верно, если у Вас клон качественный.
RSS лента комментариев этой записи