showone 0 23 августа, 2007 Опубликовано 23 августа, 2007 · Жалоба значит так. переходник собран на FT232RL на конце стоит ATMEGA168 со стороны компа написана программа на Delphi, использую прямое управление, т.е. работаю через DLL FTD2XX.DLL есть управление потоком через DTR/DSR. все работает ровно и хорошо. но есть такой момент. запускаю я свою программу, а она не видит устройство, т.е. не получает от него данные, иногда, еще реже получает их как-то не корректно. закрываю программу. запускаю любую терминальную программу. закрываю ее. запускаю свою программу, все работает стабильно. есть подозрение что как-то нужно инициализировать порт после или перед открытием из программы. может кто что подскажет. заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 23 августа, 2007 Опубликовано 23 августа, 2007 · Жалоба А Ваша программа получает хэндл порта от CreateFile Win32? Или dll сама открывает порт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VXDRV 0 23 августа, 2007 Опубликовано 23 августа, 2007 (изменено) · Жалоба значит так. переходник собран на 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(); Изменено 23 августа, 2007 пользователем VXDRV Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 23 августа, 2007 Опубликовано 23 августа, 2007 · Жалоба Не хочется вас огорчать. Я тоже попробовал работать правда с ft245bm ч/з FTD2XX.DLL. Устройство у меня правда обнаруживалось всегда, но при работе столкнулся с некоторыми хомутами на приём. При передаче всё было класс, а вот при приёме иногда проскакивал лишний байт - 0. А потом всё работало как часы. И ещё какие-то мелкие проблемы. Короче я отказался от затеи. При этом при работе ч/з VCP всё работало просто супер устойчиво. Работал с управлением потоком и всё-всё-всё. Гонял несколько суток напропалую. На максимальной скорости. Проблем небыло. Конечно, это уже другой кристалл. Но что-то VCP дрова менялись 10 раз а FTD2XX по-моему не менялись. Может стоит отказаться от них и перейти на VCP? И прога универсальнее будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
showone 0 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба Не хочется вас огорчать. Я тоже попробовал работать правда с ft245bm ч/з FTD2XX.DLL. Устройство у меня правда обнаруживалось всегда, но при работе столкнулся с некоторыми хомутами на приём. При передаче всё было класс, а вот при приёме иногда проскакивал лишний байт - 0. А потом всё работало как часы. И ещё какие-то мелкие проблемы. Короче я отказался от затеи. При этом при работе ч/з VCP всё работало просто супер устойчиво. Работал с управлением потоком и всё-всё-всё. Гонял несколько суток напропалую. На максимальной скорости. Проблем небыло. Конечно, это уже другой кристалл. Но что-то VCP дрова менялись 10 раз а FTD2XX по-моему не менялись. Может стоит отказаться от них и перейти на VCP? И прога универсальнее будет. да вот и я уже пришел к мысли что нужно переходить на VCP. скажите, а как вы настраиваете именно управление потоком. что-то не нашел я. т.е. инициализация порта средствами WIN API это у меня работает, но где там указать что я использую управление потоком, и как это настроить. или вы используете какой-то компонент для работы с портом. если можно киньте пиримерчик именно инициализации порта и управлением потока или может где почитать ? Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба да вот и я уже пришел к мысли что нужно переходить на VCP. скажите, а как вы настраиваете именно управление потоком. что-то не нашел я. т.е. инициализация порта средствами WIN API это у меня работает, но где там указать что я использую управление потоком, и как это настроить. или вы используете какой-то компонент для работы с портом. если можно киньте пиримерчик именно инициализации порта и управлением потока или может где почитать ? Заранее спасибо. Использую компонент из книги Агурова. http://lord-n.narod.ru/walla.html Слегка переделал его. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 27 августа, 2007 Опубликовано 27 августа, 2007 · Жалоба Использую компонент из книги Агурова. http://lord-n.narod.ru/walla.html Слегка переделал его. Я привык Borland C++ Builder, поэтому использую компонент Виктора Чена из Китая (дай бог ему здоровья, классный компонент, хороший человек). Компонент находится на torry.net Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kool 0 27 августа, 2007 Опубликовано 27 августа, 2007 · Жалоба Еще один компонент, под Дельфи и Билдер http://sourceforge.net/project/downloading...?group_id=76595 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
awtoap 0 28 августа, 2007 Опубликовано 28 августа, 2007 · Жалоба Могу подозревать, что VCP использует туже DLL FTD2xx и по этому если был открыт COM порт с помощью виндозы и не закрыт, то вы не получите доступ напрямую из DLL FTD2xx (исхожу из ваших тестов, лично я не проверял). Также с каждым подключением микрухи может меняться номер COM порта, что не всегда удобно (хотя есть возможность как это обойти, хотя не помню как). Попробуйте удалить VCP и попробуйте без неё. Я работал с FTDI232BM и не разу не было проблем с подключением, разве что устройство отваливалось раза 2 и лечилось только отключением и последующим подключением микрухи. А так работает девайс на этой микрухе каждый день. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
showone 0 29 августа, 2007 Опубликовано 29 августа, 2007 · Жалоба Могу подозревать, что VCP использует туже DLL FTD2xx и по этому если был открыт COM порт с помощью виндозы и не закрыт, то вы не получите доступ напрямую из DLL FTD2xx (исхожу из ваших тестов, лично я не проверял). Также с каждым подключением микрухи может меняться номер COM порта, что не всегда удобно (хотя есть возможность как это обойти, хотя не помню как). Попробуйте удалить VCP и попробуйте без неё. Я работал с FTDI232BM и не разу не было проблем с подключением, разве что устройство отваливалось раза 2 и лечилось только отключением и последующим подключением микрухи. А так работает девайс на этой микрухе каждый день. если порт открыт, то его уже через DLL не откроешь. просто терминалка, сторонняя, инициализировала порт как нужно, в плане управления потоком. и потом все это работало дальше, до следующего отключения. а вот как мне это сделать из моей проги, через DLL, у меня так и не получилось. программа работала только после сторонней инициализации. перешел на управление через API т.е. работаю сейча с VCP все класс, запускается сразу же. конечно очень бы хотелось разобраться в чем же дело, но как всегда нет времени. всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 29 августа, 2007 Опубликовано 29 августа, 2007 · Жалоба 2 awtoap - на счёт того что есть извращённое желание переоткрыть порт что уже открыт виндозными методами - есть программка, непомню как называется, но в принципе не суть важно - русинович вроде написал(у него на сайте её мона вроде и скачать) - тот самый русинович что книгу выпустил про внутреннее устройство винды - так вот его эта программка делает вроде хук всех запросов что идут на более низком уровне - ИОКОНТРОЛ и всё такое типа - и мона смореть что там передаётся принимается на уровне буфферов винды - по идее так же мона и вклиниваться в работу порта , но это уже к АВР никакого отношения не имеет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 29 августа, 2007 Опубликовано 29 августа, 2007 · Жалоба VCP не использует эту DLL. Там совершенно независимый драйвер. Если вы использовали BM и писали EEPROM, то должны это знать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться