Archive for the ‘USB-FTDI’ Category.

OpenOCD та FTDI-MPSSE

Зрідка щось пробуючи на LPC1766, вже доволі тривалий час не зазирав у новини OpenOCD. Як зібрав колись 6-тої версії, так і працював. Ще раніше, коли робив собі плату на FT2232H, трохи промахнувся і керування драйверами зробив несумісним з жодним з підтримуваних OpenOCD 6.x адаптерів. Тому для роботи з кортексами діставав напівмакетку (плата з FT2232D та шинником, перерізана на сумісність з Amontec JTAGkey).

А оце підтягнув git-ом свіжий стан, а там вже 8.0. А з 7.0 вже для FTDI/MPSSE підтримується довільне призначення службових виводів (reset, керування драйверами). Навіть краще, ніж в avreal, бо можна задати довільне своє ім’я сигналу, прив’язати його до ніжки і керувати ним командами OpenOCD — інтерактивно або з командного рядка. Додав у makefile в частині формування командного рядка вмикання червоного світлодіода на початку програмування і вимикання в кінці. Все чудово запрацювало, через FT2232H програма зашивається у півтора-два рази швидше, ніж через FT2232D, веріфікується у три-чотири рази швидше. І таке враження, що і через FT2232D свіжа версія OpenOCD працює відчутно швидше, ніж 6.x, але вже ніде перевірити, а спеціально збирати ліньки.

І дуже вчасно я сьогодні (хм… вже вчора) за це взявся — через хвилин двадцять після того, як зберіг на флешку конфігураційний файл та приклад makefile, подзвонив колега і сказав, що на роботі полетів J-Link. А там у мене точно така ж плата з FT2232H лежить.

AVReAl/Linux и права администратора

Изначально AVReAl/Linux работал с LPT напрямую, командами процессора для обращения к портам I/O. Для этого avreal должен запускаться с правами администратора. Позже была дописана поддержка работы с устройствами /dev/parport, для доступа к которым достаточно включить пользователя в группу lp. Всё это описано в публикации AVReAl и LPT в Linux.

Когда в программу добавилась поддержка работы с FTDI MPSSE, я заметил, что без прав рута не выходит соединиться с микросхемой FT2232. Но у меня на компьютере все версии AVReAl работают от имени администратора, так как время от времени делается проверка работы с прямым доступом к LPT. Поэтому и с FT2232 всё работает и я не копал глубже.

Наконец-то решил разобраться с этим вопросом. Как это часто бывает, достаточно было немного почитать.

Для того, чтобы работать с микросхемами FTDI без привелегий администратора, нужно в каталог /etc/udev/rules.d/ записать файл с именем, например 55-ftdi.rules, такого содержания:

# FTDI-based devices
#
# FTDI vid=0403
# FT2232, FT2232H: pid=6010
# FT4232H:  pid=6011
# FT232H:   pid=6014
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010|6011|6014", OWNER="root", GROUP="root", MODE="0666"

Эти правила рассчитаны на микросхмему FTDI, которой не заменены vid/pid по умолчанию. Если используется адаптер с другими vid/pid, нужно добавить соответствующую строку в файл.

Пакет OpenOCD содержит файл правил для всех адаптеров, который он поддерживает. При использовании AVReAl с адаптером на микросхеме FTDI из этого списка можно просто перенести файл правил OpenOCD в каталог /etc/udev/rules.d/. В правилах OpenOCD использовано GROUP="plugdev", MODE="0664". Но я не вижу разницы между этими двумя вариантами на «десктопе», где все пользователи по умолчанию включены в группу plugdev, чтобы они могли подключать USB-флешки и переносные диски.

Attached Files:

FT2232C, FT2232L, FT2232D

Час від часу зустрічаю запитання по відмінностях між цими мікросхемами. В описах чи відкритих проектах в інтернеті згадується FT2232C, а в продажу зараз є FT2232D. Виникають сумніви у сумісності програм та адаптерів.
Як це часто буває, всі ці сумніви розвіюються при перегляді сторінки опису FT2232D. Але чомусь багатьом легше не подивитися на сайті виробника, а спитати на форумі чи набрати рядок «різниця FT2232C та FT2232D» в пошуковику. Ну що ж, ось він, цей рядок для нього, хай йому буде легше 🙂

