|
драйвер USBIO проблема передачи данных, передаётся первый пакет в 512байт второй не получает приложение... |
|
|
|
 |
Ответов
|
Jul 2 2008, 08:09
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829

|
Цитата(galjoen @ Jul 2 2008, 00:22)  4. В дескрипторе конфигурации: 0, //...wTotalLength все дескрипторы описал как однобайтные, и wTotalLength в моём случае равен CONFIG_DESCRIPTOR_LENGTH = 32 Цитата(galjoen @ Jul 2 2008, 00:22)  2. Первая принимающая (IN) 0x82 и вторая передающая 0x02 при изменении адреса допустим на 0x03 вообще ничего не происходит. ничего не изменилось...
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Jul 4 2008, 14:28
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Mozart @ Jul 2 2008, 12:09)  при изменении адреса допустим на 0x03 вообще ничего не происходит. Так у вас вообще OUT EP с адресом 3 вообще обслуживается? Хотя-бы NAK отвечает? Если нет, то после 3 (или 5?) безответных запросов ваш девайс сбросят. А если NAKи слать, то через 5 секунд. Лучше вообще не объявляйте эту EP.
|
|
|
|
|
Jul 4 2008, 14:35
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829

|
Цитата(galjoen @ Jul 4 2008, 18:28)  Так у вас вообще OUT EP с адресом 3 вообще обслуживается? Хотя-бы NAK отвечает? Если нет, то после 3 (или 5?) безответных запросов ваш девайс сбросят. А если NAKи слать, то через 5 секунд. Лучше вообще не объявляйте эту EP. так чего делать???... я уже в тупике... я даже не знаю что предположить... вплоть до того что сама микросхема того... хотя на запросы отвечает, и правильно отвечает... заметил вот какую штуку, если закрыть потом открыть устройство, то передается один пакет который я записал в фифо.
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Jul 4 2008, 14:53
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Mozart @ Jul 4 2008, 18:35)  так чего делать???... я уже в тупике... я даже не знаю что предположить... вплоть до того что сама микросхема того... хотя на запросы отвечает, и правильно отвечает... заметил вот какую штуку, если закрыть потом открыть устройство, то передается один пакет который я записал в фифо. Дескрипторы-то у вас передаются? Устройство ведь виндоусом пределяется? Оно в списке устройств USB есть? Если есть, то: 1. Убрать дескриптор 2й EP. 2. Кол-во EP в дескрипторе интерфейса =1. 3. Общая длина в конфигурации на 7 меньше.
|
|
|
|
|
Jul 4 2008, 14:59
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829

|
Цитата(galjoen @ Jul 4 2008, 18:53)  Дескрипторы-то у вас передаются? Устройство ведь виндоусом пределяется? Оно в списке устройств USB есть? ну дык в том то и дело что девайсина определилась... Цитата(galjoen @ Jul 4 2008, 18:53)  Если есть, то: 1. Убрать дескриптор 2й EP. 2. Кол-во EP в дескрипторе интерфейса =1. 3. Общая длина в конфигурации на 7 меньше. т.е. попробовать использвать другую ЕР??... попробую сегодня вечером... мысль...
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Jul 5 2008, 11:12
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829

