SD-Card-Module не работает с внешним источником питания

Описание проблемы

Я пытаюсь собрать регистратор данных с помощью Arduino UNO. Я подключил модуль SD-карты к Arduino. Я планировал перехватывать данные измерений с аналоговых входных контактов. При подключении к usb порту все работает. Но если я запускаю Arduino от внешнего источника питания, метод SD.open не работает (он просто возвращает false). Проблема возникает, даже если я подключаю внешний источник питания дополнительно к USB-подключению. Так что проблема не может быть в отсутствующем последовательном соединении.

Обратите внимание, что проблема возникает, только если SD.open находится в режиме записи. (Файл dataFile = SD.open("datalog.txt", FILE_WRITE);)

Что я уже пробовал:

  • запуск примера кода SD-карты, который включен в библиотеку SD-карт.
  • попробовать разные типы форматирования файловой системы (FAT, FAT32, с разными размерами кластера)
  • питание устройства чтения SD-карт с напряжением 3,3 В вместо 5 В

Подключение Arduino

Посмотрите на картинки, чтобы проверить, нет ли ошибок в проводке: Цифровые входы на Arduino Проводка модуля SD-карты и подключение питания

Характеристики блока питания

А вот характеристики блока питания:

  • Производитель: MyVolts
  • Модель: DD282MU
  • Вход: 100–240 В (переменный ток), 50–60 Гц.
  • Выход: 9 В, 1 А (постоянный ток)

Я надеюсь, что вы можете помочь мне с моей проблемой. И, конечно же, я надеюсь, что решение проблемы вообще есть. Спасибо.

, 👍2

Обсуждение

Вы пытались подключить 5-вольтовый контакт модуля SD-карты напрямую к блоку питания через регулятор 7805? Откуда вы знаете, что SD.open() возвращает false, когда вы не подключены к ПК через USB?, @SoreDakeNoKoto

Спасибо за ваш ответ. Регулятора 7805 у меня нет, поэтому не пробовал. Я знаю, что SD.open() возвращает false, потому что я подключил светодиод и позволил ему мигать в этом случае. Во-вторых, я видел это в последовательном мониторе: ошибка также возникает, если подключены оба кабеля USB и блок питания., @Tim Wißmann

Сотрите то, что я сказал о 7805; только что вспомнил, что в нем нет необходимости, так как выход Arduino 5 В в любом случае от внутреннего регулятора. SD-карты потребляют большой ток (не менее 100 мА) при чтении или записи. Таким образом, может случиться так, что ток, потребляемый как Arduino, так и SD-картой, вызывает падение напряжения блока питания и вызывает отключение. Попробуйте другой блок питания, если он у вас есть (один с максимальным потреблением 2 А); Крышка 100 мкФ от 5 В до GND поможет. Также вы проверили возвращаемое значение SD.begin()?, @SoreDakeNoKoto


2 ответа


Лучший ответ:

2

Хорошо, спасибо всем за ваши усилия.

Наконец, поменяв блок питания и подключив Arduino к другому usb-порту без операционной системы, я нашел решение.

Проблема заключалась в самой SD-карте: Я заменил SD-карту на более новую (может быть, более дорогую (?)) и теперь она просто работает. Независимо от того, подключаете ли вы Arduino к блоку питания или через USB-соединение. Я предполагаю, что может быть разная тактовая частота модуля SD-карты при разных напряжениях, что и вызывает проблему. Старая SD-карта не справляется с высокой скоростью и выдает ошибку (или просто отклоняет) при попытке записи...

В любом случае, еще раз спасибо за ваши усилия!

,

0

У меня тоже была такая проблема: SD-карта не инициализировалась при внешнем питании.
Прочитав это, я уменьшил внешнее напряжение питания до 5,1 В. (от 7,5 В), и внезапно моя SD-карта инициализируется при внешнем питании. Таким образом, «твердые» 5 В должны иметь SPI, работающий на более высокой скорости (я думаю), имеет смысл. Недостатком является то, что TFT не такой яркий, как должен быть. ... лучше купите более «дорогой» модуль SD-карты, LOL.

Ps. После некоторого тестирования я обнаружил, что SD-карта будет работать при напряжении до 6,4 В в разъеме питания, выше этого значения карта не инициализируется. Кстати, я не уверен, что это проблема скорости только потому, что скорость SPI привязана делителем к часам Mega, поэтому сначала нужно изменить часы Mega.

Надеюсь, это поможет

,