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

 
 
> драйвер USBIO проблема передачи данных, передаётся первый пакет в 512байт второй не получает приложение...
Mozart
сообщение Jun 27 2008, 19:53
Сообщение #1


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

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



использую usb микросхему ISP1581 включенную в режиме GENERIC_MODE.
Скачала с сайта _http://www.thesycon.de/eng/usbio.shtml_ драйвер USBIO и "demo application executable (usbioapp.exe)"
Endpoint настроен как bulk максимальный размер пакета 512байт. При запросе на передачу данных в хост происходит прерывание к примеру от второй endpoint = EP2TX.
после произошедшего прерывания моя последовательность действий такая:

1. отключаю прерывания
2. выбираю конечную точку и устанавливаю длину буфера
3. заполняю буфер данными
4. устанавливаю сигнал ACK
5. включаю прерывания.

когда прерывание происходит второй раз то компьютер уже ничего не получает.
в чём может быть проблема?
з.ы. Прерывание второй раз происходит смотрел под отладчиком


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Mozart
сообщение Jul 2 2008, 08:09
Сообщение #2


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

Группа: Свой
Сообщений: 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 вообще ничего не происходит.

ничего не изменилось... crying.gif


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jul 4 2008, 14:28
Сообщение #3


Знающий
****

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



Цитата(Mozart @ Jul 2 2008, 12:09) *
при изменении адреса допустим на 0x03 вообще ничего не происходит.

Так у вас вообще OUT EP с адресом 3 вообще обслуживается? Хотя-бы NAK отвечает? Если нет, то после 3 (или 5?) безответных запросов ваш девайс сбросят. А если NAKи слать, то через 5 секунд.
Лучше вообще не объявляйте эту EP.
Go to the top of the page
 
+Quote Post
Mozart
сообщение Jul 4 2008, 14:35
Сообщение #4


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

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



Цитата(galjoen @ Jul 4 2008, 18:28) *
Так у вас вообще OUT EP с адресом 3 вообще обслуживается? Хотя-бы NAK отвечает? Если нет, то после 3 (или 5?) безответных запросов ваш девайс сбросят. А если NAKи слать, то через 5 секунд.
Лучше вообще не объявляйте эту EP.

так чего делать???... я уже в тупике... я даже не знаю что предположить... вплоть до того что сама микросхема того... хотя на запросы отвечает, и правильно отвечает...
заметил вот какую штуку, если закрыть потом открыть устройство, то передается один пакет который я записал в фифо.


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jul 4 2008, 14:53
Сообщение #5


Знающий
****

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



Цитата(Mozart @ Jul 4 2008, 18:35) *
так чего делать???... я уже в тупике... я даже не знаю что предположить... вплоть до того что сама микросхема того... хотя на запросы отвечает, и правильно отвечает...
заметил вот какую штуку, если закрыть потом открыть устройство, то передается один пакет который я записал в фифо.

Дескрипторы-то у вас передаются? Устройство ведь виндоусом пределяется? Оно в списке устройств USB есть?
Если есть, то:
1. Убрать дескриптор 2й EP.
2. Кол-во EP в дескрипторе интерфейса =1.
3. Общая длина в конфигурации на 7 меньше.
Go to the top of the page
 
+Quote Post
Mozart
сообщение Jul 4 2008, 14:59
Сообщение #6


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

Группа: Свой
Сообщений: 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 меньше.

т.е. попробовать использвать другую ЕР??... попробую сегодня вечером... мысль...


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jul 4 2008, 15:07
Сообщение #7


Знающий
****

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



Цитата(Mozart @ Jul 4 2008, 18:59) *
ну дык в том то и дело что девайсина определилась...

т.е. попробовать использвать другую ЕР??... попробую сегодня вечером... мысль...

Не другую, а ОДНУ. У вас сейчас 2 EP, с одинаковым адресом. Одна передающая (IN) её вы пытаетесь обслуживать. Другая принимающая (OUT). Вы её вообще обслуживаете??? Судя по логу - нет. Если нет, то она (необслуживаемая, но описанная EP) и является причиной сброса девайса.
Go to the top of the page
 
+Quote Post
Mozart
сообщение Jul 5 2008, 11:12
Сообщение #8


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

Группа: Свой
Сообщений: 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);
    }
}


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jul 7 2008, 13:11
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 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
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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