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

FT232 помогите понять

значит так.

переходник собран на FT232RL на конце стоит ATMEGA168 со стороны компа написана программа на Delphi, использую прямое управление, т.е. работаю через DLL FTD2XX.DLL

есть управление потоком через DTR/DSR.

 

все работает ровно и хорошо.

но есть такой момент. запускаю я свою программу, а она не видит устройство, т.е. не получает от него данные, иногда, еще реже получает их как-то не корректно.

 

закрываю программу.

запускаю любую терминальную программу. закрываю ее.

запускаю свою программу, все работает стабильно.

 

есть подозрение что как-то нужно инициализировать порт после или перед открытием из программы.

может кто что подскажет.

заранее спасибо.

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


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

значит так.

переходник собран на FT232RL на конце стоит ATMEGA168 со стороны компа написана программа на Delphi, использую прямое управление, т.е. работаю через DLL FTD2XX.DLL

есть управление потоком через DTR/DSR.

 

все работает ровно и хорошо.

но есть такой момент. запускаю я свою программу, а она не видит устройство, т.е. не получает от него данные, иногда, еще реже получает их как-то не корректно.

 

закрываю программу.

запускаю любую терминальную программу. закрываю ее.

запускаю свою программу, все работает стабильно.

 

есть подозрение что как-то нужно инициализировать порт после или перед открытием из программы.

может кто что подскажет.

заранее спасибо.

 

Может не инициализируется скорость передачи-приёма и программа открывает порт со скоростью по умолчанию - сделайте так например:

FT_Current_Baud:=FT_BAUD_9600;
Open_USB_Device();
Set_USB_Device_BaudRate();
Purge_USB_Device_In();
Purge_USB_Device_Out();

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

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


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

Не хочется вас огорчать. Я тоже попробовал работать правда с ft245bm ч/з FTD2XX.DLL. Устройство у меня правда обнаруживалось всегда, но при работе столкнулся с некоторыми хомутами на приём. При передаче всё было класс, а вот при приёме иногда проскакивал лишний байт - 0. А потом всё работало как часы.

 

И ещё какие-то мелкие проблемы. Короче я отказался от затеи. При этом при работе ч/з VCP всё работало просто супер устойчиво. Работал с управлением потоком и всё-всё-всё. Гонял несколько суток напропалую. На максимальной скорости. Проблем небыло.

 

Конечно, это уже другой кристалл. Но что-то VCP дрова менялись 10 раз а FTD2XX по-моему не менялись. Может стоит отказаться от них и перейти на VCP? И прога универсальнее будет.

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


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

Не хочется вас огорчать. Я тоже попробовал работать правда с ft245bm ч/з FTD2XX.DLL. Устройство у меня правда обнаруживалось всегда, но при работе столкнулся с некоторыми хомутами на приём. При передаче всё было класс, а вот при приёме иногда проскакивал лишний байт - 0. А потом всё работало как часы.

 

И ещё какие-то мелкие проблемы. Короче я отказался от затеи. При этом при работе ч/з VCP всё работало просто супер устойчиво. Работал с управлением потоком и всё-всё-всё. Гонял несколько суток напропалую. На максимальной скорости. Проблем небыло.

 

Конечно, это уже другой кристалл. Но что-то VCP дрова менялись 10 раз а FTD2XX по-моему не менялись. Может стоит отказаться от них и перейти на VCP? И прога универсальнее будет.

 

 

да вот и я уже пришел к мысли что нужно переходить на VCP.

 

скажите, а как вы настраиваете именно управление потоком. что-то не нашел я.

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

 

или вы используете какой-то компонент для работы с портом.

 

если можно киньте пиримерчик именно инициализации порта и управлением потока или может где почитать ?

Заранее спасибо.

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


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

да вот и я уже пришел к мысли что нужно переходить на VCP.

 

скажите, а как вы настраиваете именно управление потоком. что-то не нашел я.

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

 

или вы используете какой-то компонент для работы с портом.

 

если можно киньте пиримерчик именно инициализации порта и управлением потока или может где почитать ?

Заранее спасибо.

 

Использую компонент из книги Агурова. http://lord-n.narod.ru/walla.html Слегка переделал его.

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


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

Использую компонент из книги Агурова. http://lord-n.narod.ru/walla.html Слегка переделал его.

 

Я привык Borland C++ Builder, поэтому использую компонент Виктора Чена из Китая (дай бог ему здоровья, классный компонент, хороший человек). Компонент находится на torry.net

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


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

Еще один компонент, под Дельфи и Билдер http://sourceforge.net/project/downloading...?group_id=76595

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


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

Могу подозревать, что VCP использует туже DLL FTD2xx и по этому если был открыт COM порт с помощью виндозы и не закрыт, то вы не получите доступ напрямую из DLL FTD2xx (исхожу из ваших тестов, лично я не проверял). Также с каждым подключением микрухи может меняться номер COM порта, что не всегда удобно (хотя есть возможность как это обойти, хотя не помню как).

Попробуйте удалить VCP и попробуйте без неё. Я работал с FTDI232BM и не разу не было проблем с подключением, разве что устройство отваливалось раза 2 и лечилось только отключением и последующим подключением микрухи. А так работает девайс на этой микрухе каждый день.

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


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

Могу подозревать, что VCP использует туже DLL FTD2xx и по этому если был открыт COM порт с помощью виндозы и не закрыт, то вы не получите доступ напрямую из DLL FTD2xx (исхожу из ваших тестов, лично я не проверял). Также с каждым подключением микрухи может меняться номер COM порта, что не всегда удобно (хотя есть возможность как это обойти, хотя не помню как).

Попробуйте удалить VCP и попробуйте без неё. Я работал с FTDI232BM и не разу не было проблем с подключением, разве что устройство отваливалось раза 2 и лечилось только отключением и последующим подключением микрухи. А так работает девайс на этой микрухе каждый день.

 

 

если порт открыт, то его уже через DLL не откроешь.

просто терминалка, сторонняя, инициализировала порт как нужно, в плане управления потоком.

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

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

 

перешел на управление через API т.е. работаю сейча с VCP все класс, запускается сразу же.

 

конечно очень бы хотелось разобраться в чем же дело, но как всегда нет времени.

всем спасибо.

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


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

2 awtoap - на счёт того что есть извращённое желание переоткрыть порт что уже открыт виндозными методами - есть программка, непомню как называется, но в принципе не суть важно - русинович вроде написал(у него на сайте её мона вроде и скачать) - тот самый русинович что книгу выпустил про внутреннее устройство винды - так вот его эта программка делает вроде хук всех запросов что идут на более низком уровне - ИОКОНТРОЛ и всё такое типа - и мона смореть что там передаётся принимается на уровне буфферов винды - по идее так же мона и вклиниваться в работу порта , но это уже к АВР никакого отношения не имеет.

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


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

VCP не использует эту DLL. Там совершенно независимый драйвер.

 

Если вы использовали BM и писали EEPROM, то должны это знать.

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


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

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

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

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

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

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

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

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

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

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