Отговори на тема  [ 29 мнения ]  Отиди на страница 1, 2  Следваща
Проблем с УСБ комуникация 
Автор Съобщение
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пет Авг 07, 2009 4:58 pm
Мнения: 273
Мнение Проблем с УСБ комуникация
Здравейте, става дума за комуникация между линукски компютър и ПИК18Ф45К50.

Случва се понякога, например след седмица работа, компютърът да спре да приема данни от ПИК-а. Изпращането си върви. Затваряне и отваряне наново на КОМ-порта не помага.

От страна на ПИК-а всичко изглежда да си е наред - състоянието на УСБ е attached (0x20 в библиотеката на Майкрочип), приема си и си изпраща успешно данни.

Някой дали има идея какъв е проблемът?


Пет Юли 29, 2016 2:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение Re: Проблем с УСБ комуникация
Как хем пик-а изпраща и приема успешно, а в същото време компа не приема? Отделно аз лично не бих разчитал че усб комуникация ще работи перфектно със седмици и месеци, дори всичко да е перфектно :)


Пет Юли 29, 2016 3:06 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пет Авг 07, 2009 4:58 pm
Мнения: 273
Мнение Re: Проблем с УСБ комуникация
Dimitar написа:
Как хем пик-а изпраща и приема успешно, а в същото време компа не приема? Отделно аз лично не бих разчитал че усб комуникация ще работи перфектно със седмици и месеци, дори всичко да е перфектно :)


Ако знаех как става това, нямаше да пускам тема. Не съм знаел иначе, че USB е толкова ненадеждно.


Пет Юли 29, 2016 3:59 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение Re: Проблем с УСБ комуникация
Едно разклащане на усб съединителя след много включвания и изключвания и комуникацията е заминала...


Пет Юли 29, 2016 4:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: Проблем с УСБ комуникация
Не може ли ПИКът да ресетне усб-то си, ако няма валиден трафик 5 минути?


Пет Юли 29, 2016 4:09 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пет Авг 07, 2009 4:58 pm
Мнения: 273
Мнение Re: Проблем с УСБ комуникация
stefan63 написа:
Не може ли ПИКът да ресетне усб-то си, ако няма валиден трафик 5 минути?


Да, може, това е добра идея! Дано помогне нещо подобно.


Пет Юли 29, 2016 4:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 8:04 pm
Мнения: 2663
Местоположение: София / Велико Търново
Мнение Re: Проблем с УСБ комуникация
По принцип като забие драйвера, трябва да се изключи PIC-а и да се енумерира наново. Направи му някакъв фийдбек от компа че е приел успешно данните. Като спре фийдбека, накарай контролера да си изключи за момент USBто. Би трябвало да стане.

_________________
https://github.com/slav4ocom/


Пет Юли 29, 2016 4:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение Re: Проблем с УСБ комуникация
Ползвам ПИКове, но не и такива с УСБ. Когато требва FT230XQ, свършва работата...


Пет Юли 29, 2016 4:15 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Проблем с УСБ комуникация
Това, което може да ти причини проблеми, са части от програмата, които не са изградени като стейт машина т. е. като влезе там му отнема много време за обработка! Това чупи USB-то, но реално получаваш някакви данни от буфера, понеже ги пълни в прекъсване. Освен това ги и изпращаш, но реално понеже вече се е строшила връзката, компа не ги получава(приложението, което си пуснал, не ги получава!). Ситуацията с attach-deattach също беше много тънка, но нещо в момента не помня...
Поздрави!

_________________
www.elkran.com


Вто Авг 02, 2016 10:24 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: Проблем с УСБ комуникация
marcuka68 написа:
stefan63 написа:
Не може ли ПИКът да ресетне усб-то си, ако няма валиден трафик 5 минути?


Да, може, това е добра идея! Дано помогне нещо подобно.


