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

 
 
9 страниц V  « < 5 6 7 8 9 >  
Reply to this topicStart new topic
> Проблема с SD картой, Подключение карт к 5В питанию. Кто плавал, посоветуйте.
QuickWitted
сообщение Aug 31 2007, 04:44
Сообщение #91


Местный
***

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



Цитата(Rudolph @ Aug 27 2007, 19:16) *
В данный момент такая:

//// Сгрызли мыши ////

6. CMD16 arg = 512
7. CMD9 arg=0 - получить регистр CSD.


почему не наоборот?
(объём, скорость, и размер макс блока вычисляется в CMD9)
и на мой взгляд логично поднимать частоту ПОСЛЕ CMD9

Кстати интересный вопрос - А как вычислить скорость по CMD9?
(где лежит, знаю, а математику приведения/вычисления реальной- нет)


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


Местный
***

Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006



Думаю полезная ссылка будет FAT хороший перевод.

Вот и описание MBR, нашлось.Прикрепленный файл  MBR.rar ( 41.04 килобайт ) Кол-во скачиваний: 306
Думаю будет полезным.
Go to the top of the page
 
+Quote Post
Rudolph
сообщение Aug 31 2007, 15:32
Сообщение #93


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 19-02-07
Пользователь №: 25 505



Цитата(QuickWitted @ Aug 31 2007, 08:44) *
почему не наоборот?
(объём, скорость, и размер макс блока вычисляется в CMD9)
и на мой взгляд логично поднимать частоту ПОСЛЕ CMD9



Да, конечно, правильнее проверить CSD сначала и подавать CMD16 только, если это надо.
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Sep 4 2007, 10:51
Сообщение #94


Местный
***

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



В файловой системе основной единицей является кластер.
Кластер состоит из секторов, а сектор имеет длину в N байт.
Файл записанный на диск занимает какое-то ЦЕЛОЕ кол-во кластеров.

В фат все значения идут младшим вперёд

На диске в начале идёт сектор который называют "boot сектор",
"reserved sector" или "0th sector," но главное лишь то,
что это первый сектор на диске.

Смещение от начала диска в блоках на ??? это 4-х байтовое значение
в нулевом секторе, начиная с позиции 1C6h.

1) Вычислить место нахождение ??? считав НУЛЕВОЙ блок и обработав 4 байта
начиная со смещения 1C6h

загрузочная запись раздела начинается с = 00 00 00 20
-------------------------------------------------------------------------------------
Пример:
01С0 01,00,04,01,E0,D4,20,00,00,00,DF,F4,00,00,00,00
^^1bayt
-------------------------------------------------------------------------------------

2) Считать этот блок


3) Выделить 2 байта по смещению 0Bh
Количество байтов в секторе = 07 00
-------------------------------------------------------------------------------------
Пример:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0000 F8,FF,FF,FF,03,00,04,00,05,00,06,00,07,00,08,00
^^1bayt
-------------------------------------------------------------------------------------

4) Выделить 2 байта по смещению 0Eh
Количество зарезервированных секторов = 00 08
-------------------------------------------------------------------------------------
Пример:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0000 F8,FF,FF,FF,03,00,04,00,05,00,06,00,07,00,08,00
^^1bayt
-------------------------------------------------------------------------------------

5) Выделить 1 байт по смещению 10h
Количество копий FAT = 02
-------------------------------------------------------------------------------------
Пример:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0010 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00
^^1bayt
-------------------------------------------------------------------------------------

6) Выделить 2 байта по смещению 11h
Количество возможных записей в корневом каталоге = 02 00
-------------------------------------------------------------------------------------
Пример:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0010 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00
^^1bayt
-------------------------------------------------------------------------------------

7) Выделить 2 байта по смещению 16h
Секторов на FAT = 00 F3
-------------------------------------------------------------------------------------
Пример:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0010 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00
^^1bayt
-------------------------------------------------------------------------------------

Записи FAT = загрузочная запись раздела + 0Eh (2 байта)
= 20 + 08 = 28h

Записи каталога = записи FAT + (16h (2 байта) * 10h (1 байт))
= 28h + F3*2 = 20Eh

Область данных (кластер 0) = записи каталога + (11h (2 байта)*32/512) в загрузочной записи раздела
= 20E + 200h*32/512 = 20E + 32d = 22E



А начало в 228

В байтах 04 50 00 h
в блоках 02 28 h



Blok 0200
> Adres00000000

