Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Максимальная скорость передачи по USB в LPC2148
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
bolarev
Надо организовать перекачку больших данных из MMC в комп по USB, рассматривается вариант использования USB в LPC2148 или LPC2148+FT245.

Из документации на LPC2148 понял что Bulk буферы 64 байта, поскольку передача идет фреймами с частотой 1КГц получаем 64000 байт/сек, вопрос можно-ли какими нибудь методами добиться более высокой скорости передачи (возможно другой тип EP) - надо реальзовать по возможности USB Mass Storage (т.е. использовать встроенный драйвер WinXP - нет желания писать свой) - или-же единственный выход FT245.

Или может есть какие другие решения.
DASM
а кто сказал что за один фрейм одна булка придет ? Ничего подобного =) Нормально тама все, скорости точне мерял, но под 700 кбайт в сек качалось. А для особо одаренных в плане ускорения всего на свете в 48-ом DMA есть. Да и сурцы Mass Storage давно на Keil лежат
aaarrr
Цитата(bolarev @ May 14 2006, 00:51) *
Или может есть какие другие решения.

ИМХО, под эту задачу очень хорошо подходит AT91RM3400 - есть USB и контроллер SD/MMC.
Правда встроенного флеша нет, но он умеет грузиться из копеечного EEPROM или DataFlash,
а встроенных 96K RAM должно быть достаточно.

Варианты с FT245 я бы даже не рассматривал.
bolarev
Спасибо за быстрый ответ, а на счет проца - уже работали с lpc2138 и поэтому остановились на 48, осталось только убедиться что 48 со своими uart и spi 0 или 1 даст скорость под 1 Мбайт/сек (на 38 скорость spi1 неудалось выжать более 1,5 мбит/с - не настраивался SCR в SSPCR0).
bolarev
Ну мегабайт на uart это я погорячился, а мегабит нужен.
zltigo
Цитата(bolarev @ May 14 2006, 10:11) *
на 38 скорость spi1 неудалось выжать более 1,5 мбит/с - не настраивался SCR в SSPCR0

???
С этого места помедленнее. Из SPI1 официально работающего на частотах до 1/2 частоте процессора (ну с некоторыми побочными эффектами согласно errata ) Вам удалось выжать только в двадцать
раз меньшую скорость. Хотелось-бы узнать в каких условиях.....
Намека на счет SCR - не понял, тем более, что он по умолчанию делитель на 1.
asen
я на 38 свободно передовал через уарт0 1 мбит/с так что в этом проблем нет
zltigo
Цитата(asen @ May 14 2006, 15:26) *
я на 38 свободно передовал через уарт0 1 мбит/с так что в этом проблем нет

Без сомнения. Максимальные боды 1/16 тактовой частоты процессора.
bolarev
Что в доке заявлено я знаю. Возможно проблемы в коде инициализации, а его предоставить могу только завтра (из-за отсутствия времени на тот проект успешно задвинули - и дома его нет).
zltigo
Цитата(bolarev @ May 14 2006, 18:58) *
Возможно проблемы в коде инициализации, а его предоставить могу только завтра

Хорошо.
Alex03
Цитата(bolarev @ May 14 2006, 13:11) *
на 38 скорость spi1 неудалось выжать более 1,5 мбит/с - не настраивался SCR в SSPCR0.


Как-то странно. У меня на LPC2292 на 5МБит/сек работало, через гальвано-развязку с АЦП-шками.
В окончательном вырианте правда 1МБит/сек, потому как мне больше и не надо. На 5-ти оценивал запас прочности.
zltigo
Цитата(Alex03 @ May 14 2006, 20:06) *
Как-то странно. У меня на LPC2292 на 5МБит/сек работало

SPI1 на 213x в отличиии он SPI0 и SPI-ев на 'старых' LPC совсем другой - более продвинутый в том числе и по скорости.
DASM
причем оба сливают начисто таковому в атмельских SAM =) Ну а если еще и DMA задействовать.... Вобщем это и послужило причиной использования сеггером SAM64 в j-link а не LPC214X
aaarrr
А все трое сливают любому SD/MMC контроллеру.
Согласен, у SAM'а периферия более прямая по сравнению с LPC. Но если вспомнить первые атмеловские армы - просто в дрожь бросает.
zltigo
Цитата(DASM @ May 14 2006, 23:26) *
причем оба сливают начисто таковому в атмельских SAM =)

