Alex2172 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 · Жалоба Господа, прошу направить на путь истинный... Возможно для кого-то эта тема уже избита, но все же... ткните носом в документацию, примеры, Ваш личный опыт... Есть пример USB-MEM для LPC214x эмулирующий диск 16кБ в RAM, видоизменил SCSI для работы с реальной MMC/SD - все ок. Но за один фрейм передается 64 байта, что и следует ожидать. А это всего лишь 30кБ/сек, представляете сколько будет читаться MMC карточка объемом 512Мб. Вопросы: 1. Как передавать несколько пакетов за один фрейм в BulkOnly режиме чтобы увеличить скорость хотя бы до 1Mb/сек? 2. Встречал ли кто в сети исходники для реализации Control/Bulk/Interrupt (кажется uC/MSD реализует CBI, но х.з. где он, на фтп нет, в будках нет)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nikkov 0 7 февраля, 2006 Опубликовано 7 февраля, 2006 · Жалоба См. здесь http://electronix.ru/forum/index.php?showtopic=11785 Я тоже пробовал, пока шина свободна, скорость передачи в режиме BULK приближается к максимальной скорости USB шины. Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex2172 0 7 февраля, 2006 Опубликовано 7 февраля, 2006 · Жалоба См. здесь http://electronix.ru/forum/index.php?showtopic=11785 Я тоже пробовал, пока шина свободна, скорость передачи в режиме BULK приближается к максимальной скорости USB шины. Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек. Спасибо за Ваш ответ, но чтение спецификации и использование осциллографа не удалось избежать :). Дело в том что скорость чтения данных 30кБ/сек (MMC->LPC2148->USB) вызвана чем то другим. Сейчас разбираюсь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 33 7 февраля, 2006 Опубликовано 7 февраля, 2006 · Жалоба Keil обновил аппноту по массторадж. Утверждают, что поисправляли много багов. Может имеет смысл посмотреть? http://www.keil.com/download/docs/307.asp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nikkov 0 8 февраля, 2006 Опубликовано 8 февраля, 2006 · Жалоба Спасибо за Ваш ответ, но чтение спецификации и использование осциллографа не удалось избежать :). Дело в том что скорость чтения данных 30кБ/сек (MMC->LPC2148->USB) вызвана чем то другим. Сейчас разбираюсь. Может быть дело в драйвере? Работаете под Windows? Я для тестирования использовал LibUsb-Win32 очень удобно для проверки разных вариантов я, правда для AT43USB355, использовал для проверки работы конечных точек разных типов, определения скоростей и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MCU_Hunter 0 27 февраля, 2006 Опубликовано 27 февраля, 2006 · Жалоба ... Есть пример USB-MEM для LPC214x эмулирующий диск 16кБ в RAM, видоизменил SCSI для работы с реальной MMC/SD - все ок. Но за один фрейм передается 64 байта, что и следует ожидать. А это всего лишь 30кБ/сек, представляете сколько будет читаться MMC карточка объемом 512Мб. ... Привет! А не поделитесь ли исходником или ссылкой??? А то проблема та же PC+MCU+MMC! Только MCU от SiLabs и пока совсем не понимаю, как РС дожен с ним общаться!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KolyanV 0 27 февраля, 2006 Опубликовано 27 февраля, 2006 (изменено) · Жалоба См. здесь http://electronix.ru/forum/index.php?showtopic=11785 Я тоже пробовал, пока шина свободна, скорость передачи в режиме BULK приближается к максимальной скорости USB шины. Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек. Если я не ошибаюсь, пакет от конечной точки в FullSpeed BULK режиме по определению не может быть больше 64 байт (в спецификации USB 2.0). Т.е согласно этой формулы физический предел для BULK в FullSpeed (12 Мбит/сек) режиме должен быть 64 кБ/Сек. На практике, за один фрейм может отсылаться множество пакетов. Изменено 27 февраля, 2006 пользователем KolyanV Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nikkov 0 3 марта, 2006 Опубликовано 3 марта, 2006 · Жалоба Если я не ошибаюсь, пакет от конечной точки в FullSpeed BULK режиме по определению не может быть больше 64 байт (в спецификации USB 2.0). Т.е согласно этой формулы физический предел для BULK в FullSpeed (12 Мбит/сек) режиме должен быть 64 кБ/Сек. На практике, за один фрейм может отсылаться множество пакетов. См. внимательнее, формула справедлива для "Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек", для BULK все зависит от наличия данных для передачи и свободности шины Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex2172 0 6 апреля, 2006 Опубликовано 6 апреля, 2006 · Жалоба Cм. внимательнее, формула справедлива для "Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек", для BULK все зависит от наличия данных для передачи и свободности шины Все верно, но как сделать чтобы LPC21xx формировал прерывание по приему пакета, а не по окончанию фрейма? Из Кейловского примера получается так, что при передаче данных скажем из PC в EndPoint (сконфигурированного как Bulk-Only 64B) процессора, прерывание формируется с периодом 1 мс, хотя уверен что шина свободна на 90%. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex2172 0 22 мая, 2006 Опубликовано 22 мая, 2006 · Жалоба Cм. внимательнее, формула справедлива для "Для Interrupt и Isochron-го режимов макс. скорость равна размеру буфера конечной точки*1000 байт/сек", для BULK все зависит от наличия данных для передачи и свободности шины Все верно, но как сделать чтобы LPC21xx формировал прерывание по приему пакета, а не по окончанию фрейма? Из Кейловского примера получается так, что при передаче данных скажем из PC в EndPoint (сконфигурированного как Bulk-Only 64B) процессора, прерывание формируется с периодом 1 мс, хотя уверен что шина свободна на 90%. Очень интересно... Перенес код из Keil на GCC - заработало на нормальной скорости >250кБ/сек (и то ограничение связано со скоростью работы с MMC по SPI). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться