Подключение Micro SD карты к Arduino

Подключение microSD-карты к ардуино

Secure Digital (SD) — это формат карт памяти, энергонезависимого типа хранения данных. Разработана компанией SD Card Association (SDA) для использования в портативных устройствах, таких как мобильные телефоны, камеры, навигаторы и т.д.

Типы карт Micro SD

Secure Digital включает в себя четыре семейства карт:

  1. SDSC: SD стандартной емкости. Карта имеет емкость 2 ГБ. Для карт данного типа оптимальной будет файловая система  FAT-16, так же можно использовать и FAT-12.
  2. SDHC: SD большой емкости. Такая карта  имеет емкость от 2 ГБ до 32 ГБ. Для карт данного типа оптимальной будет файловая система  FAT-32. FAT-16 применяется для карт не превышающих 4 Гб. Можно использовать и 32 ГБ, но максимальный размер файла, который можно записать 4 Гб.
  3. SDXC: данный тип SD карт имеет увеличенную емкость. Карты данного типа имеют емкости от 32 ГБ до 2 ТБ. Для таких карт разработана специальная файловая система exFAT (расширенный фат).
  4. SDIO: объединяет функции ВВОДА/ВЫВОДА с хранением данных.

SD-карты различаются не только объемом хранимой информации но и разным размером.

  • Обычная SD — 1,25 на 0,95 дюйма
  • Мини SD — 0,87 на 0,79 дюйма
  • Micro SD — 0,43 на 0,59 дюйма

SD карта и файловая система

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

Большинство SD-карт форматируются заводом изготовителем под оптимальную файловую систему. Пользователь может сам отформатировать карту под нужную ему файловую систему.

Ниже представлена зависимость размера и предпочтительной файловой системы.

  1. Для карты SDSC
    • Емкость менее 16 МБ — FAT 12
    • Емкость от 16 МБ до 32 МБ — FAT 16
    • Емкость более 32 МБ — FAT 16B
  2. Для SDHC-карт
    • Емкость менее 7,8 ГБ — FAT 32
    • Емкость более 7,8 ГБ — FAT 32
  3. Для карт SDXC
    • exFAT

Внимание!


  1. Библиотека Arduino поддерживает только файловые системы FAT16 и FAT32. Убедитесь, что ваша SD-карта отформатирована только в одной из этих систем, иначе вы получите ошибку инициализации.
  2. Для форматирования SD-карты вы можете скачать SD-форматтер по следующей ссылке — SD Memory Card Formatter. Или отформатировать встроенными средствами Windows.

Модуль SD карты для Arduino

Модуль SD-карты для Arduino
Рисунок 1. Модуль SD-карты для Arduino

Модуль карты micro-SD представляет собой  простое решение для передачи данных на стандартную карту SD и обратно. Этот модуль имеет интерфейс SPI, совместимый с любой SD-картой, и использует источник питания 5 В или 3,3 В, совместимый с Arduino UNO/Mega.

Назначение контактов

Название контакта Описание
CS Chip Select
SCK Тактирование
MISO Master вход Slave выход
MOSI Master выход Slave вход

Схема подключения модуля Micro SD

Схема подключения модуля SD-карты к arduino uno
Рисунок 2. Схема подключения модуля SD-карты к ардуино уно

На схеме показаны подробные соединения модуля SD с Arduino.

MOSI контакт 11
MISO контакт 12
CLK контакт 13
CS контакт 4

Примечание!


Вы можете подключить VCC модуля либо к , либо к 3,3В.

Пример

В этом примере мы собираемся связать карту micro SD с Arduino и выполнить на ней операцию чтения-записи.

Мы будем использовать встроенный код, предоставленный Arduino IDE.

Код в Arduino IDE использует два библиотечных файла:

  • SPI.h
  • SD.h

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

Для доступа к коду в Arduino IDE вы можете выполнить следующие шаги:

Откройте IDE ⇒ Нажмите «Файлы» ⇒ Нажмите «Примеры» ⇒ Выберите «SD» ⇒ Открыть «ReadWrite».

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

Что бы вам было проще, мы разместим этот код ниже.

Скетч для чтения и записи на SD-карту с помощью Arduino

#include <SPI.h>
#include <SD.h>
File myFile;
void setup() {
  // Откройте последовательную связь и подождите, пока откроется порт:
  Serial.begin(9600);
  while (!Serial) {
    ; // дождитесь подключения последовательного порта. Требуется только для родного порта USB
  }
  Serial.print("Initializing SD card...");
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  // открываем файл. обратите внимание, что одновременно может быть открыт только один файл,
  // так что вы должны закрыть это, прежде чем открывать другое.
  myFile = SD.open("test.txt", FILE_WRITE);
// если файл открылся нормально пишем в него:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // закрываем файл:
    myFile.close();
    Serial.println("done.");
  } else {
    // если файл не открылся, вывести ошибку:
    Serial.println("error opening test.txt");
  }
  // повторно открыть файл для чтения:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");
// читаем из файла, пока в нем больше ничего нет:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // закрываем файл:
    myFile.close();
  } else {
    // если файл не открылся, вывести ошибку:
    Serial.println("error opening test.txt");
  }
}
void loop() {
  // после настройки ничего не происходит
}
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии