Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CompactFlash на ARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
grigorybold
Здравствуйте, господа разработчики.
У кого есть опыт чтения карт CompactFlash ARM-ом? Расскажите, какая скорость была достигнута на каком процессоре, через какой интерфейс, разрядность шины (8/16 бит). Вообщем буду благодарен за любую информацию на эту тему. Текже интересуют и SD/MMC.
beer_warrior
По SD/MMC гляньте здесь:
http://gandalf.arubi.uni-kl.de/avr_project..._arm/index.html
VslavX
Цитата(grigorybold @ Jul 13 2006, 08:21) *
Здравствуйте, господа разработчики.
У кого есть опыт чтения карт CompactFlash ARM-ом? Расскажите, какая скорость была достигнута на каком процессоре, через какой интерфейс, разрядность шины (8/16 бит). Вообщем буду благодарен за любую информацию на эту тему. Текже интересуют и SD/MMC.

Скорость CF зависит от многих факторов:
- способа подключения - TrueIDE, I/O, Memory;
- разрядности и скорости использованной шины - насколько быстро можно выполнять единичные транзакции чтения-записи байта/слова;
- быстродействия самой карточки;

Мой практический опыт использования CF в комплекте с XScale:
- подключение в режиме TrueIDE
- через 16-битную внешнюю шину с тактовой 66МГц (позволяет настроиться на максимально быстрый режим PIO4 - 120 нс цикл)

Реально полученная пиковая скорость - 10-11МБ/с, на нее влияет собственно синхронизация внешней шины с внутренней AHB процессора, а также способы кеширования (поскольку процессор может кешировать указанное адресное пространство - в этом случае при чтении обмен идет пакетами размером со строку кеша)

Средняя скорость на чтение- 1-8 МБ/с - зависит от самой карточки, и способа чтения. Также влияет способ чтения - по одному/несколько секторов, команды READ/READ MULTIPLE. Например, древняя CF32MB при чтении по одному сектору дала скорость всего 1МБ/с. При чтении 16-секторными блоками - около 3 МБс, более новые карточки при чтении 16-секторными блоками достигали 8 МБ/с. С записью ситуация похуже - на моих картах была в 2-4 раза медленее чтения.
Это был режим TrueIDE, возможно в режиме Memory ситуация получше.

При использовании MMC версий до 3.2- физически скорость ограничена 20Мбит/сек, SD - 4x25 Мбит/сек
И также влияют те же самые факторы - чтение посекторно или блоками, и насколько долго карта "думает" после получения команды. Максимум, что мне удалось достичь на Samsung 2410 для MMC - чтение в среднем 1.5МБ/сек, запись 0.8МБ/сек. SD - чтение в среднем 6 Мбайт/сек, запись - 2МБайт/сек. Обе карточки были трех-четырех летней давности, новые карты могут быть побыстрее.
grigorybold
Спасибо VslavX за развернутый ответ!
А есть ли опыт работы с CF через внешнюю шину LPC22xx?
Evgeny_CD
Вот результаты тестирования SD/MMC карточек в оптимизированых устройствах, т.е. максимально возможная практическая скорость.
http://www.caxapa.ru/echo/arm.html?id=49592
VslavX
Цитата(Evgeny_CD @ Jul 13 2006, 10:24) *
Вот результаты тестирования SD/MMC карточек в оптимизированых устройствах, т.е. максимально возможная практическая скорость.
http://www.caxapa.ru/echo/arm.html?id=49592

Это скорости новых карт и именно на оптимизированном обрудовании - "подбирайте карту к оборудованию" smile.gif. Встроенные в чипы контроллеры далеко не всегда оптимизированные. Например, упомянутый 2410 - там SD/MMC тактируется от периферийного клока PClk, обычно это составляет четверть от ядра - макс 66МГц (оптимизация по скорости, ядро на максимуме @266МГц). Потом внутри SD контроллера этот клок, ессно, делится пополам - имеем 33 МГц, а потом уже есть опциональный прескайлер. И какое значение прескайлера выбрать? Ставим 0 - имеем 33 МГц на SD шине, для v1.0 это много (25МГц макс). Ставим 1 - имеем 33/2->17МГц, это уже недобор sad.gif
Короче, вершина видна, но для ее достижения обычного альпснаряжения может не хватить smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.