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

 
 
8 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> FT245R работает со сбоями
galjoen
сообщение Feb 16 2009, 19:41
Сообщение #61


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(n_bogoyavlensky @ Feb 16 2009, 22:10) *
Так, а что конкретно отключить, а потом задействовать?
Последовательный порт или USB Serial Convertor?
После выбора из списка "Отключить" и того и другого винда предлагает перезагрузиться...
Может, я не там отключаю?

Судя по тому, что IOCTL к хабу из юзермоде вызывается, я предложил бы вам попробовать отключить-включить соответствующий "корневой USB концентратор". Тот в который воткнут ваш девайс. Его можно найти по тому, что после втыкания вашего девайса, во вкладке питание появляется XX ма (возможно и название Serial.. - непомню), соответствующее вашему девайсу. Кстати очень интересно, а после сбоя там эта цифра продолжает оставаться?
Цитата(n_bogoyavlensky @ Feb 16 2009, 22:10) *
SOFа нету, пропадает он после сбоя, хорошо это вижу smile.gif
USBDP - "1",
USBDN - "0",
PWREN# - "1".

Т. е., конвертор спит, и хост ему ничего не шлёт...

Ну всё указывает на мою версию, но девайс не пропадает из списка...
Цитата(n_bogoyavlensky @ Feb 16 2009, 22:10) *
Т. е., для возникновения сбоя совсем не обязательно наличие огромного пускового тока 30 А AC-DC моего прожектора...

Чтоб возникла сингфазная помеха достаточно не всю вилку, а только ОДИН её контакт в розетку втыкать.
Go to the top of the page
 
+Quote Post
Седой
сообщение Feb 17 2009, 09:08
Сообщение #62


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата(n_bogoyavlensky @ Feb 17 2009, 00:10) *
Последовательный порт или USB Serial Convertor?
После выбора из списка "Отключить" и того и другого винда предлагает перезагрузиться...


На самом деле можно любой - USB Serial Convertor является родительским устройством для устройства последовательного порта, а требование перезагрузиться - привет от разработчиков драйверов FTDI.


Цитата(galjoen @ Feb 17 2009, 00:41) *
Ну всё указывает на мою версию, но девайс не пропадает из списка...


По вашей версии должен произойти detach - но устройство в списке - значит произошел attach + последующая реэнумерация устройства + работает SOF. Но SOF нет, вывод - версия не верна.

Скорее всего произошла следующая ситуация: из-за ошибки на линии хаб сделал disable порта, к которому подключено устройство - статус порта можно прочитать из драйвера и сделать определенные действия по выходу из такой ситуации -действия не произведены.
Go to the top of the page
 
+Quote Post
koluna
сообщение Feb 17 2009, 12:41
Сообщение #63


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(galjoen @ Feb 16 2009, 22:41) *
Судя по тому, что IOCTL к хабу из юзермоде вызывается, я предложил бы вам попробовать отключить-включить соответствующий "корневой USB концентратор". Тот в который воткнут ваш девайс. Его можно найти по тому, что после втыкания вашего девайса, во вкладке питание появляется XX ма (возможно и название Serial.. - непомню), соответствующее вашему девайсу. Кстати очень интересно, а после сбоя там эта цифра продолжает оставаться?


Продолжает оставаться. 100 мА у меня. Я даже "Обновить" нажимал...

Далее.
1. При неработающем приложении (порт не открыт) отключаю и задействую обратно "Корневой USB-концентратор" и мой конвертор после этого не работает! Приходится дёргать за шнурок...

2. При работающем приложении (порт открыт и идёт обмен) после отключения и задействования ... винда предлагает перезагрузиться. Соответственно отключение и задействование ... без перезагрузки никакого влияния на устройство не оказывают.

Это к вопросу о том, чтобы попробовать после сбоя отключить и задействовать...

Цитата(Седой @ Feb 17 2009, 12:08) *
Напоминаю, что перезагрузиться предлагается только при открытом порте, внезависимости от того был сбой или нет...


По вашей версии должен произойти detach - но устройство в списке - значит произошел attach + последующая реэнумерация устройства + работает SOF. Но SOF нет, вывод - версия не верна.

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


