Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вопрос по USB. Адресован в основном тем,кто работал с LPC2xxx (+)

Отправлено mayn 08 марта 2008 г. 18:21


У меня микроконтроллер LPC2148. Долго изучал документацию, но так и не получил внятного ответа на вопрос о том, когда же микроконтроллер переключает PID с DATA 0 на DATA 1. Вот, кстати, отладочные сообщения, передаваемые моей платой через COM-порт. Не знаю, сработает ли программа, если у меня в фазе передачи данных будет нечетное число OUT (в SET_ADDRESS и SET_CONFIGURATION их нет, поэтому работает). Если при этом на каждом пакете PID меняется с DATA 0 на DATA 1, то последний OUT будет с DATA 1 и подтверждение(пустой пакет) IN будет с DATA 0, что запрещено в спецификации USB для Control Transfers. И еще: как сбросить PID в DATA 0 перед Bulk передачей?

SETUP SetupStage(read setup packet from ep0)
80 06 00 01 00 00 40 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) DEVICE_DESCRIPTOR
DataInStage(write data to ep0)
12 01 10 01 00 00 00 40 51 C2 03 13 00 01 04 20 48 01
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
00 05 01 00 00 00 00 00
(REQUEST_STANDARD) SET_ADDRESS
StatusInStage(write empty packet to ep0)
IN (StatusInStage packet was already sent, IN confirms arrival

SETUP SetupStage(read setup packet from ep0)
80 06 00 01 00 00 12 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) DEVICE_DESCRIPTOR
DataInStage(write data to ep0)
12 01 10 01 00 00 00 40 51 C2 03 13 00 01 04 20 48 01
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 02 00 00 09 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) CONFIGURATION_DESCRIPTOR
DataInStage(write data to ep0)
09 02 20 00 01 01 00 80 32
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 03 00 00 FF 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
04 03 09 04
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 48 03 09 04 FF 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
1A 03 44 00 45 00 4D 00 4F 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 02 00 00 FF 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) CONFIGURATION_DESCRIPTOR
DataInStage(write data to ep0)
09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06 50 62 07 05 82 02 40 00 00 07 05 02 02 40 00 00
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 03 00 00 FF 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
04 03 09 04
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 20 03 09 04 FF 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
28 03 4B 00 65 00 69 00 6C 00 20 00 4D 00 43 00 42 00 32 00 31 00 34 00 30 00 20 00 4D 00 65 00
6D 00 6F 00 72 00 79 00
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 03 00 00 FF 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
04 03 09 04
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 20 03 09 04 FF 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
28 03 4B 00 65 00 69 00 6C 00 20 00 4D 00 43 00 42 00 32 00 31 00 34 00 30 00 20 00 4D 00 65 00
6D 00 6F 00 72 00 79 00
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 01 00 00 12 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) DEVICE_DESCRIPTOR
DataInStage(write data to ep0)
12 01 10 01 00 00 00 40 51 C2 03 13 00 01 04 20 48 01
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 02 00 00 09 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) CONFIGURATION_DESCRIPTOR
DataInStage(write data to ep0)
09 02 20 00 01 01 00 80 32
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 02 00 00 20 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) CONFIGURATION_DESCRIPTOR
DataInStage(write data to ep0)
09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06 50 62 07 05 82 02 40 00 00 07 05 02 02 40 00 00
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 03 00 00 02 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
04 03
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 00 03 00 00 04 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
04 03 09 04
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 48 03 09 04 02 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
1A 03
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
80 06 48 03 09 04 1A 00
(REQUEST_STANDARD) GET_DESCRIPTOR (TO_DEVICE) STRING_DESCRIPTOR
DataInStage(write data to ep0)
1A 03 44 00 45 00 4D 00 4F 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00
IN DataInStage(write data to ep0)
OUT StatusOutStage(read empty packet from ep0)

SETUP SetupStage(read setup packet from ep0)
00 09 01 00 00 00 00 00
(REQUEST_STANDARD) SET_CONFIGURATION
StatusInStage(write empty packet to ep0)
IN (StatusInStage packet was already sent, IN confirms arrival


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 13:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru