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

 
 
 
Reply to this topicStart new topic
> Подскажите, пожалуйста, чем определяется скорость передачи данных по USB at90USB1287.
ddt1
сообщение Apr 25 2014, 04:03
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 2-06-08
Пользователь №: 37 976



Удалось реализовать на устройстве работу USB порта - как эмуляция виртуального com-port ("at90usb128-demo-cdc-1_0_3" от atmel).
Проблема в том, что при передаче данных из устройства на компьютер скорость передачи очень низкая.
Каждый байт пакета данных передается с интервалом 1мс!!!
Т.е. что бы передать пакет из 20 байт нужно 20 мс!!!
Как можно увеличить скорость передачи ??? чем она определяется???
Go to the top of the page
 
+Quote Post
silantis
сообщение Apr 25 2014, 07:09
Сообщение #2


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

Группа: Участник
Сообщений: 111
Регистрация: 24-04-14
Пользователь №: 81 504



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


Насколько помню там есть канал управления Ep0 и канал данных, все остальные EP, 1ms наводит на мысль, что Вы передаете 1 байт контрольным пакетом, размер которого кстати 64 байта. Так то да, даже по каналу управления скорость будет выше. Видимо что то не так в примере изменили...
Go to the top of the page
 
+Quote Post
Xenia
сообщение Apr 25 2014, 13:57
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(ddt1 @ Apr 25 2014, 08:03) *
Проблема в том, что при передаче данных из устройства на компьютер скорость передачи очень низкая.


Какой функцией вы пишите байты? uart_usb_putchar ?
Go to the top of the page
 
+Quote Post
prottoss
сообщение Apr 25 2014, 15:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



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

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

А какую скорость Вы хотели бы получить? Мне, к примеру, удавалось получить до 0,5 МБайт/сек на устройстве под управлением ATxmega64A3U с драйвером Win32 usbser.sys. Для моих задач большего не требовалось.


--------------------
Go to the top of the page
 
+Quote Post
Alex11
сообщение Apr 25 2014, 17:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Судя по времени, до размера EP дело еще не дошло. Передача идет 1 символ на пакет. Вопрос - в какую сторону передача? Если от PC - передавайте не по одному байту, а сразу много за один запрос к драйверу. Если к PC - смотрите, что написано в программе для AT90USB. Там должна быть группировка байтов в пакет. Либо она не написана, либо скорость поступления байтов на входе очень мала и она не работает.
Go to the top of the page
 
+Quote Post
ddt1
сообщение Apr 28 2014, 03:41
Сообщение #6





Группа: Участник
Сообщений: 11
Регистрация: 2-06-08
Пользователь №: 37 976



Цитата(Xenia @ Apr 25 2014, 17:57) *
Какой функцией вы пишите байты? uart_usb_putchar ?



да , использую uart_usb_putchar.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:52
Рейтинг@Mail.ru


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