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

 
 
> AT91SAM9260-EK usb cdc, проблемы с передачей данных по примеру
borea
сообщение Feb 15 2008, 09:29
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 6-09-07
Пользователь №: 30 328



Пример работы UDP как Communication Device Class(CDC) запустили. Передача с ПК на МК происходит нормально. Передача наоборот, c МК на ПК происходит если размер пакета не кратен размеру буфера (64 байта). Т.е., если передаю 127 байт, на компьютере принимаю нормально (в Delphi, CreateFile, ReadFile), если передаю 128 (или 64, 512 и т.д.) не получается. На МК вроде все в порядке, подтверждение от хоста есть (флаг UDP_TXCOMP), а на компе ноль реакции. Если кто разбирался с CDC, подскажите, пожалуйста, в чем проблема.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
sergeeff
сообщение Feb 15 2008, 12:18
Сообщение #2


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Дело не в CDC, а в том, что ты неправильно обрабатываешь прерывания от USB. Если ты передаешь в PC пакет, равный размеру endpoint'a, вырабатывается реально еще одно прерывание, которое ты обязан обработать, чего, по-видимому ты не делаешь.
Go to the top of the page
 
+Quote Post
borea
сообщение Feb 15 2008, 13:48
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 6-09-07
Пользователь №: 30 328



Добавили для пакета кратного размеру буфера посылку ZeroLength-пакета, и передача пошла. Плохой какой-то пример.
Sergeeff, а почему еще одно прерывание возникает при посылке в размере endpoint-а? Это прерывание endpoint-а? Что-то мы это пропустили... У меня нет еще одного прерывание. Не понятно.
Go to the top of the page
 
+Quote Post

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

 


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


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