Инициализация карты памяти что это
Инициализация режима SPI для SD-карты и детали процесса передачи данных и команды
Примечания к личному изучению могут быть немного беспорядочными, но, внимательно их прочитав, вы обязательно что-то получите. Если у вас есть какие-либо вопросы, оставьте комментарий, и я отвечу на них один за другим (до 2018.10.1).
Режим связи SPI - это 3-проводный CLK MOSI MISO, а связь SPI - это метод обмена данными, поэтому во время связи нет необходимости использовать прерыватель.Тип (прерывания также можно использовать для экономии времени, но фактическое значение невелико). Например, когда мастер связи SPI отправляет данные и получает от машины, но ведомое устройство не отправляет данные, потому что три связи SPI линии представляют собой схемы с открытым стоком, подключенные к подтягивающим резисторам. Все хосты получают все 0xff и устанавливают бит RENX. Вы можете узнать, отправляет ли ведомое устройство данные, оценив, все ли полученные единицы (0xff). В функции записи данных отправки SPI должна быть также записана функция приема данных, а после функции SPI_I2S_SendData () она должна быть отложена на определенное время, прежде чем судить, установлено ли принятие. Можно определить конкретное время задержки. по тактовой частоте связи SPI и требуемому количеству передаваемых битов.。
1. Включите SD-карту. Должен подавать не менее 74 импульсных сигналов на SD-карту для задержки включения.
2. При отправке команды CMD0 установите для строки выбора микросхемы CS значение 0. Когда SD-карта отвечает R1 как 0x01, карта переходит в состояние ожидания.
3. Отправьте команду CMD8, параметры VHS и CRC должны быть правильными, формат следующий:
Host supplied voltage range
Согласно приведенным выше диаграммам таблиц, мы можем получить: двоичный код отправки команды CMD8 в режиме SPI:
01001000 00000000 00000000 00000001 10101010 10000111
8 бит, отмеченные желтым цветом, могут быть произвольными, но проверка CRC младших 8 битов должна соответствовать этому!
Если ответ команды CMD8: 00000001 00000000 00000000 00000001 10101010
(Примечание: в последней строке таблицы 7-5 на рисунке выше указано, что если напряжение совпадает (Match * 2), желтая часть выше - это просто ECHO BACK, что согласуется с параметрами CMD8.)
Объясните, что SD-карта адаптируется к предоставленному напряжению.
4. Отправьте команду CMD58 (прочтите регистр OCR, проверьте диапазон напряжения, поддерживаемый SD-картой). Конкретное содержимое регистра OCR выглядит следующим образом:
После экспериментов было обнаружено, что независимо от того, сколько тактовых импульсов было дано раньше, чтение 31 30 бит регистра OCR не всегда будет установлено. В настоящее время чтение регистра OCR может получить только диапазон напряжения, поддерживаемый SD карта.
И при отправке команды CMD58 не нужно обращать внимание на параметры и проверку CRC. Ответ команды CMD58 выглядит следующим образом:
5. Отправьте команду CMD55 (параметр команды, CRC не обращает внимания), чтобы сообщить SD-карте, что следующая команда является командой типа APP_CMD.
Ответ R1, если правильный ответ 0x01,
В это время карта все еще находится в неактивном состоянии.
Отправьте команду ACMD41, инструкции в руководстве следующие:
It is mandatory to issue CMD8 prior to the first ACMD41. Receiving of CMD8 expands the
CMD58 and ACMD41 function; HCS (High Capacity Support) in the argument of ACMD41 and CCS
(Card Capacity Status) in the response of CMD58. HCS is ignored by the card, which didn’t accept
CMD8. Standard Capacity SD Memory Card ignores HCS. The “in idle state” bit in the R1 response of
ACMD41 is used by the card to inform the host if initialization of ACMD41 is completed.
Грубый перевод: команда CMD8 должна быть отправлена перед командой ACMD41. Стандартный поток команд должен быть CMD8, CMD58, CMD55, ACMD41. При отправке ACMD41 бит HCS (бит поддержки большой емкости,Примечание редактора: но похоже, что в настоящее время мы не знаем, поддерживает ли SD-карта большую емкость.), если CMD8 не отправляется до команды ACMD41, SD-карта игнорирует бит HCS, а SD-карта стандартной емкости игнорирует бит HCS. Бит состояния ожидания RI указывает, завершен ли процесс инициализации.Когда бит ожидания R1 равен 1, SD-карта находится в состоянии инициализации, и это 0 для завершения процесса инициализации.
Команде ACMD41 также не нужно указывать CRC.
Экспериментально установлено, что при отправке команды ACMD41 бит HCS должен быть установлен в 1. Если он не установлен в 1, процесс инициализации не будет завершен. Для SD-карт стандартной емкости указание бита HCS не повлияет на инициализацию.Как упоминалось выше, стандартные SD-карты игнорируют бит HCS. Таким образом, бит HCS должен быть установлен в 1 при отправке команды ACMD41!
6. Отправьте команду CMD58, чтобы проверить протокол SD, поддерживаемый SD-картой.
Если поддерживается протокол 2.0, можно уменьшить частотное разделение SPI и данные могут передаваться с высокой скоростью. (Здесь объясняется, что в начале инициализации SPI вам необходимо установить максимальное значение деления частоты, чтобы предотвратить сбой завершения инициализации SD-карте с более низкой версией).
На этом инициализация SD-карты завершена и переходим в режим передачи данных!
Однако перед передачей данных необходимо выполнить настройку блока чтения и записи.Картам SD стандартной емкости можно задать размер блока чтения и записи с помощью команды CMD16; для карт SD большой емкости размер блока чтения и записи фиксирован на уровне 512 байт, и команда CMD16 игнорируется. Максимальное значение блока чтения и записи указывается в регистре CSD, а настройки, превышающие максимальное значение с использованием CMD16, будут игнорироваться. Когда регистр CSD READ_BL_PARTIAL установлен в 1, вы можете установить любой размер блока чтения и записи не более 512 байт.
В руководстве говорится, что высокоскоростные карты поддерживают только 512-байтовые блоки чтения и записи фиксированного размера. Так что все это ерунда!
Вы можете игнорировать установку размера блока чтения и записи.
Во время передачи данных проверка CRC выполняется для 512 байтов данных, а полином CRC равен x16 + x12 + x5 + 1.
В фактических операциях чтения и записи команда CMD16 не используется для указания длины открытой операции следующей команды.Как правило, размер блока чтения и записи не устанавливается, и используется размер блока по умолчанию, равный 512 байтам.
Команда CMD17 используется для чтения блока. 32-битный параметр указывает адрес блока для чтения (кажется, что до сих пор мы не знаем ни емкость SD-карты, ни диапазон адресов SD-карты). card, поэтому мы должны прочитать содержимое блока. Прежде чем сначала узнать о диапазоне адресов и информации о емкости SD-карты) Следуйте содержимому, чтобы подробно описать чтение CSD и получить диапазон адресов SD.
Для получения содержимого регистра CSD SD-карты параметр команды CMD9 заполняется значением 0. Регистр CSD предоставляет некоторую информацию для доступа к SD-карте. В режиме SDIO чтение CSD осуществляется через ответ SD-карты (SDIO, R2). В режиме SPI он получается посредством стандартного чтения данных блока. Формат передачи такой же, как формат чтения блока (0xfe отмечает начало передачи данных. с последующей передачей 16 байтов содержимого регистра CSD, 2 байта проверки CRC). Содержимое регистра CSD у разных версий SD-карт разное. Старшие 4 бита CSD указывают версию протокола SD-карты. следующее:
Здесь только объясняется, как получить диапазон адресов и емкость SD-карты версии 2.0.
Version 2.0 CSDКонкретное содержание реестра следующее:
C_SIZE [69:48] Область, которая привлекает внимание!
[69:48] с моей SD-карты было прочитано:
0001 1101 1110 0011 (все старшие биты опущены) преобразовано в десятичное: 7651
Таким образом, диапазон адресов карты (0-7651), а емкость: 7652 * 512 байт = 3917824 байт, что составляет около 4 ГБ.
На данный момент все приготовления к чтению и записи блока завершены!
Параметр отправляемой команды CMD17 - это адрес (32 бита) для чтения, не нужно обращать внимание на CRC, SD-карта вернет все содержимое (512 байт) адресного блока после его получения. Формат данных, возвращаемых SD-картой, следующий:
Ответ R1 равен 0, что указывает на то, что SD-карта получила команду и команда верна. Начало данных помечено как 0xfe (SD-карте требуется некоторое время для обработки команды, SPI считывает 0xff, когда SD-карта обрабатывает команду, и данные записываются в buf, когда считается, что она получила 0xfe во время программирования)
, Далее следуют 512 байтов содержимого данных, за которыми следуют 2 байта проверки CRC (проверка CRC может быть отключена командой CMD59).
Чтение нескольких блоков, запись одного блока, несколько блоков, одна и та же (LAZY) операция управления (TO) (WRITE) операция (DOWN). Подробности читайте в руководстве по протоколу!
настройки, которые были установлены в момент приобретения принтера.
● В настройках по умолчанию параметр [Инициализация] не может быть выбран, так как для параметра [Разрешить
инициал.] в разделе [Параметры памяти] в меню [Меню загрузки] установлено значение [Нет]. Установите для
параметра [Разрешить инициал.] в разделе [Параметры памяти] в меню [Меню загрузки] значение [Да].
● Для получения доступа к меню [Админ.настр.] требуется пароль администратора. Пароль по умолчанию: «aaaaaa».
Инициализация карты
Инициализацию карты памяти SD следует
выполнять, если устанавливается карта,
которая использовалась с другим устройством,
или если карта памяти SD была распознана
некорректно.
Карта памяти SD используется в качестве
буферного хранилища при выполнении печати
в нескольких экземплярах, для сохранения
данных при защищенной/зашифрованной
печати, а также данных форм и макрокоманд.
В процессе инициализации сохраненные
данные удаляются.
На карте памяти SD имеется три раздела:
два раздела Common и один PCL. При
инициализации карты памяти SD выполняется
разбиение на разделы в заданном
соотношении (по умолчанию первый раздел
Common занимает 30 %, второй раздел
Common — 50 %, раздел PCL — 20 %).
Каждый раздел также можно отформатировать
индивидуально.
Если в принтер устанавливается карта
памяти SD, которая использовалась с
другим устройством, или установленная
в принтер карта памяти SD больше не
распознается, при включении принтера
на экране может появиться запрос
[Инициализировать Да/Нет]. В этом случае
выберите [Да]. Данные, сохраненные на
карте памяти SD, будут удалены.
Если при выборе [Нет] на экране появилось
Не во всяком аппарате организован такой алгоритм.
Зачастую чистую память нужно инициализировать ручками, записывая в нее нужный код.
Вообще, само понятие "инициализации" - это создание таких условий, после которых аппарат оживает и его можно настраивать дальше, его штатными средствами.
Пример из компьютеров: если стирается флеш-БИОС, машина умирает.
Чтобы такого не происходило (а особенно это неприятно, если микросхема на пайке, а не на кровати), сейчас делают нестираемую часть прошивки, в которой записана процедура восстановления БИОС с внешнего носителя (например, у Асусов сделано так).
Caша писал: |
И еще – что такое флэш-память?Я знаю такие: EEPROM – 24C04,93C46 и т.п. EPROM(ПЗУ) – 27C512,27C040 и т.п. Что из этого флэш?Что такое ROM и RAM?В общем я запутался в трех соснах. |
RAM - Random Access Memory, память с произвольной выборкой, ОЗУ (оперативное запоминающее устройство). Можно писать, можно читать.
Но обесточил - и она все забыла.
ROM - Read Only Memory, память только для чтения, ПЗУ (постоянное запоминающее устройство).
ПЗУ бывают масочные (т.е., нужный код зашивается в процессе изготовления кристалла), с прожигаемыми перемычками (программируются один раз), электрически программируемые с ультрафиолетовым стиранием (программируются несколько раз, EPROM), электрически перепрограммируемые (можно перепрограммировать, не вынимая из аппаратуры, EEPROM).
Масочные - например, контроллер клавиатуры компьютера.
Там стоит однокристальный универсальный контроллер, в который зашита прямо при изготовлении микросхемы программа, обеспечивающая функцию клавиатуры.
Память с прожигаемыми перемычками существует в основном в виде программируемых логических матриц (ПЛМ), сложных дешифраторов.
Память с УФ стиранием программируется нулями, а единицы записываются сразу во все ячейки, при освещении УФ лампой.
Всем нам знакома ситуация при которой SD-карта или Flash-накопитель перестают работать или теряют способность быть распознанными на различных устройствах. Причин тому может быть несколько : устаревший или поврежденный драйвер, наличие вредоносного программного обеспечение, RAW-формат накопителя и ошибка форматирования.
Если вы беспокоитесь о потере важных файлов или фотографий, в конце мы расскажем ценную информацию о том как можно восстановить документ любого расширения с отформатированного накопителя, в том числе и SD-карты
Содержание статьи:
Способ №1. Обновите драйвер SD-карты
1. Подключите SD-карту к компьютеру.
3. В появившемся списке найдите Дисковые устройства и разверните меню. Найдите свой диск. В нашем случае это SDHC Card.
4. Щелкните правой кнопкой мыши по имени SD-карты и нажмите клавишу Удалить устройство.
Предупреждение! Не пугайтесь того, что наименование устройства пропадет из списка дисков. Так и должно быть. Это говорит о том, что вы удалили существующий драйвер.
5. Щелкните по параметру Дисковые устройства правой кнопкой мыши и выберите пункт Обновить конфигурацию оборудования.
6. По завершению процесса, ваш диск снова появится в списке устройств и будет пригоден для дальнейшего использования.
Если данный способ вам не помог, перейдите к следующему.
Способ №2. Управление дисками
Этот метод решения вопроса не предлагает сложных путей с необходимостью обновлять ПО или вводить длинный список непонятных команд. Тем не менее он прост и эффективен в использовании.
1. Подключите SD-карту к компьютеру.
2. Откройте утилиту Выполнить при помощи горячих клавиш Win + R и введите команду diskmgmt.msc.
3. Перед вами появится окно приложения Управление дисками, которое в принудительном порядке заставит вашу SD-карту отобразиться в списке установленных устройств.
В этом же окне, при желании, вы можете Открыть содержимое карты всего лишь щелкнув по ее букве правой кнопкой мыши.
В случае если что-то пошло не так и ваша SD-карта по прежнему не видна для компьютера, попробуйте третий способ.
Способ №3. Удалите вредоносное ПО
1. Подключите SD-карту к компьютеру.
2. Откройте меню Пуск и запустите командную строку от имени администратора.
3. В открывшемся окне введите команду attrib -h -r -s /s /d F:\*.*
Вместо F: укажите букву своего диска. Она может быть G: или любой другой, не забудьте проверить в проводнике.
Восстановление данных и форматирование SD-карты
В редких случаях приведенные выше способы могут оказаться неспособными решить возникшую неполадку. Единственным возможным выходом из сложившейся ситуации остается форматирование устройства. Но как же быть с данными?
Если на вашей SD-карте лежат ценные файлы, которые вы не можете себе позволить потерять, воспользуйтесь приложением Starus FAT Recovery. Оно быстро и эффективно восстановит документ любого расширения с устройства FAT-формата и даже сможет вас порадовать находкой старого файла, о котором вы, возможно, уже успели забыть.
1. Подключите SD-карту к компьютеру и запустите программу Starus FAT Recovery. Вас поприветствует Мастер восстановления, автозапуск которого в дальнейшем можно отключить. Нажмите Далее.
2. В этом окне перед вами появится список всех найденных дисков. Выберите устройство, которое нужно просканировать и нажмите Далее.
3. Выберите тип сканирования:
Рекомендуем проводить Полный анализ, чтобы получить более полную информацию.
4. Удобная функция предпросмотра позволяет изучить файл любого формата перед тем как приступить к его восстановлению. С помощью Starus FAT Recovery вы можете посмотреть изображения, видео и прочесть любой текстовый файл.
5. Выделите файлы, которые вы хотите вернуть, щелкните по любому из них правой кнопкой мыши и нажмите клавишу Восстановить.
Оценить все шансы «вернуть утраченное» Вы можете до момента регистрации инструмента Starus FAT Recovery. Загрузите программу для восстановления данных SD-карты и опробуйте совершенно бесплатно. В пробной версии доступны все функции, включая пред-просмотр восстановленных файлов.
Похожие статьи про восстановление данных:
Что такое UHS SD-карта и в чем разница между UHS-I, UHS-II и UHS-III?
Существует большое множество отличий и спецификаций, в которых пользователю желательно разбираться п.
Как восстановить поврежденный флеш накопитель или SD-карту
В этой статье речь пойдет о различных методах, которые помогут восстановить вашу поврежденную SD-кар.
Восстанавливаем цифровые фотографии с отформатированных карт памяти
Производители карт памяти анонсируют всё более ёмкие модели, позволяющие делать сотни и тысячи снимк.
Читайте также: