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

 
 
9 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Проблема с SD картой, Подключение карт к 5В питанию. Кто плавал, посоветуйте.
jasper
сообщение Jul 18 2007, 05:42
Сообщение #31


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Цитата
ВОПРОС2: У кого есть датащит на микро? поделитесь плиз...

Немного правда.
Прикрепленные файлы
Прикрепленный файл  TSxxMCM.pdf ( 300.15 килобайт ) Кол-во скачиваний: 330
 
Go to the top of the page
 
+Quote Post
SALOME
сообщение Jul 18 2007, 06:32
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349



Цитата(QuickWitted @ Jul 18 2007, 11:30) *
(Уточню: У МЕНЯ на карте 32метра только признак данных не по мануалу, а всё остальное РАБОТАЕТ.)
Ладно повторю вопрос: КАК РАБОТАТЬ С ММСмикро ?

Ну а если все РАБОТАЕТ, то чего хотите от нас? Если у Вас не тот "признак", а данные правильные, то чем Вы так обеспокоены? Юзайте эту свою странную карту на здоровье.. smile.gif и забудтьте про признаки.
А лучше попробуйте другую карту. Рискну предположить, что ЭТА карта, во первых явно старая (давно уже таких в продаже нет) и кроме того вы ее основательно зачухали своими экспериментами smile.gif


--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jul 18 2007, 07:04
Сообщение #33


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(SALOME @ Jul 18 2007, 11:32) *
Ну а если все РАБОТАЕТ, то чего хотите от нас? Если у Вас не тот "признак", а данные правильные, то чем Вы так обеспокоены?
Юзайте эту свою странную карту на здоровье.. smile.gif


Ковыряя чужой исходник откопал:

; SD_START_TOKEN 0xFE
; SD_MULTI_START 0xFC

Одно но, концы их растут из библиотеке и далее не совсем понятно...

Цитата
А лучше попробуйте другую карту.


Пришли к тому от чего начали...

КАК работать с MMCмикро?

ДРУГИХ У НАС НЕ ПРОДАЮТ...
(правда ещё можно плюсы поискать, но микро есть в наличии)

Цитата
Рискну предположить, что ЭТА карта, во первых явно старая (давно уже таких в продаже нет) и кроме того вы ее основательно зачухали своими экспериментами smile.gif


Идёт в стандартной поставке с сот телефонами...
так что новая...


Цитата(jasper @ Jul 18 2007, 10:42) *
Немного правда.


За спецификацию низкоуровневого (эл. протакола) спасибо...
Мне бы логический... типа как инициализировать и т.д.

Нечто вроде нащупал:
http://www.samsung.com/global/business/sem...note_200606.pdf

Сообщение отредактировал QuickWitted - Jul 18 2007, 06:50


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Angelborn
сообщение Jul 18 2007, 07:16
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387



Цитата(QuickWitted @ Jul 18 2007, 07:30) *
правильней сказать при команде сет блок показывает кукиш twak.gif


А чем тебя блок 512 байт не устраивает? Пробовал не посылать сет блок? Я с твоим исходником не ознакамливался, большой дифицит времени (2работы). Так что за недопонимание ситуации прости, если что.
Я, дабы не колупаться зря, купил себе картридер, простенький такой, у нас в конфискате стоит 35 грн (180руб). После истязаний сую в него карту и если всё ОК то продолжаю пытки. А неделю возится с подгоревшей картой - уж звиняйте, не по мне wacko.gif .
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jul 18 2007, 08:02
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(Angelborn @ Jul 18 2007, 12:16) *
А чем тебя блок 512 байт не устраивает? Пробовал не посылать сет блок?


пока нет... раньше он не отключался - щас перехожу на модульную схему программирования...
(каждый кусок в своей процедуре) тогда можно будит и попробовать...
(напомню - ковыряю чужой исходник)

Цитата
Я, дабы не колупаться зря, купил себе картридер, если всё ОК то продолжаю пытки.

Аналогично (через него и залил тестовый файл)

Цитата
А неделю возится с подгоревшей картой - уж звиняйте, не по мне


Карта 32мб пока работает, про не тот ответ смотри выше...

