Перейти к содержанию
    

понимаю что тема не новая, но все таки где почитать и код посмотреть???

под ммс все есть, но коннектора под нее нет

в подфорум для начинающих не стал, ибо слишком долго а мне бы побыстрее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а мне бы побыстрее

Moderator:

Для "побыстрее" читайте на форуме многочисленные ответы на вопросы Ваших предшественников, а не засоряйте основные ветки форума дежурными вопросами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для winAVR

Если без FAT, то я использовал стандартные атмеловские библиотеки:

avrlib.rar

 

Вот для установки библиотеки

 

Работает стабильно, без проблем с SD 1ГБ Apacer 60x (объём меньше-больше не пробовал)

Пишет и читает секторами по 512 б. Результат удобно смотреть в winhex.

В корневой папке найдёте mmc.c тут разберёте функции. Там же найдёте mmc.h тут описано подключение к CPU. Пример основной программы в avrlib/examples/mmc. Не забудьте ввести изменения в global.h и makefile (частота и камень)

Изначально отформатировал SD под FAT16

 

P.S. недели 2 назад попал в Вашу ситуацию, долго ковырялся, тем особо не нашёл, но в итоге всё заработало, может вам поможет, сэкономите время...

 

Удачи

Изменено пользователем VaaG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

понимаю что тема не новая, но все таки где почитать и код посмотреть???

под ммс все есть, но коннектора под нее нет

в подфорум для начинающих не стал, ибо слишком долго а мне бы побыстрее

Посмотри И вообще посети И здесь посмотри, много найдешь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...под ммс все есть, но коннектора под нее нет...

Для экспериментов, в качестве коннектора замечательно работают разъёмы от старых FDD-5,25 (дисководов).

Ещё подойдёт кусок ISA разъёма от старой матплаты PC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавлю, что предлагаемый в этой библиотечке (если я правильно понял) подход "через SPI" описан по-моему в 99% всех app.notes на эту тему... По крайней мере оставшегося 1% я не видал. ;-)

 

Практика показывает, что большинство карт отнюдь не достигают теоретического максимума скорости обмена по SPI - надолго уходят в бизи после операции записи (особенно если записывать по одному сектору, что опять же предлагается в 99% app.notesов). Почему по SPI даже при multiple write карточка часто уходит в бизи, а по SD4, вроде бы, не так часто - это я не вполне не понял.

 

В конце концов это составляет скорость записи от 50 до 150 кбайт в секунду (еще и от карты зависит). Для большинства задач это вполне достаточно, но если что, то я предупредил. ;-)

 

Кстати, на мой взгляд, искать по форуму SD-карты трудно, потому что в слове SD "меньше трех букв" ;-)))

Изменено пользователем RodionGork

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Практика показывает, что большинство карт отнюдь не достигают теоретического максимума скорости обмена по SPI - надолго уходят в бизи после операции записи (особенно если записывать по одному сектору). Почему по SPI даже при multiple write карточка часто уходит в бизи, а по SD4, вроде бы, не так часто - это я не вполне не понял.

В конце концов это составляет скорость записи от 50 до 150 кбайт в секунду (еще и от карты зависит).

 

При записи по одному сектору в режиме 1-wire SD у меня получилась такая скорость (с разными тактовыми):

103 КБ/сек - 215 КБ/сек (CLK = 20 MHz)

26.5 КБ/сек - 30 КБ/сек (CLK = 300 kHz)

 

Карта уходит в BUSY. Multiple write не использую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот уж действительно. Никто не хочет по форуму поискать что к чему. Откройте же http://elm-chan.org/fsw/ff/00index_e.html. Там все внятно написано, библиотека под FAT12-FAT32 опубликована совершенно бесплатная, примеры benchmark'ов приведены. Какого рожна еще надо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При записи по одному сектору в режиме 1-wire SD у меня получилась такая скорость (с разными тактовыми):

103 КБ/сек - 215 КБ/сек (CLK = 20 MHz)

26.5 КБ/сек - 30 КБ/сек (CLK = 300 kHz)

Карта уходит в BUSY. Multiple write не использую.

 

Вот именно - скоростями с которыми кард-ридеры записывают тут и не пахнет. Впрочем, в спецификации так и сказано (да и по смыслу получается) что если не использовать Multiple Write то используется только один буфер и после каждого сектора карта ждет пока он запишется. М-м-м... как-то я мутно "своими словами" спецификацию пересказываю. ;-)

 

Что касаемо до файловых систем, в аппликейшн-нотах надо поискать. На сайте SiLabs например можно готовые текстики взять и немного переделать с учетом используемого проца.

 

Вот уж действительно. Никто не хочет по форуму поискать что к чему. Откройте же http://elm-chan.org/fsw/ff/00index_e.html. Там все внятно написано, библиотека под FAT12-FAT32 опубликована совершенно бесплатная, примеры benchmark'ов приведены. Какого рожна еще надо?

 

