Обзор модуля micro SD карт, SPI
Обзор модуля micro SD карт, SPI

В этой статье расскажу о модуле Micro SD для arduino. Данный модуль позволяет подключить Flesh карту к arduino и использовать ее, для логирования показаний датчиков, хранения различных конфигурационных файлов, а так же для работа с различными мультимедийными файлами (графика, музыка или видео).

Технические параметры 

► Поддержка карт: micro SD, micro SDHC
► Интерфейс: SPI
► Напряжение питания: 4.5-5.5 В или 3.3 В
► Напряжение интерфейса SPI: 5 В или 3.3 В
► Потребляемый ток: от 0.2 мА до 200 мА
► Поддерживаемые карты: Micro SD карты (< = 2 Г), Мicro SDHC карты (< = 32 Г)
► Габариты: 42мм х 24мм х 12мм

Общие сведения

Карта micro SD — это съемная карта памяти небольшого формата с габаритными 11 мм x 15 мм и толщиной в 1 мм. Рабочие напряжение карты 3.3 В, поэтому ее нельзя подключать напрямую к цепям Arduino у которых 5 вольтная логика (если напряжение превысит 3.6 В карты выйдет из строя). Поэтому на плате предусмотрена микросхемам 74LVC125A, которая преобразует 3.3 В логический сигнал с карты в 5 В Arduino и на оборот, если мы подаем 3.3 – 3.6 В. Так же, на модуле предусмотрен стабилизатор напряжения на 3.3 В «AMS1117».

Обзор модуля micro SD карт, SPI

Модуль micro SD карты имеет шесть контактов, назначение каждого можно ознакомится ниже:

► GND — питание модуля «земля»
► VCC — питание модуля «3.3 В — 5В»
► MISO (Master In Slave Out)  это выход SPI
► MOSI (Master Out Slave In)  это вход SPI
► SCK (Serial Clock) Тактовые импульсы
► SS (Slave Select) используется Arduino (Master) для включения и отключения определенных устройств на шине SPI.

Принципиальная схема модуля SD карт для Arduino

Принципиальная схема модуля micro SD карт

Форматирование

Прежде чем вставить карту micro SD в модуль и подключить ее к Arduino, необходимо отформатировать карту в FAT16 или FAT32.
Если вы работаете в Windows 10, щелкните правой кнопкой мыши значок карты и выберите параметр «Форматировать…». В новом окне, выбираем файловую систему FAT или FAT16 и нажимаем «Начать»

Форматирование micro SD карты

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

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуль micro SD карт, SPI x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Подключение:
Несмотря на то, что карта microSD имеет 8 контактов, нам нужно только 6 контактов, для подключение по интерфейсу SPI. Подключаем два контакта питания VCC (к 5В Arduino) и GND
к GND Arduino (внутренний стабилизатор AMS1117 подаст 3.3 В на карту и на микросхему 74LVC125. Далее MISO, MOSI и SCK подключаем к 12, 11 и 13 выводы Arduino. Контакт CS подключается к выводу 4 Arduino.

Подключение модуля micro SD карт к arduino

Теперь можно загрузить скетч, чтобы прочитать информацию о карте. Программа доступна из библиотеки примеров в IDE Arduino. Перейдите в Файл -> Примеры -> SD -> CardInfo. Программа откроется в новом окне.

Скачать скетч

Если все правильно сделано в открытом окне «Мониторинг порта» можно увидеть информацию о карте

Мониторинг порта micro SD карты

Если ничего не появляется, скорее всего, вы неправильно соединили провода.

Мониторинг порта micro SD карты

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

Скачать скетч

Скетч начинается с подключения встроенных библиотек «SD» и «SPI», которые позволяют общаться с SD картой через интерфейс SPI.

Следующее, что мы делаем, это указываем вывод Arduino, к которому подключен вывод «CS» модуля SD-карты. Вывод CS — единственный, который можно изменить, по сравнению с выводами интерфейса SPI, так как мы используем аппаратный интерфейс SPI, и эти выводы уже добавлены в библиотеке SPI. Далее мы создаем myFile , который позже будет использоваться для хранения данных на SD-карте.

В «setup()«, запускаем последовательную связь «Serial.begin(9600)«, для отображения результатов. Теперь, инициализируем SD-карту функций «SD.begin()«, и если инициализация прошла успешно, оператор «if» становится истинным и печатается сообщение об удачной инициализации, иначе инициализация не удалась и программа останавливается.

Затем функция «SD.open()» откроет файл с именем «test.txt». Если файла нет, он будет создан, параметром «FILE_WRITE» открывает файл в режиме чтения-записи.

После открытия файла печатается сообщение «Writing to test.txt…» в окне «Мониторинг порта» , а затем с помощью функции «myFile.println()» запишем в файл текст «test 1, 2, 3.«. После этого нам нужно воспользоватся функцией «close()«, чтобы гарантировать, что данные, записанные в файл, сохранены.

Теперь для проверки попробуем прочитать тот же файл. Для этого воспользуемся функцией «SD.open()«, но так как файл «test.txt», уже создан, функция просто откроет файл. Затем с помощью функции «myFile.read()» мы прочитаем данные из файла и распечатаем их в окне «Мониторинг порта». Функцией «read()» мы можем прочитать один символ за один раз, так что поэтому используем «n» циклов и функцию «myFile.available()«, для чтения всех символов в файле. В конце нам нужно закрыть файл.

Поскольку это всего лишь пример записи и чтения данных с файла, нет смысла запускать код несколько раз, поэтому весь код был помещен в «setup()»  функцию, которая выполняется только один раз, вместо того, чтобы помещать ее в функцию «loop()«, которая выполняется постоянно.

Теперь после загрузки скетча в Arduino в окне «Мониторинг порта», можно увидеть следующие данные.

Мониторинг порта micro SD карты

При повторном открытие окна «Мониторинг порта», данные будуи добавляться в файл без перезаписи.

Мониторинг порта micro SD карты

Подключение модуля micro SD карт к arduino

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Комплект проводов DuPont, 2,54 мм, 20 см
  Модуль SD кары, SPI

Купить в Самаре и области
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
 Провода DuPont, 2,54 мм, 20 см
  Модуль SD кары, SPI

Один комментарий к “Обзор модуля micro SD карт, SPI”
  1. Данный модуль не работает совместно с другими модулями по SPI, вызывая ошибки при приеме и передаче данных. Требует доработки паяльником.

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

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