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

 
 
> LPC1768 в качестве USB-хоста, Может ли работать с USB2.0-устройствами?
Polaris
сообщение Nov 7 2011, 21:14
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



Доброго дня!

Столкнулся со следующей проблемой - слегка подправленный для работы с USB-принтером UsbHostLite для LPC1768 преподнес сюрприз. Довольно обширное число принтеров работает нормально (если не GDI, конечно). Но вот подключили клиенты HP P2055, а он просто виснет в процедуре энумерации. Никаких идей нет, разве что предположение о том, что принтер USB2.0 HighSpeed, что LPC1768 точно не поддерживает. И вообще, судя по тому, что написано в интернете, OHCI, реализованная в хосте LPC1768, не имеет никакого отношения к USB2.0. По принтерам HP информации толком не найти, они у них все исключительно USB2.0 уже тысячу лет, но при этом совершенно точно все печаталось с струйником HP5550 и более старым лазером P2015. В чем вообще может быть корень проблемы? Есть ли USB-устройства, которые принципиально не работают с хостами USB1.1, которым по сути, как я понял, и является LPC1768 несмотря на все заверения производителя? В чем искать корень проблемы - в стеке UsbHostLite или все-таки в принтере?

Спасибо за возможные ответы!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
aaarrr
сообщение Nov 7 2011, 21:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Polaris @ Nov 8 2011, 01:14) *
Есть ли USB-устройства, которые принципиально не работают с хостами USB1.1, которым по сути, как я понял, и является LPC1768 несмотря на все заверения производителя?

Стандарт допускает существование HS-устройств, не работающих в FS. Только есть одно "но" - энумерацию в FS они должны проходить в любом случае.

Цитата(Polaris @ Nov 8 2011, 01:14) *
В чем искать корень проблемы - в стеке UsbHostLite или все-таки в принтере?

На 99% в стеке. Для очистки совести можно просто воткнуть принтер в FS-порт на ПК для проверки.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Nov 8 2011, 08:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Polaris @ Nov 8 2011, 01:14) *
Но вот подключили клиенты HP P2055, а он просто виснет в процедуре энумерации. Никаких идей нет, разве что предположение о том, что принтер USB2.0 HighSpeed, что LPC1768 точно не поддерживает.


Обязана энумерация работать на FS, как минимум. И принтер почти наверняка будет работать на FS. Варианта два. Первый - модифицировать ваш проект так, чтобы он по UART выдавал внешней машине все запросы, которые МК шлет принтеру в процессе энумерации и все ответы принтера. Второй - использовать аппаратный сниффер USB, если таковой у вас есть ...
Go to the top of the page
 
+Quote Post
Polaris
сообщение Nov 8 2011, 10:16
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



Цитата(kovigor @ Nov 8 2011, 10:58) *
Обязана энумерация работать на FS, как минимум. И принтер почти наверняка будет работать на FS. Варианта два. Первый - модифицировать ваш проект так, чтобы он по UART выдавал внешней машине все запросы, которые МК шлет принтеру в процессе энумерации и все ответы принтера. Второй - использовать аппаратный сниффер USB, если таковой у вас есть ...

Это хорошая идея. Но, думаю, что все-таки нужно на живом принтере экспериментировать, а его нет. Почему есть сомнения в железе - пробовали вчера в сервисном центре P2035, на нем все работает, пробовали массу других - тоже работает, энумерация по крайней мере. Это пока единственный экземпляр, который вызвал подобные проблемы. Есть подозрение, что может быть что-то с током потребляемым от порта, у нас там стоит LM3525 в качестве супервизора тока.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Nov 8 2011, 10:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Polaris @ Nov 8 2011, 13:16) *
Это хорошая идея. Но, думаю, что все-таки нужно на живом принтере экспериментировать, а его нет. Почему есть сомнения в железе - пробовали вчера в сервисном центре P2035, на нем все работает, пробовали массу других - тоже работает, энумерация по крайней мере. Это пока единственный экземпляр, который вызвал подобные проблемы.


А, так это на одном таком принтере, другие той же модели работают нормально ? Тогда он может быть просто неисправным ...
Go to the top of the page
 
+Quote Post
Polaris
сообщение Nov 8 2011, 12:23
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



Цитата(kovigor @ Nov 8 2011, 12:20) *
А, так это на одном таком принтере, другие той же модели работают нормально ? Тогда он может быть просто неисправным ...

Да, есть такие подозрения. Наверное, стоит посмотреть, как UsbHostLite реагирует на всякие непредсказуемые ситуации, тут вроде бы писали, что отработки их там нет вообще...
Go to the top of the page
 
+Quote Post
Polaris
сообщение Aug 14 2012, 14:29
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



ЧТобы не вводить в заблуждение сообщество, отпишу. Все нормально с принтерами, просто в UsbHostLite не реализован разбор композитных устройств, коими стали многие принтеры. Проблема была, собственно в этом. Как только получили принтер и распарсили ответ - все стало очевидно.
Go to the top of the page
 
+Quote Post
ARIM
сообщение Aug 15 2012, 07:55
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 14-04-05
Из: Россия
Пользователь №: 4 130



Цитата(Polaris @ Nov 8 2011, 00:14) *
Спасибо за возможные ответы!

может в этом дело
A Solution to the dribble bit problem для USB host controller hangs on a dribble bit (LPC1769/68/66/65 only)
3.12 USB.1: USB host controller hangs on a dribble bit (LPC1769/68/66/65
only)
Introduction:
Full-/low-speed signaling uses bit stuffing throughout the packet without exception. If the
receiver sees seven consecutive ones anywhere in the packet, then a bit stuffing error has
occurred and the packet should be ignored.
The time interval just before an EOP is a special case. The last data bit before the EOP
can become stretched by hub switching skews. This is known as dribble and can lead to a
situation where dribble introduces a sixth bit that does not require a bit stuff. Therefore,
the receiver must accept a packet for which there are up to six full bit times at the port with
no transitions prior to the EOP.
Problem:
The USB host controller will hang indefinitely if it sees a dribble bit on the USB bus. It will
hang the first time a dribble bit is seen. Once it is in this state there is no recovery other
than a hard chip reset. This problem has no effect on the USB device controller.
Work-around:
None.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 07:24
Рейтинг@Mail.ru


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