Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы С USB через микросхему FTDI
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Staseas
Есть проблема...
Было у нас устройство подключенное посредством RS232 к компу, была программа работающая без глюков, решили перейти с помощь микросхемы FT232BM на USB порт... установили драйверы от FTDI как положено и виртуального COM порта драйверы тоже устновили.... Все работает как надо... Но есть проблема при пересылке пакета данных содержащих большое количество нулей... Начинаются сбои и часть данных из пакета теряется....Причем не после нулей а где то там в пакете дальше... Может кто сталкивался с такой проблемой??? Буду признателен за любые даже намеки из за чего это может быть...
Если не совсем понятно спросите что рассказать...
Заранее спасибо!!!
zltigo
Цитата(Staseas @ Dec 22 2005, 18:50) *
и виртуального COM порта драйверы тоже устновили....

А виртуальный тоже от FTDI, или от MS встал? Если от MS, то с нми при таком применении точно проблемы - много и разных.
С полностью FTDI стеком проблем с работоспособностью не замечал.
Staseas
Да драйвер VCP от FTDI , родной.
Я кстати пользуюсь компонентом VaComm для работы с COM портом. И при передаче от микроконтроллера в компьютер более 200 нулей подряд возникают упомянутые сбои.. Возможно я не правильно вставил слово "пакет", лично для меня в программе это просто массив char[]... Что там глубже с ним происходит я не знаю, и не очень хочу знать. При работе через обычный COM порт никаких таких проблем не было.
Aleks17
Я бы посоветовал логи снять с приёма-передачи. Например BusHound-ом - по крайней мере будет видно проблема в ПО или снаружи.
zltigo
Цитата(Staseas @ Dec 23 2005, 13:24) *
Я кстати пользуюсь компонентом VaComm для работы с COM портом.

Узнаю :-( - Дельфи, кем-то писанные компоненты,контроллер USB от третьих производителей,
драйвера USB, драйвера FTDI (кстати, для FTDI драйвера свежие?). Может быть все, что угодно :-(.
В этой цепочке мне меньше всего на данный момент нравится слово "компонент".
Staseas
Цитата(Aleks17 @ Dec 23 2005, 14:42) *
Я бы посоветовал логи снять с приёма-передачи. Например BusHound-ом - по крайней мере будет видно проблема в ПО или снаружи.

Спасибо за совет, а какие есть аналоги BusHound .. я человек ленивый и долго кряки искать лень... Ну да ладно уже пятница надо домой идти и забыть все проблемы (и вам того же)... На след неделе возится буду...

Цитата(zltigo @ Dec 23 2005, 16:29) *
В этой цепочке мне меньше всего на данный момент нравится слово "компонент".

Да компонент боюсь не виноват.... Он ранее работал без нареканий... Я повторюсь но все таки... Данные теряются только если пересылается много нулей подряд!!!! Ни на каких других числах этого не происходит!!! Вот в чем дело... То есть все работает как надо только если нет большой последовательности из нулей...
zltigo
Цитата(Staseas @ Dec 23 2005, 17:52) *
Да компонент боюсь не виноват.... Он ранее работал без нареканий...

Забыли добавить - "с другим драйвером порта...."
TailWind
1. Попробуйте в настройках передающего нули Com порта поставить два стоп бита вместо одного

2. Проверте совпадение BaudRate.
Лёгкое различие в частотах может приводить к таким результатам как у вас.
Может быть делитель задан неточно?
amw
Функция WriteFile() в USB не всегда возвращается по выводу _всех_ байтов. Независимо от режима открытия устройства (syncIO/asyncIO).
Компонент может об этом не знать. И, соответственно, не передавать повторно остаток Вашего пакета. Особенно актуально на порциях данных (т.е. пакетах char *) более, чем размер пакета USB в конкретном режиме работы (isochronouse, bulk, interrupt ....)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.