Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите, пожалуйста, чем определяется скорость передачи данных по USB at90USB1287.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ddt1
Удалось реализовать на устройстве работу USB порта - как эмуляция виртуального com-port ("at90usb128-demo-cdc-1_0_3" от atmel).
Проблема в том, что при передаче данных из устройства на компьютер скорость передачи очень низкая.
Каждый байт пакета данных передается с интервалом 1мс!!!
Т.е. что бы передать пакет из 20 байт нужно 20 мс!!!
Как можно увеличить скорость передачи ??? чем она определяется???
silantis
Цитата(ddt1 @ Apr 25 2014, 08:03) *
Удалось реализовать на устройстве работу USB порта - как эмуляция виртуального com-port ("at90usb128-demo-cdc-1_0_3" от atmel).
Проблема в том, что при передаче данных из устройства на компьютер скорость передачи очень низкая.
Каждый байт пакета данных передается с интервалом 1мс!!!
Т.е. что бы передать пакет из 20 байт нужно 20 мс!!!
Как можно увеличить скорость передачи ??? чем она определяется???


Насколько помню там есть канал управления Ep0 и канал данных, все остальные EP, 1ms наводит на мысль, что Вы передаете 1 байт контрольным пакетом, размер которого кстати 64 байта. Так то да, даже по каналу управления скорость будет выше. Видимо что то не так в примере изменили...
Xenia
Цитата(ddt1 @ Apr 25 2014, 08:03) *
Проблема в том, что при передаче данных из устройства на компьютер скорость передачи очень низкая.


Какой функцией вы пишите байты? uart_usb_putchar ?
prottoss
Цитата(ddt1 @ Apr 25 2014, 10:03) *
Каждый байт пакета данных передается с интервалом 1мс!!!
Т.е. что бы передать пакет из 20 байт нужно 20 мс!!!
Как можно увеличить скорость передачи ??? чем она определяется???

1. Увеличить максимально размер EP в устройстве.
2. В управляющей программе, на хосте, увеличить, на сколько возможно, размер передаваемых данных.

А какую скорость Вы хотели бы получить? Мне, к примеру, удавалось получить до 0,5 МБайт/сек на устройстве под управлением ATxmega64A3U с драйвером Win32 usbser.sys. Для моих задач большего не требовалось.
Alex11
Судя по времени, до размера EP дело еще не дошло. Передача идет 1 символ на пакет. Вопрос - в какую сторону передача? Если от PC - передавайте не по одному байту, а сразу много за один запрос к драйверу. Если к PC - смотрите, что написано в программе для AT90USB. Там должна быть группировка байтов в пакет. Либо она не написана, либо скорость поступления байтов на входе очень мала и она не работает.
ddt1
Цитата(Xenia @ Apr 25 2014, 17:57) *
Какой функцией вы пишите байты? uart_usb_putchar ?



да , использую uart_usb_putchar.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.