Обратите внимание, что там бенчмарки для режима SPI либо для контроллера с MMC-интерфейсом. Когда появится ссылка на "рожна" с библиотеками для собственной реализации SD4 и бенчмарками для него это будет хорошо. Я на форумах (на edaboard и у silabs) видел что кто-то хвастался, мол, реализовали и все стало круче - но общаться люди не пожелали. Если сам домучаю (сейчас этот проект немножко на край стола съехал, ждет влияния финансов со стороны заказчика) - поделюсь, если это еще будет актуально... ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда появится ссылка на "рожна" с библиотеками для собственной реализации SD4

На ногомахании с попыткой изобразить SD интерфейс результата, если и можно какого добится, то исключительно на ниве попугаеизмерения а не в реальной жизни. Посему у реалиста японца никаих "библиотек" не появится а "крутые парни с форума" будут только рассказывать о невиданных успехах. Пользуйте контроллеры с SD контроллером на борту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На ногомахании с попыткой изобразить SD интерфейс результата, если и можно какого добится, то исключительно на ниве попугаеизмерения а не в реальной жизни. Посему у реалиста японца никаих "библиотек" не появится а "крутые парни с форума" будут только рассказывать о невиданных успехах. Пользуйте контроллеры с SD контроллером на борту.

 

Если можно, вы для пользы и для истории объясните, в чем конкретно проблему видите? А то вот пойду сейчас по неправильному пути "ногомахания", плакать буду потом горькими слезами... А если сейчас точно удастся понять в чем корень зла, так может избегну этой опасности...

 

У контроллеров с SD-интерфейсом на борту есть один минус. Я их что-то не встречал в корпусах меньше LQFP-100, а в носимые устройства иногда хочется вставить что-нибудь типа QFN-48... Потому что чем мельче - тем лучше... А кто встречал?

 

Правда NXP обещает что вот-вот начнет задумываться о маловыводных корпусах, в течение этого же 2009 года мол образцы начнут рассылать... Но ждать же невозможно!

Изменено пользователем RodionGork

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если можно, вы для пользы и для истории объясните, в чем конкретно проблему видите?

Проблема в том, что превзойти даже обычный однопроводный SPI уже будет затруднительно. Сколько тактов понадобится на извлечение/упаковку 4-х бит и вывод их в порт? А еще придется CRC считать по всем линиям отдельно.

 

Т.е. теоретически - да, возможно. На практике подходит только для изучения интерфейса SD.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в том, что превзойти даже обычный однопроводный SPI уже будет затруднительно. Сколько тактов понадобится на извлечение/упаковку 4-х бит и вывод их в порт? А еще придется CRC считать по всем линиям отдельно.

 

Т.е. теоретически - да, возможно. На практике подходит только для изучения интерфейса SD.

 

А что у нас там с извлечением/упаковкой битов? Мне разве показалось что там по полубайту все отправляется, вроде бы ничего не перепутано как бывает порой...

 

Считать CRC действительно противно именно потому что отдельные биты на отдельных линиях - т.е. его не получится считать побайтово, а побитово уже натурально времени не будет хватать. В связи с этим, похоже, придется его отключать.

 

В общем безусловно нагрузка на проц больше, чем в случае готового интерфейса, но ведь в режиме, скажем, записи с компа на флешку девайс скорее всего ничем особенно больше и не будет заниматься, так что можно потерпеть.

 

Есть еще третье решение - микросхему интерфейса использовать. Но опять же в мелких корпусах вариантов почти нет. Все это грустно. ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если можно, вы для пользы и для истории объясните, в чем конкретно проблему видите?

aaarrr все объяснил.

А то вот пойду сейчас по неправильному пути "ногомахания"

А Вы еще в добавок и не представляете, где есть узкое место -тот-же SPI упирается в 20(двадцать) мегабит, что более двух мегабайт в секунду. По той-же Вашей цитате Джеймса при уменьшении скорости обмена по SPI в 66 (шестьдесят шесть) раз получили скорость обмена меньше всего в 4 (четыре) раза. Вспомните начала алгебры и посчитайте, с какой скоростью будет происходить работа c SD, если даже передача будет происходить мгновенно. Так-что копайте насчет тормозов в сотни килобайт совсем в другом месте.

У контроллеров с SD-интерфейсом на борту есть один минус. Я их что-то не встречал в корпусах меньше LQFP-100, а в носимые устройства иногда хочется вставить что-нибудь типа QFN-48...

Ну и зачем микроскопическому носимому устройству мечтается десятки мегабайт в секунду заливать на карточку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что у нас там с извлечением/упаковкой битов? Мне разве показалось что там по полубайту все отправляется, вроде бы ничего не перепутано как бывает порой...

И что, от этого легче?

 

Считать CRC действительно противно именно потому что отдельные биты на отдельных линиях - т.е. его не получится считать побайтово, а побитово уже натурально времени не будет хватать. В связи с этим, похоже, придется его отключать.

А вот и камень на могилу: CRC в SD-режиме отключить нельзя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...