Знакомимся с ESP32, часть 2: заводим SD-карту

Всем привет. Мой пост, который я опубликовал около часа назад уже выполз в горячее сообщества, и я набрал аж 10 подписчиков (спасибо). Видимо, людям интересна данная тема. В этом выпуске мы рассмотрим подключение SD-карты к ESP32. Ну что же, поехали!


Я хочу выразить особую благодарность разработчикам arduino-esp32, но их библиотека SD... не работает. Либо вылезают ошибки при компиляции, либо... Помните, я в первой части говорил, что к ESP можно прикрутить внешнюю flash-память на 4-16 МБ? Она подключается по SPI. Прошивки, компилируемые в Arduino IDE, заливаются именно в эту память. Как бы я не подключал SD-карту: ставил подтягивающий резистор на SS, отключал питание SD на время загрузки, но ESP32 в консоль выдавала ошибку о том, что ей не удаётся прочитать flash-память. SD-карта, видимо, блокирует всю SPI шину. Ладно.


Пришлось искать альтернативную библиотеку (на это действие я убил не один час). И такой стала вот эта. Процесс установки более чем обычен: кидаем всё из ZIP-файла в папку libraries. Библиотека позволяет назначить произвольные пины для работы карты. Я подключил так:

ESP32 <> SD

D5 <> SS

D23 <> MOSI

D18 <> SCK

D19 <> MISO

И функции begin() нужно передать пины, к которым мы подключили карту в порядке SS, MOSI, MISO, SCK.

И вдруг, неожиданно, всё заработало. Попробуйте сами: возьмите пример nanosdcard2, и не забудьте поменять аргументы функции SD.begin().

Извиняюсь за столь короткий пост, очень скоро будет третий, про всякие порты сенсорных кнопок, АЦП и т. д.

Arduino & Pi

1.4K постов20.6K подписчика

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

2
Автор поста оценил этот комментарий

Но там же заявлен SDIO (возможно даже полный, с 4-я линиями данных).

Автор поста оценил этот комментарий

А как новый файл создать? Обычно когда открывают файл для записи при его отсутствии он создается, а тут не создается, просто возвращается ошибка.

Автор поста оценил этот комментарий

И как удалить файл? как удалить его содержимое? Как удалить часть содержимого?

1
DELETED
Автор поста оценил этот комментарий
A spifs в esp32 нет? На esp8266 можно было выделить на встроенной 4х МБ влешке метр места под хранение файлов. Я этим активно пользовался для проектов с веб морды, помещая туда контент страницы. А на esp32 что то пока не нашёл этого. Да и либу с веб сервером тоже. Только что то примитивные. Внешнюю флешку цеплять хотелось в последнюю оченедь. Того же 1МБ раньше хватало с запасом, больше с однопоточностью проблем было чем с местом..
раскрыть ветку
Автор поста оценил этот комментарий
Отлично. Но SD сейчас днем с огнем не найти либо цены конские. Может можно SDHC завести?
раскрыть ветку