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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> USB LPC2000, как работае
amw
сообщение Aug 11 2008, 15:53
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Golikov A. @ Aug 11 2008, 15:06) *
Привет!
Вот сейчас почитал и думаю как трактовать ваши ответы? Как неуважение ко мне или как вашу некомпетентность. Вы не понимаете моих вопросов или не считаете важным понимать?
Может кто-то написать схему обарботки прерываний от усб сетап пакета? Или прокомментировать мою схему

Помнится Вы говорили что знаете USB и работали с MCU большого количества производителей.
А теперь задаете вопросы, на которые я могу только сказать, что повторять не буду, и посоветую почитать таки USB спецификацию и мануал на LPC.

Обещаное прилагаю, хотя вряд-ли Вам это поможет. В названных мною примерах это все есть.
Прикрепленные файлы
Прикрепленный файл  usb.zip ( 6.56 килобайт ) Кол-во скачиваний: 47
 


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Aug 11 2008, 15:57
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Golikov A. @ Aug 11 2008, 18:30) *
То есть СЕТАП фаза
потом должна быть дата фаза, и если эта фаза от контролера к хосту, то пока не придет пакет или сталл или не выйдет таймоут, хост не сгенерит новый сетап. Это хорошо...

А если был сетап запрос, потом контроллер хосту послал данные, и на следующую посылку от хоста к контроллеру, контроллер овтечает НАК, что будет? Хост выждет таймоут и потом сгенерит ресет на шине? Или сразу сгенерит ресет? А если накать после хендшейк (статус) фазы?

NAK-ать можно всегда (5 сек), кроме как на SETUP.
Цитата(Golikov A. @ Aug 11 2008, 18:30) *
еще один вопрос меня долго мучает
Хендшайк фаза если это сетап пакет без данных или выходная посылка, то контроллер получив данные должен послать в ответ пакет нулевой длинны, как хендшайк фаза.
А если это входная посылка? то получив данные хост посылает пакет нулевой длинны? или он удовольствуется АСКом на данные в дата фазе? физически посылка есть от хоста в контроллер в хендшейк фазе? и главное если эта посылка есть, регистрируется ли эта посылка ЛПЦом как посылка данных?

При входной (для хоста) посылке хост шлёт пакет данных 0й длины с маркером DATA1. На него тоже можно слать NAK (до ACK).
Цитата(Golikov A. @ Aug 11 2008, 18:30) *
Да!, и правда ли необходимо если посылка завершается посылкой пакета максимальной длинны буфера конечной точки, послать еще в конце всего пакета нулевой длинны? А если это однопакетная посылка, но длинной в макс размер буффера, то надо ли слать пакет нулевой длинны в конце? или это какое то неверное толкование стандарта? Важен размер буффера конечной точки или важен максимальный размер буффера для данной реализации стандарта, то есть 1.0, 2.0, фулл спид, лов спид?

Важен размер буфера контрольного канала (EP0), описанный в дескрипторе DEVICE. В случае кратности данных его размеру здесь все рекомендуют слать пакет 0й длины. Но лично я в таком случае делаю так:
1. Смотрю (на NAK-ах), что хост хочет от меня. Для этого определяю на что шлются NAK-и.
2. Если на IN, то шлю 0й пакет.
3. Если на OUT, то шлю ACK (завершаю транзакцию)

Делаю так, т.к. сталкивался с тем, что разрешённый к отправке пакет данных 0й длины воспринимался хостом как подтверждение для следующей SETUP-ной транзакции. Т.е. хост разбирался с длиной данных и без 0-го пакета, завершал эту транзакцию, начинал следующую (слал SETUP и IN), и получал разрешённый к отправке 0й пакет, оставшийся от предыдущей транзакции. И считал его управляющим чтением.

В стандарте как-то расплывчато сказано, что этот 0й пакет может потребоваться, а может и не потребоваться. Мне кажется, что 0й пакет не требуется если хост знает длину данных, которые д.б. переданы ему. А если не знает, то ориентируется по 0-му пакету (или по пакету не максимальной длины). Вроде логично. Но на железке не проверял. Всё както некогда. М.б. вы разберётесь? Тогда отпишите.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 11 2008, 17:21
Сообщение #18


Гуру
******

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



Цитата(galjoen @ Aug 11 2008, 19:57) *
NAK-ать можно всегда (5 сек), кроме как на SETUP.

При входной (для хоста) посылке хост шлёт пакет данных 0й длины с маркером DATA1. На него тоже можно слать NAK (до ACK).

Важен размер буфера контрольного канала (EP0), описанный в дескрипторе DEVICE. В случае кратности данных его размеру здесь все рекомендуют слать пакет 0й длины. Но лично я в таком случае делаю так:
1. Смотрю (на NAK-ах), что хост хочет от меня. Для этого определяю на что шлются NAK-и.
2. Если на IN, то шлю 0й пакет.
3. Если на OUT, то шлю ACK (завершаю транзакцию)

Делаю так, т.к. сталкивался с тем, что разрешённый к отправке пакет данных 0й длины воспринимался хостом как подтверждение для следующей SETUP-ной транзакции. Т.е. хост разбирался с длиной данных и без 0-го пакета, завершал эту транзакцию, начинал следующую (слал SETUP и IN), и получал разрешённый к отправке 0й пакет, оставшийся от предыдущей транзакции. И считал его управляющим чтением.

В стандарте как-то расплывчато сказано, что этот 0й пакет может потребоваться, а может и не потребоваться. Мне кажется, что 0й пакет не требуется если хост знает длину данных, которые д.б. переданы ему. А если не знает, то ориентируется по 0-му пакету (или по пакету не максимальной длины). Вроде логично. Но на железке не проверял. Всё както некогда. М.б. вы разберётесь? Тогда отпишите.



есть подозраение что если возвращаешь даные той длинны что запрашивал хост, то пакет не нужен, А если с длинной меньшей заданной, то нужен в случае кратности. Просто в кристалах типа ЛПЦ и прочих с контроллером усб внутри, уровень пидов пакетов недоступен, кристал многое от механизма берет на себя. Я даже не могу выбрать с дата1 или дата0 уйдет пакет нулевой длинны, это делает сам кристалл... Так что я все равно не смогу разобраться...

Спасибо ваши ответы мне помогли.

Цитата(amw @ Aug 11 2008, 19:53) *
Помнится Вы говорили что знаете USB и работали с MCU большого количества производителей.
А теперь задаете вопросы, на которые я могу только сказать, что повторять не буду, и посоветую почитать таки USB спецификацию и мануал на LPC.

Обещаное прилагаю, хотя вряд-ли Вам это поможет. В названных мною примерах это все есть.


Да вы правы, ваш пример мне действительно не очень интересен. Вы не смогли ответить ни на один вопрос до этого с первого раза, даже сейчас вы ответили не на поставленный вопрос, а на что-то опять вами понятое...

Сделали ваш прибор на основе примера с ошибками, и считаете это нормальным подходом? Потом будете создавать темы из раздела, после 5 часов работы, система перестает отвечать на запросы, и обсуждать проблемы винды и юникса... По вашим ответам ясно что полного понимания работы вы не имеете, поэтому и опыт ваш не очень интересен!
Go to the top of the page
 
+Quote Post
amw
сообщение Aug 11 2008, 20:48
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Golikov A. @ Aug 11 2008, 20:21) *
Сделали ваш прибор на основе примера с ошибками, и считаете это нормальным подходом?

Может укажете мне, где в примерах от NXP 100%-ная ошибка? А в моем файле?
Или Вы считаете ошибками все, что не преподносит Вам готовое решение Вашей задачи? Смею Вас огорчить, пример - это не решение, а всего лиш подсказка.
Как-то Ваши вопросы не укладываются в Ваши же утверждения об Вашем опыте и знаниях всего и вся.

[DELETED]

Сообщение отредактировал IgorKossak - Aug 12 2008, 04:56


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Axel
сообщение Aug 12 2008, 05:41
Сообщение #20


Местный
***

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



Цитата(Golikov A. @ Aug 11 2008, 21:21) *
...Спасибо ваши ответы мне помогли....
Да вы правы, ваш пример мне действительно не очень интересен. Вы не смогли ответить ни на один вопрос до этого с первого раза, даже сейчас вы ответили не на поставленный вопрос, а на что-то опять вами понятое...

... По вашим ответам ясно что полного понимания работы вы не имеете, поэтому и опыт ваш не очень интересен!


Оценка Вашего профессионального уровня - дело Ваших работодателей или заказчиков, но с воспитанием и культурой общения у Вас точно не очень...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2008, 08:49
Сообщение #21


