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

 
 
> драйвер 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
Ответов
galjoen
сообщение Jun 30 2008, 14:20
Сообщение #2


Знающий
****

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



Цитата(Mozart @ Jun 27 2008, 23:53) *
в чём может быть проблема?

В отсутствии переключения TOGGLE (DATA1/DATA0).
Go to the top of the page
 
+Quote Post
Mozart
сообщение Jun 30 2008, 15:25
Сообщение #3


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

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



Цитата(galjoen @ Jun 30 2008, 18:20) *
В отсутствии переключения TOGGLE (DATA1/DATA0).

enable disable endpoint?

Сообщение отредактировал Mozart - Jun 30 2008, 15:30


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


Знающий
****

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



Цитата(Mozart @ Jun 30 2008, 19:25) *
enable disable endpoint?

Нет. В чередовании идентификатора пакета (PID) DATA1 и DATA0 у передаваемых данных. Если два блока данных передаются с одинаковыми DATA, то принимающий считает, что его ACK на 1й блок не дошёл (был повреждён) и передающий перепослал те-же данные (т.к. PID тот-же) , шлёт ACK, а эти данные отбрасывает. Обычно переключение обозначается TOGGLE. У ISP1581 не знаю как обозначается (не пользовался). М.б. у неё автоматически переключается - тогда enable disable endpoint
нельзя т.к. 1й пакет всегда будет с DATA1. Но д.б. режим и с переключением вручную.
Д.б. так:
1. отключаю прерывания
2. выбираю конечную точку и устанавливаю длину буфера
3. заполняю буфер данными

4. Устанавливаю TOGGLE
5. Разрешаю передачу (TxEN?), а не "4. устанавливаю сигнал ACK"?

6. включаю прерывания.
Go to the top of the page
 
+Quote Post
Mozart
сообщение Jul 1 2008, 08:17
Сообщение #5


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

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



Цитата(galjoen @ Jun 30 2008, 20:18) *
Нет. В чередовании идентификатора пакета (PID) DATA1 и DATA0 у передаваемых данных. Если два блока данных передаются с одинаковыми DATA, то принимающий считает, что его ACK на 1й блок не дошёл (был повреждён) и передающий перепослал те-же данные (т.к. PID тот-же) , шлёт ACK, а эти данные отбрасывает. Обычно переключение обозначается TOGGLE. У ISP1581 не знаю как обозначается (не пользовался). М.б. у неё автоматически переключается - тогда enable disable endpoint
нельзя т.к. 1й пакет всегда будет с DATA1. Но д.б. режим и с переключением вручную.
Д.б. так:
1. отключаю прерывания
2. выбираю конечную точку и устанавливаю длину буфера
3. заполняю буфер данными

4. Устанавливаю TOGGLE
5. Разрешаю передачу (TxEN?), а не "4. устанавливаю сигнал ACK"?

6. включаю прерывания.


у ISP1581 автоматически происходит передача когда регистр buffer length становится равным MaxPcktSizе, если размер данных меньше MaxPcktSizе то можно битом VENDP дёрнуть и они якобы уйдут, ручное переключение TOGGLE я так понимаю нет, а если есть то где? я не нашёл.
а сигнал АСК, вообще устанавливать не надо?


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


Знающий
****

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



Цитата(Mozart @ Jul 1 2008, 12:17) *
а сигнал АСК, вообще устанавливать не надо?

При передаче хосту (IN) ACK приходит от хоста, и его устанавливать не надо. Можно и нужно проверить пришёл-ли ACK от хоста в ответ на вашу передачу ему.

С логами что-то не разобрался. Что там за передача OUT к передающей (0x82) EP? Или это с точки зрения URB запросов OUT?
Но видимо происходят посылки NAK в ответ на IN от хоста (PENDING)? А какие прерывания (по какому событию) вы используете от EP N2? У bulk EP буфер можно заполнять заранее, т.е. использовать прерывания по опустошению буфера (успешной передаче - приёму ACK от хоста).

А вообще, чтоб было понятно, выложите дескрипторы вашего устройства - DEVICE, CONFIGURATION, INTERFACE, ENDPOINT и все которые ещё/если есть.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Mozart   драйвер USBIO проблема передачи данных   Jun 27 2008, 19:53
|- - Mozart   я заново пересмотрел datasheet ЦитатаNote: ‘Stall...   Jun 30 2008, 16:23
||- - galjoen   Цитата(Mozart @ Jun 30 2008, 20:23) что т...   Jun 30 2008, 16:31
|- - 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 2 2008, 00:22) 4. В ...   Jul 2 2008, 08:09
|- - galjoen   Цитата(Mozart @ Jul 2 2008, 12:09) при из...   Jul 4 2008, 14:28
|- - Mozart   Цитата(galjoen @ Jul 4 2008, 18:28) Так у...   Jul 4 2008, 14:35
|- - galjoen   Цитата(Mozart @ Jul 4 2008, 18:35) так че...   Jul 4 2008, 14:53
|- - Mozart   Цитата(galjoen @ Jul 4 2008, 18:53) Дескр...   Jul 4 2008, 14:59
|- - galjoen   Цитата(Mozart @ Jul 4 2008, 18:59) ну дык...   Jul 4 2008, 15:07
|- - Mozart   Цитата(galjoen @ Jul 4 2008, 19:07) Не др...   Jul 5 2008, 11:12
|- - galjoen   Цитата(Mozart @ Jul 5 2008, 15:12) вот те...   Jul 7 2008, 13:11
|- - 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 Текстовая версия Сейчас: 22nd July 2025 - 23:13
Рейтинг@Mail.ru


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