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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Промлема инициализации SD-card в SD mode, Промлема инициализации SD-card в SD mode
aaarrr
сообщение Mar 27 2012, 16:42
Сообщение #31


Гуру
******

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



А вопрос-то в чем? Что и как не работает?
Go to the top of the page
 
+Quote Post
nikita1584
сообщение Mar 28 2012, 09:27
Сообщение #32





Группа: Новичок
Сообщений: 5
Регистрация: 27-03-12
Пользователь №: 71 035



Я читаю данные, которые изначально были на карте, а не те, которые пытался записать.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Mar 30 2012, 13:32
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(nikita1584 @ Mar 27 2012, 20:05) *
Считаю CRC для данных правильно, подтвержением тому - совпадение вычисленной моей CRC и полученной от карты при чении.


Как то не вяжется.
У Вас есть блок данных для записи, для него считаем CRC16.
Как можно получить значение crc от карты и сравнить со своим значением, если блок не пишется?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 30 2012, 13:44
Сообщение #34


Гуру
******

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



Цитата(KAlex @ Mar 30 2012, 17:32) *
Как можно получить значение crc от карты и сравнить со своим значением, если блок не пишется?

Проверить работу CRC можно при чтении.

Цитата(nikita1584 @ Mar 28 2012, 13:27) *
Я читаю данные, которые изначально были на карте, а не те, которые пытался записать.

Опишите максимально подробно, что происходит на шине после CMD24 - токены, ответы, BUSY и т.д.
Go to the top of the page
 
+Quote Post
toretto
сообщение Apr 3 2012, 06:04
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590



не хочу заводить новую тему о SD-картах, продолжу тут. Установил размер чтения 1024 бита (2 сектора). читаю командой CMD17, каждый раз новый сектор (не последующий). Задержка между посылкой команды и началом передачи данных ~500 мкс. Возможно ли эту задержку уменьшить как минимум на порядок? карта Inno Disk 2GB, class 10.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 3 2012, 06:12
Сообщение #36


Гуру
******

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



Цитата(toretto @ Apr 3 2012, 10:04) *
читаю командой CMD17, каждый раз новый сектор (не последующий). Задержка между посылкой команды и началом передачи данных ~500 мкс. Возможно ли эту задержку уменьшить как минимум на порядок?

Нет, на случайном чтении задержку убрать не получится.
Go to the top of the page
 
+Quote Post
toretto
сообщение Apr 3 2012, 08:01
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590



а как ведут себя карты с индексом скорости х150? например Transcend 133x SD 2 Гб (TS2GSD133). за счет чего вырастает скорость чтения у карт разных классов?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 3 2012, 08:39
Сообщение #38


Гуру
******

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



Все это скорости линейных операций. На случайном чтении может выручить только кэш в какой-то степени.
Go to the top of the page
 
+Quote Post
nikita1584
сообщение Apr 3 2012, 11:52
Сообщение #39





Группа: Новичок
Сообщений: 5
Регистрация: 27-03-12
Пользователь №: 71 035



отправляю CMD24: 0x580010080065
получаю ответ 0x18000009005D
отправляю данные (512 байт + старт + CRC + стоп), протактировав карточку до этого тактов 300 тактов:
0x00123456
0x789ABCDE
0xF0123456
0x789ABCDE
0xF0123456
0x789ABCDE
0xF0123456
0x789ABCDE
...
0x789ABCDE
0xFCD67DEF
0x92352A7D
0x1FFFFFFF
т.е. CRC = CD67 DEF9 2352 A7D1
первый ноль в первом блоке - старт бит
затем я тактирую около 6000 тактов
читаю статус CMD13: 0x4D000009003F
респонс от CDM13: 0x0D000009003F
далее, читаю CMD17: 0x51001008005F
ответ: 0x110000090067

линия DAT0 после попытки записи в высоком состоянии
старт бит для данных для записи в режиме SD - это один такт нулей или как SPI - 0xFC?

Сообщение отредактировал nikita1584 - Apr 3 2012, 11:56
Go to the top of the page
 
+Quote Post
KAlex
сообщение Apr 10 2012, 08:20
Сообщение #40


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(nikita1584 @ Apr 3 2012, 15:52) *
читаю статус CMD13: 0x4D000009003F
респонс от CDM13: 0x0D000009003F


Кажется я понял.
RCA нулевой.
А как посылается CMD7? И что в ответ?
Go to the top of the page
 
+Quote Post
nikita1584
сообщение Apr 11 2012, 09:32
Сообщение #41





Группа: Новичок
Сообщений: 5
Регистрация: 27-03-12
Пользователь №: 71 035



Извиняюсь, я не правильно написал, RCA не нулевой. 13-ю команду я посылаю в таком виде:
CMD13: 0x4D00020000B1
респонс на CMD13: 0x0D000009003F

выбираю карточку я так CMD7: 0x47000200003F

Было замечено следующее: после попытки записать блок 17-й командой и тактирования, на линии данных я увидел 0xFFFF....FFFF EFE FFFF....FFFF, значит ли это что где-то ошибка?

Ещё я пробовал записать 25-й командой, остонавливаю 12-й командой и спрашиваю статус 13-й (респонс на 13-ю команду такой же). На осциллографе я видел что линия DAT0 находилась в низком состоянии некоторое время, но блок всё равно не записался

может я не тот адрес указываю при чтении.. (задаю такой же как на запись)
Go to the top of the page
 
+Quote Post
KAlex
сообщение Apr 11 2012, 14:11
Сообщение #42


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



А какой респонс на CMD3 при инициализации карты?
И CMD7 тоже интересует.
Go to the top of the page
 
+Quote Post
nikita1584
сообщение Apr 11 2012, 20:06
Сообщение #43





Группа: Новичок
Сообщений: 5
Регистрация: 27-03-12
Пользователь №: 71 035



Большое спасибо тем кто пытался помочь!

Я до записи попробовал послать 16-ю команду (установить длину блока), потом 23-й командой установил количество блоков, равное единице и потом ACMD22 поставил количество блоков, которое должно быть записано. После этого попытался записать 25-й командой (WRITE_BLOCK_MULTIPLE), и попытка удалась.

Кстати, в респонсе от CMD3 устанавливается 5-й бит статуса, т.е. APP_CMD что значит "The card will expect ACMD, or an indication that the command has been interpreted as ACMD" Хотя до того я 55-ю не посылал, а посылал вторую.

Сообщение отредактировал nikita1584 - Apr 11 2012, 20:08
Go to the top of the page
 
+Quote Post

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

 


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


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