Документації на старіші версії мікросхем на сайті вже немає, але безпосередньо на сторінці сказано:

The FT2232D is the 3rd generation of FTDI’s popular USB UART/FIFO IC. The FT2232D is an updated version of the FT2232C and its lead free version, the FT2232L. Please note that the FT2232D is not an new generation of device.

The FT2232D is lead free and pin compatible with the original FT2232C and FT2232L devices. All the original device features are supported with some additional features available including a CPU-style FIFO mode and an extended operating temperature range.

І що ж все це означає? » » »

AVReAl и MPSSE

Некоторые из микросхем фирмы FTDI имет встроенный аппаратный блок последовательных интерфейсов MPSSE, предназначенный для реализации интерфейсов JTAG, SPI, I2C. FT2232D и её более старые версии FT2232C, FT2232L поддерживают Full-Bandwidth USB и имеют верхнюю границу частоты сигнала TCK/SCK 6 МГц. Для микросхем, работающих в стандарте USB 2.0 Hi-Speed, т.е. для FT2232H, FT4232H, FT232H, граница выше — 30 МГц.

MPSSE определяет использование линий DBUS0..DBUS2 как сигналов TCK/SCK, TDI/MOSI и TDO/MISO. Для программирования микроконтроллеров AVR необходим сигнал RESET, для которого можно использовать линию DBUS3 (TMS/CS), что и сделано в AVReAl по умолчанию.

Использование MPSSE с AVReAl » » »

Как установить две версии libftd2xx

Как уже писалось, 64-битные библиотеки libftd2xx.so версии 1.0.0 и более новые не совместимы по размеру данных с более старыми библиотеками, последней из которых была версия 0.4.16. С 32-битными библиотеками проблем нет.
Для работы 64-битной версии avreal/Linux необходимо установить старую версию libftd2xx, которую можно взять на странице download.
Может возникнуть необходимость установить обе версии библиотеки. Для этого avreal, начиная с версии 1.28r6, загружает библиотеку по имени libftd2xx.so.0, а не libftd2xx.so.
Рассмотрим рекомендованный процесс установки библиотеки.

Continue reading ‘Как установить две версии libftd2xx’ »

Подарочек от FTDI

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

В полном соответствии с принципом «см. рис.1» они взяли и поменяли типы данных при переходе от библиотек libftd2xx.so версий 0.4.x к libftd2xx.so.1.0.0. Подарочек влияет только на работу с 64-битными вариантами библиотек, с 32-битными проблем нет.

Библиотека ftd2xx рождалась в Windows и ещё и содержит в себе функции FT_W32_ххх() для работы с микросхемами FTDI в стиле функций работы с COM-портом в WinAPI. Поэтому в ней используются стандартные для WinAPI типы данных DWORD, BYTE и т.п. Чтобы при написании Linux-версии библиотеки не менять файл ftd2xx.h и все тексты, в проект был добавлен файл WinTypes.h с определениями нужных типов. Сам по себе шаг логичный, но…

Continue reading ‘Подарочек от FTDI’ »

avreal/linux and libftd2xx.so.1.0.0 64-bit

В начале декабря FTDI сделала нам маленький подарочек — выпустила версию 1.0.0 библиотеки libftd2xx.so (предыдущая версия была 0.4.16). Что-то там, наверное, сильно улучшили, но 64-битная версия avreal/linux перестала работать. Явные ошибки где-то или «просто неаккуратный код» код, из-за которого вылезли проблемы в avreal, придётся разбираться. А пока я на странице download выложил архивы предыдущей версии libftd2xx, с которой avreal работает стабильно.


Подробнее об этом тут: «Подарочек от FTDI»

AVReAl @ XP/64, Windows7/32, Windows7/64

Нашёл возможность самостоятельно проверить работу avreal под WindowsXP/64, Windows7/32, Windows7/64,
до сих пор я проверял только под W2K и XP/32.
Пока проверил только для FTDI (FT2232) – с драйверами CDM 2.06.00 все работает. В ближайшее время буду разбиратьcя с LPT для перечисленных систем, проверю разные драйвера и методы их установки. Обсуждние было на электрониксе.

[flagcounter image]