С помощью D2XX можно это всё сделать?
Я не понимаю почему приложение наглухо виснет до передёргивания шнурка?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 17 2009, 14:37
Сообщение #64


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Седой @ Feb 17 2009, 12:08) *
По вашей версии должен произойти detach - но устройство в списке - значит произошел attach + последующая реэнумерация устройства + работает SOF. Но SOF нет, вывод - версия не верна.

По моей версии из-за синхфазной помехи происходит detach и всё. Никакого attach после этого не было. В своё время я с этим разбирался - вешал сниффер на хаб и смотрел какие сообщения он шлёт. Так вот: в аналогичном по симптомам случае, хаб говорил что устройство извлечено из него И ВСЁ. По моей версии сингфазная помеха приводит к тому, что при ОТСУТСТВИИ обмена на шине обе линии и D+ и D- на короткое время =0 становятся (т.е. никаких ошибок нет). Вроде 16-ти полноскоростных бит достаточно. И хаб об отключении девайса сообщает, а вот о последующем подключении почему-то не сообщает. И всё - девайс потерянным оказывается.
Только сейчас подумал - а м.б. у топикстаркера HIGH спид девайс?!? Там вроде подругому. Я с HIGH спид не разбирался - пока не надо было. М.б. из-за этого из списка он не пропадает?
Цитата(Седой @ Feb 17 2009, 12:08) *
Скорее всего произошла следующая ситуация: из-за ошибки на линии хаб сделал disable порта, к которому подключено устройство - статус порта можно прочитать из драйвера и сделать определенные действия по выходу из такой ситуации -действия не произведены.

Мне это кажется крайне маловероятным. Этож какая помеха д.б. чтобы 3 попытки перепосылки собой закрыть!

Кстати всё это легко проверить. Если просто девайс подключить и никакого обмена с ним не вести, а вот выключателем-то пощёлкать. И в таких условиях отключение с переходом в слип проверить. Если обмена с девайсом никакого не будет, а девайс всё равно отключится, то версия об ошибках сама-собой отпадёт.
Go to the top of the page
 
+Quote Post
Седой
сообщение Feb 17 2009, 14:59
Сообщение #65


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата(n_bogoyavlensky @ Feb 17 2009, 17:41) *
Далее.
1. При неработающем приложении (порт не открыт) отключаю и задействую обратно "Корневой USB-концентратор" и мой конвертор после этого не работает! Приходится дёргать за шнурок...

Ну точно FTDI накосячил.

Цитата(n_bogoyavlensky @ Feb 17 2009, 17:41) *
С помощью D2XX можно это всё сделать?
Я не понимаю почему приложение наглухо виснет до передёргивания шнурка?

Попробуйте. Они документируют функции FT_CyclePort, FT_ResetPort, FT_ResetDevice.
Про FT_CyclePort так и пишут:
"The effect of this function is the same as disconnecting then reconnecting the device from USB. Possible use of this function is situations where a fatal error has occurred and it is difficult, or not possible, to recover without unplugging and replugging the USB cable. ... "

PS to n_bogoyavlensky. Отредактируйте своё сообщение - в качестве цитаты привели не моё высказывание.
Go to the top of the page
 
+Quote Post
stoker
сообщение Feb 17 2009, 15:06
Сообщение #66


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 469



У вас все устройство питается от УСБ? Сколько хавает? Мож попробовать внешний источник?
Go to the top of the page
 
+Quote Post
Седой
сообщение Feb 17 2009, 15:14
Сообщение #67


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата(galjoen @ Feb 17 2009, 19:37) *
Мне это кажется крайне маловероятным. Этож какая помеха д.б. чтобы 3 попытки перепосылки собой закрыть!


При чем тут 3 перепосылки, я говорю об ошибках Babble and Loss of Activity
Go to the top of the page
 
+Quote Post
_3m
сообщение Feb 17 2009, 17:12
Сообщение #68


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(galjoen @ Feb 17 2009, 17:37) *
По моей версии из-за синхфазной помехи происходит detach и всё. Никакого attach после этого не было. В своё время я с этим разбирался - вешал сниффер на хаб и смотрел какие сообщения он шлёт. Так вот: в аналогичном по симптомам случае, хаб говорил что устройство извлечено из него И ВСЁ. По моей версии сингфазная помеха приводит к тому, что при ОТСУТСТВИИ обмена на шине обе линии и D+ и D- на короткое время =0 становятся (т.е. никаких ошибок нет). Вроде 16-ти полноскоростных бит достаточно. И хаб об отключении девайса сообщает, а вот о последующем подключении почему-то не сообщает.

