Forums -> Флейм -> Lenovo и USB протокол
| Full Version

VxWorks
В двух словах так - для одного из своих проектов, я написал программку, которая гоняет данные туда-сюда по USB. Основная часть работает на процессоре NXP LPC4357, который подключен по USB 2.0 через VCOM к компу. На компе бегает примитивная программка, которая мониторит появление данных на COM порту (ну лень мне было писать CDC драйвера, так что обойдусь обычным виртуальным последовательным портом, благо что это часть USB спецификации). Как только данные обнаружены, она их скачивает и отправляет назад NXP благодарственный пакет данных. Вот и все, ничего сложного.

Маразм заключается в том, что на моем компе Lenovo это все работает только если подключить плату с NXP к порту USB 3.0. А если к USB 2.0, то все очень быстро вешается. С другими компами (пробовал на Dell и Fujitsu) такой проблемы нет в принципе, только на Lenovo.

Есть идеи почему такое может происходить?
Damballah
Первая мысль - либо дровишки, либо чипсет, мягко выражаясь, специфический.
VxWorks
Драйвера на VCOM от NXP что там, что там. Чипсет вроде бы тоже не они сами создают, i7 он и в Африке i7.
Damballah
QUOTE (VxWorks @ 08-07-2015, 20:45)
Чипсет вроде бы тоже не они сами создают, i7 он и в Африке i7.
Ну, как бы, под i7 на сокете LGA 1150 есть, как минимум, семь чипсетов. Так что надо смотреть, что там у Делла и Фуджицу, а что у Леново, имхо. А потом уже копаться в особенностях чипсетов.
VxWorks
Тоже логично. Просто никогда с таким приколом не сталкивался.
Lord KiRon
Давно это было, лет 5 назад, но у нас на работе какие-то две серии интеловских чипсетов для лэптопов отказывались работать с USB VCOM чипом кажется от Silabs (хотя возможно Cypress, но скорее нет, точно не помню) если при этом была подключена USB камера, причем если просто так то еще хрен с ним, а вот на некотороых Делл-ах при этом встроенная камера была подключена внутри по USB.
Долго воевали с производителем они проблему не нашли но подтвердили, уже вместе "наехали" на интел, те через пару месяцев проблему признали, но чинить отказались.
Возможно это все еще те ноги оттуда лезут.
VxWorks
По крайней мере, радует то, что я не одинок :)
FiL
Хотел написать про дебильность USB, потом вспомнил про различные косяки с Firewire и понял, что счастья нет в принципе, а не с определенными технологиями :)
VxWorks
QUOTE (FiL @ 08-07-2015, 22:25)
Хотел написать про дебильность USB, потом вспомнил про различные косяки с Firewire и понял, что счастья нет в принципе, а не с определенными технологиями :)
Косяки есть со всем, даже с жеваным-пережеванным RS-232 :(
Lexus
Блин, какие же вы маньяки ;)))) Пойду удавлюсь си шарпом ;)
VxWorks
QUOTE (Lexus @ 09-07-2015, 07:31)
Блин, какие же вы маньяки ;)))) Пойду удавлюсь си шарпом ;)
Дык прога на компе как раз и написана на шарпе :)
Lexus
QUOTE (VxWorks @ 09-07-2015, 09:58)
QUOTE (Lexus @ 09-07-2015, 07:31)
Блин, какие же вы маньяки ;)))) Пойду удавлюсь си шарпом ;)
Дык прога на компе как раз и написана на шарпе :)
Вот умею люди красиво нагадить в душу ;))
Пойду тогда Hello World дописывать ;:))
VxWorks
По сложности прога как раз и напоминает 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
Lexus
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
Ну всё, моя самооценка повышена ;)))
VxWorks
Видишь, как просто поднять твою самооценку? :laugh:
Lexus
QUOTE (VxWorks @ 09-07-2015, 12:47)
Видишь, как просто поднять твою самооценку? :laugh:
:laugh: :laugh: Это хорошо)
goka
VxWorks, Lexus вы, того, не умничайте себе тут! :wink: - не на Хабре!

На NL, имхо, традиции: философские :drag: , да мировоззренческие :beer:
Lexus
QUOTE (goka @ 16-07-2015, 10:28)
VxWorks, Lexus вы, того, не умничайте себе тут! :wink: - не на Хабре!

На NL, имхо, традиции: философские :drag: , да мировоззренческие :beer:
Я уж точно не умничал ;)))
VxWorks
QUOTE (Lexus @ 16-07-2015, 12:05)
QUOTE (goka @ 16-07-2015, 10:28)
VxWorks, Lexus вы, того, не умничайте себе тут! :wink: - не на Хабре!

На NL, имхо, традиции: философские :drag: , да мировоззренческие :beer:
Я уж точно не умничал ;)))
А я так вообще дурак :D:
goka
:kuschel:
та и я не зудю...
Siget
Вот так и рубят хорошие начинания на корню. Только Лексус с Ворксом захотели открыть на НетЛабе филиал Винграда, а их сразу по мордасам :)
VxWorks
Если учесть, что я под Винду никогда в жизни не программировал (и сейчас, в общем-то, не собираюсь), то филиал тут бы был знатный :diablo:
Siget
QUOTE (VxWorks @ 16-07-2015, 23:19)
Если учесть, что я под Винду никогда в жизни не программировал (и сейчас, в общем-то, не собираюсь), то филиал тут бы был знатный :diablo:
Так и винград к винде имеет очень опосредованное отношение ;) . Воркс, ты первый раз слышишь об этом форуме? :actu: Он по возрасту не уступает НетЛабу, когда-то был очень популярен, да и сейчас вроде жизнь ещё теплится... :drag: http://forum.vingrad.ru/
VxWorks
Не-а не слышал. Да и я программер весьма специфический, специализируются на встраиваемых системах, а такое там не обсуждают, похоже :)
Я обычно на форумах производителей микропроцессоров ошиваюсь - TI, Fujitsu, Freescale и, с недавних пор - NXP.