DASM, как водится :-( категоричен.
Смотрим (бегло, если что не так - пишите) на игроков AT91SAM7S64 и LPC213x
1. Да максимальная скорость SAM равна тактовой 55MHz вместо 30. Явный плюс! Однако в errata описана 'проблемка' при делителе 1.
2. У Филипса два SPI.
3. По функциональности у SAM это только SPI, у LPC - есть функциональные навороты ввиде TI и NS
интерфейсов.
Цитата
Ну а если еще и DMA задействовать....

А вот с DMA вообще на халтуру (сделать просто и слово красивое) смахивает:
1. Контроллер без кэшей, посему неизбежна низкая эффекивность DMA - процессор
будет заметно блокироваться.
2. DMA для укладки порций 1-2 байтов, причем сам контроллер DMA обслуживает только работу с линейным буфером. Сильно тоскливо - для более-менее реальной работы все равно обрабатывать
прерывание от каждых 1-2 байтов и перепрограммировать DMA контроллер, либо потом заниматься
пересылкой в другой организованный буфер. В обшем эффективнось этих телодвижений под большим вопросом по сравнению с простым вычитыванием FIFO у LPC.
3. А DMA каналы-то строго приоритетны и блокируют друг друга. C надеждой получить байтики
по SPI на скорости 55Mbit если при этом идет поток от USB похоже придется проститься, ибо
FIFO на случай занятости DMA не предусмотрен.

В общем вместо такого куцего DMA мне явно LPCишный FIFO предпочтительнее смотрится.

Как-то не похоже это все на
Цитата
сливают начисто


И "аргументы" и предположения типа:
Цитата
Вобщем это и послужило причиной использования сеггером SAM64 в j-link а не LPC214X

ситуации тоже не не меняют.

Выводы - да нет сейчас на рынке чипов-однокласников у которых один другому "сливают начисто".
DASM
интересно, один SPI у SAM... А SSC куда забыли ?
" Да максимальная скорость SAM равна тактовой 55MHz вместо 30. Явный плюс! Однако в errata описана 'проблемка' при делителе 1."
Тут вообще не понял, какие 30. У LPC для SPI0 7.5 Мгц выходит....
zltigo
Цитата(DASM @ May 16 2006, 00:53) *
Тут вообще не понял, какие 30. У LPC для SPI0 7.5 Мгц выходит....

Если сочтете за труд перечитать, то дискуссия началасть с поминания SPI1, на что последовало
Цитата
причем оба сливают начисто таковому в атмельских SAM =)
А SSC куда забыли ?

А так-же я не коснулся TWI, PIO и прочих...

Так мы о чем это?
DASM
Не могу найти никак errata на SAM =( В последней ревизии даташита не нашел ничего про проблемы с делителем 1. А насчет коснулись - чем SSC у SAM не заменяет второй SPI у LPC ?
zltigo
Цитата(DASM @ May 16 2006, 01:07) *
Не могу найти никак errata на SAM =( В последней ревизии даташита не нашел ничего про проблемы с делителем 1

errata в конце даташита от 4 апреля 2006 п. 40.5.6.2
Цитата
чем SSC у SAM не заменяет второй SPI у LPC ?

Ну так схему подключения и исходники работы с, например, dataflash AT45 и рассмотрим заменяет
или нет.
DASM
Ну вот, докатились до совместимости на уровне исходников blink.gif Ладно, DASM как всегда категоричен, Zltigo как всегда занудливо-педантичен, мы так долго еще можем их сравнивать :-) Без обид, думаю можно закончить =)
GetSmart
Вот у меня есть вопрос, а новую тему открывать в облом.
1. Кто быстрее обчается через USB - LPC или SAM ?
2. У кого из них проще схема включения (самая простая, но с USB) ?
3. У кого из них меньше косяков по части USB ?
4. Ну и по части дров для винды они совместимы?
yuri_t
Самый быстрый USB bulk обмен у LPC214x (но и firmware самое запутанное), затем STR7XX и замыкает список AT91SAM7.
Alechek
Цитата(DASM @ May 14 2006, 02:54) *
а кто сказал что за один фрейм одна булка придет ? Ничего подобного =) Нормально тама все, скорости точне мерял, но под 700 кбайт в сек качалось.

Не понял, несколько булок за фрейм - т.е разных конечных точек или одной??
У меня скорость через CDC от мелкософта у LPC2141 получилась свыше 170 кб/с.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.