Подключите две SD-карты к одной плате Arduino и скопируйте с одной на другую
Я пытаюсь подключить 2 SD-карты к плате Arduino Uno.
- Мой первый вопрос: можно ли одновременно подключить две SD-карты к одному Arduino?
- Второй вопрос: если можно подключить 2 SD-карты, как я могу скопировать данные с карты 1 на карту 2?
Цель моего проекта — копирование данных из одной периферийной памяти в другую периферийную память при возникновении внешнего прерывания.
Кто-нибудь может мне помочь?
@user67463, 👍0
Обсуждение1 ответ
Вы не можете сделать это с вашей Arduino-Uno (и обычными SD-библиотеками).
SD-карты организованы в виде "секторов" по 512 байт. Вам нужен как минимум один сектор для самой файловой системы и один сектор для данных. Если вы попытаетесь одновременно открыть два файла, все ваши 2048 байт ОЗУ потребуются для буферов SD, и вы больше не сможете вернуться из вызова file open().
Вы можете сделать поблочную копию SD-карты вместо фактического чтения файловой системы. Недостатком является то, что SD-карта для копирования должна быть такого же размера или больше, чем исходная карта. И это копирование всегда занимает одинаковое (долгое) количество времени, независимо от того, «полная» ли карта., @Gerben
@ Гербен: правильно. (Это мое ограничение «обычных SD-библиотек»). Если у вас есть старые SD-карты на 64 МБ, вы можете сделать эту полную копию. Но предложение «при возникновении внешнего прерывания» заставляет меня думать, что пользователь 67463 пытается оседлать дохлую лошадь., @DataFiddler
- SD-карта не инициализируется
- Что означают эти контакты? Куда мне их подключить?
- Как сгенерировать аппаратное прерывание в mpu6050 для пробуждения Arduino из режима SLEEP_MODE_PWR_DOWN?
- Arduino непрерывно считывает значение АЦП с помощью прерывания
- Как правильно использовать volatile переменные в Arduino?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Arduino: как записать значение переменной в текстовый файл и изменить его на SD-карте?
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
Да, SD-карты используют шину SPI, поэтому вы можете подключить более одной. Каждому из них потребуется собственная линия выбора чипов. Чтобы скопировать, просто прочитайте с одного и напишите прочитанное на другом. Супер просто. Если ничего из этого не имеет смысла, изучите, как работать с одной SD-картой. Как только вы освоите основы, подключение двух будет тривиальным., @Delta_G
Просто будьте осторожны, потому что некоторые дешевые модули SD не освобождают линию, когда вы отменяете их выбор. Они не позволят ничему другому на шине SPI работать без небольших модификаций. Покупайте вещи хорошего качества, и это не должно быть проблемой, но если вы выберете самую дешевую вещь, которую сможете найти, вам также нужно будет изучить этот вопрос., @Delta_G
Спасибо за вашу помощь и хороший ответ :). На самом деле это не настоящий проект, и я должен смоделировать его с помощью симулятора Proteus. У вас есть хороший учебник по работе с SD-картами в Arduino? @Delta_G, @user67463
@user67463 user67463 вы пытались найти учебник в Google? Их тонны, @chrisl
В Интернете есть буквально сотни таких руководств. Найти его будет намного проще, чем писать этот код. Если вы откроете программное обеспечение Arduino и просмотрите примеры, вы увидите примеры использования SD-карты. Начните с этого. Или просто погуглите «Arduino SD» и начните читать., @Delta_G
Еще одна подсказка для вас, поскольку вы говорите, что хотите сделать это в ответ на прерывание. Не пытайтесь сделать это внутри обработчика прерывания. Пусть ISR установит флаг, и функция цикла увидит это и обработает там чтение и запись., @Delta_G