реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ft245, слишком долгий TXE
-=Space=-
сообщение Jul 30 2007, 08:00
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 14-01-05
Из: Москва Зеленоград
Пользователь №: 1 962



Начал заниматься 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?
Go to the top of the page
 
+Quote Post
-=Space=-
сообщение Aug 1 2007, 12:55
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 14-01-05
Из: Москва Зеленоград
Пользователь №: 1 962



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

то глюк с 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
попробую на линениках собрать питалово
----------
на линейниках также, без изменений
Go to the top of the page
 
+Quote Post
-=Space=-
сообщение Aug 22 2007, 11:26
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 14-01-05
Из: Москва Зеленоград
Пользователь №: 1 962



провел такой эксперимент с VCP драйверами
программа написана таким образом что длина ответа
равна значению в байте запроса
т.е. я могу варьировать длину ответа

при большой длине ответа происходит зависание программы (драйвера?)
вероятность события тем чем длиннее посылка
при длинне 62 байта вероятность 100%
а через 50 мс после записи последнего байта txe становится в 1 и держится там до отключения от юзби

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

мониторинг в usb сниффере показал что затык происходит на функции
BULK_OR_INTERRUPT_TRANSFER длина данных 0, result 0xC0000005
а должно быть длина данных [2+длина посылки], result 0

после этого идет куча RESET_PIPE с result 0xC0000005
Go to the top of the page
 
+Quote Post
kada
сообщение Sep 25 2007, 20:04
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 23-05-05
Из: Ташкент
Пользователь №: 5 324



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)

Цитата(kada @ Sep 26 2007, 00:37) *
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 - Sep 25 2007, 19:37
Go to the top of the page
 
+Quote Post
-=Space=-
сообщение Sep 26 2007, 16:11
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 14-01-05
Из: Москва Зеленоград
Пользователь №: 1 962



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 ( 2.43 килобайт ) Кол-во скачиваний: 129
 
Go to the top of the page
 
+Quote Post
kada
сообщение Sep 26 2007, 18:48
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 23-05-05
Из: Ташкент
Пользователь №: 5 324



Цитата(-=Space=- @ Sep 26 2007, 21:11) *
kada:
lib'a сделана для MSVC и для BCB на подходит
нужно конвертить.
Или возми мою , уже конверченную.
Т.к. сам пишу на BCB6 и столкнулся с этим в первый же день.

Проблема кстати решена
наложились 2 глюка
1. были перпутаны D+ и D-
2. резистор для подтяжки D+ номиналом 1,5к нужно ставить 1,5к,
а не как я "пойдет и 1,8к, ошибка всего 20%, перживем". Не пережило!

А эффект забавный:
т.к. подтягивалась D- а не D+ винда девайс обнаруживала как LowSpeed
(отсюда удлиненный TXE) и на несоласованной шине все это как то работало!


Библиотеку уже сам успел конвертнуть, но все равно спасибо!
За разъяснения тоже благодарю. Эффект и правда забавный smile.gif Думаю многим будет полезно.
С проблемами реализации в железе пока не сталкивался, т.к. использую готовый модуль DLP-USB245M.

Сообщение отредактировал kada - Sep 26 2007, 18:49
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd June 2024 - 03:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016