Модуль SD карты памяти для Arduino SD Card Module Slot Socket Reader For Arduino ARM MCU Read Write
Модуль позволяет хранить, читать и записывать на SD карту данные требуемые для работы прибора на основе микроконтроллера. Применение устройства актуально при хранении файлов от десятков мегабайт до двух гигабайт. На плате размещен контейнер SD карты, стабилизатор питания карты, вилка соединителя линий интерфейса и питания. Если требуется работать с звуковыми, видео или другими объемными данными, например, вести журнал регистрации событий, данных датчиков или хранить информацию веб-сервера, то модуль SD карты памяти для Arduino даст возможность применить SD карту для этих целей. С помощью модуля можно изучить особенности работы SD карты.
Характеристики
Напряжение питания 5 или 3,3 В Объем памяти SD карты до 2 Гбайт Размеры 46 х 30 мм
Подключение
Обмен данными между МК и модулем происходит по интерфейсу SPI. Контакты модуля SD карты памяти для Arduino подписаны. Каждый проводник сигнала соединен с двумя контактами в 2 ряда. Рядом расположенные контакты дублируют друг друга. Приводим назначение и расположение контактов, вид на контакты со стороны штырей.
Контакты SPI:
CS – выбор микросхемы (Chip Select), вход модуля, MOSI – ведущий выход, ведомый вход, MISO – ведущий вход, ведомый выход, SCK – вход тактирования интерфейса.
Так как питание SD карты составляет 3,3 В, то наиболее просто использовать МК с таким же напряжением питания. При подключении к МК имеющим питание 5 В необходим преобразователь уровней.
Схема согласования уровней сигналов поступающих с выхода модуля МК на вход модуля SD карты.
В качестве преобразователя уровней применяют резисторный делитель. С выхода Arduino сигнал поступает на резистор R1. Сигнал для модуля SD карты памяти для Arduino берут из точки соединения резисторов. Для соединения модуля МК и модуля SD карты потребуется 3 делителя подключенные к трем входам модуля. Единственный выход модуля подсоединяется непосредственно к МК без делителя. При таком выборе решения согласования уровней применяется 6 компонентов. Эта схема будет неустойчиво работать на верхних частотах обмена данными, но при небольших скоростях обмена данными передача будет происходить надежно. Для высоких частот применяется микросхема преобразования уровней СВ4050.
Вывод 1 микросхемы СВ4050 подключается к источнику напряжения 3,3 В, вывод 8 к общему проводу. Сигналы от МК подают на входы 3, 5 и 7, а выходы 2, 4 и 6 соединяют с модулем SD.
При подключении к Arduino UNO через элементы согласования соединение выполняется в следующем порядке:
SD Arduino
CS digital – 4 SCK 13 MOSI – 11 MISO 12
Подключение к Arduino Nano:
SD Arduino
MOSI 11 MISO 12 SCK 13 CS 10
Здесь используется не сплошная нумерация контактов Arduino, а нумерация цифровых выводов, то есть D10, D11, и т.п.
Схема
Микросхема U6 стабилизирует питание карты памяти на уровне 3,3 В. Необходимость в резисторах R1…R4 вызвана особенностями работы карт различных производителей.
Форматирование SD карты
Программная библиотека Arduino поддерживает файловые системы FAT16 и FAT32. Лучше отформатировать карту памяти перед использованием. Рекомендуем использовать официальную утилиту форматирования SD карты.
Программирование
Начать знакомство с модулем удобно используя аппаратные и программные средства ардуино. В программный пакет Arduino IDE входит специальная библиотека SD. Библиотека поддерживает на стандартных картах и SDHC файловые системы FAT16 и FAT32. Работает с именами файлов длиной 8 символов и расширением имени 3 символа. Начиная с версии 1.0, библиотека SD поддерживает открытие нескольких файлов. Программное обеспечение Arduino содержит процедуры позволяющие работать с картой SD и интерфейсом SPI. Проверим функционирование соединенных модулей. Программа сообщит, удалось ли получить сведения о карте для проверки ее работоспособности. Для этого в разделе Примеры выберем пункт SD и далее CardInfo.
Проверьте какой контакт ардуино в тексте программы CardInfo заложен для отправки сигнала CS. Раздел программы с указанием номера контакта показан далее.
Выбор контакта 10 ардуино для отправки сигнала CS.
Если в схеме использован контакт 4, а в программе указан другой, то необходимо внести изменение в программу:
const int chipSelect = 4;
В отличии от других сигналов для сигнала CS можно выбирать различные используемые в ардуино контакты. Это важно при применении различных типов микроконтроллерного модуля ардуино и при сборке сложных проектов, где задействовано много контактов.
Работа с программой CardInfo на видео.
Проверим запись на карту с помощью имеющейся программы в Arduino IDE. Для этого в разделе Примеры выберем пункт SD и далее ReadWrite. Запишем программу ReadWrite в ардуино, подадим питание на соединенные модули и откроем на ПК последовательный монитор Arduino IDE. При этом мы должны увидеть сообщения о инициализации карты, проверки записи и сообщение проверка 1, 2, 3. Закроем и откроем последовательный монитор снова, теперь в окне последовательного монитора будет две строки проверка 1, 2, 3, значит модуль и карта работают, а подключение верное. Другие программы пункта SD имеют следующее назначение:
Datalogger – журнал регистрации событий, DumpFile – чтение файла и вывод в последовательный порт, Files – создание и удаление файла, ListFiles – вывод списка файлов.