реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> SD карта и AVR, где почитать?
_Ivan_33
сообщение Mar 12 2009, 18:02
Сообщение #1


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



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


--------------------
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 12 2009, 18:16
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(_Ivan_33 @ Mar 12 2009, 21:02) *
а мне бы побыстрее

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
VaaG
сообщение Mar 13 2009, 13:55
Сообщение #3





Группа: Новичок
Сообщений: 13
Регистрация: 21-02-09
Из: Москва
Пользователь №: 45 189



Для winAVR
Если без FAT, то я использовал стандартные атмеловские библиотеки:
Прикрепленный файл  avrlib.rar ( 1.31 мегабайт ) Кол-во скачиваний: 261


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

Работает стабильно, без проблем с SD 1ГБ Apacer 60x (объём меньше-больше не пробовал)
Пишет и читает секторами по 512 б. Результат удобно смотреть в winhex.
В корневой папке найдёте mmc.c тут разберёте функции. Там же найдёте mmc.h тут описано подключение к CPU. Пример основной программы в avrlib/examples/mmc. Не забудьте ввести изменения в global.h и makefile (частота и камень)
Изначально отформатировал SD под FAT16

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

Удачи

Сообщение отредактировал VaaG - Mar 13 2009, 14:00
Go to the top of the page
 
+Quote Post
clpe
сообщение Mar 24 2009, 21:47
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 23-10-08
Из: Набережные Челны
Пользователь №: 41 132



Цитата(_Ivan_33 @ Mar 12 2009, 21:02) *
понимаю что тема не новая, но все таки где почитать и код посмотреть???
под ммс все есть, но коннектора под нее нет
в подфорум для начинающих не стал, ибо слишком долго а мне бы побыстрее

Посмотри И вообще посети И здесь посмотри, много найдешь
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Apr 11 2009, 21:11
Сообщение #5


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(_Ivan_33 @ Mar 12 2009, 22:02) *
...под ммс все есть, но коннектора под нее нет...

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


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
RodionGork
сообщение Apr 12 2009, 03:39
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 30-10-07
Из: Санкт-Петербург
Пользователь №: 31 866



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

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

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

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

Сообщение отредактировал RodionGork - Apr 12 2009, 03:40
Go to the top of the page
 
+Quote Post
Джеймс
сообщение Apr 12 2009, 19:23
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Цитата(RodionGork @ Apr 12 2009, 07:39) *
Практика показывает, что большинство карт отнюдь не достигают теоретического максимума скорости обмена по SPI - надолго уходят в бизи после операции записи (особенно если записывать по одному сектору). Почему по SPI даже при multiple write карточка часто уходит в бизи, а по SD4, вроде бы, не так часто - это я не вполне не понял.
В конце концов это составляет скорость записи от 50 до 150 кбайт в секунду (еще и от карты зависит).


При записи по одному сектору в режиме 1-wire SD у меня получилась такая скорость (с разными тактовыми):
103 КБ/сек - 215 КБ/сек (CLK = 20 MHz)
26.5 КБ/сек - 30 КБ/сек (CLK = 300 kHz)

Карта уходит в BUSY. Multiple write не использую.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Apr 12 2009, 21:57
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Вот уж действительно. Никто не хочет по форуму поискать что к чему. Откройте же http://elm-chan.org/fsw/ff/00index_e.html. Там все внятно написано, библиотека под FAT12-FAT32 опубликована совершенно бесплатная, примеры benchmark'ов приведены. Какого рожна еще надо?
Go to the top of the page
 
+Quote Post
RodionGork
сообщение Apr 13 2009, 06:50
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 30-10-07
Из: Санкт-Петербург
Пользователь №: 31 866



Цитата(Джеймс @ Apr 12 2009, 23:23) *
При записи по одному сектору в режиме 1-wire SD у меня получилась такая скорость (с разными тактовыми):
103 КБ/сек - 215 КБ/сек (CLK = 20 MHz)
26.5 КБ/сек - 30 КБ/сек (CLK = 300 kHz)
Карта уходит в BUSY. Multiple write не использую.


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

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

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


Обратите внимание, что там бенчмарки для режима SPI либо для контроллера с MMC-интерфейсом. Когда появится ссылка на "рожна" с библиотеками для собственной реализации SD4 и бенчмарками для него это будет хорошо. Я на форумах (на edaboard и у silabs) видел что кто-то хвастался, мол, реализовали и все стало круче - но общаться люди не пожелали. Если сам домучаю (сейчас этот проект немножко на край стола съехал, ждет влияния финансов со стороны заказчика) - поделюсь, если это еще будет актуально... ;-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 13 2009, 07:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(RodionGork @ Apr 13 2009, 08:50) *
Когда появится ссылка на "рожна" с библиотеками для собственной реализации SD4

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
RodionGork
сообщение Apr 13 2009, 07:21
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 30-10-07
Из: Санкт-Петербург
Пользователь №: 31 866



Цитата(zltigo @ Apr 13 2009, 11:11) *
На ногомахании с попыткой изобразить SD интерфейс результата, если и можно какого добится, то исключительно на ниве попугаеизмерения а не в реальной жизни. Посему у реалиста японца никаих "библиотек" не появится а "крутые парни с форума" будут только рассказывать о невиданных успехах. Пользуйте контроллеры с SD контроллером на борту.


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

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

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

Сообщение отредактировал RodionGork - Apr 13 2009, 07:22
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 13 2009, 07:28
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(RodionGork @ Apr 13 2009, 11:21) *
Если можно, вы для пользы и для истории объясните, в чем конкретно проблему видите?

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

Т.е. теоретически - да, возможно. На практике подходит только для изучения интерфейса SD.
Go to the top of the page
 
+Quote Post
RodionGork
сообщение Apr 13 2009, 07:37
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 30-10-07
Из: Санкт-Петербург
Пользователь №: 31 866



Цитата(aaarrr @ Apr 13 2009, 11:28) *
Проблема в том, что превзойти даже обычный однопроводный SPI уже будет затруднительно. Сколько тактов понадобится на извлечение/упаковку 4-х бит и вывод их в порт? А еще придется CRC считать по всем линиям отдельно.

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


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

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

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

Есть еще третье решение - микросхему интерфейса использовать. Но опять же в мелких корпусах вариантов почти нет. Все это грустно. ;-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 13 2009, 07:49
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(RodionGork @ Apr 13 2009, 09:21) *
Если можно, вы для пользы и для истории объясните, в чем конкретно проблему видите?

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

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

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 13 2009, 07:50
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(RodionGork @ Apr 13 2009, 11:37) *
А что у нас там с извлечением/упаковкой битов? Мне разве показалось что там по полубайту все отправляется, вроде бы ничего не перепутано как бывает порой...

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

Цитата(RodionGork @ Apr 13 2009, 11:37) *
Считать CRC действительно противно именно потому что отдельные биты на отдельных линиях - т.е. его не получится считать побайтово, а побитово уже натурально времени не будет хватать. В связи с этим, похоже, придется его отключать.

А вот и камень на могилу: CRC в SD-режиме отключить нельзя.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01485 секунд с 7
ELECTRONIX ©2004-2016