NetLab · Rules · Torrent Tracker · Have a problem? · Eng/Rus | Help Search Members Gallery Calendar |
Welcome Guest ( Log In | Register | Validation ) | Resend Validation Email |
Pages: (2) [1] 2 > ( Show unread post ) |
Lenovo и USB протокол, Фигня какая-то происходит |
|
Posted: 08-07-2015, 17:42
(post 1, #1106411)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
В двух словах так - для одного из своих проектов, я написал программку, которая гоняет данные туда-сюда по USB. Основная часть работает на процессоре NXP LPC4357, который подключен по USB 2.0 через VCOM к компу. На компе бегает примитивная программка, которая мониторит появление данных на COM порту (ну лень мне было писать CDC драйвера, так что обойдусь обычным виртуальным последовательным портом, благо что это часть USB спецификации). Как только данные обнаружены, она их скачивает и отправляет назад NXP благодарственный пакет данных. Вот и все, ничего сложного. Маразм заключается в том, что на моем компе Lenovo это все работает только если подключить плату с NXP к порту USB 3.0. А если к USB 2.0, то все очень быстро вешается. С другими компами (пробовал на Dell и Fujitsu) такой проблемы нет в принципе, только на Lenovo. Есть идеи почему такое может происходить? |
||
|
Posted: 08-07-2015, 19:15
(post 2, #1106427)
|
||
Voodoo child Group: Netlab Soldier Posts: 13737 Warn:0% |
Первая мысль - либо дровишки, либо чипсет, мягко выражаясь, специфический. |
||
|
Posted: 08-07-2015, 20:45
(post 3, #1106438)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
Драйвера на VCOM от NXP что там, что там. Чипсет вроде бы тоже не они сами создают, i7 он и в Африке i7. |
||
|
Posted: 08-07-2015, 21:33
(post 4, #1106440)
|
||
Voodoo child Group: Netlab Soldier Posts: 13737 Warn:0% |
|
||
|
Posted: 08-07-2015, 21:37
(post 5, #1106441)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
Тоже логично. Просто никогда с таким приколом не сталкивался. |
||
|
Posted: 08-07-2015, 23:15
(post 6, #1106444)
|
||
Part time flamer Group: Read Only Posts: 7784 Warn:0% |
Давно это было, лет 5 назад, но у нас на работе какие-то две серии интеловских чипсетов для лэптопов отказывались работать с USB VCOM чипом кажется от Silabs (хотя возможно Cypress, но скорее нет, точно не помню) если при этом была подключена USB камера, причем если просто так то еще хрен с ним, а вот на некотороых Делл-ах при этом встроенная камера была подключена внутри по USB. Долго воевали с производителем они проблему не нашли но подтвердили, уже вместе "наехали" на интел, те через пару месяцев проблему признали, но чинить отказались. Возможно это все еще те ноги оттуда лезут. |
||
|
Posted: 09-07-2015, 00:02
(post 7, #1106445)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
По крайней мере, радует то, что я не одинок |
||
|
Posted: 09-07-2015, 00:25
(post 8, #1106446)
|
||
Сварливый Мозг Клуба Group: Roots Posts: 22885 |
Хотел написать про дебильность USB, потом вспомнил про различные косяки с Firewire и понял, что счастья нет в принципе, а не с определенными технологиями |
||
|
Posted: 09-07-2015, 09:05
(post 9, #1106448)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
|
||
|
Posted: 09-07-2015, 09:31
(post 10, #1106449)
|
||
Коллекционер Group: Global Moders Posts: 10401 |
Блин, какие же вы маньяки ))) Пойду удавлюсь си шарпом |
||
|
Posted: 09-07-2015, 10:58
(post 11, #1106450)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
|
||
|
Posted: 09-07-2015, 11:08
(post 12, #1106451)
|
||||
Коллекционер Group: Global Moders Posts: 10401 |
Пойду тогда Hello World дописывать ;:)) |
||||
|
Posted: 09-07-2015, 11:18
(post 13, #1106452)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
По сложности прога как раз и напоминает Hello World Это же не дремучие 80-е, когда для того, чтобы отловить символ на FIFO последовательного порта надо было писать обработчик прерываний (какая-то из функций 21-го прерывания, что ли?). Тут же все просто - создаешь объект типа SerialPort, называешь его, скажем, MyPort. А потом все вообще примитивно: 1. Открываем порт MyPort.Open(); 2. Проверям, есть ли там что-то BytesReady = MyPort.BytesToRead; 3. Если есть, то BufferPos += MyPort.Read(RxBuffer, BufferPos, BytesReady); 4. Ну и в конце MyPort.Close(); Понятное дело, что ошибки открытия порта, чтения и т.п. надо отрабатывать, но в целом оно вот так примитивно. Не сложнее, чем Hello World |
||
|
Posted: 09-07-2015, 13:38
(post 14, #1106453)
|
||
Коллекционер Group: Global Moders Posts: 10401 |
|
||
|
Posted: 09-07-2015, 13:47
(post 15, #1106454)
|
||
Daysleeper Group: Privileged Posts: 21927 Warn:0% |
Видишь, как просто поднять твою самооценку? |
||
Pages: (2) [1] 2 > |