Гуру
******

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



Уважаемый galjoen

Не подскажете ли мне еще по стандарту, состояния суспенд и ресет это состояния которые вызываются не посылками а состоянием шины.

Если хост требует суспенда от устройства (может ли он это делать), обязано ли устройство переходить в суспенд режим? А если не обязано и не хочет, что оно должно ответить? Как подать сигнал невозможносоти операции?

хочу понять чтобы понять есть ли у ЛПЦ такие возможности smile.gif)))))))
Go to the top of the page
 
+Quote Post
galjoen
сообщение Aug 12 2008, 10:17
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Golikov A. @ Aug 12 2008, 12:49) *
Уважаемый galjoen

Не подскажете ли мне еще по стандарту, состояния суспенд и ресет это состояния которые вызываются не посылками а состоянием шины.

Лично моё мнение, что суспенд создан ТОЛЬКО: 1. для экономии электроэнергии потребляемой устройством от USB и 2. для индикации, что нет связи с хостом. В суспенд устройство переходит в случае неполучения SOF от хоста в течении 3 мс. Т.е. при наличии внешнего питания - если связь с хостом пропала, а действительно суспенд или просто выдернули шнур в этом случае различить со стороны устройства невозможно. Различие будет только при последующем включении устройства. Из суспенда выйдет без сброса настроек. А при втыкании пройдёт через ресет, сетадрес и т.д.
Цитата(Golikov A. @ Aug 12 2008, 12:49) *
1. Если хост требует суспенда от устройства (может ли он это делать), обязано ли устройство переходить в суспенд режим?
2. А если не обязано и не хочет, что оно должно ответить? Как подать сигнал невозможносоти операции?

3. хочу понять чтобы понять есть ли у ЛПЦ такие возможности smile.gif)))))))

1. Хост не может требовать суспенд от устройства. По крайней мере хост не может отличить суспенд и рабочий режим устройства без посылки к.л. маркеров. Но если он посылает маркеры, то сам не в режиме суспенд. Фактически стандарт требует, чтобы при отсутствии к.л. маркеров от хоста (в т.ч. SOF) в течении 3 мс устройство потребляло не более 0.5 ма от USB. А при последующем выходе из суспенда по стандарту устройству будет дано время на пробуждение (реально выдерживается не всеми хостами).

2. Непонятно зачем. Но есть сиглал пробуждения от устройства - ресуме. В win есть галка разрешающая устройству будить хост и весь компьютер. Я не пользовался т.к. не было таких задач.

3. Возможности такие д.б. Даже если их нет, то всё это реализуемо програмно. Самое сложное тут потреблять 0.5 ма от USB (при отсутствии внешнего питания). Обязательно приходится выключать тактовый генератор.

А вообще я согласен с Axel, и призываю отказаться от оценок уровней и прочего флуда в этой теме.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2008, 10:36
Сообщение #23


Гуру
******

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



Цитата(galjoen @ Aug 12 2008, 14:17) *
Лично моё мнение, что суспенд создан ТОЛЬКО: 1. для экономии электроэнергии потребляемой устройством от USB и 2. для индикации, что нет связи с хостом. В суспенд устройство переходит в случае неполучения SOF от хоста в течении 3 мс. Т.е. при наличии внешнего питания - если связь с хостом пропала, а действительно суспенд или просто выдернули шнур в этом случае различить со стороны устройства невозможно. Различие будет только при последующем включении устройства. Из суспенда выйдет без сброса настроек. А при втыкании пройдёт через ресет, сетадрес и т.д.

1. Хост не может требовать суспенд от устройства. По крайней мере хост не может отличить суспенд и рабочий режим устройства без посылки к.л. маркеров. Но если он посылает маркеры, то сам не в режиме суспенд. Фактически стандарт требует, чтобы при отсутствии к.л. маркеров от хоста (в т.ч. SOF) в течении 3 мс устройство потребляло не более 0.5 ма от USB. А при последующем выходе из суспенда по стандарту устройству будет дано время на пробуждение (реально выдерживается не всеми хостами).

2. Непонятно зачем. Но есть сиглал пробуждения от устройства - ресуме. В win есть галка разрешающая устройству будить хост и весь компьютер. Я не пользовался т.к. не было таких задач.