снял сниффером логи при сбое и при выдергивании.
Сравните
[attachment=29818:ft232bm_...se_fault.html] - ft232bm сбой от помехи (6294) во время обмена, устройство в девайс менеджере присутствует и числится исправным даже после обновления
[attachment=29819:ft232bm_..._Removal.html] - вытаскивание шнурка во время обмена
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 17 2009, 18:15
Сообщение #69


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Седой @ Feb 17 2009, 18:14) *
При чем тут 3 перепосылки, я говорю об ошибках Babble and Loss of Activity

Т.е. о появление ложного SOP как следствие помехи.
Но это д.б. помеха которая заставит ОБА ПРОВОДА В ВИТОЙ ПАРЕ поменять своё состояние на ПРОТИВОПОЛОЖНОЕ И РАЗНОЕ. D+ должен изменить состояние с 1 на 0 и ОДНОВРЕМЕННО D- с 0 на 1. Что это за помеха такая???
Гораздо более вероятно, что под влиянием помехи ОБА провода в одинаковое состояние перейдут. Было D+ =1, D- =0, а станет D+ =0 и D- =0. И всё это продлится 2.5 микросекунды (вполне нормальная помеха) т.е. 30 бит на фул спид, а не 16 как я писал. Иначе это вроде ложный EOP будет, а там ничего страшного не произойдёт.
Но конечно всё это пока только рассуждения. Нужно реальные данные посмотреть. Что там хаб в на GET_STATUS вернул? Чему равно слово wPortStatus после ошибки?
Когда я с этим разбирался (с помощью снифера), там вроде PORT_CONNECTION=0 был, но за давностью лет могу и напутать. А м.б. у меня тогда другой случай был.
Хорошо бы если бы топикстартер у себя сниффером посмотрел.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 17 2009, 19:39
Сообщение #70


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(_3m @ Feb 17 2009, 20:12) *
снял сниффером логи при сбое и при выдергивании.

Что-то я не понял ничего. Ваш снифер видимо данные не показывает. Мне лично SnoopyPro нравится. Он халявный и хороший - рекомендую скачать и пользоваться. Единственный недостаток - логи отправлять нельзя/у меня что-то не получается. Но самому смотреть самое то.
1. На хаб в который девайс будете вставлять его натравите.
2. Хаб в диспетчере устройст выключите/включите.
3. Пакеты к хабу он начнёт показывать (штук 30), но вы их пока не смотрите (что-то у меня чтобы посмотреть останавливать приходится).
4. Вставте ваш девайс в порт. При этом ещё штук 30 пакетов пройдёт.
5. Вытащите (ещё 30) и теперь пакеты смотрите.
Другой вариант - сбоя дождитесь.
Интересовать вас должен собственно:
SetupPacket
a3 00 00 00 0x 00 04 00 (где x N порта) - это GET_STATUS к хабу. Хаб в ответ должен 4 байта вернуть (0400 - длина). Биты в этих байтах - состояние (и изменение состояния) данного порта. Об этом в главе 11 написано. Вот значение именно этих битов нас и интересуют.
А у вас какое-то огромное число пакетов в логе. Там видимо и к девайсу пакеты в куче. Тут что-то в районе 100 пакетов быть должно всего. И это с учётом включения самого хаба.
Go to the top of the page
 
+Quote Post
Седой
сообщение Feb 17 2009, 21:03
Сообщение #71


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата(galjoen @ Feb 17 2009, 23:15) *
...Иначе это вроде ложный EOP будет, а там ничего страшного не произойдёт....

Кроме как в конце фрейма, перед стартом следующего, что приводит к disable порт.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 17 2009, 21:42
Сообщение #72


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Седой @ Feb 18 2009, 00:03) *
Кроме как в конце фрейма, перед стартом следующего, что приводит к disable порт.

