|
драйвер USBIO проблема передачи данных, передаётся первый пакет в 512байт второй не получает приложение... |
|
|
|
 |
Ответов
|
Jun 30 2008, 15:25
|

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

|
Цитата(galjoen @ Jun 30 2008, 18:20)  В отсутствии переключения TOGGLE (DATA1/DATA0). enable disable endpoint?
Сообщение отредактировал Mozart - Jun 30 2008, 15:30
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Jun 30 2008, 16:18
|
Знающий
   
Группа: Свой
Сообщений: 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. включаю прерывания.
|
|
|
|
|
Jul 1 2008, 08:17
|

Частый гость
 
Группа: Свой
Сообщений: 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 я так понимаю нет, а если есть то где? я не нашёл. а сигнал АСК, вообще устанавливать не надо?
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Jul 1 2008, 19:11
|
Знающий
   
Группа: Свой
Сообщений: 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 и все которые ещё/если есть.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|