8-900-374-94-44
[email protected]
Slide Image
Меню

Распиновка карты сд: Работа с SD картой. Подключение к микроконтроллеру. Ч1

Содержание

Работа с SD картой. Подключение к микроконтроллеру. Ч1

В устройствах на микроконтроллерах для хранения больших объемов данных используется внешняя память. Если требуется хранить единицы мегабайт, то подойдут микросхемы последовательной флэш памяти. Однако для больших объемов (десятки -сотни мегабайт) обычно применяются какие-нибудь карты памяти. В настоящий момент наибольшее распространение получили SD и microSD карты, о них я и хотел бы поговорить в серии материалов. В этой статье речь пойдет о подключении SD карт к микроконтроллеру, а в следующих мы будет разбираться как читать или записывать на них данные.

SD карты могут работать в двух режимах - SD и SPI. Назначение выводов карт и схема подключения зависит от используемого режима. У 8-и разрядных микроконтроллеров AVR нет аппаратной поддержки SD режима, поэтому карты с ними обычно используются в режиме SPI. В 32-х разрядных микроконтроллерах на ядре ARM, например AT91SAM3, интерфейс для работы с картами в SD режиме есть, поэтому там можно использовать любой режим работы.

Назначение контактов SD карты в SD режиме


Назначение контактов SD карты в SPI режиме


Назначение контактов microSD карты в SD режиме


Назначение контактов microSD карты в SPI режиме

Напряжение питания SD карт составляет 2.7 - 3.3 В. Если используемый микроконтроллер запитывается таким же напряжением, то SD можно подключить к микроконтроллеру напрямую. Расово верная схема, составленная путем изучения спецификаций на SD карты и схем различных отладочных плат, показана на рисунке ниже. По такой схеме подключены карты на отладочных платах фирм Olimex и Atmel.

На схеме обозначены именно выводы SD карты, а не разъема.


L1 - феррит или дроссель, рассчитанный на ток >100 мА. Некоторые его ставят, некоторые обходятся без него. А вот чем действительно не стоит пренебрегать, так это полярным конденсатором C2. Потому что при подключении карты происходит бросок тока, напряжение питания "просаживается" и может происходить сброс микроконтроллера. 

По поводу подтягивающих резисторов есть некоторая неоднозначность. Поскольку SD карты выпускаются несколькими производителями, на них существует несколько спецификаций. В одних документах четко указана необходимость подтягивающих резисторов (даже для неиспользуемых линий - 8, 9), в других документах этих указаний нет (или я не нашел). 

Упрощенный вариант схемы (без подтягивающих резисторов) показан на рисунке ниже. Эта схема проверена на практике и используется в платах фирмы Microelectronika. Также она используется во многих любительских проектах, которые можно найти в сети. 


Здесь сигнальные линии SD карты удерживаются в высоком состоянии микроконтроллером, а неиспользуемые линии (8, 9) никуда не подключены. По идее они должны быть подтянуты внутри SD карты. Далее я буду отталкиваться от этой схемы. 

Если микроконтроллер запитывается напряжением отличным от напряжения питания SD карты, например 5 В, то нужно согласовать логические уровни. На схеме ниже показан пример согласования уровней карты и микроконтроллера с помощью делителей напряжения. Принцип согласования уровней простой - нужно из 5-и вольт получить 3.0 - 3.2 В.


Линия MISO - DO не содержит делитель напряжения, так как данные по ней передаются от SD карты к микроконтроллеру, но для защиты от дурака можно добавить аналогичный делитель напряжения и туда, на функционировании схемы это не скажется. 

Резистивный делитель напряжения - это самый простой вариант согласования уровней, однако при высоких скоростях обмена или длинных проводах он может не подойти. Емкость входов SD карты, а также паразитная емкость линий, вместе с резисторами делителя образует RC фильтры, которые "заваливают" фронты передаваемых сигналов, а у SD карт есть определенные требования к этим фронтам. 

Если использовать для согласования уровней буферную микросхему, например CD4050 или 74AHC125, этих недостатков можно избежать. Ниже приведена схема, в которой согласование уровней выполняется с помощью микросхемы 4050. Это микросхема представляет собой 6 неинвертирующих буферов. Неиспользуемые буферы микросхемы "заглушены".


Подключение microSD карт аналогичное, только у них немного отличается нумерация контактов. Приведу только одну схему.


На схемах я рассматривал подключение SD карт к микроконтроллеру напрямую - без разъемов. На практике, конечно, без них не обойтись. Существует несколько типов разъемов и они друг от друга немного отличаются. Как правило, выводы разъемов повторяют выводы SD карты и также содержать несколько дополнительных - два вывода для обнаружения карты в разъеме и два вывода для определения блокировки записи. Электрически эти выводы с SD картой никак не связаны и их можно не подключать. Однако, если они нужны, их можно подключить как обычную тактовую кнопку - один вывод на землю, другой через резистор к плюсу питания. Или вместо внешнего резистора использовать подтягивающий резистор микроконтроллера.

