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

 
 
> Проблемы С USB через микросхему FTDI
Staseas
сообщение Dec 22 2005, 16:50
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 22-12-05
Пользователь №: 12 563



Есть проблема...
Было у нас устройство подключенное посредством RS232 к компу, была программа работающая без глюков, решили перейти с помощь микросхемы FT232BM на USB порт... установили драйверы от FTDI как положено и виртуального COM порта драйверы тоже устновили.... Все работает как надо... Но есть проблема при пересылке пакета данных содержащих большое количество нулей... Начинаются сбои и часть данных из пакета теряется....Причем не после нулей а где то там в пакете дальше... Может кто сталкивался с такой проблемой??? Буду признателен за любые даже намеки из за чего это может быть...
Если не совсем понятно спросите что рассказать...
Заранее спасибо!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
zltigo
сообщение Dec 22 2005, 17:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Staseas @ Dec 22 2005, 18:50) *
и виртуального COM порта драйверы тоже устновили....

А виртуальный тоже от FTDI, или от MS встал? Если от MS, то с нми при таком применении точно проблемы - много и разных.
С полностью FTDI стеком проблем с работоспособностью не замечал.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Staseas
сообщение Dec 23 2005, 11:24
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 22-12-05
Пользователь №: 12 563



Да драйвер VCP от FTDI , родной.
Я кстати пользуюсь компонентом VaComm для работы с COM портом. И при передаче от микроконтроллера в компьютер более 200 нулей подряд возникают упомянутые сбои.. Возможно я не правильно вставил слово "пакет", лично для меня в программе это просто массив char[]... Что там глубже с ним происходит я не знаю, и не очень хочу знать. При работе через обычный COM порт никаких таких проблем не было.
Go to the top of the page
 
+Quote Post
Aleks17
сообщение Dec 23 2005, 11:42
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 238
Регистрация: 17-01-05
Из: Новосибирск
Пользователь №: 2 003



Я бы посоветовал логи снять с приёма-передачи. Например BusHound-ом - по крайней мере будет видно проблема в ПО или снаружи.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 23 2005, 13:29
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Staseas @ Dec 23 2005, 13:24) *
Я кстати пользуюсь компонентом VaComm для работы с COM портом.

Узнаю :-( - Дельфи, кем-то писанные компоненты,контроллер USB от третьих производителей,
драйвера USB, драйвера FTDI (кстати, для FTDI драйвера свежие?). Может быть все, что угодно :-(.
В этой цепочке мне меньше всего на данный момент нравится слово "компонент".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Staseas
сообщение Dec 23 2005, 15:52
Сообщение #6





Группа: Новичок
Сообщений: 3
Регистрация: 22-12-05
Пользователь №: 12 563



Цитата(Aleks17 @ Dec 23 2005, 14:42) *
Я бы посоветовал логи снять с приёма-передачи. Например BusHound-ом - по крайней мере будет видно проблема в ПО или снаружи.

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

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

Да компонент боюсь не виноват.... Он ранее работал без нареканий... Я повторюсь но все таки... Данные теряются только если пересылается много нулей подряд!!!! Ни на каких других числах этого не происходит!!! Вот в чем дело... То есть все работает как надо только если нет большой последовательности из нулей...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 23 2005, 16:00
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Staseas @ Dec 23 2005, 17:52) *
Да компонент боюсь не виноват.... Он ранее работал без нареканий...

Забыли добавить - "с другим драйвером порта...."


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
TailWind
сообщение Jan 1 2006, 23:37
Сообщение #8


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

Группа: Свой
Сообщений: 125
Регистрация: 15-11-04
Пользователь №: 1 135



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

2. Проверте совпадение BaudRate.
Лёгкое различие в частотах может приводить к таким результатам как у вас.
Может быть делитель задан неточно?
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 25 2007, 18:41
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Функция WriteFile() в USB не всегда возвращается по выводу _всех_ байтов. Независимо от режима открытия устройства (syncIO/asyncIO).
Компонент может об этом не знать. И, соответственно, не передавать повторно остаток Вашего пакета. Особенно актуально на порциях данных (т.е. пакетах char *) более, чем размер пакета USB в конкретном режиме работы (isochronouse, bulk, interrupt ....)


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:26
Рейтинг@Mail.ru


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