Перейти к содержанию
    

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

Изменено пользователем Kruftin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Файловую систему создавать не обязательно, можно работать просто как с "памятью".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример можно подсмотреть в том же FatFS. Вам просто нужно взять самый нижний уровень и использовать его по своему усмотрению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А хорошо когда полноценная FS , данные можно с легкостью вводить/редактировать с ПК

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда ещё вопрос: после того как записали блок в 512 байт в команде на запись какой будет следующий адрес блока(не 0x201 будет его значение)?

А по структуре регистров CSD, CID почитать в документации общей на SD карты?

 

http://www.piclist.ru/S-MMC-SD-Cards-RUS/S...-Cards-RUS.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда ещё вопрос: после того как записали блок в 512 байт в команде на запись какой будет следующий адрес блока(не 0x201 будет его значение)?

А по структуре регистров CSD, CID почитать в документации общей на SD карты?

 

http://www.piclist.ru/S-MMC-SD-Cards-RUS/S...-Cards-RUS.html

Если карта пишет блоками (по 512 байт), то следующий блок Вы можете писать по любому адресу. А как иначе? Если файл фрагментирован, к примеру. Для того, чтобы писать несколько блоков подряд, есть другая команда. Как и на чтение. Другими словами, Вы можете писать и читать либо по одному блоку по любому адресу, либо несколькими блоками подряд. Но команды нужно использовать соответствующие. Про них, ровно как и про регистры, следует читать только в официальной документации на официальном сайте.

 

З.Ы. Я надеюсь, Вы в курсе, что есть карты, которые не поддерживают блоки по 512 байт. Там нужно побайтно задавать адреса. Сам плохо в этом разбираюсь, так как работал с SDHC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

З.Ы. Я надеюсь, Вы в курсе, что есть карты, которые не поддерживают блоки по 512 байт.

Вот таких карт как раз нет: любая обязана поддерживать 512 байт.

 

Там нужно побайтно задавать адреса. Сам плохо в этом разбираюсь, так как работал с SDHC.

Адресация - это несколько из другой оперы: в HC передается номер блока, в "обычных" - его адрес.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот таких карт как раз нет: любая обязана поддерживать 512 байт.

Здорово! Вот и мое незнание вылечили! :rolleyes:

Адресация - это несколько из другой оперы: в HC передается номер блока, в "обычных" - его адрес.

Ага, теперь я понял, что неправильно понял спецификацию... Ну чтож, истина всплывает :rolleyes:

 

З.Ы. Когда занимался написание драйвера для LPC24x8, прочесывал форум на момент различных тонких моментов. Отметил Вашу высокую активность в темах по SD-картам. Как я понял, Вы на них собаку съели?! Очень уж у Вас информативные, и познавательные сообщения и советы!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

З.Ы. Когда занимался написание драйвера для LPC24x8, прочесывал форум на момент различных тонких моментов. Отметил Вашу высокую активность в темах по SD-картам. Как я понял, Вы на них собаку съели?! Очень уж у Вас информативные, и познавательные сообщения и советы!

Собака - она сама по себе съедается, когда нужно, чтобы в устройстве работала любая SD-карта :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда ещё такой вопрос при посылке пакета после data token следуют данные пакета, так вот их размер от 1 до 2048 байт. Т.е. при отключенном контроле CRC как карточка поймёт, что вот я послал пакет из 5 байт например и мне нужно прислать ответ? Конечно в документации написано, что в конце стоит стоп бит единица, ну т.е. если отключён контроль CRC, то нужно послать два нулевых байта и один бит единицу после этого?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при посылке пакета после data token следуют данные пакета, так вот их размер от 1 до 2048 байт.

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

 

нужно послать два нулевых байта и один бит единицу после этого?

Только не бит, а байт 0xFF. В SPI режиме всегда передаются байты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну SPI умеет делать посылки и по 4 бита, но тут то мне нужно получается послать два байта контроля и байт единиц и только после этого послать ещё запрос на считывание байта ответа так?

Изменено пользователем Kruftin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну SPI умеет делать посылки и по 4 бита, но тут то мне нужно получается послать два байта контроля и байт единиц и только после этого послать ещё запрос на считывание байта ответа так?

Пардон, с SD-режимом спутал. Не нужен байт единиц, токен приходит сразу после CRC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...