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

 
 
> 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
сообщение Jan 30 2009, 07:51
Сообщение #2


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

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



Спасибо за ответ)
Я вчера тоже понял в чем суть первых восьми байт)
Но непонятки на счет вторых восьми байт остаются...
и поле wLenght = 40 00 что оно может означать?... В спецификации это число байт для передачи... куда?... 4000 это 16 килобайт)))

Как пишет Агуров 00 01 это есть wValue
но... старший байт это есть тип дескриптора... то есть 01 - Стандартный дескриптор устройства... но почему то он на месте младшего байта...
я все посылки писал в массив и первые 8 байт стабильно 80 06 00 01 00 00 40 00 ничего больше

Сообщение отредактировал shrek - Jan 30 2009, 07:52
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Jan 30 2009, 08:11
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(shrek @ Jan 30 2009, 10:51) *
Спасибо за ответ)
Я вчера тоже понял в чем суть первых восьми байт)
Но непонятки на счет вторых восьми байт остаются...
и поле wLenght = 40 00 что оно может означать?... В спецификации это число байт для передачи... куда?... 4000 это 16 килобайт)))

Как пишет Агуров 00 01 это есть wValue
но... старший байт это есть тип дескриптора... то есть 01 - Стандартный дескриптор устройства... но почему то он на месте младшего байта...
я все посылки писал в массив и первые 8 байт стабильно 80 06 00 01 00 00 40 00 ничего больше


Поля bmRequestType и bRequest однобайтные.
Все остальные поля двухбайтные. Я уже точно не помню но кажется по спецификации при двухбайтных параметрах сначала передаётся младший байт потом старший (отсюда и получается wLenght = 40 00 = low byte:high byte т.е. длина = 0040h = 64 байта)
Посмотрите приложенную книгу - я по ней когдато разбирался со стандартными запросами. Там всё коротко и довольно понятно. Все неясные моменты лучше смотреть в спецификации.
Создайте по этой книге вот такой дескриптор устройства:

Код
//Структура дескриптора устройства
/* Global constant structure located in FLASH */
flash struct st_usb_device_descriptor  
{
int bLenth;             //длина дескриптора
int bDescriptorType;    //тип дескриптора
int bcdUSBL;             //версия спецификации USB в формате BCD
int bcdUSBH;             //версия спецификации USB в формате BCD
int bDeviceClass;       //код класса устройства USB
int bDeviceSubclass;    //код подкласса устройства USB
int bDeviceProtocol;    //код протокола USB
int bMaxPacketSize0;    //мах размер нулевой конечной точки
int idVendorL;            //идентификатор изготовителя устройства
int idVendorH;            //идентификатор изготовителя устройства
int idProductL;           //идентификатор продукта
int idProductH;           //идентификатор продукта
int bcdDeviceL;          //номер версии устройства в формате BCD
int bcdDeviceH;          //номер версии устройства в формате BCD
int iManufacture;       //индекс дескриптора строки описывающей  изготовителя
int iProduct;           //индекс дескриптора строки описывающей  продукт
int iSerialNumber;      //индекс дескриптора строки описывающей  серийный номер устройства
int bNumConfigurations; //количество возможных конфигураций устройства
};


Попробуйте отослать его и дождатся следующего запроса SET_ADDRESS 0x0005
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
- - 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   теперь вопрос в другом... что должен содержать в с...   Feb 24 2009, 10:59
|- - amw   Цитата(shrek @ Feb 24 2009, 12:59) теперь...   Feb 24 2009, 12:16
- - 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 Текстовая версия Сейчас: 23rd July 2025 - 11:55
Рейтинг@Mail.ru


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