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

 
 
 
Reply to this topicStart new topic
> FT232 помогите понять, программирование
showone
сообщение Aug 23 2007, 11:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-07-05
Пользователь №: 6 832



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

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

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

есть подозрение что как-то нужно инициализировать порт после или перед открытием из программы.
может кто что подскажет.
заранее спасибо.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 23 2007, 12:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



А Ваша программа получает хэндл порта от CreateFile Win32? Или dll сама открывает порт?


--------------------
Go to the top of the page
 
+Quote Post
VXDRV
сообщение Aug 23 2007, 12:57
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 5-02-07
Пользователь №: 25 074



Цитата(showone @ Aug 23 2007, 17:59) *
значит так.
переходник собран на 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 - Aug 23 2007, 12:58
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 23 2007, 18:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



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

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

Конечно, это уже другой кристалл. Но что-то VCP дрова менялись 10 раз а FTD2XX по-моему не менялись. Может стоит отказаться от них и перейти на VCP? И прога универсальнее будет.
Go to the top of the page
 
+Quote Post
showone
сообщение Aug 24 2007, 06:48
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-07-05
Пользователь №: 6 832



Цитата(SasaVitebsk @ Aug 23 2007, 22:28) *
Не хочется вас огорчать. Я тоже попробовал работать правда с ft245bm ч/з FTD2XX.DLL. Устройство у меня правда обнаруживалось всегда, но при работе столкнулся с некоторыми хомутами на приём. При передаче всё было класс, а вот при приёме иногда проскакивал лишний байт - 0. А потом всё работало как часы.

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

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



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

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

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

если можно киньте пиримерчик именно инициализации порта и управлением потока или может где почитать ?
Заранее спасибо.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 24 2007, 08:46
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(showone @ Aug 24 2007, 09:48) *
да вот и я уже пришел к мысли что нужно переходить на VCP.

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

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

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


Использую компонент из книги Агурова. http://lord-n.narod.ru/walla.html Слегка переделал его.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Aug 27 2007, 05:29
Сообщение #7


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(SasaVitebsk @ Aug 24 2007, 12:46) *
Использую компонент из книги Агурова. http://lord-n.narod.ru/walla.html Слегка переделал его.


Я привык Borland C++ Builder, поэтому использую компонент Виктора Чена из Китая (дай бог ему здоровья, классный компонент, хороший человек). Компонент находится на torry.net
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Aug 27 2007, 12:29
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Еще один компонент, под Дельфи и Билдер http://sourceforge.net/project/downloading...?group_id=76595
Go to the top of the page
 
+Quote Post
awtoap
сообщение Aug 28 2007, 11:06
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 25-04-07
Пользователь №: 27 301



Могу подозревать, что VCP использует туже DLL FTD2xx и по этому если был открыт COM порт с помощью виндозы и не закрыт, то вы не получите доступ напрямую из DLL FTD2xx (исхожу из ваших тестов, лично я не проверял). Также с каждым подключением микрухи может меняться номер COM порта, что не всегда удобно (хотя есть возможность как это обойти, хотя не помню как).
Попробуйте удалить VCP и попробуйте без неё. Я работал с FTDI232BM и не разу не было проблем с подключением, разве что устройство отваливалось раза 2 и лечилось только отключением и последующим подключением микрухи. А так работает девайс на этой микрухе каждый день.
Go to the top of the page
 
+Quote Post
showone
сообщение Aug 29 2007, 13:23
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 15-07-05
Пользователь №: 6 832



Цитата(awtoap @ Aug 28 2007, 15:06) *
Могу подозревать, что VCP использует туже DLL FTD2xx и по этому если был открыт COM порт с помощью виндозы и не закрыт, то вы не получите доступ напрямую из DLL FTD2xx (исхожу из ваших тестов, лично я не проверял). Также с каждым подключением микрухи может меняться номер COM порта, что не всегда удобно (хотя есть возможность как это обойти, хотя не помню как).
Попробуйте удалить VCP и попробуйте без неё. Я работал с FTDI232BM и не разу не было проблем с подключением, разве что устройство отваливалось раза 2 и лечилось только отключением и последующим подключением микрухи. А так работает девайс на этой микрухе каждый день.



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

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

конечно очень бы хотелось разобраться в чем же дело, но как всегда нет времени.
всем спасибо.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Aug 29 2007, 13:41
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 awtoap - на счёт того что есть извращённое желание переоткрыть порт что уже открыт виндозными методами - есть программка, непомню как называется, но в принципе не суть важно - русинович вроде написал(у него на сайте её мона вроде и скачать) - тот самый русинович что книгу выпустил про внутреннее устройство винды - так вот его эта программка делает вроде хук всех запросов что идут на более низком уровне - ИОКОНТРОЛ и всё такое типа - и мона смореть что там передаётся принимается на уровне буфферов винды - по идее так же мона и вклиниваться в работу порта , но это уже к АВР никакого отношения не имеет.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 29 2007, 15:33
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



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

Если вы использовали BM и писали EEPROM, то должны это знать.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 11th July 2025 - 14:12
Рейтинг@Mail.ru


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