Где вы это прочитали? Ссылку если можно (глава и пункт). Я что-то ничего такого про EOP не знаю. Да это и совершенно не логично. Это, наоборот, ложный SOP действует так как вы описали.
Go to the top of the page
 
+Quote Post
Седой
сообщение Feb 17 2009, 21:52
Сообщение #73


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата(galjoen @ Feb 18 2009, 02:42) *
Где вы это прочитали? Ссылку если можно (глава и пункт). Я что-то ничего такого про EOP не знаю. Да это и совершенно не логично. Это, наоборот, ложный SOP действует так как вы описали.


USB 2.0
11.2.5 EOF1 and EOF2 Timing Points
...At the EOF2 point, any port that has upstream connectivity will be disabled as a babbler....
Go to the top of the page
 
+Quote Post
_3m
сообщение Feb 17 2009, 22:08
Сообщение #74


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(galjoen @ Feb 17 2009, 22:39) *
Интересовать вас должен собственно:
SetupPacket
a3 00 00 00 0x 00 04 00 (где x N порта) - это GET_STATUS к хабу. Хаб в ответ должен 4 байта вернуть (0400 - длина). Биты в этих байтах - состояние (и изменение состояния) данного порта. Об этом в главе 11 написано. Вот значение именно этих битов нас и интересуют.

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

В ответ на Get Port Status к хабу (a3 00 00 00 номер_порта 04 00)
возвращаются данные 01 01 02 00
В сответствии с таблицами 11-20 и 11-21 получается:

wPortStatus :
* A device is present on this port
* This port is not in the Powered-off state

wPortChange :
* Over-Current Status has changed

сразу после этого посылается Clear Port Feature - C_PORT_ENABLE (23 01 00 11 00 01 00 04)
затем вечно и безуспешно долбит Sync Reset Pipe and Clear Stall
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 17 2009, 22:51
Сообщение #75


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Седой @ Feb 18 2009, 00:52) *
USB 2.0
11.2.5 EOF1 and EOF2 Timing Points
...At the EOF2 point, any port that has upstream connectivity will be disabled as a babbler....

Но там-же написано, что хаб как-раз EOP не дождался, а конец кадра уже наступает... Т.е. именно SOP ложный был.
Смысл (как я понял) там такой: если хаб всё ещё в состоянии WFEOP (т.е. получил SOP и EOP ожидает) в момент EOF2 (завершения одномиллисекундного кадра - скоро уже следующий SOF прийдёт) - вот тогда хаб disable порт и делает.

А вы как поняли? Только жел-но по русски.

Цитата(_3m @ Feb 18 2009, 01:08) *
В ответ на Get Port Status к хабу (a3 00 00 00 номер_порта 04 00)
возвращаются данные 01 01 02 00
В сответствии с таблицами 11-20 и 11-21 получается:

wPortStatus :
* A device is present on this port
* This port is not in the Powered-off state

wPortChange :
* Over-Current Status has changed

Что-то у меня совсем другие данные получаются. 01 01 - это значит wPortStatus=b0000000100000001. Т.е. начиная с младшего бита:
b0=1 - устройство присутствует на этом порте
b1=0 - порт заблокирован!
b2=0 - не в суспенде
b3=0 - сверхтока нет
b4=0 - сигнала сброса (Port_Reset) нет
b8=1 - на этот порт питание подано
b9=0 - full спид девайс подсоединён к этому порту
Аналогично для wPortChange=b0000000000000010
b0=0 - нет изменения в состоянии соединения
b1=1 - произошло изменение в заблокировании/разблокировании порта
b2 и т.д. =0 - не произошло больше никаких изменений.
Цитата(_3m @ Feb 18 2009, 01:08) *
сразу после этого посылается Clear Port Feature - C_PORT_ENABLE (23 01 00 11 00 01 00 04)

Тут вы видимо что-то напутали. Что за килобайт данных (00 04 в конце)?

Если больше ничего не попутано, то вроде выходит, что действительно это не то случай, который у меня был. У меня в wPortStatus b0=0. В этом случае похоже "Седой" прав. Действительно babble произошёл (лишний SOP). Теперь нужно подумать как с этим бороться...
Go to the top of the page
 
+Quote Post

8 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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