А доку на новые карточки нужно...
Тут немного есть (приводил выше), и становится ясно что работать надо по другому
с большими картами...

http://www.samsung.com/global/business/sem...note_200606.pdf


У меня не получается считать с Nного байта (на карте в 32 метра)
т.е. в CMD17 удаётся установить только адрес блока...
Пример - 00 04 50 00 – начало первого файла

при попытке изменения последних 3 нулей - повисание карточки...
(проверку на данные я же отключил)

но мне и не надо - читаю блоками по 512... но все таки...
(есно значение блока при попытке было минимальным и за границу блоков не цепляло)

Сообщение отредактировал QuickWitted - Jul 18 2007, 08:05


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Angelborn
сообщение Jul 18 2007, 08:18
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387



Странное дело, конечно... Я CMD16 не посылал, тем самым оставив 512 байт блока. А в аргументе CMD17 или CMD18 у меня последние нули, т.е. например 00 04 10 00. Если поменять последние нули, то вылезет ошибка о границе блока.
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jul 18 2007, 08:46
Сообщение #37


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(Angelborn @ Jul 18 2007, 13:18) *
Странное дело, конечно... Я CMD16 не посылал, тем самым оставив 512 байт блока. А в аргументе CMD17 или CMD18 у меня последние нули, т.е. например 00 04 10 00. Если поменять последние нули, то вылезет ошибка о границе блока.


Где то читал что не все карточки держат побайтовую адресацию...
Так у кого работает?

А про 512 по умолчанию это не для всех...

Из датащита:

Block length = 512byte
Card Density = 4096 * 512 * 512 = 1Gbyte

Block length = 2048byte
Card Density = 4096 * 512 * 2048 = 4Gbyte


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Angelborn
сообщение Jul 18 2007, 08:54
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387



Цитата(QuickWitted @ Jul 18 2007, 11:46) *
Где то читал что не все карточки держат побайтовую адресацию...
Так у кого работает?

А про 512 по умолчанию это не для всех...


Значит, мне просто повезло. карточка на 64 М, в начале темы описана.
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jul 19 2007, 03:59
Сообщение #39


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата
А чем тебя блок 512 байт не устраивает? Пробовал не посылать сет блок?


Вчера попробовал не посылать сет блок (CMD16) на ММСмикро 512Мб - вылетает с ошибкой чтения...
т.е. ругается на команду чтения... Последовательность CMD0 CMD1 CMD17
тут по моему что-то с инициализацией (т.к. кроме как на статус она не на что не отвечает).....

(Карта 32Мб без команды CMD16 по умолчанию имеет длину блока 512 и на
последовательность команд CMD0 CMD1 CMD17 отдаёт блок - Т.Е. РАБОТАЕТ)

НУ И ЕЩЁ РАЗ СПРОШУ:
У КОГО ЕСТЬ ДОКА НА КОМАНДЫ ММСмикро?

Последовательность команд для карт ММС 8-128Мб с ММСмикро 512Мб НЕ РАБОТАЕТ!!!


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jul 19 2007, 06:18
Сообщение #40


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Может кому понадобится...

На скору руку мной нацарапанная утилита для создания индексных
текстовых файлов для тестового чтения с флешки...
(т.е файл создаёт с цифрами 00000001: и до заданного размера файла)

[attachment=12581:attachment]

удобно тем, что по прочитанному можно проконтролировать положение
знакоместа и правильность чтения…


кто СИ знает гляньте:
http://www.nxp.com/acrobat_download/applic...s/AN10406_3.pdf

или тут прилепил [attachment=12585:attachment]

Рекомендации по работе с ММС по SPI
датировано 2007

Они их поменяли по сравнению с 2005 годом (AN10406_2.pdf)

Сообщение отредактировал QuickWitted - Jul 19 2007, 06:31


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
oll
сообщение Jul 19 2007, 16:52
Сообщение #41


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



"Последовательность команд для карт ММС 8-128Мб с ММСмикро 512Мб НЕ РАБОТАЕТ!!!"