3. Возможности такие д.б. Даже если их нет, то всё это реализуемо програмно. Самое сложное тут потреблять 0.5 ма от USB (при отсутствии внешнего питания). Обязательно приходится выключать тактовый генератор.

А вообще я согласен с Axel, и призываю отказаться от оценок уровней и прочего флуда в этой теме.


3. В этом и проблема, совершенно нет возможности переходить всей схемой в малое потребление. Поэтому и думал можно ли как нибудь от этого отказаться, при этом не нарушить стандарт...

Про флуд я только за! Вы еще не видели неотредактирвоаных постов.
Моя позиция если знаешь овтет, - ответь, если не знаешь не высказывайся... А высказываться не разобравшись в вопросе - не уважать себя и колег.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Aug 12 2008, 10:49
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Golikov A. @ Aug 12 2008, 14:36) *
3. В этом и проблема, совершенно нет возможности переходить всей схемой в малое потребление. Поэтому и думал можно ли как нибудь от этого отказаться, при этом не нарушить стандарт...

Решение есть, я пользуюсь, но подсказывать не буду т.к. оно принадлежит фирме и я обещал не разглашать. Но если получше изучите стандарт - можете додуматься сами. Но и в этом случае прошу особо не распостраняться... Конкурентное преимущество всётаки.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2008, 12:24
Сообщение #25


Гуру
******

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



Цитата(galjoen @ Aug 12 2008, 14:49) *
Решение есть, я пользуюсь, но подсказывать не буду т.к. оно принадлежит фирме и я обещал не разглашать. Но если получше изучите стандарт - можете додуматься сами. Но и в этом случае прошу особо не распостраняться... Конкурентное преимущество всётаки.



Я заинтригованsmile.gif)) Не это не тот уровень разработки не будут посягать на ваши наработкиsmile.gif,
я думаю на начальных этапах игнорировать этот сигнал... Это же для экономии энергии, в винде хост еще же не умеет отключать устройтсва из-за преувеличеного потребления (надеюсьsmile.gif))). Читал где то что усб 3.0 так будет уметь, но до него надо еще дожить...

Спасибо.



Практически все вопросы по ЛПЦ выяснил, остался последний.
Надо ли обнулять Клеар регистры после(перед) записью в них.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 12 2008, 12:29
Сообщение #26


Гуру
******

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



Цитата(Golikov A. @ Aug 12 2008, 16:24) *
Это же для экономии энергии, в винде хост еще же не умеет отключать устройтсва из-за преувеличеного потребления (надеюсьsmile.gif))).

Хаб у меня отключает со свистом. Правда, только при КЗ.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2008, 12:49
Сообщение #27


Гуру
******

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



Цитата(aaarrr @ Aug 12 2008, 16:29) *
Хаб у меня отключает со свистом. Правда, только при КЗ.


Предохранитель? Или вы мониторите порты на потребление?

Вот вопрос%( не использовать ваш хаб, или по уму запарится и сделать суспенд режим... Эм... что же выбратьsmile.gif)))) Учитывая внутренее использование, не использовать хаб победилоsmile.gif!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 12 2008, 12:52
Сообщение #28


Гуру
******

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



Цитата(Golikov A. @ Aug 12 2008, 16:49) *
Предохранитель? Или вы мониторите порты на потребление?

Хаб не мой, он в монитор встроен. А отключает винда с криком: "Power surge on port X".
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2008, 13:00
Сообщение #29


Гуру
******

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



Цитата(aaarrr @ Aug 12 2008, 16:52) *
Хаб не мой, он в монитор встроен. А отключает винда с криком: "Power surge on port X".


Понятно, будем делать по уму значит...
Go to the top of the page
 
+Quote Post
galjoen
сообщение Aug 12 2008, 16:40
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Golikov A. @ Aug 12 2008, 17:00) *
Понятно, будем делать по уму значит...

По уму конечно лучше, сам так сделал. Но у меня ещё от ионистора всё это питатся может (без подключения к USB).
Но вот если мышку рассмотреть. Обычную оптическую. Она в режиме суспенд свой красный светодиод не выключает. Неужели там меньше 0.5 ма? Думаю, что больше (хотя не мерял). А кто нибудь встречал чтоб комп на мышку в суспенде ругался? Или в USB 3.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 - 10:48
Рейтинг@Mail.ru


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