Pages: (2) [1] 2  ( Show unread post )

> Lenovo и USB протокол, Фигня какая-то происходит
 VxWorks Member is Offline
 Posted: 08-07-2015, 17:42 (post 1, #1106411)

Daysleeper
Forum moderator
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.

Есть идеи почему такое может происходить?
PM
Top Bottom
 Damballah Member is Offline
 Posted: 08-07-2015, 19:15 (post 2, #1106427)

Voodoo child
Group: Netlab Soldier
Group: Netlab Soldier
Posts: 13737
Warn:0%-----
Первая мысль - либо дровишки, либо чипсет, мягко выражаясь, специфический.
PM Email Poster Users Website
Top Bottom
 VxWorks Member is Offline
 Posted: 08-07-2015, 20:45 (post 3, #1106438)

Daysleeper
Forum moderator
Group: Privileged
Posts: 21927
Warn:0%-----
Драйвера на VCOM от NXP что там, что там. Чипсет вроде бы тоже не они сами создают, i7 он и в Африке i7.
PM
Top Bottom
 Damballah Member is Offline
 Posted: 08-07-2015, 21:33 (post 4, #1106440)

Voodoo child
Group: Netlab Soldier
Group: Netlab Soldier
Posts: 13737
Warn:0%-----
QUOTE (VxWorks @ 08-07-2015, 20:45)
Чипсет вроде бы тоже не они сами создают, i7 он и в Африке i7.
Ну, как бы, под i7 на сокете LGA 1150 есть, как минимум, семь чипсетов. Так что надо смотреть, что там у Делла и Фуджицу, а что у Леново, имхо. А потом уже копаться в особенностях чипсетов.
PM Email Poster Users Website
Top Bottom
 VxWorks Member is Offline
 Posted: 08-07-2015, 21:37 (post 5, #1106441)

Daysleeper
Forum moderator
Group: Privileged
Posts: 21927
Warn:0%-----
Тоже логично. Просто никогда с таким приколом не сталкивался.
PM
Top Bottom
 Lord KiRon Member is Offline
 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.
Долго воевали с производителем они проблему не нашли но подтвердили, уже вместе "наехали" на интел, те через пару месяцев проблему признали, но чинить отказались.
Возможно это все еще те ноги оттуда лезут.
PM
Top Bottom
 VxWorks Member is Offline
 Posted: 09-07-2015, 00:02 (post 7, #1106445)

Daysleeper
Forum moderator
Group: Privileged
Posts: 21927
Warn:0%-----
По крайней мере, радует то, что я не одинок :)
PM
Top Bottom
 FiL Member is Offline
 Posted: 09-07-2015, 00:25 (post 8, #1106446)

Сварливый Мозг Клуба
Group: Roots
Group: Roots
Posts: 22885
Хотел написать про дебильность USB, потом вспомнил про различные косяки с Firewire и понял, что счастья нет в принципе, а не с определенными технологиями :)
PM Email Poster ICQ AOL MSN
Top Bottom
 VxWorks Member is Offline
 Posted: 09-07-2015, 09:05 (post 9, #1106448)

Daysleeper
Forum moderator
Group: Privileged
Posts: 21927
Warn:0%-----
QUOTE (FiL @ 08-07-2015, 22:25)
Хотел написать про дебильность USB, потом вспомнил про различные косяки с Firewire и понял, что счастья нет в принципе, а не с определенными технологиями :)
Косяки есть со всем, даже с жеваным-пережеванным RS-232 :(
PM
Top Bottom
 Lexus Member is Offline
 Posted: 09-07-2015, 09:31 (post 10, #1106449)

Коллекционер
Group: Global Moders
Group: Global Moders
Posts: 10401
Блин, какие же вы маньяки ;)))) Пойду удавлюсь си шарпом ;)
PM Email Poster Users Website
Top Bottom
 VxWorks Member is Offline
 Posted: 09-07-2015, 10:58 (post 11, #1106450)

Daysleeper
Forum moderator
Group: Privileged
Posts: 21927
Warn:0%-----
QUOTE (Lexus @ 09-07-2015, 07:31)
Блин, какие же вы маньяки ;)))) Пойду удавлюсь си шарпом ;)
Дык прога на компе как раз и написана на шарпе :)
PM
Top Bottom
 Lexus Member is Offline
 Posted: 09-07-2015, 11:08 (post 12, #1106451)

Коллекционер
Group: Global Moders
Group: Global Moders
Posts: 10401
QUOTE (VxWorks @ 09-07-2015, 09:58)
QUOTE (Lexus @ 09-07-2015, 07:31)
Блин, какие же вы маньяки ;)))) Пойду удавлюсь си шарпом ;)
Дык прога на компе как раз и написана на шарпе :)
Вот умею люди красиво нагадить в душу ;))
Пойду тогда Hello World дописывать ;:))
PM Email Poster Users Website
Top Bottom
 VxWorks Member is Offline
 Posted: 09-07-2015, 11:18 (post 13, #1106452)

Daysleeper
Forum moderator
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 :D
PM
Top Bottom
 Lexus Member is Offline
 Posted: 09-07-2015, 13:38 (post 14, #1106453)

Коллекционер
Group: Global Moders
Group: Global Moders
Posts: 10401
QUOTE (VxWorks @ 09-07-2015, 10:18)
По сложности прога как раз и напоминает 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 :D
Ну всё, моя самооценка повышена ;)))
PM Email Poster Users Website
Top Bottom
 VxWorks Member is Offline
 Posted: 09-07-2015, 13:47 (post 15, #1106454)

Daysleeper
Forum moderator
Group: Privileged
Posts: 21927
Warn:0%-----
Видишь, как просто поднять твою самооценку? :laugh:
PM
Top Bottom
Topic Options Pages: (2) [1] 2