Случайно наткнулся на этот топик - редко захожу.
У меня работает одна и та же последовательность команд (CMD0 CMD1 CMD17) одинаково и для SD 32Mb и microSD 512mB GoodRam, пробовал и SunDisk 512Mb - тоже работает. Только SunDisk дольше по времени уходит в sleep. Работает с Mega48, аппаратный SPI не использовал (неудобно вышло по ногам), реализовано программно по алгоритму, который высылал для Angelborn, написанный на Algoritm Bilder. В начале все отрабатывал на ЛПТ порту.
Go to the top of the page
 
+Quote Post
Angelborn
сообщение Jul 19 2007, 17:23
Сообщение #42


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387



Цитата(oll @ Jul 19 2007, 19:52) *
"Последовательность команд для карт ММС 8-128Мб с ММСмикро 512Мб НЕ РАБОТАЕТ!!!"

Случайно наткнулся на этот топик - редко захожу.
У меня работает одна и та же последовательность команд (CMD0 CMD1 CMD17) одинаково и для SD 32Mb и microSD 512mB GoodRam, пробовал и SunDisk 512Mb - тоже работает. Только SunDisk дольше по времени уходит в sleep. Работает с Mega48, аппаратный SPI не использовал (неудобно вышло по ногам), реализовано программно по алгоритму, который высылал для Angelborn, написанный на Algoritm Bilder. В начале все отрабатывал на ЛПТ порту.


За который кстати, спасибо! У меня уже есть своя прога на VB, читает блок 512 байт, а также CSD и CID. Ну и инициализация само собой.
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jul 20 2007, 04:45
Сообщение #43


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(oll @ Jul 19 2007, 21:52) *
"Последовательность команд для карт ММС 8-128Мб с ММСмикро 512Мб НЕ РАБОТАЕТ!!!"
Случайно наткнулся на этот топик - редко захожу.
У меня работает одна и та же последовательность команд (CMD0 CMD1 CMD17) одинаково и для SD 32Mb и microSD 512mB GoodRam, пробовал и SunDisk 512Mb - тоже работает.


1) Тактовая на SPI какая ?
(какой кварц?)
(у меня на частоте под 3 Мгц (кварц 16,5888) потребовались задержки, а в твоей версии их нет...)
(в оригинальной версии их тоже не было, но там частота на SPI была 0,75 Мгц (кварц 4,000) )

1) Выше приводили инициализацию на SD:
[SALOME]
1.Переход на SPI протокол (инициализация):
- после подачи питания: Fclk<400KHz; синхронизация и сдвиг бита по переднему
нарастающему фронту, пассивный уровень CLK -0;
- не подавая CS=0, оправить по SPI 10 пустых байт;
- подать команду CMD0 (сброс) и получить отклик 0х01. Bit_7=0 означает, что карта
откликнулась, Bit_0=1 - находится в спячке. Режим SPI сохранится до выключения питания.
2.Активизация карты в SPI режиме:
- подать CMD8 с аргументом пит. напряжения и емкости карты. Если в отклике эта команда
допустима (Bit_2=0), то карта ver2.00 и выше и она по напряжению совместима. Далее ее
следует вывести из спячки командой CMD41 и проверить емкость CMD58.
-если отклик R1 на CMD8 неверен, то применить ACMD41. Если карта не выходит из спячки,
то это не SD_карта.
-для MMC_карты применяется команда CMD1.[/SALOME]

а у тебя она немного другая... (точнее как у MMC)
"SD" в твоём топике это не опечатка?

Сам вопросы задаю...
сам отвечаю sad.gif

Цитата
Max_Shaman
Спецификация гласит что так называемый TOKEN "синхронизирующий бит начала передачи", может появляться в любой момент тактов ожидания ответа, то-есть он может быть не кратен 8-ми циклам.
Решение проблемы: надо отлавливаить не код "FE" , а всего-лишь первый нулевой бит, и по нему уже синхронизироваться, он может появляется в любое время а не так как вы его ожидаете.
Я в интернете на зарубежных форумнаходил исходники с подобным неправильным способом работы с карточкой и так-же жалобы на неспособность работы некоторых карточек от некоторых производителей.
Поэтому пришлось написать полность свои функции. С обработкой токенов-ответов на разные там ошибки карты. Карточки с которыми я работал вот такие: APACER 512Mb, Kingston 1G, Transced 2G и пару каких-то неизвестных ( 5 вольтовых )производителей. И никаких проблем.
Написал функции обработки информационных структур (CCD, SCD - по моему их так зовут), для определения размерности карты и максимального рабочего пакета, без обработки этих структур в которых присутствует информация о максимальных размерах: входном пакете записи и пакете чтения.
Так же перед работой карточки надо установить командами размерность пакета, это как за правило.
Еще, можно пересекать границы адресов, но только не адресов которые кратны максимально заявленного размера блока передачи текущей карты.

