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.
Першою двоканальною мікросхемою USB-UART з підтримкою режимів MPSSE та SBB була FT2232C. Це третя генерація інтерфейсних мікросхем від фірми FTDI. Першими двома були одноканальний міст USB-UART FT8U232/FT232AM/FT232BM та міст USB-FIFO FT8U245/FT245AM/FT245BM.
FT2232L — безсвинцева (Lead-Free) версія мікросхеми FT2232C, різниці в кремнії між ними, судячи з усього, немає.
FT2232D має розширений температурний діапазон (-40..+85°C замість 0..+70°C для FT2232C та L). Також вона має додатковий режим — CPU FIFO mode.
У мене збереглася документація на всі три версії. Для FT2232C та FT2232L вона відрізняється лише літерою в назві мікросхеми. Для FT2232D електричні характеристики (рівні напруг, струмів, опір підтяжок, затримки) ідентичні з попередньою версією кристалу.
Схоже, що в реалізації режиму CPU FIFO в кристалі FT2232C/L були помилки. Місцями в документації на ці мікросхеми режим згадується, але у табличках призначення виводів в розділі 5.2 IO Pin Definitions by Chip Mode явно прибрано одну колонку. Таблицю не відцентровано на сторінці, як всі інші таблиці в документі. Крім того, відсутній цілий розділ, є розрив в нумерації.
В Revision History документа є такі рядки:
DS2232L Version 1.4 – Updated July 2004
…
Section 9.4 CPU FIFO Interface mode removed – no longer supported.
Всі ці три мікросхеми мають однаковий ідентифікатор і драйвери/бібліотеки від FTDI для всіх трьох повертають однаковий код пристрою, який в заголовочному файлі ftd2xx.h
має назву FT_DEVICE_2232C
. Тобто по коду, який повертають функції бібліотеки FT_GetDeviceInfo()
та FT_GetDeviceInfoList()
розрізнити ці мікросхеми неможливо.
Оскільки режим CPU FIFO мені ніколи не був потрібен, я не цікавився можливістю програмного визначення версії кристалу FT2232.
AVReAl, як і OpenOCD чи avrdude, працює з цими мікросхемами в режимі MPSSE, підтримка якого однакова в усіх трьох мікросхемах. Різниці в роботі з мікроконтролерами AVR та ARM, наприклад, в швидкості програмування, між цими мікросхемами немає.
Міняти їх можна в будь-якому напрямку:
- Знайшли стару схему, де вказана FT2232L, а в продажу є лише FT2232D (хоча «спеціально для Вас» за подвійну оплату можуть і FT2232L привезти)? Ставте FT2232D і працюйте.
- В новій схемі стоїть FT2232D, а в столі завалялася стара FT2232C? Ставте стару.
Хіба що про всяк випадок перевірте, чи не використовує нова схема режим CPU FIFO (в програматорах мікроконтролерів з однієї мікросхеми FT2232* навряд чи цей режим використовуватиметься).
А от FT2232H має деякі особливості. Дві найважливіших з точки зору програмування AVR такі:
По-перше, у неї режим MPSSE працює на обох каналах A та B.
По-друге, вона працює в режимі USB 2.0 High Speed (тобто 480 мегабіт на секунуду «неформатованої» швидкості) і максимальна частота SCK у неї 30 МГц, а не 6.
Порядок тут саме такий тому, що для AVR в режимі ISP частота SCK вище 3 МГц рідко потрібна. А можливість програмувати в два канали зручна хоча б тим, що при розробці комунікаційних програм можна підключити одночасно дві плати, а не перекидати кабель програмування з однієї на іншу.
Висока ж швидкість обміну з комп’ютером дає лише те, що при одночасному програмуванні двох плат двома паралельно запущеними копіями AVReAl швидкість роботи кожного екземпляру не зменшується.