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

 
 
> USB - AT91SAM7A3, интерфейс USB на данном девайсе
shrek
сообщение Jan 29 2009, 13:17
Сообщение #1


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

Группа: Участник
Сообщений: 125
Регистрация: 1-12-08
Из: г. Орел
Пользователь №: 42 126



Суть проблемы состоит в том что, (слава всем Святым удалось сконфигурировать данный девайс, запустить ФАПЧ на 96 МГц, контроллер прерываний!!! и прочие нужные настройки, обеспечивающие нормальное функционирование контроллера) когда я на этой платке подключаю (благо есть возможность) с помощью ноги PB1 резистор подтягивающий шину D+ к +3,3 вольтам комп мне присылает запрос в виде набора байтов.
Конкретно 80 06 00 01 00 00 40 00 3E FC C3 0D C1 B8 69 2E.
Возникает вопрос как обработать данную последовательность байтов?...
Обратился к источнику "Агуров Интерфейс USB практика использования и программирования".
показалось что 8006 - это запрос дескриптора устройства, а 0001 - это что то связанное с очисткой девайся USB контроллера...
А остальные байты?... непонятно... В скачанной спецификации USB с офсайта не нашел или плохо искал... По крайней мере мне так показалось что там этого нет...
Вот и прошу помощи) Уважаемые Гуру форума направте пожалуйста на нужные источники для успешного освоения девайса USB и протокола USB)
Заранее спасибо)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
shrek
сообщение Feb 24 2009, 10:59
Сообщение #2


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

Группа: Участник
Сообщений: 125
Регистрация: 1-12-08
Из: г. Орел
Пользователь №: 42 126



теперь вопрос в другом... что должен содержать в себе дескриптор устройства?)

Конкретно параметры
Код
unsigned char bcdUSBL;              //версия спецификации USB в формате BCD
     unsigned char bcdUSBH;              //версия спецификации USB в формате BCD
     unsigned char bDeviceClass;         //код класса устройства USB
     unsigned char bDeviceSubclass;      //код подкласса устройства USB
     unsigned char bDeviceProtocol;      //код протокола USB
     unsigned char idVendorL;            //идентификатор изготовителя устройства
     unsigned char idVendorH;            //идентификатор изготовителя устройства
     unsigned char idProductL;           //идентификатор продукта
     unsigned char idProductH;           //идентификатор продукта
     unsigned char bcdDeviceL;           //номер версии устройства в формате BCD
     unsigned char bcdDeviceH;           //номер версии устройства в формате BCD
     unsigned char iManufacture;         //индекс дескриптора строки описывающей  изготовителя
     unsigned char iProduct;             //индекс дескриптора строки описывающей  продукт
     unsigned char iSerialNumber;        //индекс дескриптора строки описывающей  серийный номер устройства
     unsigned char bNumConfigurations;   //количество возможных конфигураций устройства



и еще я ему пытаюсь отослать дескриптор устройства 2 байта отослать удается
дальше хост сбрасывает шину и все снова...

по библиотекам (спасибо sergeeff) параметры
Код
     unsigned char bDeviceClass;         //код класса устройства USB
     unsigned char bDeviceSubclass;      //код подкласса устройства USB
     unsigned char bDeviceProtocol;      //код протокола USB

равны нулю

для HID устройств
(я пытаюсь для начала мышку реализовать)

судя по библиотекам первым младший байт отправлять не надо...

в общем я хосту пытаюсь отправить дескриптор устройства
Код
static const struct USB_DEVICE_DESCRIPTOR
     {
     unsigned char bLenth;               //0x12
     unsigned char bDescriptorType;      //0x01
     unsigned short int bcdUSBL;         //0x0200
     unsigned char bDeviceClass;         //0x00
     unsigned char bDeviceSubclass;      //0x00
     unsigned char bDeviceProtocol;      //0x00
     unsigned char bMaxPacketSize0;      //0x08
     unsigned short int idVendor;        //0x03EB
     unsigned short int idProduct;       //0x6200
     unsigned short int bcdDevice;       //0x0100
     unsigned char iManufacture;         //0x00
     unsigned char iProduct;             //0x00
     unsigned char iSerialNumber;        //0x00
     unsigned char bNumConfigurations;   //0x01

после того как девайс отправит 2ые 8 байт, то есть последнее что передает это bcdDevice, следует сброс шины и все начинается заново.
первые 8 байт девайс без проблем передает, далее следует подтверждение приема я передаю следующие 8 байт, далее следует сброс шины и все снова...???
Go to the top of the page
 
+Quote Post
amw
сообщение Feb 24 2009, 12:16
Сообщение #3


Знающий
****

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



Цитата(shrek @ Feb 24 2009, 12:59) *
теперь вопрос в другом... что должен содержать в себе дескриптор устройства?)

Ниже выглядит правильно. Если с выравниеванием все в порядке, то вроде нормально.
Цитата
и еще я ему пытаюсь отослать дескриптор устройства 2 байта отослать удается
дальше хост сбрасывает шину и все снова...

Как два байта? Отсылать нужно по размеру конечной точки, или сколько есть если есть меньше чем размер конечной точки.
например есть дескриптор устройства 18 байт длиной. Тогда отсылается он в три приема: 8 + 8 + 2.
Как в AT91SAM7A3 я не знаю, а в SAM7S, если нужно отослать данные длиной, кратной размеру конечной точки, то после отрпавления последней порции и получения подтверждения нужно послать еще ноль байт.
Цитата
в общем я хосту пытаюсь отправить дескриптор устройства
Код
static const struct USB_DEVICE_DESCRIPTOR
     {
     unsigned char bLenth;               //0x12
     unsigned char bDescriptorType;      //0x01
     unsigned short int bcdUSBL;         //0x0200
     unsigned char bDeviceClass;         //0x00
     unsigned char bDeviceSubclass;      //0x00
     unsigned char bDeviceProtocol;      //0x00
     unsigned char bMaxPacketSize0;      //0x08
     unsigned short int idVendor;        //0x03EB
     unsigned short int idProduct;       //0x6200
     unsigned short int bcdDevice;       //0x0100
     unsigned char iManufacture;         //0x00
     unsigned char iProduct;             //0x00
     unsigned char iSerialNumber;        //0x00
     unsigned char bNumConfigurations;   //0x01

после того как девайс отправит 2ые 8 байт, то есть последнее что передает это bcdDevice, следует сброс шины и все начинается заново.
первые 8 байт девайс без проблем передает, далее следует подтверждение приема я передаю следующие 8 байт, далее следует сброс шины и все снова...???

Что-то математика не сходится. "после того как девайс отправит 2ые 8 байт, то есть последнее что передает это bcdDevice". 2 * 8 = 16, т.е. последним будет iProduct.
У Вас с выравниванием структуры все в порядке? Она должна быть упакованной.


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

Сообщений в этой теме
- shrek   USB - AT91SAM7A3   Jan 29 2009, 13:17
- - mempfis_   Цитата(shrek @ Jan 29 2009, 17:17) Конкре...   Jan 29 2009, 13:50
- - shrek   Спасибо за ответ) Я вчера тоже понял в чем суть пе...   Jan 30 2009, 07:51
|- - mempfis_   Цитата(shrek @ Jan 30 2009, 10:51) Спасиб...   Jan 30 2009, 08:11
- - Zayac   Для атмела существуют примеры кода по работе с USB...   Jan 30 2009, 08:03
- - shrek   В общем вопрос еще такой возник... Вот этот дескри...   Feb 10 2009, 09:53
|- - aaarrr   Цитата(shrek @ Feb 10 2009, 12:53) Или же...   Feb 10 2009, 11:30
- - shrek   после отправки каждого пакета по идее от хоста дол...   Feb 10 2009, 12:55
|- - aaarrr   Цитата(shrek @ Feb 10 2009, 15:55) после ...   Feb 10 2009, 13:22
- - shrek   То есть получается использовать USB девайс и при э...   Feb 10 2009, 14:06
- - aaarrr   Почему? Просто обрабатывайте BUSRES как надо.   Feb 10 2009, 14:09
- - shrek   Вроде бы девайс аппаратно обрабатывает сброс?... п...   Feb 10 2009, 14:21
|- - aaarrr   Цитата(shrek @ Feb 10 2009, 17:21) при чт...   Feb 10 2009, 14:28
- - shrek   МММ... В книжке Редькина этого бита нет в регистре...   Feb 10 2009, 14:30
|- - aaarrr   Цитата(shrek @ Feb 10 2009, 17:30) МММ......   Feb 10 2009, 14:35
- - shrek   ну не совсем в помойке) да в даташите этот бит в р...   Feb 10 2009, 14:37
|- - aaarrr   Цитата(shrek @ Feb 10 2009, 17:37) ну не ...   Feb 10 2009, 14:40
- - shrek   Все-таки непонятна работа USB девайса Я запрещаю в...   Feb 19 2009, 08:24
|- - aaarrr   Цитата(shrek @ Feb 19 2009, 11:24) и все ...   Feb 19 2009, 09:25
- - shrek   А вот этого я как раз и не учитывал.... то есть ф...   Feb 19 2009, 09:47
|- - aaarrr   Цитата(shrek @ Feb 19 2009, 12:47) то ест...   Feb 19 2009, 09:57
- - shrek   будем пробовать по тому как что то получается) Спа...   Feb 19 2009, 10:06
- - shrek   Кое что выяснилось... После, как ни странно, трех ...   Feb 19 2009, 11:53
|- - aaarrr   Цитата(shrek @ Feb 19 2009, 14:53) хотя у...   Feb 19 2009, 12:03
- - shrek   я сбрасывал бит RXSETUP если длинна равна 0. но он...   Feb 19 2009, 13:01
- - aaarrr   Еще забыли FEN поставить: КодAT91C_BASE_UDP->U...   Feb 19 2009, 13:43
- - shrek   так яж этот бит ставлю при сбросе шины Кодif ...   Feb 19 2009, 14:07
- - aaarrr   Да, не заметил. Тогда проверьте, что у Вас i == 0....   Feb 19 2009, 14:10
- - shrek   к вопросам по глобальности переменных я пока не по...   Feb 19 2009, 14:22
- - sergeeff   На сайте Atmel'a появилась свежая версия библи...   Feb 20 2009, 10:11
- - shrek   В принципе я понял почему конфигурационный пакет н...   Feb 24 2009, 08:43
- - shrek   Ссори правильно последний байт отсылает iProduct в...   Feb 24 2009, 12:48
- - shrek   Форумчане... В общем после нескольких "экспер...   Feb 25 2009, 14:30
- - shrek   после установки адреса необходимо отослать нулевые...   Feb 26 2009, 08:55
- - aaarrr   Да, нужно.   Feb 26 2009, 10:25
- - shrek   перед установкой адреса или после?... если после у...   Feb 26 2009, 10:54
- - aaarrr   Нужно отправить ZLP, дождаться TXCOMP, и уже после...   Feb 26 2009, 12:14
- - shrek   после того как принял 00 05 01 00 00 00 00 00 я от...   Feb 26 2009, 14:08
- - shrek   В общем я понял суть моей проблемы... при обработк...   Feb 27 2009, 10:00


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

 


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


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