Я думаю Вам надо переписать код, для того чтобы синхронизировать работу вашего SPI в микроконтролере Вы должны написать чисто програмный отлавливатель первого нулевого бита. Тогда у Вас не будут проблемы с несовместимостью Вашего устройства с карточками.

```````````````````````````````````````
Тогда получается если 0 бит будет в середине(апаратный SPI) допустим 4й бит, то все данные за ним нужно подвинуть на 4 влево? Тогда и вправду нада програмный SPI ...
```````````````````````````````````````
Однозначно.
Почитай мануал с самсунга, поймешь что я не шучу.
Там есть так называемый на графиках обмена, период ожидания ( Ncr ) - и может принимать значение от 1 до 8, но обычное заявленное значение равно 8. В других мануалах максимальное значение и того больше.
И самое главное, обязательно: если будешь применять команды записи или чтения, то предварительно примени команду SET_BLOCKLEN (она же CMD16), с параметром удобного для тебя размером блока, но не больше заявленого в CSD.WRITE_BLK_LEN. И при чтении не пересекай адреса через границы кратные размерности CSD.WRITE_BLK_LEN или CSD.READ_BL_LEN.
```````````````````````````````````````
чего тут непонятного? NCR может быть равным от 1 до 8 байт а не бит как вы вероятно думаете


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
oll
сообщение Jul 20 2007, 05:36
Сообщение #44


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



1) Тактовая на SPI какая ?
(какой кварц?)

*Mega48 с внутренним генератором на 8мГц, питание 3.6В, никаких задержек не делал.

1) Выше приводили инициализацию на SD:
[SALOME]
1.Переход на SPI протокол (инициализация):
- после подачи питания: Fclk<400KHz; синхронизация и сдвиг бита по переднему
нарастающему фронту, пассивный уровень CLK -0;
- не подавая CS=0, оправить по SPI 10 пустых байт;

*у меня 74+8 CLK (CS,SI в "1") как в http://elm-chan.org/docs/mmc/mmc_e.html

- подать команду CMD0 (сброс) и получить отклик 0х01. Bit_7=0 означает, что карта
откликнулась, Bit_0=1 - находится в спячке. Режим SPI сохранится до выключения питания.

*тут в начале я делал команду CMD0 один раз и ждал пока в ответе Bit_0 станет "0", но при отработке на ЛПТ оказалось "надежнее", но наверное не правильнее, подавать команду снова и снова пока не получим правильный отклик.

2.Активизация карты в SPI режиме:
- подать CMD8 с аргументом пит. напряжения и емкости карты. Если в отклике эта команда
допустима (Bit_2=0), то карта ver2.00 и выше и она по напряжению совместима. Далее ее
следует вывести из спячки командой CMD41 и проверить емкость CMD58.
-если отклик R1 на CMD8 неверен, то применить ACMD41. Если карта не выходит из спячки,
то это не SD_карта.

*эти команды не использовал

-для MMC_карты применяется команда CMD1.[/SALOME]

*в указанном выше документе CMD1 применима и к SD и к MMC

а у тебя она немного другая... (точнее как у MMC)
"SD" в твоём топике это не опечатка?

*MMC у меня нет ни одной
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jul 23 2007, 03:44
Сообщение #45


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Теперь вопрос, а что с хардварным SPI на асме делать?
На софтовом - понятно, а с хардой?

Пока работаю с софтовым, но все таки...

Проблема вкратце: Ответ от карты может начинаться не с начала байта... где первый ноль там начало...
(подробно - читай выше)


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post

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

 


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


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