|
Цитата(galjoen @ Jul 4 2008, 19:07)  Не другую, а ОДНУ. У вас сейчас 2 EP, с одинаковым адресом. Одна передающая (IN) её вы пытаетесь обслуживать. Другая принимающая (OUT). Вы её вообще обслуживаете??? Судя по логу - нет. Если нет, то она (необслуживаемая, но описанная EP) и является причиной сброса девайса. вот теперь я точно ничего не понимаю... почему одинаковые адреса?? в книге Агурова написано Цитата код адреса bEndpointAddress сожержит следующие биты: [7] направление передачи (игнорируется для каналов сообщений) 0 - OUT (от хоста) 1 - IN (к хосту) насколько я понимаю лог, то OUT это запрос направленный из хоста в девайс, в котором и есть запрос на передачу данных. из девайса в хост (IN). а вот если устройство закрыть, открыть, установить конфигурацию, то передаётся ещё один пакет... при закрытии выаолняется запрос SetConfig: ReqUSB->wValue = 0; при установке конфигурации ReqUSB->wValue = 0х01 Код void SetConfig(void) { IntFlag &= ~(1 << ISP_INT_EP0RX); //USB_Int_Flag.BITS.EP0RX = 0;
if(ReqUSB->wValue == 0) { Device_Config_Value = 0; ep0in_ack(); wait_ep0tx(); } //else if (ReqUSB->wValue == 0x0100) else if (ReqUSB->wValue == 0x01) { Device_Config_Value = (unsigned char)(ReqUSB->wValue); ep0in_ack(); wait_ep0tx(); } else { //WriteByteToISP(ISP_REG_ENDP_INDX, 1); WriteByteToISP(ISP_REG_ENDP_INDX, ISP_ENDP_EP0TX); CntrlFun |= (1 << ISP_CNTRL_STALL); WriteByteToISP(ISP_REG_CNTRL_FUN, CntrlFun); while (!(IntFlag & (1 << ISP_INT_EP0SET))) { IntFlag |= ReadByteFromISP(ISP_REG_INT); WriteByteToISP(ISP_REG_INT, IntFlag); if ((IntFlag & (1 << ISP_INT_SUSP)) || (IntFlag & (1 << ISP_INT_RESET))) return; } IntFlag &= ~(1 << ISP_INT_EP0TX); } }
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Jul 7 2008, 13:11
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Mozart @ Jul 5 2008, 15:12)  вот теперь я точно ничего не понимаю... почему одинаковые адреса?? в книге Агурова написано 1. В книге Агурова под термином "канал сообщений", вероятно имелся в виду контрольный канал (EP 0). Но там вообще не нужно описывать EP, указывается только размер пакета (в дескрипторе DEVICE). 2. Вы пытаетесь пользоваться USB не разобравшись в том, что собственно там происходит. В надежде, что всё сразу заработает и вам не понадобится разбираться с теорией, вы потеряли столько времени, сколько вам бы хватило для изучения этой самой теории. 5. Аппноуты полезны только в том случае, если вы уже обладаете знанием теории. 6. Вот прикрепляю главу 8 (перевод не очень) сначала разберитесь с ней.
Прикрепленные файлы
CH08_R.DOC ( 263.5 килобайт )
Кол-во скачиваний: 72
|
|
|
|
Сообщений в этой теме
Mozart драйвер USBIO проблема передачи данных Jun 27 2008, 19:53 galjoen Цитата(Mozart @ Jun 27 2008, 23:53) в чём... Jun 30 2008, 14:20 Mozart Цитата(galjoen @ Jun 30 2008, 18:20) В от... Jun 30 2008, 15:25  galjoen Цитата(Mozart @ Jun 30 2008, 19:25) enabl... Jun 30 2008, 16:18   Mozart я заново пересмотрел datasheet
ЦитатаNote: ‘Stall... Jun 30 2008, 16:23    galjoen Цитата(Mozart @ Jun 30 2008, 20:23) что т... Jun 30 2008, 16:31   Mozart Цитата(galjoen @ Jun 30 2008, 20:18) Нет.... Jul 1 2008, 08:17    galjoen Цитата(Mozart @ Jul 1 2008, 12:17) а сигн... Jul 1 2008, 19:11     Mozart 0x82 это адрес конечной точки, в данном случае она... Jul 1 2008, 19:39      galjoen Цитата(Mozart @ Jul 1 2008, 23:39) 0x82 э... Jul 1 2008, 20:22       Mozart 0x01 //...MaxPower - это случайно затисалось, там ... Jul 1 2008, 20:35 Mozart я прикрепил лог... из него видно что приходят запр... Jul 1 2008, 14:53        Mozart Цитата(galjoen @ Jul 7 2008, 17:11) 1. В ... Jul 7 2008, 14:15         Mozart ну насколько я понимаю весь этот процес...
хост шл... Jul 8 2008, 15:03          Mozart может быть всё дело в скорости записи... у меня 2 ... Jul 10 2008, 12:56 Mozart может быть я не на все запросы отвечаю??? хотя дев... Jul 3 2008, 06:34 Mozart отправка одного пакета в 64 байта происходит когда... Jul 3 2008, 14:11 Mozart прилагаю лог... енумерации и пр... Jul 5 2008, 21:52 Mozart стала появляться ошибка Цитатаpipe82: Error code 0... Jul 6 2008, 18:29  Mozart Цитата(Mozart @ Jul 6 2008, 22:29) стала ... Jul 7 2008, 06:49   Mozart с одной конечной точкой такая фигня... и ещё не с ... Jul 7 2008, 08:07
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|