|
Проблеммы с FT2232 от FTDI, не можем заставить ее работать в full-speed |
|
|
|
Feb 14 2010, 13:25
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477

|
В свое время работали с USB 1.0 (FT232R, FT245R). Софт для PC писался под Delphi, с использованием драйверов и библиотек от разработчика. Все было нормально.
Решили перейти на USB2.0 и бешеные скорости, так как 800 кбайт/сек уже упиралось в наши требования. Купили kit 2232. Библиотек для Delphi не оказалось, решили писать на Borland.
Собрали макет. Подключили. Запускаем написанную программу. Устанавливаем режим Full-speed (SetBitMode 0x40). Осцилографом смотрим - появилась желаемая частота в 60мегагерц. Ок. Дальше посылаем 0х01, в ответ на которое наша плата должна была загореть светодиод и выдавать данные. Единичка записывается, светодиод загорается, но "плата" больше ни на что не реагирует. UsbTracer показывает "смерть" девайся и его отключение. Винды иногда при этом пишут "устройство не опознано".
Тыкались-тыкались, решили попробовать ассинхронный режим, без SetBitMode 0x40. Сделали плату, перепрошили контроллер. Запускаем. Посылаем единичку. После этого GetStatus выдает наличие данных в буфере (и если циклично проверять, то видно как буфер наполняется), но Read не читает ничего, ft_status равен 4, ошибка чтения, но GetStatus так же исправно продолжнает показывать данные в буфере без ошибок.
Берем старую программу из под Delphi и пробуем ей - она все прекрасно читает. Отличия только в разных библиотеках для дельфей и для борланда. И фих с этой борладской библиотекой, но проблемма в том, что дельфевая библиотека старая и она не умеет SetBitMode. Я пытался его руками добавить, т.к. в ftdi2xx.dll такая функция есть, но неполучается - устройство не видит этой команды. Возможно в борландовской библиотеке какая-то обертка стоит над этой функцией.
Впринципе, сейчас мы получаем почти 5 мегабайт в секунду по usb в ассинхронном режиме, но это как то неправильно, на мой взгляд. Кто нить добивался большего? У кого-нить получилось работать в full-speed?Как вообще работать с этой 2232?
|
|
|
|
|
Feb 14 2010, 14:59
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477

|
Цитата(DpInRock @ Feb 14 2010, 17:45)  FT232R - USB 2.0 Full speed device вoобще-то. http://www.filur.net/PDF/FTDI/mikros/USB.htmХотя я может че и путаю. Но вопрос то не в этом.
|
|
|
|
|
Feb 14 2010, 16:14
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477

|
Цитата(rezident @ Feb 14 2010, 19:01)  Дурацкий вопрос: а кабель USB менять не пробовали? пробовали. Непомогает. Сейчас там кабель длинной 15 см от фотоаппарата. По usbtracer-у видно что устройство "штатно" умирает, т.е. уходит единичка, потом всякие синхры пошли, статус "ансупортед" и пипец.
|
|
|
|
|
Feb 14 2010, 21:37
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Цитата Но вопрос то не в этом Именно в этом. http://www.ftdichip.com/Documents/DataSheets/DS_FT232R.pdfЦитата Data transfer rates from 300 baud to 3 Mbaud (RS422, RS485, RS232 ) at TTL levels. Цитата The FT232R is fully compliant with the USB 2.0 specification and has been given the USB-IF Test-ID (TID) 40000133. Так что FTDI работает совершенно замечательно. Причем, на той скорости, которой на 1.5 мегабита не достичь. А только на 12. ---- Цитата Библиотек для Delphi не оказалось Так ведь FTDI поставляет DLL. Кто мешает 10 строк написать в дельфях?
Сообщение отредактировал DpInRock - Feb 14 2010, 21:40
--------------------
On the road again (Canned Heat)
|
|
|
|
|
Feb 14 2010, 21:49
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477

|
Цитата(DpInRock @ Feb 15 2010, 00:37)  Так ведь FTDI поставляет DLL. Кто мешает 10 строк написать в дельфях? Я же писал, что пробовал дописать, но неполучается. Невидит девайс написанных команд. Для борланда идет еще бибилотека дополнительная. А то что что в борланде у меня ft_read выдает еррор в ассинхронном режиме, это у всех так?
|
|
|
|
|
Feb 15 2010, 10:06
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477

|
Цитата(plombir @ Feb 15 2010, 08:58)  Драйвера с сайта давно обновляли? драйвера последние. От октября 2009, свежее не видел. И у нас он не "зависает", а именно умирает. Попозже пришлю лог от usbtracer-a. А кто нить вообще работает с этой железкой (2232H)?
Сообщение отредактировал rezident - Feb 15 2010, 11:31
Причина редактирования: Излишнее цитирование.
|
|
|
|
|
Feb 16 2010, 05:28
|
Частый гость
 
Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191

|
Цитата(alex112 @ Feb 14 2010, 16:25)  Устанавливаем режим Full-speed (SetBitMode 0x40) Из какого документа это значение 0x40? Удалось найти Код Reset the IO Bit Mode 0x0 Asynchronous Bit Bang Mode 0x1 MPSSE 0x2 Synchronous Bit Bang Mode 0x4 MCU Host Bus Emulation 0x8 Fast Serial For Opto-Isolation 0x10
|
|
|
|
|
Feb 17 2010, 18:52
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477

|
Цитата(plombir @ Feb 16 2010, 08:28)  Из какого документа это значение 0x40? у меня в документации еще 0х20 и 0х40 есть.
Сообщение отредактировал rezident - Feb 17 2010, 19:25
Причина редактирования: Излишнее цитирование.
|
|
|
|
|
Feb 18 2010, 06:28
|
Частый гость
 
Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191

|
Цитата(alex112 @ Feb 17 2010, 21:52)  у меня в документации еще 0х20 и 0х40 есть.  Я рад за Вас и вашу документацию. Удачи.
|
|
|
|
|
Feb 18 2010, 19:25
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(plombir @ Feb 18 2010, 08:28)  Я рад за Вас и вашу документацию. Удачи. Кто Вам виноват, что у Вас в документации этого нет? FT2232H DUAL HIGH SPEED USB TO MULTIPURPOSE UART/FIFO IC Datasheet Version 2.06 Цитата 4.13 FT2232H Mode Selection When in FT245 FIFO mode, the FT_SetBitMode command can be used to select either Synchronous FIFO (FT_SetBitMode = 0x40) or Asynchronous FIFO mode. Application Note AN_130 FT2232H Used In An FT245 Style Synchronous FIFO Mode Цитата Next send command FT_SetBitMode(Mask, 0x40) to the FTDI driver to switch the FT2232H to FT245 Synchronous FIFO mode (this mode uses the RX & TX buffer of port B, so port B cannot be used for any other purpose in this mode). Document Reference No.: FT_000071 D2XX Programmer's Guide Version 1.02 Цитата ucMode Mode value. Can be one of the following: 0x0 = Reset 0x1 = Asynchronous Bit Bang 0x2 = MPSSE (FT4232H, FT2232H and FT2232 devices only) 0x4 = Synchronous Bit Bang (FT4232H, FT2232H, FT232R, FT245R and FT2232 devices only) 0x8 = MCU Host Bus Emulation Mode (FT4232H, FT2232H and FT2232 devices only) 0x10 = Fast Opto-Isolated Serial Mode (FT4232H, FT2232H and FT2232 devices only) 0x20 = CBUS Bit Bang Mode (FT232R devices only) 0x40 = Single Channel Synchronous 245 FIFO Mode (FT2232H devices only) Удачи.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|