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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> USB LPC2000, как работае
Golikov A.
сообщение Aug 12 2008, 17:17
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(galjoen @ Aug 12 2008, 20:40) *
По уму конечно лучше, сам так сделал. Но у меня ещё от ионистора всё это питатся может (без подключения к USB).
Но вот если мышку рассмотреть. Обычную оптическую. Она в режиме суспенд свой красный светодиод не выключает. Неужели там меньше 0.5 ма? Думаю, что больше (хотя не мерял). А кто нибудь встречал чтоб комп на мышку в суспенде ругался? Или в USB 3.0 будет? И всё это задумано с целью нас всех заставить мышки поменять?


Про 3.0 пока слухи, но там у хоста будет возможность прям линию питания отрубить. То есть будет прям физическое выключение. Я вот тоже думаю если сигнал суспенд игнорировать, всмысле никаких действий прибором не делать, так как если управления по усб нет то чего ему работать, а так прям за потребление меньше 0.5 ма не биться, то и нормально... Очень уж не охото всю перефирию глушить, а потом при пробуждении обратно инитить...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2008, 21:14
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



УРА за АКАло.. Может кому то будет полезно...

Регистр USBCTRL в котором устанавливается режим чтения и записи. Эти биты снимаются если при записи записал все байты, или при чтении все прочитал. Но если эти биты оставить (получить длину пакета и выйти, или выйти с ошибкой до окончания чтения), ЛПЦ генерит при запросах какие-то ошибки и мигом происходит Ресет шины.

Команда Сет адрес действительно для насильной установке адреса требует двойного вызова. Потому как при одинарном вызове адрес присвоится только после удачной статус фазы сетап запроса. Что гарантирует ответ АСК по старому адресу и только после этого смену адреса как требует стандарт.

Последний вопрос который меня еще терзает, это очистка клеар регистров. Кто может внести ясность?
вот из мануала

For example, if VICSoftInt = 0x0000 0005 and bit 0 has to be
cleared, VICSoftIntClear = 0x0000 0001 will accomplish this. Before the new clear
operation on the same bit in VICSoftInt using writing into VICSoftIntClear is performed in
the future, VICSoftIntClear = 0x0000 0000 must be assigned. Therefore writing 1 to any
bit in Clear register will have one-time-effect in the destination register

Это верно только про этот регистр, или любой клиар регистр надо очищать, то есть делать вот так

DEVINTCLR = (USB_DEV_CDFULL|USB_DEV_CCEMPT); //clear all command int bits
DEVINTCLR = 0x00; //restore clr register
DEVINTCLR = (USB_DEV_CDFULL|USB_DEV_CCEMPT); //clear all command int bits

иначе повторный вызов не произведет никакой очистки...

Ну и вопрос, есть какой-нибудь усб-снифер, при помощи которого можно прослушать обмен с еще несконфигуренными устройствами? До того как виндоус зарегистрировал устройство? На шине проходит один лишний ресет, хочу понять чем он вызван... а мой снифер не видит подключаемые устройства, только опознанные виндусомsad.gif((

П.С Всем спасибо кто учувствовал в дискуссии...
Go to the top of the page
 
+Quote Post
drovik
сообщение Aug 14 2008, 08:29
Сообщение #33


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 7-05-07
Пользователь №: 27 573



В текст пока не вникал, но хотелось-бы увидеть дескрипторы для начала.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 14 2008, 08:57
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(drovik @ Aug 14 2008, 12:29) *
В текст пока не вникал, но хотелось-бы увидеть дескрипторы для начала.


Зачемsmile.gif?

Почему когда спрашиваешь как в ЛПЦ задать адрес, тебе расказывают что в стандарте усб есть команда сет адрес. Почему когда спрашиваешь как организована функция отсулки данных, тебя спрашивают а дескрипторы правильные?


С этой темой разобрались уже.

1. Если не разрешено прерывание на входную конечную точку(данные от контролера к хосту), флаг не появляется в статусе.
2. Если очищать прерывания на выходную конечную точку после обработки. Можно пропустить следующий пришедший запрос, хост выдает их очень резво.
3. Если не очищать регистр USBCTRL, то недописав полные данные (в функции были пару выходов с оишбкой), это приводит в итоге к ресету на шине.

Пока не понял почему конечные точки находятся в состояние сталлед, хотя обмен дескрипторами идет уже нормальный.

И еще не выяснено как контролировать успешность отсылки данных хосту, просто флаг загружености буфера конечной точки не подходит, если начинать посылку сразу как убрался этот флаг, данные уходят неправильные...


А дескрипторы тут совершенно непричем...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 15 2008, 22:29
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет!

Извеняюсь с выбором подфорума, наверное сюда...

Кто реализовал усб на ЛПЦ2148 или подобных. Как вы реализовывали реакцию на запрос CLEAR_FEATURE?

Что то у меня часто ресет выходит...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 17 2008, 22:12
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(Golikov A. @ Aug 16 2008, 02:29) *
Всем привет!

Извеняюсь с выбором подфорума, наверное сюда...

Кто реализовал усб на ЛПЦ2148 или подобных. Как вы реализовывали реакцию на запрос CLEAR_FEATURE?

Что то у меня часто ресет выходит...


Сам нашел ответ. может кому пригодится

При ресете нашине УСБ, ЛПЦ переходит в ресетное состояние. Сбрасывает релайзы на точках, очищает буферы, делает 0 адрес, и переходит в неконфигурированное состояние. Это кристал делает сам, а не просит от разработчика. Только флаги разрешения прерываний не трогает.
В итоге я терял пару конечных точку, потому и клиар фича появлялся, и АСКать на него не давало.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:25
Рейтинг@Mail.ru


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