Ну и для полноты картины приведу схему подключения SD карты в ее родном режиме. Он позволяет производить обмен данными на большей скорости, чем SPI режим. Однако аппаратный интерфейс для работы с картой в SD режиме есть не у всех микроконтроллеров . Например у Atmel`овских ARM микроконтроллеров SAM3/SAM4 он есть. 


Шина данных DAT[0..3] может использоваться в 1 битном или 4-х битном режимах. 

Продолжение следует...

Подключение SD/MMC карт памяти | Catcatcat electronics


MMC (MultiMedia Card) и SD (Secure Digital Memory Card) карты на настоящий момент являются самым недорогим устройством большой емкости. Эти устройства  идеально подходят для встраиваемых систем где необходимо сбор большого количества данных, а также для простой возможности непосредственного переноса данных на ПК.

Карты памяти позволяют выполнять обмен информации по SPI интерфейсу,  который в основном присутствует в любом контроллере. И позволяет создать недорогой интерфейс обмена информацией.

Хороший сайт по информации о работе картами памяти (и не только) http://elm-chan.org/ рекомендую для ознакомления и получения дополнительной информации.

 


Габаритные размеры


Назначение выводом Микро SD для подключения по интерфейсу SPI.

Номер Обозначение Описание
1 Подключить к подтягивающему резистору
2 CS Выбор карты
3 DI Данные для записи в карту
4 Vdd Напряжение питания 2,7-3,3v
5 SCLK Синхроимпульсы шины SPI
6 Vss Общий
7 DO Данные чтения из карты
8 Подключить к подтягивающему резистору

Назначение выводом мини и SD карт для подключения по интерфейсу SPI.

Номер Обозначение Описание
1 CS Выбор карты
2 DI Данные для записи в карту
3 Vss Общий
4 Vdd Напряжение питания 2,7-3,3v
5 SCLK Синхроимпульсы шины SPI
6 Vss Общий
7 DO Данные чтения из карты
8 Подключить к подтягивающему резистору
9 Подключить к подтягивающему резистору
10
11

 

 


Вариант подключения для микро SD.

 


Схема для тестового проекта.

Проект предназначен как обучающий, для понимания работы с файловой системой, основан на FatFs – Generic FAT File System Module от ©ChaN. В программе присутствуют некоторые изменения для использования с PIC-контроллерами. Используется подключение через USB (эмуляция COM-порта) и HeperTerminal как управляющую панель, можно протестировать работу самой библиотеки, в связке с PIC-контроллером, по работе с SD/MMC картами памяти. Проект настроен на кодировку 866.


Управляющие последовательности.

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

di  – инициализация логического устройства

Пример, выполнения инициализации
> di
The disc initialization. 0-ok,1-no.
rc=0


dd [ <sector>] – чтение выбранного сектора с диска, просмотр на терминале (с загрузкой в буфер)

Пример, чтение сектора 0

>dd 0
Read sector:0
00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 …………….
000001C0: 0C 00 06 38 F8 B8 89 00 00 00 77 9F 3A 00 00 00 …8……w.:…
000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA …………..U.


ds – Просмотр состояния диска, устройства

Пример, выполнения команды

>ds
Drive size: 3842048 sectors
Erase block: 8192 sectors
MMC/SDC type: 4
CSD:
00000000: 00 2E 00 32 5B 5A 83 A9 FF FF FF 80 16 80 00 91 …2[Z……….
CID:
00000000: 02 54 4D 53 42 30 32 47 00 08 30 17 D1 00 CA 45 .TMSB02G..0….E
OCR:
00000000: 80 FF 80 00 ….
SD Status:
00000000: 00 00 00 00 00 00 00 28 02 02 90 02 00 32 00 00 …….(…..2..

00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….


bd <адрес> – Просмотр буфера с указанного байта

Пример, выполнения

>bd 0
Viewing Buffer R/W:
00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….


be <адрес> [<данные>] … – Редактирование буфера

Пример, выполнения

>be 5 0x33 0x45 0x67
Editor buffer data R/W:

>bd 0
Viewing Buffer R/W:
00000000: 00 00 00 00 00 33 45 67 00 00 00 00 00 00 00 00 …..3Eg……. .
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
000001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….


br  <сектор> <количество секторов 1 – 255> – Чтение сектора или секторов

Пример, выполнения

>br 0 1
Reading data from the disk into the buffer: 0
rc=0


bw <сектор> <количество секторов 1 – 255> – Запись буфера в сектор на диске  или запись буфера в несколько секторов на диске

Пример, выполнения

>bw 0 1
Writing data into the buffer: 0
rc=0


bf <число> – заполнение буфера данными

Пример, выполнения

>bf 0x35
The buffer is filled with the number of: 0
>bd 0
Viewing Buffer R/W:
00000000: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000010: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000020: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000030: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000040: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000050: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000060: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000070: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000080: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000090: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000A0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000B0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000C0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000D0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000E0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000000F0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000100: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000110: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000120: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000130: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000140: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000150: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000160: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000170: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000180: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000190: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001A0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001B0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001C0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001D0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001E0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000001F0: 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555


Последовательности для работы с файловой системой

fi – быстрая инициализация устройства

Пример, выполнения

>fi
rc=0 FR_OK


fs [<путь>] – Показать состояния логического диска (каталога)

Пример, выполнения

>fs
FAT type = FAT16
Bytes/Cluster = 32768
Number of FATs = 2
Root DIR entries = 512
Sectors/FAT = 235
Number of clusters = 60021
Volume start (lba) = 137
FAT start (lba) = 139
DIR start (lba,clustor) = 609
Data start (lba) = 641

13 files, 24096 bytes.
3 folders.
1920672 KB total disk space.
1919488 KB available.


fl [<путь>] – Просмотр каталога. Без пути – просмотр текущего каталога

Пример, выполнения

>fl
D—- 2013/06/16 15:37 0 123
D—- 2013/06/16 15:37 0 234
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2013/06/01 10:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
4 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free>

>fl 123
D—- 2013/06/16 15:37 0 .
D—- 2013/06/16 15:37 0 ..
—-A 2013/06/01 10:03 3011 123.txt
—-A 2013/06/01 10:20 1286 333.txt
—-A 2013/06/01 10:03 3011 4523.txt
3 File(s), 7308 bytes total
2 Dir(s), 1965555712 bytes free


fo <режим> <имя файла> – открыть файл, режим: 0x01 – на чтение, 0x00 – , 0x80 – , 0x02 – на запись, 0x04 – создать новый файл, 0x08 – создать независимо от наличия такого же файла в каталоге, 0x10 – отрыть независимо от текущего состояния, 0x20 – , 0x40 – .

Пример, выполнения

>fo 4 nini.txt
rc=0 FR_OK

>fc
rc=0 FR_OK

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—- 2013/06/16 15:37 0 123
D—- 2013/06/16 15:37 0 234
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2013/06/01 10:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
5 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free


fc – Закрыть открытый файл

Пример, выполнения

>fc
rc=0 FR_OK


fe <ofs> – Переместить указатель в указанный адрес (внутри открытого файла, если файл на запись или внутри буфера если файл отрыт на чтение)

Пример, выполнения

>fo 2 footer.txt  // открываем файл на запись
rc=0 FR_OK
>fe 0x12                 // перемещаем указатель
rc=0 FR_OK
fptr = 18(0x12)


fr <количество байт чтения> – читать файл (данные загружаются в буфер)

Пример, выполнения

>fr 200
200 bytes read with 0 kB/sec.


fd <количество байт чтения> – чтение буфера, вывод на экран информации

Пример, выполнения

>fd 200
00000000: EF BB BF 3C 3F 70 68 70 0D 0A 2F 2A 2A 0D 0A 20 …<?php../**..
00000010: 2A 20 46 4F 4F 54 45 52 0D 0A 20 2A 0D 0A 20 2A * FOOTER.. *.. *
00000020: 20 54 68 69 73 20 66 69 6C 65 20 63 6F 6E 74 72 This file contr
00000030: 6F 6C 73 20 74 68 65 20 65 6E 64 69 6E 67 20 48 ols the ending H
00000040: 54 4D 4C 20 3C 2F 62 6F 64 79 3E 3C 2F 68 74 6D TML </body></htm
00000050: 6C 3E 20 61 6E 64 20 63 6F 6D 6D 6F 6E 20 67 72 l> and common gr
00000060: 61 70 68 69 63 61 6C 0D 0A 20 2A 20 65 6C 65 6D aphical.. * elem
00000070: 65 6E 74 73 20 69 6E 20 79 6F 75 72 20 73 69 74 ents in your sit
00000080: 65 20 66 6F 6F 74 65 72 2E 20 59 6F 75 20 63 61 e footer. You ca
00000090: 6E 20 63 6F 6E 74 72 6F 6C 20 77 68 61 74 20 73 n control what s
000000A0: 68 6F 77 73 20 75 70 20 77 68 65 72 65 20 75 73 hows up where us
000000B0: 69 6E 67 0D 0A 20 2A 20 57 6F 72 64 50 72 65 73 ing. . * WordPres
000000C0: 73 20 61 6E 64 20 50 61 s and Pa


fw <Количество байт для записи> <Значение записываемого байта> – запись в файл

Пример, выполнения

>fw 100 0x36
100 bytes written with 100 kB/sec.


fn <old_name> <new_name> – Изменения имени файла/каталога

Пример, выполнения, изменение имени каталога 123

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—A 2013/06/16 15:37 0 mounfer
D—- 2013/06/16 15:37 0 123
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
5 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free
>fn 123 catalogMOBI
rc=0 FR_OK
>fl
—-A 2061/01/23 00:48 0 nini. txt
D—A 2013/06/16 15:37 0 mounfer
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
—-A 2013/06/16 18:34 220 789.txt
—-A 2013/06/16 18:55 2391 4523.txt
5 File(s), 6908 bytes total
3 Dir(s), 1965555712 bytes free


fu <path> – удаление файла или каталог (каталог должен быть пустым)

Пример, выполнения

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
—-A 2013/06/16 18:55 2391 4523.txt
4 File(s), 6688 bytes total
2 Dir(s), 1965686784 bytes free
>fu 4523.txt
rc=0 FR_OK
>fl
—-A 2061/01/23 00:48 0 nini.txt
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1. TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
3 File(s), 4297 bytes total
2 Dir(s), 1965719552 bytes free


fv – урезать файл, файл урезается по установленному указателю

Пример, выполнения, урезание файла footer.txt до 1кБ

>fl //смотрим каталог
—-A 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 00:03 3011 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 4297 bytes total
9 Dir(s), 1965490176 bytes free
>fo 2 footer.txt // открываем файл на запись
rc=0 FR_OK
>fe 1000 // устанавливаем указатель на 1000
rc=0 FR_OK
fptr = 1000(0x3E8)
>fv // урезаем размер файла
rc=0 FR_OK
>fc // закрываем файл
rc=0 FR_OK
>fl // смотрим каталог, что получилось
—-A 2061/01/23 00:48 0 nini. txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—A 2013/06/16 15:37 0 CATALO~1 catalogMOBI
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 2286 bytes total
9 Dir(s), 1965490176 bytes free


fk <имя каталога> – Создайте каталог

Пример, выполнения создать каталог с именем test03

>fk test03
rc=0 FR_OK


fa <атрибут> <маска> <имя файла или каталога> – Изменение атрибута  файла/каталога. Аnритут показывает какие флаги сбросить или установить 0 – сбросить, 1 – установить, маска какие влаги активировать, если использовать бинарные числа, то 0b000 – старший байт S, средний H, младший R.

Пример, выполнения

>fa 0b000 0b111 nini.txt // сбросить все атрибуты файла
rc=0 FR_OK
>fl
—-A 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 2286 bytes total
8 Dir(s), 1965654016 bytes free
>

>fa 0b101 0b111 nini.txt // установить флаги R-S и сбросить H
rc=0 FR_OK
>fl
-R-SA 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1. TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:30 0 CAT2CA~1 cat2 cat77
D—- 2061/01/23 01:32 0 test03
3 File(s), 2286 bytes total
8 Dir(s), 1965654016 bytes free


ft <year> <month> <day> <hour> <min> <sec> <name> – Изменить временную метку

 


fx <src_name> <dst_name> – Скопировать файл

Пример, выполнения

>fx 11111.txt 456/11.txt // копируем файл 11111.txt с текущего каталога в каталог 456 с переименованием 11.txt
Opening “11111.txt”
Creating “456/11.txt”
Copying…
1286 bytes copied.
>fl 456
D—- 2013/06/16 15:37 0 .
D—- 2013/06/16 15:37 0 ..
—-A 2013/06/01 10:20 1286 11111.txt
—-A 2013/06/01 10:03 3011 222222.txt
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 FOOTER~1.TXT
—-A 2013/06/01 10:20 1286 FUNCTI~2. TXT
—-A 2061/01/23 00:48 0 NINI-Š~1.TXT
—-A 2061/01/23 01:40 1000 footer.txt
—-A 2061/01/23 00:48 0 nini.txt
—-A 2061/01/23 00:15 1286 11.txt
9 File(s), 10155 bytes total
2 Dir(s), 1965260800 bytes free


fg <path> – Изменить текущий каталог

Пример, выполнения

>fl
—-A 2061/01/23 00:48 0 nini.txt
D—- 2061/01/23 01:28 0 cat01
D—- 2061/01/23 01:28 0 cat2
D—- 2061/01/23 01:28 0 car03
D—- 2061/01/23 01:29 0 cat03
D—- 2061/01/23 01:31 0 test
D—- 2013/06/16 15:37 0 456
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 footer.txt
D—- 2061/01/23 01:32 0 test03
D—- 2061/01/23 01:30 0 test.dir
—-A 2061/01/23 01:40 1000 FOOTER~1.TXT
—-A 2013/06/01 10:20 1286 FUNCTI~2.TXT
—-A 2061/01/23 00:48 0 NINI-Š~1.TXT
—-A 2013/06/01 10:20 1286 11111.txt
—-A 2013/06/01 10:03 3011 222222.txt
8 File(s), 8869 bytes total
8 Dir(s), 1965260800 bytes free
>fg 456
rc=0 FR_OK
>fl
D—- 2013/06/16 15:37 0 .
D—- 2013/06/16 15:37 0 ..
—-A 2013/06/01 10:20 1286 11111.txt
—-A 2013/06/01 10:03 3011 222222.txt
—-A 2013/06/01 10:20 1286 FUNCTI~1.TXT functions.txt
—-A 2061/01/23 01:40 1000 FOOTER~1.TXT
—-A 2013/06/01 10:20 1286 FUNCTI~2.TXT
—-A 2061/01/23 00:48 0 NINI-Š~1.TXT
—-A 2061/01/23 01:40 1000 footer.txt
—-A 2061/01/23 00:48 0 nini.txt
—-A 2061/01/23 00:15 1286 11.txt
9 File(s), 10155 bytes total
2 Dir(s), 1965260800 bytes free


fj – <номер диска 0, 1…> – Сменить текущий диск (если устройство разбито на несколько дисков).


fq – Показать путь текущей директории

Пример, выполнения

>fq
0:/456


fb – переместить указатель в конец файла, для до записывания информации

Пример, выполнения

>fo 2 11.txt
rc=0 FR_OK
>fb
rc=0 FR_OK


fm – <partition rule> <sect/clust> – Создание файловой системы

Пример, выполнения

>fm 1 1
The memory card will be formatted. Are you sure? (Y/n)=Y
Formats, please wait…
rc=0 FR_OK
>fl
0 File(s), 0 bytes total
0 Dir(s), 1950350848 bytes free
>fs
FAT type = FAT32
Bytes/Cluster = 512
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 30017
Number of clusters = 3809280
Volume start (lba) = 0
FAT start (lba) = 2751
DIR start (lba,clustor) = 2
Data start (lba) = 32768

0 files, 0 bytes.
0 folders.
0 KB total disk space.
0 KB available.
>

>fm 1 0
The memory card will be formatted. Are you sure? (Y/n)=Y
Formats, please wait…
rc=0 FR_OK
>fl
0 File(s), 0 bytes total
0 Dir(s), 1962934272 bytes free
>fs
FAT type = FAT16
Bytes/Cluster = 32768
Number of FATs = 1
Root DIR entries = 512
Sectors/FAT = 8159
Number of clusters = 59904
Volume start (lba) = 0
FAT start (lba) = 1
DIR start (lba,clustor) = 8160
Data start (lba) = 8192

0 files, 0 bytes.
0 folders.
1916928 KB total disk space.
1916928 KB available.


t  – [<year> <mon> <mday> <hour> <min> <sec>] установка и индикация системного времени

Пример, выполнения

>t 2013 006 18 16 38 00
Setting the date and time
2013/6/18 16:38:00


Проект и библиотека в формате MPLAB® X v1.80, Microchip MPLAB XC16 v1.11 

 Гипертерминал для тестирования проекта

Это может быть интересно


  • MCC PIC24 – модуль REAL-TIME CLOCK AND CALENDAR (RTCC)

    RTCC предоставляет пользователю часы реального времени и функция календаря (RTCC), точность “хода” может быть откалибрована. Основные особенности модуля RTCC: • Работает в режиме глубокого сна. • Возможность выбора источника синхронизации. • …

  • Trimax – кодирование и декодирование ИК-команд

    Первое, что надо понять назначение кнопок клавиш пульта, а также, что за кодирование реализовано в ИК- пульте. Для назначения клавиш обратимся к описанию, а для взлома кодирования воспользуемся старым и …

  • УКВ – радиоприем, часть 2

    Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка… Для понимания функций интегрального приемника RDA5807FP читайте …

  • Просто о внешних переменных

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

  • Analog-to-Digital Converter with Computation Technical Brief

    Аналого-цифровой преобразователь с вычислительным модулем. ВВЕДЕНИЕ Аналого-цифровой преобразователь (ADC) с вычислительным модулем (ADC2) в 8-разрядном микроконтроллере Microchip имеет встроенные вычислительные функции, которые обеспечивают функции пост-обработки, такие как передискретизация, усреднение и …

  • DS18B20 – удаленный контроль температуры

    Плата в корпусе Датчики температуры DS18B20 Схема подключения Вывод данных на ПК Установка дополнительных резисторов Назначение выводов This jQuery slider was created with the free EasyRotator for WordPress plugin from …

  • LM317 и светодиоды

    LM317 и светодиоды статья с переработанная с сайта http://invent-systems. narod.ru/LM317.htm Долговечность светодиодов определяется качеством изготовления кристалла, а для белых светодиодов еще и качеством люминофора. В процессе эксплуатации скорость деградации кристалла зависит от …

  • ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302

    На плате ch-4000 очень легко собрать устройство регулятора температуры и влажности. Датчик DHT11  самый недорогой вариант для создания такого устройства, правда точность его не велика, но для бытовых устройств он даже …

  • Дисплей KD035C-3A подключение и управление

    Дисплей KD035C-3A производиться компанией SHENZHEN STARTEK ELECTRONIC TECHNOLOGY CO.,LTD Характеристики Параметр Спецификация Единицы измерения Размер дисплея 70.08(H)*52.56(V) (3.5inch) mm Тип дисплея TFT active matrix Цветовая гамма 65K/262K colors Разрешение 320(RGB)*240 dots …

  • Индикатор кода – RC-5 Protocol Philips

    Индикатор кода – RC-5 Protocol Philips При конструировании дистанционного управления на инфракрасных лучах для контроля удобно иметь индикатор кодов передаваемых пультом. Плата ch-c3000 позволяет изготавливать устройства с возможностью установки фото …



4a4ik: Как работать с SD / MMC картой через SPI

SD карты (Secure Digital) - это формат карт флэш памяти. Был представлен в 1999 как улучшенный MMC. Стандарт SD регулирует "SD Association" (SDA).  На их сайте можно найти документацию на стандарт.

Я постараюсь вкратце расписать, как использовать эту карту для хранения и считывания информации с помощью SPI. О том как работать с SPI расписано здесь.

Рис.1 SD карты различных размеров
По стандарту, у SD карт есть 3 возможных физических размера: стандартный, mini и micro:
Рис.2 различные типы размеров SD карт с замерами
Есть 4 поколения карт памяти, которые отличаются друг от друга размером хранимой информации, считыватели карт младших поколений не работают с более поздними версиями.
  • SD 1.0 — от 8 МБ до 2 ГБ;
  • SD 1.1 — до 4 ГБ;
  • SDHC — до 32 ГБ;
  • SDXC — до 2 ТБ.

Есть 3 способа общения с SD картой:
  • Шина SPI
  • Однобитовый режим шины SD
  • Четырёх битовый режим шины SD

Шина SD намного быстрее, но для того чтобы ими пользоваться нужна лицензия, тем более в большинство цифровых устройств уже заложена поддержка SPI. Так что я рассмотрю только 1 способ.
Рис.3 Распиновка различных карт памяти
Режим SPI
MMCSDminiSDmicroSDИмяВход/ВыходОписание
1 1 1 2 nCS Вх Выбор режима SPI (негативная логика)
2 2 2 3 DI Вх Ввод данных SPI [MOSI]
3 3 3 VSS . Земля
4 4 4 4 VDD . Питание
5 5 5 5 CLK Вх тактовый сигнал [SCLK]
6 6 6 6 VSS . Земля
7 7 7 7 DO Вых Вывод данных SPI [MISO]
8 8 8 NC . Не используется
9 9 1 NC . Не используется
10 NC . Зарезервировано
11 NC . Зарезервировано

Если использовать SPI то SD карта питается от 3.3 В, может потреблять от 20 до 100 мА при передаче данных. В режиме покоя потребляет меньше 1 мА. Максимальная скорость передачи 12 мб/с (Частота CLK 25 МГц). Теперь мы знаем как подключить карту, осталось разобраться как с ней общаться.

В сети есть несколько открытых библиотек для работы с FAT (16/32), к примеру: FatFs, в таком случае можно считывать данные с компьютера, проверяются повреждённые блоки, память и ресурсы карты расходуются разумнее, ведь файловая система используется не просто так.

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

Можно создать текстовый документ, записать в него нужную информацию, открыть SD карту с помощью Hex-редактора, (к примеру: HxD) посмотреть в каком блоке (кластере) находится информация, (может быть она записана в нескольких блоках) считать её.

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

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

SPI используется всего лишь как интерфейс, данные передаются по "урезанной" версии стандартного протокола SD карты.

Протокол передачи данных
К примеру мы хотим считать блок данных, это будет выглядеть следующим образом:
Рис.4 Считывание 1 блока данных (512 байт)
Рассмотрим что здесь изображено. Сперва хост по линии DataIn (MOSI) посылает команду карте. Рассмотрим из чего состоит "команда":
Рис.5 Формат команды
Команда состоит из 48 бит, начальный бит = "0", затем "1" означает, что это команда от хоста.
Биты передаются, начиная со старших разрядов.
Content - содержимое команды вместе с адресом или параметром (38 бит). Первые 6 бит определяют команду, остальные 32 это параметр команды, к примеру, ячейку с каким адресом прочитать из памяти.
CRC (Cyclic Redundancy Code) - помогает избегать ошибок при передаче, у каждой команды есть свой CRC код (контрольная сумма).
Стоп бит = "1".

Response - это ответ карты на команду, если он есть (есть команды без ответа), то он может быть 1 из 4 видов (R1, R2, R3, R6):

Рис.6 Формат ответа
Ответ может состоять из 48 или 136 бит. Передаются, также начиная со старших разрядов. Сперва начальный бит = "0". Затем "0" означающий, что это команда от карты. В содержимом может быть либо значение регистра, который мы хотели считать, стоит отметить, что регистр RCA не доступен в режиме SPI (R3), либо "зеркальный" код команды и информация о состоянии.

Data block - это 512 байт данных, которые мы хотели считать, после них идёт контрольная сумма (CRC) для проверки содержимого.

Команды


Теперь рассмотрим, какие команды доступны в режиме SPI, команда состоит из 6 бит и определяется её индексом, чтобы отправить SD карте команду CMD0 нужно передать "000000", для CMD39 это будет "100111" (передаётся, начиная со старшего разряда). Сразу скажу, что большинство команд для нас не имеет значения, если мы хотим только считать и записать несколько байт.
Индекс командыАргументОтветОписание
CMD0[31:0] мусорR1Перезагрузка карты памяти
CMD1[31] Зарезервировано
[30] HCS
[29:0] Зарезервировано
R1Карта отправляет хосту информацию о ёмкости и включает процесс инициализации.
HCS работает после команды
CMD8. Если хост поддерживает карты SDHC и SDXC выставить "1", иначе "0".
Зарезервированные биты должны быть выставлены в '0'.
CMD6[31] Режим
0:Проверить функцию
1:Изменить функцию
[30:8] Зарезервировано
(все '0')
[7:4] функциональная группа 2 для системных команд
[3:0] функциональная группа 2 для режима доступа
R1Смотреть в даташите.
CMD8[31:12] Зарезервировано
(все '0')
[11:8] Напряжение питания (VHS)
[7:0] проверочный образец
R7Отправляет карте напряжение питания и спрашивает может ли она работать при таком питании.
CMD9[31:0] мусорR1Спрашивает у карты её информацию "о карте" (CSD) .
CMD10[31:0] мусорR1Спрашивает у карты её ID (CID).
CMD12[31:0] мусорR1bЗаставляет карту прекратить передавать данные в режиме считывания нескольких блоков.
CMD13[31:0] мусорR2Просит карту отправить её статус.
CMD16[31:0] Длина блокаR1Для карт SDSC, длина блока выставляется этой командой. Для SDHC и SDXC карт, длина блока фиксирована и равна 512 байт. Длина команды CMD42 выставляется этой командой.
CMD17[31:0] адрес данныхR1Считывает блок размером выставленным командой CMD16.
CMD18[31:0] адрес данныхR1Передача блоков данных из карты хосту до тех пор, пока хост не отправит команду
CMD12.
CMD24[31:0] адрес данныхR1Записывает блок данных размером выставленным командой CMD16.
CMD25[31:0] адрес данныхR1Непрерывно записывает блоки данных до тех пор пока карта не отправит байт "stop tran"
CMD27[31:0] мусорR1Программирует биты регистра CSD.
CMD28[31:0] адрес данныхR1bЕсли у карты есть функции защиты от записи, эта команда выставляет бит защиты для выбранной адресной группы,\. Свойства защиты от записи прописаны в данных карты (WP_GRP_SIZE).
SDHC и SDXC карты не поддерживают эту команду.
CMD29[31:0] адрес данныхR1bЕсли у карты есть функции защиты от записи, эта команда очищает бит защиты выбранной адресной группы.
SDHC и SDXC карты не поддерживают эту команду.
CMD30[31:0] адрес для защиты от записиR1Если у карты есть функции защиты от записи, эта команда просит карту отправить бит защиты выбранной адресной группы. SDHC и SDXC карты не поддерживают эту команду.
CMD32[31:0] адрес данныхR1Выставляет адрес первого блока, который нужно стереть.
CMD33[31:0] адрес данныхR1Выставляет адрес последнего блока, который нужно стереть. 
CMD38[31:0] мусорR1bочистка всех блоков от первого до последнего выбранных предыдущими командами.
CMD42[31:0] Зарезервировано
(все '0')
R1Используется для выставления/сброса пароля или блокировки/разблокировки карты. Размер блока определяется командой CMD16.
CMD55[31:0] мусорR1Сообщает карте что следующая команда, это команда особого назначения.
CMD56[31:1] мусор
[0]: RD/WR
R1Используется для  записи или считывания блока данных для стандартных или дополнительных команд.
В случае SDSC карт, размер блока определяется командой
CMD16. Для SDHC и SDXC карт длина блока фиксирована и равна 512 байт.
CMD58[31:0] мусорR3Считывает регистр OCR.
CCS бит, выставлен в OCR[30].
CMD59[31:1] мусор
[0:0] CRC настройка
R1Включает "1" или выключает "0" CRC.

CRC


Вместе с командой нам нужно отправлять CRC код для проверки, он вычисляется с помощью алгоритма. Если использовать библиотеки для работы с SD картами и FAT, то там это уже всё реализовано. Если работать с нуля, нужно для каждой команды вычислять CRC код. 3 + 1.  В двоичном коде - "10001001". Полученный после деления остаток и будет нашим CRC7 кодом, который нужно передать вместе с сообщением.

Для того чтобы проверить результат нельзя использовать стандартный калькулятор Windows. Если перевести в десятичный код, то он даёт правильный ответ, но это не по правилам двоичной арифметики. Для проверки можно использовать, к примеру, этот калькулятор.

Подсчитаем CRC код для команды CMD0:

  • берём содержимое команды вместе с её индексом и битом, обозначающим от кого передача (0 в данном случае) получаем (индекс команды 0, аргумент 0):                                                          1 000000 00000000000000000000000000000000 
  • Сдвигаем число на 7 разрядов влево, получаем                                                                                                      1 000000 00000000000000000000000000000000 0000000
  • Полученное число делим на CRC7 полином "10001001" и берём остаток:                           1 000000 00000000000000000000000000000000 0000000 % 10001001 = 1001010

Согласно даташиту именно такой CRC код у команды CMD0.

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

Нам нужно записать наше число, сдвинуть его на 7 разрядов влево, затем сдвинуть наш полином таким образом, чтобы его крайняя левая "1" была под крайней левой "1" нашего большого числа. Затем произвести между двумя числами XOR (если разные значения в 1 разряде выставить 1, иначе 0). С полученным числом проделать то же самое (сдвинуть под крайнюю единицу полином, XOR) до тех пор пока у изначального числа (пока мы его не сдвигали влево на 7 разрядов) не будут все 0, иначе до тех пор пока биты [max : 8] не будут равны "0". Оставшиеся 7 бит и есть наш остаток.

Рассмотрим это на примере:
CRC-7 полином = [1 0 0 0 1 0 0 1]
Сообщение (после сдвига на 7 разрядов) = [1 1 0 0 0 0 0 1] [1 0 0 0 0 0 0 0] 0 0 0 0 0 0 0

Рис. 7 Подсчёт остатка
Остаток 0x17.

Можно найти готовый код для подсчёта CRC7 значений, есть довольно много реализаций, к примеру: вот и вот.

Ответы "Responce"


Теперь рассмотрим, какие есть форматы ответов SD карты на команды (Responce).

Чаще всего используется ответ R1, он состоит из 8 бит, старший бит всегда выставлен в "0". Ошибка обозначается "1" в соответствующем бите. Структура R1 выглядит следующим образом:

Рис.8 Формат ответа R1
  • (0 бит) in idle state - карта в состоянии ожидания и проводит процесс инициализации.
  • (1) erase reset - команда отмены удаления данных из памяти пришла до того как удаление началось.
  • (2) illegal command - неизвестный код команды.
  • (3) com crc error - ошибка проверки CRC кода.
  • (4) erase sequence error - ошибка в последовательных командах удаления.
  • (5) address error - неверный адрес.
  • (6) parameter error - неверный параметр.
R1b формат такой же, как R1, но с дополнительной информацией о готовности карты, это информация может быть произвольного размера. "0" означает что карта "занята", любое значение отличное от 0 означает, что карта готова к следующей команде.

В ответ на CMD13, карта отправляет R2, в дополнении к ошибкам в R1 здесь добавлено несколько новых:

Рис.9 Формат ответа R2
  • (0 бит) Card is locked - карта заблокирована пользователем.
  • (1) Write protect erase skip | lock/unlock command failed - была попытка удалить блок, защищённый от записи, либо был введён неправильный пароль при блокировке/разблокировке карты.
  • (2) Error - стандартная или неизвестная ошибка произошла во время операции.
  • (3) CC error - ошибка контроллера карты.
  • (4) Card ECC failed - ECC код был использован, но не получилось восстановить данные.
  • (5) Write protect violation - была попытка записи в блок, защищенный от записи.
  • (6) Erase param - неправильно выбраны адреса для очистки блоков.
  • (7) Out of range - параметр выходит за границы карты.
Формат R3 состоит из 40 бит, первый байт это формат R1, затем следует значение регистра OCR.

Формат R7 используется когда мы меняем напряжение, но SPI может работать только при 3.3 В. В отличие от SD интерфейса, так что R7 можно не рассматривать.

При работе с блоками данных используются особые "маркеры" (token) для сообщении о ходе передачи данных.

Рис.10 Запись нескольких блоков в карту
На каждый записанный блок карта посылает ответный маркер:
Рис. 11 Маркер записи блока данных
Значение битов "Status" следующее:
  • "010" - данные приняты.
  • "101" - данные отклонены из-за ошибки в CRC коде.
  • "110" - данные отклонены из-за ошибки в процессе записи.
Также есть маркеры определяющие начало и конец записи:
Рис.12 Маркер начала записи/считывания 1 блока, считывания нескольких блоков

Рис.13 Маркер начала записи нескольких блоков
При работе с несколькими блоками маркер посылается каждый раз перед передачей очередного блока данных.
Рис.14 Маркер обозначающий конец записи.
Последний маркер используется только при записи нескольких блоков, при считывании используется команда CMD12.

Если карта не сможет прочитать блок данных, она отправит маркер ошибки, там обозначены те же биты, что и в R2:

Рис.15 Маркер ошибки считывания.
Биты обозначающие ошибки как в маркерах так и в ответах R* очищаются после того как они были переданы хосту, их не нужно очищать вручную.

Внутренние регистры


В режиме SPI мы можем считать 3 регистра OCR CID и CSD. Рассмотрим, что в них хранится.

Регистр OCR отвечает за доступные режимы питания карты:

Рис.16 Содержимое регистра OCR.
В битах [23:15] единица означает, что карта поддерживает данное напряжение.

Регистр CID хранит информацию от производителя:

Рис.17 Содержимое регистра OCR
Регистр CSD состоит из 127 бит и хранит техническую информацию, максимальный ток, скорость записи, размер максимального блока для работы и т. д. Он может отличаться от карты к карте в зависимости от размера. Не буду его расписывать в документации на это потратили 11 страниц.

У карты больше регистров, но они не доступны в режиме SPI.

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

Популярная библиотека FatFs. Также у них есть версия меньшего размера для 8 битных МК Petit FAT.

Источники:
en.wikipedia.org
ru.wikipedia.org
sdcard.org -- Документация
my-cool-projects.blogspot.com -- CRC7
users.ece.cmu.edu/~koopman -- CRC7
www.pololu.com -- CRC7

microSD -> SD переходник удлинитель / Хабр

Наверняка, большинству владельцев автомобильных видеорегистраторов приходилось замечать, как неудобно бывает извлекать microSD флеш-карту. Так и в моем случае, без длинного тонкого предмета или длинного ногтя флешку достать просто невозможно. Усугубляет ситуацию ещё и то, что регистратор у меня установлен прямо за зеркалом заднего вида и быстрое снятие его не предусмотренно, и доступ к нему вообще затруднен.
Выход из ситуации я нашел случайно, увидев в китайском интернет-магазине вот такой microSD to SD module. Но конкретно этот переходник слишком короткий, да и ждать больше месяца. Поэтому я решил сделать такой удлинитель сам, что, собственно, и сделал.

Не секрет, что microSD это уменьшенный вариант полноразмерной SD карты с другим разъемом и между собой эти флешки полностью совместимы. Поэтому, для возможности применения полноразмерных SD карт я буду делать microSD to SD переходник удлинитель, тем более, что подходящая SD карта у меня уже имеется. MicroSD в SD разъем вставить проще, с помощью стандартного переходника. Таким образом можно будет использовать и microSD, и SD флешки.

Схема переходника представлена ниже в виде таблицы с номерами контактов microSD и SD, которые необходимо соединить. Между контактами 4 и 3, 6 со стороны SD не лишним будет так же установить керамический конденсатор емкостью от 0,1µF.

Удлинитель состоит из microSD штекера, который будет вставляться в слот вместо флешки, flat flex кабеля и платы с разъемом под полноразмерную SD флешку. Штекер и плата выполнены методом ЛУТ на двухстороннем стеклотекстолите толщиной 1мм.
Самая сложная часть удлинителя — microSD штекер. Для его изготовления необходимо запастись штангенциркулем и плоским надфилем. Важно выдержать размер, ровно 11x15мм.
Через пол часа работы напильником должны получиться вот такие штекерочки (нужен один). На данном этапе необходимо проконтролировать, чтобы штекер легко вставлялся и вытаскивался в слот вместо флешки.

Припаиваем flat flex кабель к штекеру. Расстояние между дорожками в кабеле — 1мм. Припоя должно быть минимум, чтобы не допустить образование бугров. Штекер должен оставаться плоским.

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

Другим концом припаиваем кабель к подготовленной плате с SD разъемом. Конденсатор smd напаян прямо на контакты разъема, для экономии места.

Открытые участки дорожек заклеиваем изолентой (не синей).

Между платой и кабелем предварительно положив так же кусочек двухстороннего скотча.

Запаковываем в термоусадку.

Видеорегистратор с полноразмерной SD флеш картой, все успешно работает.

В машине я закинул разъем с флешкой за козырек и теперь очень удобно и быстро могу оперативно её оттуда извлечь. Плюс мне теперь не придется покупать ещё одну флешку, и валявшаяся без дела SD карта нашла себе применение.
Проект в Sprint Layout 6.0 с рисунками microSD адаптера и платой под SD можно взять тут.
Спасибо за внимание.

Восстановление данных с карт памяти, SD, microSD карт в Москве

Современные носители чаще изготавливаются по технологии NAND. Флеш память является неотъемлемой частью эксплуатации различных электронных устройств – телефонов, плееров, камер и игровых консолей. В связи с этим восстановление данных с карты памяти становится востребованным на рынке.

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

Адаптеры для чтения микросхем памяти

PC3000 Data Extractor

Чистая комната

Считыватель flash

Паяльные станции

SD-карты памяти

Это популярный на сегодняшний день вид накопителя. Может использоваться, как независимо, так и с адаптером. Восстановление данных с SD карты требуется при аппаратных и логических сбоях. Мастера компании DATARC проводят диагностику проблемы, после чего определяют наиболее эффективный способ реанимации файловой системы.

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

Специалисты по восстановлению данных после форматирования:

Работа с CompactFlash (CF)

CF – это один из старых, но до сих пор востребованных форматов флеш-памяти. Карты данного типа отличаются вместительностью и длительным сроком эксплуатации. Чаще всего эта память применяется для фото и видео аппаратуры. Главной особенностью карт является совместимость со стандартной технологией PCMCIA-ATA.

Compact Flash устанавливаются в разъемы PCMCIA первого и второго типа при помощи переходника. Мастера компании DATARC проведут восстановление карты памяти с соблюдением всех стандартов и правил, поэтому вы можете быть уверены в положительном результате завершения операции.

Работа с картами памяти Memory Stick

Memory Stick – это пластиковая пластина небольшого размера, позволяющая записывать данные. Применяется память только для устройств фирмы Sony. Подходит для следующих видов техники:

  • компьютеры;
  • приставки;
  • фотоаппараты.

Классифицируются карты по физическим размерам и объему памяти. Модифицированные модели предполагают наличие защиты от копирования данных. Такие приспособления оснащены сложной системой шифрования данных и индивидуальным номером. Расшифровать информацию могут только те устройства, которые поддерживают данный формат памяти. Восстановление данных с MicroSD в компании DATARC проводится для всех видов и модификаций Memory Stick, поэтому вы с уверенностью можете обратиться к мастерам, чтобы не потерять важную для себя информацию.

Файлы, файловые системы, шифрование

Описание проблемы Стоимость
«Ремонт» поврежденных файлов (word, excel, jpeg, tif и т.п.) от 3 000 р.
Восстановление паролей файлов/архивов от 3 000 р.
Восстановление шифрованных разделов/папок/файлов/контейнеров* от 10 000 р.
«Ремонт» баз данных* от 10 000 р.
«Ремонт» виртуальных машин от 20 000 р.

Что делать, если отформатировалась карта памяти на фотоаппарате?

В данной ситуации самое главное не записывать на карту новые данные. Придерживаясь этого правила, вы сможете восстановить 100% информации с устройства. Даже несколько новых файлов могут существенно усложнить процедуру, привести к полной и безвозвратной утере информации.

Сбои в работе техники случаются довольно часто. Но не стоит паниковать, если вам тоже пришлось столкнуться с такой трудностью. Лучше сразу обратиться за профессиональной помощью, чтобы быстро исправить ситуацию.

Схема работы

Доставка

курьером бесплатно

Диагностика

быстро и бесплатно

восстановление

на профессиональном оборудовании

проверка

качества и полноты восстановления

Оплата

только при успешном результате

Преимущества сотрудничества с компаний DATARC

Заказав восстановление MicroSD в компании DATARC, вы сможете оценить ряд неоспоримых выгод:

  • оперативное решение проблем любой сложности;
  • доступные цены услуг;
  • работа высококвалифицированных специалистов;
  • применение качественного программного обеспечения и оборудования.

Если вы столкнулись с проблемой незапланированного форматирования, тогда не стоит откладывать решение трудности на потом. Сразу же обратитесь в компанию DATARC, чтобы гарантированно сохранить доступ к ценным файлам.

За 19 лет

87 750 клиентов выбрали нас

Опытные специалисты

Нас рекомендуют производители

Знаем RAID лучше производителей

Прозрачная схема работы

Настоящая лаборатория

Нас рекомендуют благодарные клиенты

Выгодные цены

Конфиденциальность и полный комплект документов

 

Остались вопросы?

Оставьте телефон и менеджер перезвонит Вам

Похожие услуги:

Слот для карты памяти что это: особенности использования карт памяти

Карты памяти настолько тесно вошли в жизнь современного человека, что он попросту не представляет дальнейшее существование без них. Карты памяти уже давно вытеснили дискеты, диски и даже постепенно вытесняют флешки. Основным преимуществом карт памяти является их миниатюрный размер, посредством которого изделие является достаточно мобильным и удобным в эксплуатации. Что касаемо эксплуатации, то не все еще знают, как правильно пользоваться картами памяти. Слот для карты памяти, что это такое, и как правильно пользоваться микрокарточками, узнаем детальней.

Слоты для карт памяти

Слот для подключения карты памяти представляет собой отверстие в виде щели до 2,5 см, в которую вставляется устройство. Эта щелка оснащена специальными контактами, которые при вставлении карты памяти соединяются с нею, после чего происходит считывание информации ПК или ноутбуком.

Стандартные ноутбуки оснащены с завода, зачастую, только одним слотом для подключения карт памяти типа microSD. Как подключить карту памяти к персональному компьютеру? Если на ПК отсутствует слот для подключения карт памяти, то эту проблему всегда можно исправить. Для этого необходимо приобрести переносной слот или картридер, в котором зачастую имеется не менее 3 щелей для различных видов устройств. Преимуществом переносных слотов является их мобильность и дешевизна.

Что такое карта памяти

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

Информацию на карте памяти можно удалять, записывать, перезаписывать в многократном режиме повторений. Карта памяти имеет довольно продолжительный срок службы, измеряемый в десятилетиях при условии правильного обращения с изделием. Дополнительно, некоторые карты памяти оснащены специальным язычком, при помощи которого можно обезопасить изделие от случайного форматирования или удаления информации.

Карты памяти подразделяются на следующие виды:

  • SD – один из наиболее популярных видов карт памяти, используемых на различных современных гаджетах. Максимальный объем такого изделия составляет 4 Гб.
  • SDHC – изделия, память которых свыше 4 Гб и достигает 32 Гб. По размерам они идентичны с предыдущим вариантом, только отличаются стоимостью и объемом вместимости информации.
  • SDXC – карты, который имеют очень большой объем памяти до 2 Тб.
  • MiniSD – прямой аналог карты SD, отличающийся размерами изделия. Данные устройства сегодня практически не используются.

MicroSD – очень маленькая карта памяти, которая используется в современных телефонах, плейерах и прочих гаджетах. Она имеет миниатюрные размеры, но в то же время достаточно большой объем до 64 Гб. Недостатком такого размера является возможность легко потерять изделие.

  • Memory Stick – карты памяти от популярной компании Sony. Максимальный объем их составляет до 16 Гб, а по размерам они бывают как маленькие, так и большие.
  • CompactFlash – формат карт памяти, которые уже устарели. Максимальный объем равен 256 Гб, а преимуществом является высокая скорость передачи данных.

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

Адаптеры для карт памяти

Ноутбуки оснащены слотом для карт памяти, которые имеют большие размеры. Но как же быть с карточками типа microSD или miniSD? Для них существуют специальные адаптеры, которые представляют собой большую обычную карту памяти. С торцевой части адаптер оснащен маленькой щелкой, через которую осуществляется установка карт памяти типа MicroSD.

Установив microSD-карту в адаптер, можно использовать изделие с устройством, которое поддерживает большие карточки (ноутбук, картридер, фотоаппарат). Адаптеры продаются зачастую совместно с картами памяти маленьких размеров. Если же адаптера в комплекте нет, то его всегда можно приобрести отдельно, тем более, что его стоимость незначительная.

Особенности использования карт памяти

Наиболее популярными картами памяти, которые используются повсеместно, являются устройства типа SDHC и microSD. Стандартная карта памяти имеет прямоугольную форму со срезанным углом. Этот угол срезан с той целью, чтобы вставить карту в слот можно было только одной стороной.

Важно знать! Если при попытке вставить карточку в слот у вас ничего не выходит, то следует перевернуть изделие на 180 градусов и снова попытаться его установить в слот. При правильной установке карты обязательно последует щелчок.

Для извлечения карточки необходимо надавить на нее пальцем или ногтем, после чего последует характерный щелчок, и изделие выскочит из слота. Принцип установки карт, как в ноутбуки, так и в фото и видеоаппаратуру идентичен. Чтобы вставить карту в картридер, для этого достаточно расположить ее в правильном положении и всунуть в щелку. При вставке карты в картридер, она входит в щелку не полностью, а только большей частью, что упрощает способ ее извлечения.

Если возникла необходимость перенести информацию с телефона, которая хранится на карте памяти, в ноутбук, то для этого понадобится адаптер. Карточка microSD может быть установлена в слот ноутбука при помощи переходника или адаптера. Для начала микрокарта устанавливается в переходник, а уже затем последний вставляется в слот.

Как считать информацию с карты памяти на ПК

Если на системном блоке ПК отсутствуют слоты для подключения карт памяти, то для этого можно приобрести картридер. Представляет изделие небольшую пластиковую коробку с несколькими щелями для подключения карт. С другой стороны устройство имеет USB-разъем, посредством которого изделие подключается к компьютеру.

Определить видимость компьютером карты памяти достаточно просто, для чего следует кликнуть дважды на значок «Мой компьютер». В открывшемся окне появится значок карты памяти или дополнительный диск, который и является подключенным изделием.

Для открытия содержимого карты на компьютере, достаточно кликнуть по папке двойным щелчком мышки. В открывшемся окне можно скопировать необходимые файлы для перенесения в память ПК или наоборот. По окончанию обязательно следует правильно научиться извлекать карту памяти. Для этого необходимо отыскать в правом нижнем углу значок флешки с зеленой стрелочкой. Необходимо кликнуть по этому значку один раз, после чего выбрать из всплывающего окна функцию «Безопасное извлечение устройства…».

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

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

MicroSD шилд — модуль микро-сиди карты для ардуино

При конструировании той или иной системы на основе аппаратной платформы Arduino может возникнуть задача сохранения данных для последующего анализа. Осуществить такую операцию можно при помощи SD или microSD карты и соответствующего модуля. Шилд для microSD карты был приобретен на Али всего за 1 доллар с доставкой. Рассматриваемое устройство продается под брендом RobotDyn [1]. Поставляется данный шилд в обычном антистатическом пакете.

Модуль имеет габаритные размеры 40 х 25 мм, массу 4,3 г, без microSD карты. На плате располагаются два светодиода зеленый – индикатор питания, синий загорается при работе с microSD картой.

На плате имеются четыре отверстия, диаметром 3 мм, что позволяет надежно закрепить модуль.

Рассматриваемый шилд имеет восемь выводов. Они имеют следующее назначение

  • 5V – питание 5В,
  • 3.3V – питание 3,3 В (данный контакт специфичен именно для шилда от RobotDyn),
  • GND – общий, четыре контакта интерфейса SPI:
  • CLK – SCK, D0 – MISO, D1 – MOSI, CS – выбор устройства,
  • а также опциональный CD – обнаружение карты (может быть не подключен, данный контакт специфичен именно для шилда от RobotDyn).

Контакты интерфейса SPI [2-7] в случае использования платы Arduino UNO следует подключать к следующим выводам CS – D4, D0(MOSI) – D11, D1(MISO) – D12, CLK(SCK) – D13. Следует иметь в виду, что порт для подключения CS в различных проектах может отличаться [8-11].


В режиме ожидания модуль потребляет около 23 мкА при напряжении питания 5 В, при кратковременном обращении к карте ток возрастает до 1,8 мА, если осуществляется непрерывная запись на карту, то ток возрастает до 11 мА. При напряжении питания 3,3 В устройство не заработало.

Задача подключения microSD карты является стандартной и для ее решения можно использовать библиотеку SD, которая прилагается к среде разработки Arduino IDE. В папке этой библиотеки имеется целый ряд примеров, раскрывающих различные нюансы взаимодействия с microSD картой. Самая простая программа CardInfo просто выводит информацию о установленной в разъем карте.

На рисунке выше результат работы CardInfo в случае отформатированной карты. Программа ReadWrite производит создание на microSD карте текстового файла и запись информации в него.

После работы ReadWrite программа CardInfo покажет, что на microSD карте появился файл TEST.TXT.

Программа Datalogger позволяет записывать данные с 0, 1 и 2 аналоговых портов в файл на microSD карте. Также эти данные передаются через последовательный порт. В качестве датчика в данном случае использован переменный резистор сопротивлением 10 кОм.

После работы Datalogger программа CardInfo покажет, что на microSD карте к файлу TEST.TXT. добавился файл DATALOGGER.TXT.

В общем, данный модуль позволяет очень серьезно расширить потенциальные возможности устройств на платформе Arduino, радикально решив проблему с «амнезией» при перерыве в электропитании, позволяя сохранять для последующего анализа данные о срабатывании датчиков на какой-либо мобильной платформе или работе датчиков умного дома.

Полезные ссылки

  1. robotdyn. ru/catalog/modules/memory/microsd_card_module.html
  2. arduinomaster.ru/datchiki-arduino/podklyuchenie-spi-arduino/
  3. avrbeginners.net/architecture/spi/spi.html
  4. robocraft.ru/blog/arduino/518.html
  5. arduino.ru/Reference/Library/SPI
  6. www.arduino.cc/en/Reference/SPI
  7. soltau.ru/index.php/arduino/item/382-interfejs-spi-i-arduino
  8. robotclass.ru/tutorials/arduin-read-write-micro-sd-card/
  9. all-arduino.ru/arduino-urok-15-sd-karta/
  10. arduinoplus.ru/podkluchaem-sd-kartu-k-nashemu-arduino/
  11. arduinomaster.ru/datchiki-arduino/podklyuchenie-sd-karty-k-arduino/

Специально для сайта 2 Схемы.ру — Denev.


Распиновка карты

Secure Digital (SD) @ pinouts.ru

SD-карты

основаны на более старом формате Multi Media Card (MMC), но большинство из них физически немного толще, чем карты MMC. Они также могут похвастаться более высокой скоростью передачи данных. Функции DRM доступны, но мало используются. SD-карты обычно имеют размеры 32 мм × 24 мм × 2,1 мм, но могут быть и 1,4 мм, как карты MMC.

Доступны различные классы скорости. Они упоминаются с той же нотацией nx, что и компакт-диски; кратно 150 кБ / с.Устройства со слотами SD могут использовать более тонкие карты MMC, но стандартные карты SD не помещаются в более тонкие слоты MMC. Карты MiniSD и MicroSD можно использовать непосредственно в слотах SD с помощью адаптера. Существуют считыватели, которые позволяют получить доступ к SD-картам через множество портов подключения, таких как USB, FireWire.

Штифт Режим SD Режим SPI
Название Тип Описание Имя Тип Описание
1 CD / DAT3 В / В / PP Обнаружение карты / линия передачи данных разъема 3 CS I Выбор микросхемы в низком состоянии
2 CMD PP Строка команды / ответа DI I Ввод данных
3 Vss1 S GND VSS S GND
4 Vdd S Блок питания VDD S Блок питания
5 CLK I Часы SCLK I Часы
6 Vss2 S GND VSS2 S GND
7 DAT0 В / В / PP Разъем линии передачи данных 0 ДО О / ПП Вывод данных
8 DAT1 В / В / PP Разъем линии передачи данных 1 RSV
9 DAT2 В / В / PP Разъем линии передачи данных 2 RSV
Интерфейс SD-карт

совместим со стандартными операциями с MMC-картами. Все карты памяти SD и SDIO должны поддерживать старый режим SPI / MMC, который поддерживает несколько более медленный четырехпроводной последовательный интерфейс (часы, последовательный вход, последовательный выход, выбор микросхемы), совместимый с портами SPI на многих микроконтроллерах. Многие цифровые камеры, цифровые аудиоплееры и другие портативные устройства, вероятно, используют исключительно режим MMC. Режим MMC не обеспечивает доступа к проприетарным функциям шифрования SD-карт, и бесплатная документация SD не описывает эти функции. Поскольку шифрование SD предназначено в первую очередь для производителей мультимедиа, от него мало пользы для потребителей, которые обычно используют SD-карты для хранения незащищенных данных.

SD поддерживает три режима передачи: режим SPI (отдельный последовательный вход и последовательный выход), однобитный режим SD (отдельные каналы команд и данных и собственный формат передачи) и четырехбитный режим SD (используются дополнительные контакты плюс некоторые переназначенные контакты) для поддержки четырехбитной параллельной передачи. Низкоскоростные карты поддерживают скорость передачи данных от 0 до 400 кбит / с, а также режимы передачи SPI и однобитного SD. Высокоскоростные карты поддерживают скорость передачи данных от 0 до 100 Мбит / с в четырехбитном режиме и от 0 до 25 Мбит / с в режимах SPI и однобитовой SD.

Функции безопасности SD-карт включают:

  • Механизм защиты авторских прав со стандартом SDMI (Secure Digital Music Initiative)
  • Интегрированная система защиты и шифрования файлов CPRM (CPRM - это защита содержимого для записываемых носителей)
Распиновка SD-карты

: основы | Устройства Delkin - надежное управляемое хранилище

Последовательный интерфейс SD-карт сделал их чрезвычайно популярными как в бытовых, так и в промышленных устройствах для OEM-производителей.Ассоциация SD-карт строго контролирует спецификации SD-карт, включая распиновку SD-карты, поэтому существуют универсальные стандарты для всего, от физических интерфейсов до командных протоколов, которые делают интеграцию простой и простой. SD-карты предназначены для удовлетворения потребностей как потребительского, так и промышленного рынков и их различного бюджета. Большинство потребительских устройств полагаются на флэш-память MLC, в то время как промышленные устройства используют флэш-память SLC. Распиновка SD-карты может отличаться в зависимости от режима карты.

Режимы SD-карты

SD-карты автоматически используют режим SD для протокола шины.Режим SD обеспечивает высокую скорость и ширину шины от одного до четырех бит в последовательном режиме тактовой частоты. Однако пользователи могут изменить режим SD по умолчанию, чтобы использовать карту в режиме SPI. Режим SPI лучше всего подходит для приложений, в которых идеально подходит более медленная и простая карта. Разница в скорости с режимами SD и SPI может быть значительной, поскольку карта может работать только с одним битом в режиме SPI.

Выводы карты SD в режиме SD

Каждая карта SD, независимо от режима, имеет 9 контактов, с восьмым контактом на одном конце и девятым на другом. В режиме SD распиновка и сигнальные функции выглядят следующим образом:

  1. DAT1 - Первый бит данных
  2. DATA0 / DO - Бит данных 0
  3. Vss2 - Земля 2
  4. CLK - Часы
  5. Vcc - Питание напряжение
  6. Vss1 - Земля 1
  7. CMD / DI - Командная строка
  8. DAT3 / CS - Бит данных 3
  9. DAT2 - Бит данных 2

С этой распиновкой карты SD могут поддерживать нормальный и высокоскоростной режимы.

Выводы карты SD в режиме SPI

Режим SPI обеспечивает более простое функционирование, и не каждый вывод имеет соединение.Распиновка и функции сигналов следующие:

  1. RSV - зарезервировано
  2. DO - Master In / Slave Out (или MISO)
  3. Vss - Земля
  4. CLK - Часы
  5. Vcc - Напряжение питания
  6. DI - Master Out / Slave In (MOSI)
  7. CS - Chip Select
  8. NC - Нет соединения
  9. RSV - Зарезервировано

У вас есть вопросы о распиновке SD-карты и использовании SD-карт для флэш-памяти? Компания Delkin предоставит вам необходимую информацию и поможет оценить все варианты надежной памяти промышленного уровня.Поговорите с нашей командой разработчиков сегодня.

Взаимодействие микроконтроллеров с SD-картой

Secure Digital Card (SD) - это недорогой, энергонезависимый формат карты памяти, разработанный SD Card Association. С момента своего появления в начале века спрос на это устройство хранения памяти среднего размера, энергоэффективное и компактное, росло быстрыми темпами. Поэтому, чтобы соответствовать требованиям рынка, SDA была создана как некоммерческая организация для продвижения и создания стандартов SD-карт.Существуют различные темы, связанные с SD-картой, такие как различные семейства устройств, классы скорости, смарт-карты, безопасность карт и т. Д., И она используется на различных рынках, таких как цифровые камеры, персональные компьютеры и встроенные системы. Некоторые из стандартных вариантов включают SD, SDHC, SDXC, SD-сверхвысокую скорость и т. Д. MicroSD - это миниатюрный формат карты памяти SD с малым форм-фактором, который широко используется в различных электронных устройствах.
Мы собираемся изучить использование SD-карт во встроенных системах.Чтобы быть конкретным, мы будем иметь дело с использованием SD-карт в небольших встроенных системах.

Схема и интерфейс

SD-карта имеет собственный интерфейс хоста, кроме режима SPI, для связи с ведущими устройствами. Собственный интерфейс использует четыре линии для передачи данных, где микроконтроллер имеет модуль контроллера SD-карты, и для его использования требуется отдельная лицензия. Поскольку SPI является широко используемым протоколом и доступен в большинстве недорогих микроконтроллеров, режим SPI является широко используемым интерфейсом в недорогих встроенных системах.Диапазон рабочего напряжения семейства SD составляет от 2,7 В до 3,6 В, и это указывается в регистре условий работы (OCR).

Распиновка SD-карты

Распиновка MicroSD-карты

Большинство микроконтроллеров используют протокол связи SPI для взаимодействия с SD-картами. На SD-картах есть микроконтроллер, который показывает их доступность главному контроллеру (микроконтроллеру). Микроконтроллер видит SD-карту как адресный сектор, на котором возможны функции чтения / записи.Когда микроконтроллер находится в режиме SPI, связь между мастером и ведомым устройством осуществляется через 4 контакта, а именно. часы, выбор микросхемы, ввод и вывод данных. Следует иметь в виду, что во время обмена данными между двумя устройствами микроконтроллер будет посылать часы.
Большинство плат для разработки имеют специальный слот для SD-карты. Но чтобы разобраться в связях, разберем эту довольно простую схему.

span { цвет фона: # cb2d46! важно; } .fusion-content-box-5 .fusion-content-box-hover .link-area-box-hover .heading .icon> span { цвет границы: # cb2d46! важно; }]]> Этот курс охватывает все, что вам нужно для начала работы со встроенными системами, от самого простого управления вводом-выводом до расширенного интерфейса SD-карты.

Подробнее о курсе

Схема

Если логический уровень микроконтроллера отличается от уровня SD-карты, для преобразования линейных напряжений необходимо использовать переключатель уровня.
Вывод MISO (ведущий последовательный выход) должен быть подключен к выводу SDI (последовательный ввод данных) на микроконтроллере.
Вывод MOSI (главный выход - последовательный вход) должен быть подключен к выводу SDO (последовательный выход данных) на микроконтроллере.
Вывод SCK (последовательные часы) должен быть подключен к выводу SCK (последовательные часы) на микроконтроллере.
Вывод CS (выбор микросхемы) должен быть подключен к соответствующему выводу CS на микроконтроллере или к любому цифровому выводу ввода / вывода на микроконтроллере. Общая земля обеспечена.

ВАЖНОЕ ПРИМЕЧАНИЕ : При подключении источника питания убедитесь, что питание поступает от источника питания 3,3 В, поскольку источник питания 5 В приведет к тому, что ваша карта станет дымом.

Интерфейс

После того, как соединения установлены, мы готовы сопрягать наше оборудование с программным обеспечением.
Правильно установите направление каждого из четырех штифтов. При активации режима SPI в идеальной конфигурации должен быть режим (0,0) и фаза с дискретизацией входных данных в середине выходных данных.Кроме того, тактовая частота должна быть установлена ​​в диапазоне от 100 кГц до 400 кГц до инициализации карты. После завершения инициализации часы можно установить на более желаемую частоту.

Команды SD

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

Каждая команда имеет постоянную длину 6 байтов.
Первый байт - это сложение номера команды и числа 64.
Пример :
Для CMD0: номер команды 0 + 64 = 64 = 0x40 в шестнадцатеричном формате.
Для CMD1: номер команды 1 + 64 = 65 = 0x41 в шестнадцатеричном формате.
И так далее.
За ним следует набор из четырех байтов, которые известны как аргументы. Эти аргументы обычно содержат адрес данных или длину блока.
Последний байт - это байт CRC (Cyclic Redundancy Check). Большинство команд в режиме SPI не требуют контрольного байта, если функция CRC не включена. Для некоторых команд, таких как CMD0, CRC равен 0x95, и в большинстве случаев отправляется 0xFF. Включение CRC требует, чтобы вы отправили правильный контрольный байт с микроконтроллера.Итак, убедитесь, что функция CRC включена или отключена.
Командный кадр выглядит так:

Карта получит команду, когда на выводе DO (выход данных) будет установлен высокий уровень, как показано выше. Перед отправкой команды на вывод CS (Chip Select) должен быть установлен высокий или низкий уровень, и во время процесса он должен оставаться на низком уровне. Время между командой и ее ответом известно как время ответа на команду (NCR). Как упоминалось ранее, что касается тактовых импульсов от микроконтроллера, соответствующий байт ответа, отправленный обратно с карты в микроконтроллер, должен управляться последовательными тактовыми импульсами микроконтроллера.Существует вероятность того, что байт ответа с карты может быть пропущен микроконтроллером из-за отсутствия управляющего тактового импульса. Следовательно, необходимо убедиться, что 8-битный тактовый импульс отправлен на карту вскоре после отправки командного кадра (см. ТЕХНИЧЕСКОЕ ПРИМЕЧАНИЕ ниже). Также при получении байта от карты вывод DI (Data In) должен быть установлен в высокий уровень.

Кроме того, давайте проанализируем различные типы ответов , которые мы получаем от карточки, и их значение.

Ответ R1, 0x01 означает, что команда, отправленная до ответа, привела к переходу карты в состояние ожидания.
Байт ответа 0x00 означает, что команда была принята, и карта будет ожидать наступления предложенного события. Если какие-либо другие биты в ответе R1 установлены, это результат ошибки, и он будет уменьшен до коэффициента, указанного в каждом бите ответа R1 на рисунке.

Инициализация SD-карты

Теперь, что касается отправки команд, существует порядок, в котором они должны отправляться.Только команды CMD0, CMD1, ACMD41, CMD58 и CMD59 будут приняты, когда карта находится в состоянии ожидания. Отправка любой другой команды может привести к недопустимому ответу.

ТЕХНИЧЕСКОЕ ПРИМЕЧАНИЕ : После сопряжения карты микроконтроллер всегда должен отправлять набор байтов, которые мы будем называть фиктивными байтами. Один фиктивный байт равен 0xFF. Эти фиктивные байты имеют простое, но важное назначение. Перед инициализацией карта должна знать частоту отправки данных.Отправив примерно 75 фиктивных битов (фиктивный байт * 10 раз = 80 бит), карта будет готова к обмену данными. Кроме того, даже после отправки каждой команды рекомендуется отправлять хотя бы один фиктивный байт. Логическим объяснением этого является то, что связь управляется тактовым импульсом микроконтроллера. Тактовый импульс отправляется только при заполнении буфера данных. После отправки каждого ответа и до следующей команды или между командой и ответом SCK перестанет генерировать импульсы из-за пустого буфера данных.Чтобы гарантировать непрерывную передачу тактовых импульсов между каждой командой, заполните буфер данных ненужным значением, например фиктивным байтом. Чтобы создать фиктивную байтовую функцию с количеством циклов в качестве аргумента.

Первая команда , которая должна быть отправлена ​​на карту, - это команда CMD0 . Структура каждой другой команды-ответа должна быть основана на этой модели.

  • Установите вывод DO на высокий уровень.
  • Переместите штифт CS от высокого к низкому.
  • Отправить фиктивный байт.
  • Затем непрерывно отправляйте следующую 6-байтовую команду
    Первый байт: 0x40
    Следующие четыре байта: 0x00000000
    Байт CRC: 0x95
  • Отправить еще один фиктивный байт или столько, сколько требуется, чтобы сгенерировать SCK, дающий время для SD карта для ответа на запрос команды.
  • Подождите, пока установится бит флага приема, а затем прочтите ответ с SD-карты или создайте цикл для чтения ответа несколько раз. Ответ должен возвращаться в пределах времени от команды до ответа (Ncr).Или что-то должно быть не так.
  • Желаемый ответ - 0x01, что означает, что карта находится в состоянии ожидания, и все готово.

Отправьте команду CMD8 рядом, чтобы проверить версию вашей SD-карты.
Разница в 6-байтовых командах:
Первый байт: 0x48
Следующие четыре байта: 0x000001AA
Байт CRC: 0x87

Мы ищем две возможности в нашем байте ответа. Либо 0x01, либо 0x05.

Ответ 0x01 означает, что у вас есть SD-карта версии 2.За ответом 0x01 следуют 4 байта 0x00, 0x00, 0x01, 0xAA в порядке их передачи с SD-карты, что, по сути, является аргументом, который вы отправляете в своей команде.

Если ответ 0x05, это означает, что карта является версией 1 или картой MMC. Если карта на самом деле является SD-картой версии 2, то этот ответ является результатом недопустимой команды. Кроме того, карта теперь находится в состоянии ожидания.

После выполнения двух вышеуказанных команд (CMD0 и CMD8) можно с уверенностью сказать, что наша SD-карта работает в хорошем состоянии и готова к чтению / записи данных.
Кроме того, чтобы убедиться, что SD-карта работает при правильном рабочем напряжении, отправьте команду CMD58 .

Затем мы должны запустить процесс инициализации i . Для этого отправьте команду CMD1 и дождитесь ответа 0x00, означающего, что бит состояния ожидания сброшен.
Если вы используете SDC или с целью создания общего кода, рекомендуется сначала отправить команду ACMD41 , чтобы начать процесс инициализации, а затем отправить команду CMD1 , если ACMD41 отклонен.
В любом случае процесс инициализации может занять несколько сотен миллисекунд, поэтому рекомендуется выполнить несколько итераций для проверки байта ответа.

Предположим, что ответ CMD8 привел к 0x05, необходимо учесть несколько соображений относительно процедуры инициализации. Карты версии 1 могут не поддерживать команду ACMD41. И даже если они действительно поддерживают команду ACMD41, отправьте команду CMD55 и проверьте ответ, который будет 0x05 вместо 0x01, а затем вместо отправки команды CMD41 отправьте команду CMD1 для завершения процесса инициализации.

Чтение / запись SD-карты

Теперь мы готовы к чтению / записи необработанных данных.

Первое, что нужно сделать здесь, это установить размер блока чтения / записи.
Для этого отправьте команду CMD16 . Аргументы этой команды должны указывать длину блока.
Пример : Чтобы установить длину блока равной 512 байтам, отправьте 4-байтовый аргумент как 0x00000200.
Отправить 0xFF в качестве байта CRC и дождаться байта ответа 0x00.

Что касается команд для чтения / записи, общая структура отправки команд такая же, но с некоторыми дополнительными деталями.

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

Отправьте команду CMD17 для одного блока чтения и дождитесь ожидаемого ответа 0x00. Как только это будет сделано, дождитесь, пока SD-карта отправит другой ответ, 0xFE. Этот ответ, передаваемый SD-картой, является индикатором начала непрерывной передачи блока данных. В конце отправьте фиктивный байт или два, и процесс будет завершен.

Временная диаграмма однократного чтения

Временная диаграмма многоблочного чтения

охватывать { цвет фона: # cb2d46! важно; } .fusion-content-box-1 .fusion-content-box-hover .link-area-box-hover .heading .icon> span { цвет границы: # cb2d46! важно; }]]>

Этот контент доступен только нашим зарегистрированным пользователям. Создайте бесплатную учетную запись для доступа к контенту.

SignUp / SignIn

В случае CMD18 для блока с множественным чтением , выполните процедуру до ответа 0xFE.После этого карта будет передавать блоки данных до тех пор, пока не получит команду CMD12 , которая является указанием микроконтроллера о завершении чтения блока.

В случае выполнения однократной записи или многоблочной записи , отправьте CMD24 или CMD25 соответственно и дождитесь ответа 0x00. Для каждой записи блока требуется начальный токен 0xFE в случае записи одного блока и 0xFC в случае записи нескольких блоков, чтобы карта могла начать запись одного блока данных в указанный сектор.Убедитесь, что 0xFC отправляется для каждой записи блока во время записи нескольких блоков. После каждой записи блока должен быть выпущен маркер остановки 0xFD (не требуется в случае записи одного блока). После завершения записи всего блока данных команда CMD13 является обязательной .
Не забывайте отправлять фиктивные байты между ответами, а также перед отправкой стартовых токенов.

Временная диаграмма записи одного блока

охватывать { цвет фона: # cb2d46! важно; } .fusion-content-box-2.fusion-content-box-hover .link-area-box-hover .heading .icon> span { цвет границы: # cb2d46! важно; }]]>

Этот контент доступен только нашим зарегистрированным пользователям. Создайте бесплатную учетную запись для доступа к контенту.

SignUp / SignIn

Временная диаграмма многоблочной записи

охватывать { цвет фона: # cb2d46! важно; } .fusion-content-box-3 .fusion-content-box-hover .link-area-box-hover .heading .icon> span { цвет границы: # cb2d46! важно; }]]>

Этот контент доступен только нашим зарегистрированным пользователям.Создайте бесплатную учетную запись для доступа к контенту.

SignUp / SignIn

Взаимодействие микроконтроллеров с SD-картой - блок-схема

Создание функции для каждого из разделов чтения / записи - идеальный способ кодирования программного обеспечения. Это основная структура, которой необходимо следовать во время операций чтения / записи, выполняемых с необработанными данными на SD-карте.

охватывать { цвет фона: # cb2d46! важно; } .fusion-content-box-4 .fusion-content-box-hover .link-area-box-hover .heading.icon> span { цвет границы: # cb2d46! важно; }]]>

Этот контент доступен только нашим зарегистрированным пользователям. Создайте бесплатную учетную запись для доступа к контенту.

SignUp / SignIn

Дополнительная литература

Поделитесь любовью, поделитесь этим

Распиновка Isp для Micro SD-карты

Команда является хостом двунаправленного сигнала, и драйверы карты работают в двухтактном режиме dat0 3.

Распиновка ISP для Micro SD-карты . Нажмите на карту microSD для покупки или на изображение, чтобы увидеть текущие цены.Они также могут похвастаться более высокой скоростью передачи данных. Карты SD основаны на более старом формате мультимедийных карт mmc, но большинство из них физически немного толще, чем карты mmc. Все карты памяти MicroSD доступны на Amazon.

SD-карта 32 мм x 24 мм карта minisd 21 5 x 20 мм карта MicroSD 15 мм x 11 мм, описанная на этой странице. Карта Micro SD представляет собой тип съемной карты памяти малого формата флэш-памяти, имеющей размеры 11 мм x 15 мм и толщину 1 мм.Microsd - это наименьший из форматов слотов для SD-карт, которые можно приобрести, чтобы позволить меньшему типу SD-карты подключаться к большему типу. Технология интерфейса SD-карты быстро расширяется с момента ее появления в начале этого века.

В этой ситуации используется SD-карта. Возможность подключения карты памяти MicroSD в слот для карты MiniSD. С теми же характеристиками и выясняю, какая из них работает быстрее и лучше, и, наконец, я усложню карты памяти microsd.Oppo a92 восстанавливает мертвую загрузочную прошивку, снимает блокировку frp или любой другой брендовый телефон, который вам нужен easyjtag, плюс это единственная коробка на рынке, которая поддерживает чип ufs.

Как использовать sd карту. Карты SD обычно имеют размер 32 мм, 24 мм 2, 1 мм, но могут быть и толщиной от 1 до 4 мм, как и карты MMC. Настраиваемый контакт cs по умолчанию. Стандарты, определяемые время от времени ассоциацией SD, еще более быстро увеличивают скорость передачи и размер памяти.

Контакты для карт SD и micro sd с описанием и функциями. Да пребудет сила с картами MicroSD. Некоторые бренды не могут удалить блокировку, например, пароль FRP и mdm-замок, который действительно поддерживает. Краткий обзор текущих стандартов доступен в Википедии, более подробные описания можно найти в связанных ниже документах ассоциации SD.

Эти коробки помогают некоторым телефонам после прошивки неправильной прошивки не отображать загрузку на экране. Эти коробки нужны для восстановления загрузки.Назначение контактов карты памяти micro sd Площадь контактов карты памяти micro sd 4 Топология шины 2 SD шина sd имеет шесть линий связи и три линии питания. Термины SD-карта означает безопасную цифровую карту. Существует много типов SD-карт, начиная с больших размеров RS MMC, используемых в камерах, и заканчивая микро- и мини-SD-картами, которые обычно используются в mp3-плеерах мобильных телефонов и т. Д. различия.

Micro SD - это сокращение от Micro Secure Digital.Линии данных являются двунаправленными сигналами. Драйверы хоста и карты работают в двухтактном режиме. Secure Digital - это то, что означает SD, это съемная карта памяти на основе флэш-памяти.

Пройдя испытание на чрезвычайную долговечность. Контакты для карты micro sd есть.

Если вы ищете Micro SD Card Isp Pinout , вы попали в нужное место. У нас есть 8 изображений о распиновке ISP карты micro SD, включая изображения, фотографии, картинки, обои и многое другое.На такой веб-странице у нас также есть много графики. Например, png, jpg, анимированные гифки, изображения, символы, черно-белые, полупрозрачные и т. Д.

Распиновка карты microSD, характеристики и техническое описание

Конфигурация контактов
Номер контакта Имя контакта В режиме SD В режиме SPI
1 DAT2 / X Линия данных разъема 2 Не используется
2 DAT3 / CS Разъем Строка данных 3 Выбор микросхемы
3 CMD / DI Строка команды / ответа Ввод данных
4 VDD / VDD Электропитание (+3.3 В) Источник питания (+ 3,3 В)
5 CLK / SCLK Часы Последовательные часы
6 VSS / VSS Заземление Заземление
7 DAT0 / D0 Разъем Линия данных 0 Выход данных
8 DAT1 / X Разъем Линия данных 1 Не используется

Характеристики и характеристики карты MicroSD

Рабочее напряжение: 2.От 7 В до 3,3 В

Емкость: 4 ГБ, 8 ГБ, 16 ГБ, 32 ГБ и т. Д.

Файловая система: SD / SDHC / SDXC

Система хранения: FAT12 и FAT16

Скорость передачи: 95 мегабайт в секунду (обычно)

Класс скорости: от класса 2 до класса 10

Форм-фактор

: 11 мм × 15 мм × 1 мм

Где использовать SD-карту

SD-карты являются наиболее часто используемыми Устройства хранения во встроенных приложениях .Почти все микроконтроллеры имеют ограниченную флэш-память для программирования и ограниченную память EEPROM для хранения важных данных. Однако для проектов, связанных с регистрацией данных, изображениями или другой тяжелой графикой, программисту, возможно, придется сохранять огромные фрагменты данных в мегабайтах. В этой ситуации используется SD-карта.

Как использовать SD-карту

Термины SD-карта означает карту « Secure Digital ». Существует различных типов SD-карт. , начиная от больших карт RS-MMC, используемых в камерах, и заканчивая микро- и мини-картами SD, которые обычно используются в мобильных телефонах. , MP3-плееры и т. Д.Хотя между всеми этими картами есть несколько важных различий, основной принцип работы одинаков.

SD-карты могут работать в двух режимах работы: в одном используются команды SD mode , а в другом - SPI mode . Большинство цифровых камер и мобильных телефонов будут использовать режим SD для связи с SD-картой, однако это не представляет нашего интереса, потому что только режим SPI для связи между SD-картой и микроконтроллером, таким как Arduino (ATmel), PIC, AVR. и т.п.. Простая схема подключения для SPI с микроконтроллером , показанная ниже:

Для связи SPI требуется всего четыре провода, и он широко поддерживается большинством микроконтроллеров. Однако SD-карта работает с напряжением 3,3 В, и все ее контакты говорят только с 3,3 В, микроконтроллер, с другой стороны, может работать с + 5 В в этих случаях двунаправленный логический переключатель уровня (например, 74HC245), который может преобразовывать Рекомендуется использовать сигналы от 5 В до 3,3 В. После того, как вы подключили карту, вам нужно будет инициализировать ее, а затем начать общаться с ней с помощью команд SPI, здесь невозможно охватить весь процесс, поэтому вы можете прочитать таблицу ниже, чтобы получить дополнительную информацию.

Приложения
  • Портативная электроника
  • Регистраторы данных
  • Графические дисплеи
  • MP3-плееры
  • Обработчики аудиофайлов
  • Обработчики изображений

Архитектура Обзор стандарта

SD | SD Association

Введение в стандарты SD

Стандарты

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

В качестве отраслевого стандарта стандарт SD используется во многих сегментах рынка портативных запоминающих устройств, включая мобильные телефоны, цифровые камеры, MP3-плееры, персональные компьютеры, планшеты, принтеры, автомобильные навигационные системы, электронные книги и многие другие потребительские электронные устройства. устройств.

«Универсальные, портативные и удобные стандарты SD занимают лидирующие позиции на рынке сегодня и будут развиваться вместе с будущим цифрового мира».

Существует три определенных форм-фактора для SD-карты; полноразмерные, miniSD и microSD.microSD пришла на смену miniSD, поэтому на рынке чаще встречаются два форм-фактора, которые показаны в таблице ниже.

Обычные карты памяти SD имеют только один ряд контактов, включая VDD источника питания 3,3 В, которые используются для режимов интерфейса шины по умолчанию, высокой скорости и UHS-I. У полноразмерных карт 9 контактов (два VSS), а у карт microSD 8 контактов (один VSS).

Карты с более высокой скоростью передачи данных по шине имеют новое расположение выводов во втором ряду для поддержки скоростей передачи UHS-II, UHS-III и SD Express.1.8V VDD входит во второй ряд контактов. Для всех карт UHS-II, UHS-III и SD Express требуется два источника питания
напряжением 3,3 В и 1,8 В.

Карта microSD

, отличная от UHS-II, может выдвигать две антенные площадки для бесконтактных приложений, но антенные площадки будут мешать второму ряду карт UHS-II / UHS-III. В качестве альтернативы был определен интерфейс NFC (Near Field Communication), использующий протокол Single Wire через площадку во втором ряду.

Форм-фактор SD microSD
Размер
Емкость карты Тип SD, SDHC, SDXC и SDUC
Физические Кол-во выводов
High Speed ​​и UHS-I: 9 контактов
UHS-II и UHS-III: 17 контактов
SD Express 1-полосный: 17-19 контактов
SD Express 2-полосный: 25-27 контактов
High Speed ​​и UHS-I: 8 контактов
UHS-II и UHS-III: 16 контактов

SD Express 1-полосный: 17 контактов

Рабочее напряжение 3.Диапазон VDD 3 В в первом ряду: 2,7 В - 3,6 В
Диапазон напряжений VDD 1,8 В во втором ряду: 1,70 В - 1,95 В
Переключатель защиты от записи ДА НЕТ

Технология NAND показала поразительный прогресс, обеспечив экспоненциальный рост объема памяти. В соответствии с увеличением объема памяти требуется гораздо более высокая скорость интерфейса шины, чтобы сократить время доступа к карте такой емкости.

UHS-II и UHS-III предлагают гораздо более высокие скорости шины, чем UHS-I, используя низковольтный дифференциальный сигнал (LVDS) на выводах второго ряда. Новая скорость SD Express самая высокая. Первый ряд контактов на картах UHS-II, UHS-III и SD Express обеспечивает обратную совместимость
и взаимодействие с обычными интерфейсными хост-устройствами.

Стандартные карты памяти SD

Упрощенная спецификация Загрузки

Упрощенные версии некоторых спецификаций карт памяти SD доступны для загрузки разработчиками.Чтобы получить доступ к полным спецификациям, просто присоединитесь к SD Association.

Начните использовать стандарты SD в своих продуктах

Заинтересованы в использовании стандартов SD в вашем следующем продукте?

Узнайте, как

Распиновка

монолитных SD-карт - возможно восстановление данных

Возможно ли восстановление данных с монолитных устройств?

Что ж, если послушать многих профессионалов отрасли, которые работают в сфере восстановления данных, видимо, нет.Конечно, во многих случаях это факт. Однако есть некоторые, в которых данные можно восстановить с помощью технологии Pinout.

Вы ведь уже ожидали, что я это скажу, не так ли? Что ж, я знаю, что говорят профессионалы отрасли, и, хотя я работаю в той же отрасли, я знаю, что это возможно. Однако имейте в виду, что такие способы восстановления не всегда просты и не всегда успешны. Есть несколько вариантов и осложнений, которые могут помешать такой попытке восстановления.

Я скоро перейду к этим деталям.

Производители в течение многих лет более или менее объясняли это тем, как они проектируют платы. На самом деле распиновки на платах уже довольно давно оставляют. Это было более или менее для того, чтобы кто-то мог сбросить необработанное изображение с NAND-флеш-памяти.

Это тоже не то, что под силу обычному пользователю. По сути, вы должны быть обучены сложным деталям, которые окружают этот процесс. Также необходимо иметь очень устойчивые руки.Это связано с тем, что выполняемая работа требует такой точности и настолько деликатна, что одно легкое движение может испортить всю процедуру до этого момента и превратить попытку в «неудачную».

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

Вот она…

1.Паяльная станция
Очень хорошая паяльная станция с очень-очень тонким наконечником. Поскольку контакты на карте micro SD такие крошечные, жало паяльника должно соответствовать ему, чтобы быть эффективным.

2. Микроскоп
Микроскоп с как минимум 10-кратным увеличением для удобства использования при пайке. Конечно, вы можете обойтись 8-кратным зумом, но, согласно моим личным предпочтениям, этого недостаточно.

3. Медная проводка
Медная проволока измерительная 0.1 миллиметр в диаметре. Желательно изолировать изоляционным клеем. Провода будут часто пересекаться, и вы захотите, чтобы они не соприкасались друг с другом.

4. Адаптер флэш-памяти NAND
Адаптер платы флэш-памяти NAND для подключения контактов микро SD к адаптеру.

В России есть компания (RuSolute), которая создала переходники, не требующие пайки. Все, что вам нужно сделать, это очистить карту. Хотя мы не тестировали ни один из их продуктов, мы планируем сделать это когда-нибудь в будущем.Ожидайте пару блогов, в которых будут рассмотрены наши результаты.

Как я уже сказал, это ключевые компоненты для выполнения задачи восстановления данных. Без хотя бы одного из них вы не сможете продолжить процесс восстановления.

А вот схема распиновки.

Это предназначено для того, чтобы сообщить вам, какие контакты и куда идут, чтобы получить правильное чтение с SD-карты. На форумах, размещенных на HDDGuru, есть множество доступных распиновок для различных типов карт, которые в настоящее время доступны на рынке.Многие из них уже прошли распиновку.

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

Итак, как вы уже могли догадаться, эта процедура займет некоторое время. Это также потребует терпения и умения. Поэтому не удивляйтесь, когда кто-то назовет вам "руку и ногу" цену за выполнение этой задачи в вашем местном центре восстановления данных.Фактически, большинство центров восстановления данных предпочли бы не пытаться восстановить этот тип, потому что это очень деликатно и требует много времени. Если вы найдете кого-то, кто хочет попробовать, ожидайте, что это будет дорогостоящее вложение с вашей стороны.

Итак, поехали.

Теперь вы лучше понимаете, что такое распиновка, для чего она используется и для чего. Продолжайте следить за этим блогом, так как я буду предоставлять вам полное пошаговое руководство по восстановлению с использованием распиновки на карте micro SD.

Если у вас есть SD-карта, Micro SD-карта или монолитный флэш-накопитель, который вы хотите, чтобы мы посмотрели или у вас возник вопрос о схеме распиновки, отправьте нам сообщение через нашу контактную форму.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *