olegras 0 22 февраля, 2010 Опубликовано 22 февраля, 2010 · Жалоба Кто юзал ентого зверя? Пример custom завелся с полпинка, win видит устойство, функции usblib0.dll работают. Удручает одно: скорость передачи ПК->LPC не превышает 32 000 байт/с. Многочасовые танцы с бубном к положительным результатам не привели. Передаю по 64 байта, как и в примере. Чето не верится что для bulk HS это нормальная скорость. Описаний различных реализаций много, а про обеспечиваемые скорости обмена почти ничего нету. Подскажите, куда копать... Интересует именно LPSUSB режим custom (vendor specific class). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 23 февраля, 2010 Опубликовано 23 февраля, 2010 · Жалоба А откуда на 2148 bulk HS? Там ведь только FullSpeed. Хотя 32 кб\сек совсем мало, конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 23 февраля, 2010 Опубликовано 23 февраля, 2010 · Жалоба А откуда на 2148 bulk HS? Там ведь только FullSpeed. Извиняюсь за запарку, конечно же FS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 23 февраля, 2010 Опубликовано 23 февраля, 2010 · Жалоба копайте LPCUSB, с libusb стабильно гораздо более высокие скорости точно получаются Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 23 февраля, 2010 Опубликовано 23 февраля, 2010 · Жалоба копайте LPCUSB, с libusb стабильно гораздо более высокие скорости точно получаются toweroff, может я скорость не так измеряю? Я делаю так (прошу ногами не бить): на ПК unsigned char tmp[64]; ... while(!kbhit()) usb_bulk_write(hDevice, EP_OUT, tmp, sizeof(tmp), 5000); на LPC в обработчике прерываний от приема EP unsigned char Buffer[64]; ... DEBUG_LED_ON(11); //низкий уровень iChunk = USBHwEPRead(bEP, Buffer, 64); DEBUG_LED_OFF(11); //высокий уровень Запускаю все и смотрю осциллографом на вывод P0.11. Так как USBHwEPRead просто перекачивает буфер EP в Buffer, на картинке преобладает высокий уровень, в течении которого ПК выполняет usb_bulk_write. Период высокого уровня делю на 64 и получаю период для 1 байта. У меня получается ~ 32 000 байт в секунду. Или я чтото не так делаю??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 23 февраля, 2010 Опубликовано 23 февраля, 2010 · Жалоба Я делаю проще - перекачиваю, например, 128Мб данных туда-сюда... потом время делю на объем :) при этом, кстати, у меня для каждого куска (я передаю по 32Кб) есть ответ-подтверждение корректности передачи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться