Большие данные через HID v-usb
- Сообщения: 3
- Зарегистрирован: Вс июл 01, 2012 17:00:49
Здравствуйте уважаемые коты и кошки!!! Пожалуйста подскажите как организовать отправку/чтение от хоста к микроконтроллеру(МК) данные размером 1-3 Кбайт. Я использую программную реализацию usb hid от http://www.obdev.at/products/vusb. В общем как я понял максимальный report count в дескрипторе не должно превышать 254. Ситуация такая при запросе на чтение со стороны хоста контроллер поочередно достает данные с внешнего eeprom 24с256 и по 8 байт шлет хосту так при достижении 254 амин операция заканчивается. Повторный запрос ну как вы поняли все заново
предсказуемо.. Поделитесь пожалуйста вашим опытом или как бы вы это организовали бы?? Может feature report здесь не уместен а нужно использовать input output репорты. Или же объявить глобальный инкремент и данные слать порциями по его значению и при окончании обнулять (но вопрос метод реализующий отправку не получает параметры от компа в этом случае uchar usbFunctionWrite(uchar *data, uchar len))? Я в usb новичок.. 
- Реклама
- Сообщения: 3793
- Зарегистрирован: Ср дек 24, 2008 09:58:58
Если ориентироваться на HID, я-бы посылал данные через конечные точки типа input/output. Так будет быстрее. Но и там максимальная величина пакета ограничена значением 64 байт, т.е. длинный файл надо разбивать на куски. Здесь на форуме есть статья про HID
http://radiokot.ru/articles/44/
http://radiokot.ru/articles/45/
Там не для Вашего контроллера, но Вам для общего ознакомления с HID может быть полезна вторая часть.
http://radiokot.ru/articles/44/
http://radiokot.ru/articles/45/
Там не для Вашего контроллера, но Вам для общего ознакомления с HID может быть полезна вторая часть.
- Сообщения: 3
- Зарегистрирован: Вс июл 01, 2012 17:00:49
Ser60
Спасибо статья интересная но мне бы на avr -ке. Я наверное hid не по назначению использую но у меня есть подозрение что через него хоть и медленно но возможно отправить принять 1-2 Кбайт
Спасибо статья интересная но мне бы на avr -ке. Я наверное hid не по назначению использую но у меня есть подозрение что через него хоть и медленно но возможно отправить принять 1-2 Кбайт
- Сообщения: 3793
- Зарегистрирован: Ср дек 24, 2008 09:58:58
Конечно, возможно сколько угодно передать. Вы спрашивали выше про подход - я написал что спользвал-бы iput/output конечные точки и разбиения файла на части. Готового кода под AVR у меня нет но, я-бы использовал AVR-ку с аппаратным USB драйвером. На вебсайте Атмела есть примеры их использавния и конфигурации. Если все-же хотие V-USB, то на сайте написано, что 254 - это дефолтное значение и может быть увеличено пи надобности. Как - не знаю, я с этим не работал, надо читать доки.
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
В софтовой реализации, можно в одной посылке передать или принять не больше 8 байт! Таков стандарт!
Поэтому делите данные на фрагменты по 8 байт и передавайте их.
Может будут полезны эти статьи.
http://www.radioman-portal.ru/pages/1698/index.shtml
http://www.radioman-portal.ru/pages/1928/index.shtml
Поэтому делите данные на фрагменты по 8 байт и передавайте их.
Может будут полезны эти статьи.
http://www.radioman-portal.ru/pages/1698/index.shtml
http://www.radioman-portal.ru/pages/1928/index.shtml
- Реклама
- Сообщения: 3
- Зарегистрирован: Вс июл 01, 2012 17:00:49
Спасибо Ser60 Мурик получилось отправить данные! Да проблема была в не правильном дескрипторе я там по максимуму (64 байт) пытался отправить. Как только изменил репорт сайз на 8 проблемы сразу же отступили.
мау