00A0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
00B0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
00C0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
00D0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
00E0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
00F0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0100 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0110 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0120 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0130 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0140 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0150 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0160 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0170 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0180 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0190 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
01A0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
01B0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
01C0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
01D0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
01E0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
01F0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0200 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0210 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0220 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0230 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0240 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0250 00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,01 [#128]
0260 01,00,04,01,E0,D4,20,00,00,00,DF,F4,00,00,00,00
0270 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0280 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
0290 00,00,00,00,00,00,00,00,00,00,00,00,00,00,55,AA U[#170]

> OK.


>>>>>>>>>>>
> Blok 0200
> Adres00004000

00A0 EB,3C,90,4D,53,44,4F,53,35,2E,30,00,02,01,02,00 <[#144]MSDOS5.0
00B0 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00 ?
00C0 00,00,00,00,00,00,29,4B,C8,5F,F0,4E,4F,20,4E,41 )K _ NO NA
00D0 4D,45,20,20,20,20,46,41,54,31,36,20,20,20,33,C9 ME FAT16 3
00E0 8E,D1,BC,F0,7B,8E,D9,B8,00,20,8E,C0,FC,BD,00,7C [#142] [#188] {[#142] [#142] [#189]|
00F0 38,4E,24,7D,24,8B,C1,99,E8,3C,01,72,1C,83,EB,3A 8N$}$[#139] [#153] <r[#131] :
0100 66,A1,1C,7C,26,66,3B,07,26,8A,57,FC,75,06,80,CA f[#161]|&f;&[#138]W u[#128]
0110 02,88,56,02,80,C3,10,73,EB,33,C9,8A,46,10,98,F7 [#136]V[#128] s 3 [#138]F[#152]
0120 66,16,03,46,1C,13,56,1E,03,46,0E,13,D1,8B,76,11 fFVF [#139]v
0130 60,89,46,FC,89,56,FE,B8,20,00,F7,E6,8B,5E,0B,03 `[#137]F [#137]V [#139]^
0140 C3,48,F7,F3,01,46,FC,11,4E,FE,61,BF,00,00,E8,E6 H F N a[#191]
0150 00,72,39,26,38,2D,74,17,60,B1,0B,BE,A1,7D,F3,A6 r9&8-t`[#177][#190][#161]} [#166]
0160 61,74,32,4E,74,09,83,C7,20,3B,FB,72,E6,EB,DC,A0 at2Nt[#131] ; r [#160]
0170 FB,7D,B4,7D,8B,F0,AC,98,40,74,0C,48,74,13,B4,0E }[#180]}[#139] [#172][#152]@tHt[#180]
0180 BB,07,00,CD,10,EB,EF,A0,FD,7D,EB,E6,A0,FC,7D,EB [#187] [#160] } [#160] }
0190 E1,CD,16,CD,19,26,8B,55,1A,52,B0,01,BB,00,00,E8 &[#139]UR[#176][#187]
01A0 3B,00,72,E8,5B,8A,56,24,BE,0B,7C,8B,FC,C7,46,F0 ;r [[#138]V$[#190]|[#139] F
01B0 3D,7D,C7,46,F4,29,7D,8C,D9,89,4E,F2,89,4E,F6,C6 =} F )}[#140] [#137]N [#137]N
01C0 06,96,7D,CB,EA,03,00,00,20,0F,B6,C8,66,8B,46,F8 [#150]} [#182] f[#139]F
01D0 66,03,46,1C,66,8B,D0,66,C1,EA,10,EB,5E,0F,B6,C8 fFf[#139] f ^[#182]
01E0 4A,4A,8A,46,0D,32,E4,F7,E2,03,46,FC,13,56,FE,EB JJ[#138]F2 F V
01F0 4A,52,50,06,53,6A,01,6A,10,91,8B,46,18,96,92,33 JRPSjj[#145][#139]F[#150][#146]3
0200 D2,F7,F6,91,F7,F6,42,87,CA,F7,76,1A,8A,F2,8A,E8 [#145] B[#135] v[#138] [#138]
0210 C0,CC,02,0A,CC,B8,01,02,80,7E,02,0E,75,04,B4,42 [#128]~u[#180]B
0220 8B,F4,8A,56,24,CD,13,61,61,72,0B,40,75,01,42,03 [#139] [#138]V$ aar@uB
0230 5E,0B,49,75,06,F8,C3,41,BB,00,00,60,66,6A,00,EB ^Iu A[#187]`fj
0240 B0,4E,54,4C,44,52,20,20,20,20,20,20,0D,0A,52,65 [#176]NTLDR Re
0250 6D,6F,76,65,20,64,69,73,6B,73,20,6F,72,20,6F,74 move disks or ot
0260 68,65,72,20,6D,65,64,69,61,2E,FF,0D,0A,44,69,73 her media. Dis
0270 6B,20,65,72,72,6F,72,FF,0D,0A,50,72,65,73,73,20 k error Press
0280 61,6E,79,20,6B,65,79,20,74,6F,20,72,65,73,74,61 any key to resta
0290 72,74,0D,0A,00,00,00,00,00,00,00,AC,CB,D8,55,AA rt[#172] U[#170]


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


Местный
***

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



По фат открыл новую тему:
http://electronix.ru/forum/index.php?showtopic=36216


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Oct 24 2007, 03:55
Сообщение #96


Местный
***

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



Результаты разработки выложил на свой сайт.

Конструкция
http://www.sword.greenline.ru/BookReader.html

Как я фат ковырял
http://www.sword.greenline.ru/MSFat.html

Чем заливать
http://www.sword.greenline.ru/Pony.html


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


Местный
***

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



Цитата(QuickWitted @ Oct 24 2007, 09:55) *
Результаты разработки выложил на свой сайт.


В связи с труднодоступностью сервера сделал зеркало...

Конструкция
http://www.swordgreenline.narod.ru/BookReader.html

Как я фат ковырял
http://www.swordgreenline.narod.ru/MSFat.html

Чем заливать
http://www.swordgreenline.narod.ru/Pony.html

Сообщение отредактировал QuickWitted - Dec 17 2007, 08:11


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Dec 24 2007, 10:04
Сообщение #98


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Подскажите, в чем причина.
Карточка (SD ver1 16MB) вполне корректно инициализируется. После этого даю комманду чтения (CMD17), получаю верный responce равный 0x00. Проверка CRC включена, так что комманда доходит совершенно верно (проверял). Но token вместо ожидаемого 0xFE стабильно равен 0x01.

В общем, имею тако лог работы:
Код
send_cmd(CMD = 0, arg = 0x00000000) = 01 crc = 0x95
send_cmd(CMD = 59, arg = 0x00000001) = 01 crc = 0x83
send_cmd(CMD = 8, arg = 0x000001AA) = 05 crc = 0x87
send_cmd(CMD = 55, arg = 0x00000000) = 01 crc = 0x65
send_cmd(CMD = 41, arg = 0x00000000) = 01 crc = 0xE5
send_cmd(CMD = 55, arg = 0x00000000) = 01 crc = 0x65
send_cmd(CMD = 41, arg = 0x00000000) = 00 crc = 0xE5
send_cmd(CMD = 16, arg = 0x00000200) = 00 crc = 0x15
send_cmd(CMD = 17, arg = 0x0002E800) = 00 crc = 0xC1
token = 0xFF
token = 0xFF
token = 0xFF
token = 0x01
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jan 8 2008, 09:41
Сообщение #99


Местный
***

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



Цитата(Aesthete Animus @ Dec 24 2007, 16:04) *
Подскажите, в чем причина.
Карточка (SD ver1 16MB) вполне корректно инициализируется. После этого даю комманду чтения (CMD17), получаю верный responce равный 0x00. Проверка CRC включена, так что комманда доходит совершенно верно (проверял). Но token вместо ожидаемого 0xFE стабильно равен 0x01.


Во во я не один такой...
Ответ начинается НЕ КРАТНО 8 бит!!!

0xFE = 11111110

Лови софтой первый ноль и переходи на Харду...


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 8 2008, 23:09
Сообщение #100


Гуру
******

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



Цитата(Aesthete Animus @ Dec 24 2007, 12:04) *
Но token вместо ожидаемого 0xFE стабильно равен 0x01.

Полагаю, что это не token. Это Responce. Причем совершенно нормальный - R1_IDLE_STATE и никаких ошибок.
Признак получения ответа это
бит
#define R1_NOTVALID 0x80
равный 0

дальше разбор ошибок:
#define R1_OK 0x00
#define R1_IDLE_STATE 0x01
#define R1_ERASE_RST 0x02
#define R1_ILLEGAL_CMD 0x04
#define R1_CRC_ERROR 0x08
#define R1_ERASE_ERROR 0x10
#define R1_ADD_ERROR 0x20
#define R1_PARAM_ERROR 0x40
#define R1_NOTVALID 0x80

И можете гнать 0xFF до полученя уже token



Цитата(QuickWitted @ Jan 8 2008, 11:41) *
Ответ начинается НЕ КРАТНО 8 бит!!!

Разумеется нет. Ну последующий "совет" совершенно вредный.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jan 9 2008, 04:53
Сообщение #101


Местный
***

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



Цитата
Ответ начинается НЕ КРАТНО 8 бит!!!


Цитата(zltigo @ Jan 9 2008, 05:09) *
Разумеется нет.


Мне спорить надоело - есть флэши ВЫДАЮЩИЕ В ОТВЕТ ТОКЕН НЕ КРАТНО 8 бит
(читай мои посты выше) Кусок доки ТАМ приводился...
(Это на осциллографе прекрасно видно...)

И они встречаются довольно часто. Хотите делать устройство работающее
НЕ СО ВСЕМИ флешами - поясняя при этом что это НЕПРАВИЛЬНЫЕ ФЛЕШИ - да делайте...

Цитата
Ну последующий "совет" совершенно вредный.


Предложи свой "совет" как работать с флэшами ответ которых начинается НЕ КРАТНО 8 бит!!!
Ответ типа выкинь каку и купи другую - соответствующую спецификации SPI оставь при себе...

Спорить и доказывать мне надоело…

Цитата(zltigo @ Jan 9 2008, 05:09) *
И можете гнать 0xFF до получения уже token


А его не будет... и флеш впадёт в ПОЛНЫЙ ступор... (до перезагрузки флэши)
(Одна из моих на 32 МБ ведёт себя именно так)

Я с неё начинал… Было весело… Типа читаешь доку делаешь всё ПРАВИЛЬНО – а в результате просто ВИС!!!

Пока до нормального осциллографа не добрался и не занялся разбором полётов…

Сообщение отредактировал QuickWitted - Jan 9 2008, 04:46


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 9 2008, 07:09
Сообщение #102


Гуру
******

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



Цитата(QuickWitted @ Jan 9 2008, 06:53) *
Мне спорить надоело - есть флэши ВЫДАЮЩИЕ В ОТВЕТ ТОКЕН НЕ КРАТНО 8 бит

А у меня никакого желания разбираться в чьих-то ошибках работы с карточками.
Цитата
Типа читаешь доку делаешь всё ПРАВИЛЬНО ...

Значит не до конца прочитали и прониклись. Неописанное в документации явно надо трактовать, как возможность разных вариантов со стороы производителя. Такого хватает sad.gif. Особенно на этапе инициализации. Но явно помянутое в спецификации, естественно, выполняется.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Jan 9 2008, 09:41
Сообщение #103


Местный
***

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



Цитата(zltigo @ Jan 9 2008, 13:09) *
А у меня никакого желания разбираться в чьих-то ошибках работы с карточками.
Значит не до конца прочитали и прониклись. Явно помянутое в спецификации, естественно, выполняется.


Ты точно топик по верхам читаешь....

У НЕКОТОРЫХ производителей УКАЗАННА, а у некоторых НЕ УКАЗАННА кратность тактов в 8 бит до токена... читай ВНИМАТЕЛЬНО... Выдержки из док ПРЕВОДИЛИСЬ выше...

Что это за чип НЕВОЗМОЖНО проверить в магазине... ТОЛЬКО методом проб...


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Jan 9 2008, 10:26
Сообщение #104


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Когда-то задавал такой вопрос
Цитата(Aesthete Animus @ Dec 24 2007, 13:04) *
Подскажите, в чем причина.
Карточка (SD ver1 16MB) вполне корректно инициализируется. После этого даю комманду чтения (CMD17), получаю верный responce равный 0x00. Проверка CRC включена, так что комманда доходит совершенно верно (проверял). Но token вместо ожидаемого 0xFE стабильно равен 0x01.

Проблема оказалась банальной! Я из-за кривости своих рук убил флешку. В результате, не смотря на корректную инициализацию, она не отвечала на комманды чтения/записи. Не мог ее прочесть в том числе и кардридер...

Цитата(zltigo @ Jan 9 2008, 02:09) *
Полагаю, что это не token. Это Responce. Причем совершенно нормальный - R1_IDLE_STATE и никаких ошибок.

Нет, это был именно token wink.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 9 2008, 13:16
Сообщение #105


Гуру
******

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



Цитата(QuickWitted @ Jan 9 2008, 11:41) *
Ты точно топик по верхам читаешь....
У НЕКОТОРЫХ производителей УКАЗАННА, а у некоторых НЕ УКАЗАННА кратность тактов в 8 бит до токена... читай ВНИМАТЕЛЬНО... Выдержки из док ПРЕВОДИЛИСЬ выше...

Могу только процитировать уже один раз проигнорированный Вами в этом топике ответ:
Цитата
Как говорят: смотришь в книгу а видишь фигу
Вы точно чего то не дочитали
у SD есть два режима - родной SD в котором действительно битовая синхронизация и SPI - в котором только байтовая.
вы привели как раз как раз таблицу для родного SD режима (в котором и эффективно работать можно только с SD контроллером).


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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