Некоторое время назад я обзавелся модулем для подключения SD карт, которые я планирую использовать в ряде проектов для хранения больших объемов данных. Например, для хранения изображений с камеры, или ведения больших журналов. Как водится, модуль я приобрел в китайском магазине за небольшое количество денег. Следует отметить, что фактически я планировал приобрести вариант для подключения microSD, но слегка ошибся и заказал обычный SD, который как известно очень громоздкий :( Ну да ладно... Модуль представляет собой довольно примитивную плату, на которой размещен контактный слот, подтягивающие резисторы для SPI шины и регулятор напряжения. Последний дает возможность подключать модуль как к +5В источнику питания, так и к +3.3В. На краю устройства имеется штыревой разъем 8x2. На этот раз, для демонстрации я решил воспользоваться контроллером Arduino Nano 32, который ближе для большинства начинающих робототехников. В качестве тестовой карты выступила microSD на 2Гб с адаптером. Схема подключения SD модуля и Arduino Nano выглядит следующим образом:
Важно учесть, что здесь используется не сплошная нумерация ног Arduino, а нумерация цифровых выводов, то есть D10, D11, и т.п. В библиотеке примеров Arduino уже имеется четыре тестовые программы для SD карт:
Первый пример который я опробовал - CardInfo. Единственное изменение, которое следует внести в код данного примера - это заменить номер вывода CS на актуальный. В моем случае это выглядит так: const int chipSelect = 10; Результатом работы программы является информация о типе карты, о доступном объеме и об имеющихся на карте файлах. Для измерения скорости чтения/записи, я немного доработал пример "ReadWrite". Текст программы и результат её выполнения для файлов разного объема представлены ниже.
Как видно, время записи на SD карту слишком велико, чтобы её можно было использовать, например, для организации лога в мультикоптере. Ведь цикл управления в нем 20мс, что меньше чем время записи даже одного байта на SD карту. Однако, существуют методы работы с памятью карты в обход файловой системы, что может значительно ускорить работу с ней. В ближайшее время я попробую записать на карту изображение с видео-модуля OV7670, о чем обязательно отчитаюсь. |
События >