Девайса може да се откаче като си изключи пулъпа и после да се закачи отново. Това обаче не е добра идея, освен ако софтуерът не е достатъчно добър. А поне на бозата повечето не е. След разкачане на девайс, приложенията трябва да си затворят всички хендъли иначе СОМ порта и драйвера му си стоят и при последващо закачане на устройството не се монтират.

Да се губи само едната посока досега не съм виждал никога нито под боза, нито под лайнукс. Най-вероятно пик-а си е омазал я прекъсване, я фифо, я нещо друго та затова се губи само един ендпоинт. По стандарт може да се stall-ва и да се забранява отделен ендпоинт, обаче това не ползва при хендшейк. Вместо това обикновено ако контролера не е готов да предава или получава просто си остава празно или съответно пълно фифо-то и си изключва прекъсванията за този конкретен ендпоинт. За хоста този ендпоит изглежда busy и той само си го полира периодично. Няма трафик обаче.


Вто Авг 02, 2016 8:01 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: Проблем с УСБ комуникация
Как тогава трябва да се излезе от ситуацията, без човешка намеса ?


Сря Авг 03, 2016 2:15 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: Проблем с УСБ комуникация
Ситуацията в случая не е ясна... Изглежда като да е проблем от страна на пик-а, а не на хоста.

Иначе ако трябва да се рестартира връзката с хоста, приложенията под windows трябва да слухтят за PnP нотификациите за device disconnect и да си затварят хендълите преди девайса да се е закачил отново. Под лайнукс няма нужда да се реагира незабавно, но за да се възстанови комуникацията също трябва да се мине през затваряне/отваряне.


Сря Авг 03, 2016 2:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 8:04 pm
Мнения: 2663
Местоположение: София / Велико Търново
Мнение Re: Проблем с УСБ комуникация
Ами те пиковете се шашкат много лесно. Случвало се е дори поялника като си пускам да ресетва от смущения.
По принцип е така както е написал miro_atc трябва и windows приложението да се дисконектне. Понякога обаче поради калпава програма от моята страна комуникацията забива и се е случвало програмата да не може да се откачи. Става дума за терминална програма Docklight Давам и дисконект и чак като откача буксата тогава дисконектва. Така че за мен правилния ред е: установяване на липса на комуникация -> ресет на PIC-а и изчакване няколко сек. -> Disconnect на windows приложението, от съответния витуален COM, -> и след малко повече секунди от на PIC-a reconnect към същия COM.

_________________
https://github.com/slav4ocom/


Сря Авг 03, 2016 7:06 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: Проблем с УСБ комуникация
Пиковете се смущават ,колкото другите, може би - и по-малко, обикновено е проблемна ниво устройство/проект.
Цитат:
Така че за мен правилния ред е: установяване на липса на комуникация -> ресет на PIC-а и изчакване няколко сек. -> Disconnect на windows приложението, от съответния витуален COM, -> и след малко повече секунди от на PIC-a reconnect към същия COM.

Звучи почти достоверно.
Добрата система би трябвало да допусне и ресет на комуникационния канал по инициатива на коя да е от страните.
При УАРТ това е относително лесно , системните функции са достатъчни - и без да имаш достъп до регистрите и битовете. Виртуалният порт дава ли допълнителни функции с които да ресетнеш УСБ порта по-надълбоко?


Сря Авг 03, 2016 7:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 8:04 pm
Мнения: 2663
Местоположение: София / Велико Търново
Мнение Re: Проблем с УСБ комуникация
Не съм човъркал толкова навътре. Моето приложение не показва дали се е дисконектнало, реално (имам си и моя програма). Това което ти казваш явно го няма в тази терминална програма (Docklight). Тя все пак е направена да работи и с COM1 хардуерния.
А иначе COM порта си остава в списъка, докато не се дисконектне. Т.е. ако откача PIC-а ако не съм се дисконектнъл го има като наличен. Има си го в device manager. Драйвера за FTDI или други чипове не зная как се държи.

_________________
https://github.com/slav4ocom/


Сря Авг 03, 2016 7:58 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 29 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни