Перейти к содержанию
    

Начал заниматься c ft245

обнаружилась такая вот штука

В ft245 есть сигнал TXE, лог 0 разрешена запись , лог 1 запись запрещена

при записи 1 байта сигнал TXE сраз встает в 1 и держится там 4,183 мкс

в дадташите указана только минимальная длительность 80 нс

но 4 мкс это же огромная задержка

при такой задержке я получу масимум 1/4,183e-6 ~= 239000 байт в сек

или обещание даташита скорости 1 Мб сек это только на чтение (из PC в девайс) ?

 

 

и второй вопросик:

кто как реализовал опрос ft245 на чтение?

проблема в следущем

сигнал RXF в 0 говорит не тольок о том что байт принят, в 0 он и когда юзби не подключен

сигнал PWR_ENA не спасает , т.к. 1 на нем это только когда девайс в суспенде

а когда режим либо активный либо неподключен там 0

а вот ресет (делилка с +5Vusb ) у меня на плис не заведен, да и он походу не спасет

он в 1 слишком рано, когда подключение состоялось а енумерация еще не начилась.

вообщем как мне однозначно определить наличие байта в fifo ft245?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если на первые две проблемы можно забить

(скорость и "вечное" прерывание по приему можно пережить и потом отладить)

 

то глюк с FT_IO_ERROR уже говрит мне о том что пора б взять кусачки и выкусить эту микруху нафиг

 

Пока девайс сконфигурирован так что на прием одного любого байта он отвечает посылку 48 байт

по хорошему это надо сделать в цикле и желательно побыстрее, еще лучше в разных потоках

но сейчас это 2 события , 2 кнопки на форме

одна запись байта , вторая чтение буфера

так вот на n-ое нажате кнопки запись драйвер подвисает (выдает 4 ошибку на любую функцию)

пока девайс не переткнешь. n = 1..30, в среднем 3-5

 

По поводу совета с кондерами на D+ D- , пробовал:

резюки 27ом, кондеры

до 180p нет пользы, 330p затыкают прием (девайс перестает принимать байт)

может питание критично? стоят импульсники на TPS54350 +5 +3,3 +1,2 2 последних для спартана3

попробую на линениках собрать питалово

----------

на линейниках также, без изменений

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

провел такой эксперимент с VCP драйверами

программа написана таким образом что длина ответа

равна значению в байте запроса

т.е. я могу варьировать длину ответа

 

при большой длине ответа происходит зависание программы (драйвера?)

вероятность события тем чем длиннее посылка

при длинне 62 байта вероятность 100%

а через 50 мс после записи последнего байта txe становится в 1 и держится там до отключения от юзби

 

Это глюк программы? драйвера? микросхемы? (серия битая попалась)? моего железа?

 

мониторинг в usb сниффере показал что затык происходит на функции

BULK_OR_INTERRUPT_TRANSFER длина данных 0, result 0xC0000005

а должно быть длина данных [2+длина посылки], result 0

 

после этого идет куча RESET_PIPE с result 0xC0000005

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to -=Space=-

Проблемы решили? Если да, то поделитесь пожалуйста.

 

to all

Уважаемые господа, посодействуйте в решении проблемы.

Работаю с FT245. Пробовал пример для C++, приведенный на сайте FTDI. Все исправно функционировало. Понадобилось использовать функцию FT_OpenEx. В примере используется хидер FTD2XX.H и ftd2xx.lib от старой версии драйвера, в которой нет функции FT_OpenEx.

Поэтому скачал новый драйвер с сайта FTDI - "CDM 2.02.04 WHQL Certified". Приложение пишу в BCB6. В папку с проектом, как и положено, скопировал ftd2xx.lib и FTD2XX.H. При попытке скомпилировать выдает ошибку линкера:

[Linker Error] 'C:\D2XXAPP\FTD2XX.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

 

to all

Уважаемые господа, посодействуйте в решении проблемы.

Работаю с FT245. Пробовал пример для C++, приведенный на сайте FTDI. Все исправно функционировало. Понадобилось использовать функцию FT_OpenEx. В примере используется хидер FTD2XX.H и ftd2xx.lib от старой версии драйвера, в которой нет функции FT_OpenEx.

Поэтому скачал новый драйвер с сайта FTDI - "CDM 2.02.04 WHQL Certified". Приложение пишу в BCB6. В папку с проектом, как и положено, скопировал ftd2xx.lib и FTD2XX.H. При попытке скомпилировать выдает ошибку линкера:

[Linker Error] 'C:\D2XXAPP\FTD2XX.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

 

Разобрался. FTDI предоставляет файл ftd2xx.lib для Visual C++. А чтобы работало и для BCB необходимо получить этот LIB файл из ftd2xx.dll с помощью утилиты IMPLIB, поставляющейся вместе с BCB.

Вот что пишет FTDI:

The FTD2XX.DLL and FTD2XX.LIB files from the latest release are for Microsoft Visual C++ projects only.

 

For Borland projects use FTD2XX.DLL from the latest release, but create a LIB file for use with C++ Builder. Borland supplies a utility with C++ Builder called IMPLIB which can be used to create a LIB file from a DLL.

 

IMPLIB can be run using the following command:

 

implib ftd2xx.lib ftd2xx.dll

 

Then FTD2XX.LIB can be linked with the application.

Изменено пользователем kada

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

kada:

lib'a сделана для MSVC и для BCB на подходит

нужно конвертить.

Или возми мою , уже конверченную.

Т.к. сам пишу на BCB6 и столкнулся с этим в первый же день.

 

Проблема кстати решена

наложились 2 глюка

1. были перпутаны D+ и D-

2. резистор для подтяжки D+ номиналом 1,5к нужно ставить 1,5к,

а не как я "пойдет и 1,8к, ошибка всего 20%, перживем". Не пережило!

 

А эффект забавный:

т.к. подтягивалась D- а не D+ винда девайс обнаруживала как LowSpeed

(отсюда удлиненный TXE) и на несоласованной шине все это как то работало!

FTD2XX.ZIP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

kada:

lib'a сделана для MSVC и для BCB на подходит

нужно конвертить.

Или возми мою , уже конверченную.

Т.к. сам пишу на BCB6 и столкнулся с этим в первый же день.

 

Проблема кстати решена

наложились 2 глюка

1. были перпутаны D+ и D-

2. резистор для подтяжки D+ номиналом 1,5к нужно ставить 1,5к,

а не как я "пойдет и 1,8к, ошибка всего 20%, перживем". Не пережило!

 

А эффект забавный:

т.к. подтягивалась D- а не D+ винда девайс обнаруживала как LowSpeed

(отсюда удлиненный TXE) и на несоласованной шине все это как то работало!

 

Библиотеку уже сам успел конвертнуть, но все равно спасибо!

За разъяснения тоже благодарю. Эффект и правда забавный :) Думаю многим будет полезно.

С проблемами реализации в железе пока не сталкивался, т.к. использую готовый модуль DLP-USB245M.

Изменено пользователем kada

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...