Два интерфейса SD-карты на одном ESP8266?
Я знаю, что можно подключить несколько устройств SPI, но как получить доступ ко второму диску из скетча?
Глядя на пример SDWebServer.ino, я сомневаюсь в части SD.begin(SS);
. Если я снова вызову begin()
с другим выводом CS, кажется, что я потеряю ссылку на свой первый том или, возможно, он вообще не будет работать. Я бы создал другой экземпляр SD
, но скетч никогда не создает экземпляр этого объекта, он сначала появляется в setup()
с помощью SD.begin(SS);
Если я скопирую библиотеку (sd.h+sd.cpp) и заменю все буквальные экземпляры SD
на SD2
, смогу ли я затем включить и использовать SD2
точно так же, как оригинал (при условии другого .begin(pin)
)? Есть ли менее хакерский способ использования двух SD-карт в ESP8266 Arduino?
Если кому-то интересно, это для криптографического проекта, где одна карта будет содержать одноразовые блокноты с длиной открытого текста, а другая содержит зашифрованный текст XOR, оба загружаются через Wi-Fi, а максимальный размер файла должен быть больше, чем SPIFFS, поэтому мне действительно нужны две SD-карты...
@dandavis, 👍1
Обсуждение2 ответа
Вы должны (я не проверял) сделать это, если библиотека хорошо закодирована и не использует глобальные переменные, и вы делаете что-то вроде этого:
// Не знаю, как называется класс, поэтому замените TYPE на то, что должно быть.
TYPE SDCardOne;
TYPE SDCardTwo;
SDCardOne.begin(CS1);
SDCardTwo.begin(CS2);
....
Спасибо за редактирование, Юрай, теперь это имеет гораздо больше смысла :), @Code Gorilla
К сожалению, стандартная библиотека SD.h разработана как одноэлементная, поэтому код скетча не создает интерфейсы карт, как указал @Devidas в другом ответе., @Maple
Невозможно без изменения кода библиотеки. Потому что текущий код библиотеки написан для одной SD-карты, т.е. не предназначен для нескольких SD-карт, потому что это будет сложно сделать. Библиотека SPI также использует библиотеку FatFS, которая является узким местом в этом сценарии.
Стоит попробовать.
sdfatlib — это библиотека, написанная для Arduino. Я никогда не использовал его, но вы можете попробовать ESP.
Сообщите нам, если это сработает.
- Загрузить сайт с SD-карты
- Как увеличить скорость записи на SD-карту в Ардуино
- Какие контакты можно использовать для выбора микросхемы (CS, CC) на Arduino Nano Every?
- Сделать CS (chip select) для работаты в SPI (для и SD карты и OLED)
- Может ли ESP-1 использовать SPI для связи с датчиками?
- Использование экрана SD-карты на Arduino Due
- Arduino/ESP8266 нет данных SPI, поступающих от MCP3008
- Отобразить изображение с SD-карты на ЖК-дисплей ILI9486
Разве вы не можете просто создать еще один экземпляр
SDClass SD2
в скетче?, @KIIVи, конечно же, выберите другой контакт для сигнала выбора ведомого, @Juraj